Elisey Zanko created STORM-1758:
-----------------------------------

             Summary: Distributed log search doesn't work in dockerized 
environment
                 Key: STORM-1758
                 URL: https://issues.apache.org/jira/browse/STORM-1758
             Project: Apache Storm
          Issue Type: Bug
          Components: storm-ui
    Affects Versions: 1.0.0
            Reporter: Elisey Zanko


I run the Storm using the following docker-compose.yml

{code}
version: '2'

services:
    zookeeper:
        image: jplock/zookeeper:3.4.8
        restart: always

    nimbus:
        image: 31z4/storm:1.0.0
        command: nimbus -c storm.log.dir="/logs" -c 
storm.zookeeper.servers="[\"zookeeper\"]" -c nimbus.host="nimbus"
        depends_on:
            - zookeeper
        restart: always
        ports:
            - 6627:6627
        volumes:
            - logs:/logs

    supervisor:
        image: 31z4/storm:1.0.0
        command: supervisor -c storm.log.dir="/logs" -c 
storm.zookeeper.servers="[\"zookeeper\"]" -c nimbus.host="nimbus"
        depends_on:
            - nimbus
        restart: always
        volumes:
            - logs:/logs

    logviewer:
        image: 31z4/storm:1.0.0
        command: logviewer -c storm.log.dir="/logs"
        restart: always
        ports:
            - 8000:8000
        volumes:
            - logs:/logs

    ui:
        image: 31z4/storm:1.0.0
        command: ui -c storm.log.dir="/logs" -c nimbus.host="nimbus"
        depends_on:
            - nimbus
            - logviewer
        restart: always
        ports:
            - 8080:8080
        volumes:
            - logs:/log

volumes:
    logs: {}
{code}

And distributed log search doesn't work because the Storm UI tries to access 
the logviewer by supervisor's container id as a host.

Here is the list of running containers
{code}
$ docker ps
7ae118eef55c        31z4/storm:1.0.0         "bin/storm ui -c stor"   5 minutes 
ago       Up 5 minutes               0.0.0.0:8080->8080/tcp         
stormdocker_ui_1
5a9101dc2510        31z4/storm:1.0.0         "bin/storm supervisor"   5 minutes 
ago       Up 5 minutes                                              
stormdocker_supervisor_1
4d954096cf18        31z4/storm:1.0.0         "bin/storm nimbus -c "   5 minutes 
ago       Up 5 minutes               0.0.0.0:6627->6627/tcp         
stormdocker_nimbus_1
070080342c4f        31z4/storm:1.0.0         "bin/storm logviewer "   5 minutes 
ago       Up 5 minutes               0.0.0.0:8000->8000/tcp         
stormdocker_logviewer_1
8650786a13cc        jplock/zookeeper:3.4.8   "/opt/zookeeper/bin/z"   5 minutes 
ago       Up 5 minutes               2181/tcp, 2888/tcp, 3888/tcp   
stormdocker_zookeeper_1
{code}

And here is what the Storm UI requests
{code}
curl 
'http://5a9101dc2510:8000/search/topology-1-1462284216%2F6701%2Fworker.log?search-string=split&num-matches=1'
 -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Referer: 
http://192.168.99.100:8080/search_result.html?search=split&id=topology-1-1462284216&count=1'
 -H 'Origin: http://192.168.99.100:8080' -H 'User-Agent: Mozilla/5.0 
(Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/50.0.2661.86 Safari/537.36' --compressed
{code}

I guess adding an ability to explicitly specify the logviewer host in the 
storm.yaml would solve the issue.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to