How to Build SensSoft Docker Containers

  1. Install Docker on your machine. Requires Docker 1.7 and above.

  2. Install docker-compose in an virtual environment. Full instructions can be found here.

    $ python3 -m venv env
    $ source env/bin/activate
    $ pip install -r requirements.txt
    
  3. Before launching the Docker containers, ensure your vm_max_map_count kernel setting is set to at least 262144. Visit Running Elasticsearch in Production mode for OS specific instructions.

    # Example for Linux systems
    $ sysctl -w vm.max_map_count=262144
    
  4. Start Elasticsearch. Give Elasticsearch about 2 minutes to start before confirming its state.

    $ docker-compose up -d loadbalancer
    
  5. Confirm state:

    $ curl -XGET http://localhost:9200/_cluster/health?pretty
     {
      "cluster_name" : "SensSoft",
      "status" : "green",
      "timed_out" : false,
      "number_of_nodes" : 1,
      "number_of_data_nodes" : 1,
      "active_primary_shards" : 0,
      "active_shards" : 0,
      "relocating_shards" : 0,
      "initializing_shards" : 0,
      "unassigned_shards" : 0,
      "delayed_unassigned_shards" : 0,
      "number_of_pending_tasks" : 0,
      "number_of_in_flight_fetch" : 0,
      "task_max_waiting_in_queue_millis" : 0,
      "active_shards_percent_as_number" : 100.0
    }
    
  6. Launch logging server. Give Logstash about 2 minutes to start before confirming its state.

    $ docker-compose up -d logstash
    $ curl -XGET http://localhost:8100 
    ok
    
  7. Before Kibana can be used, we will need to generate some data. We have already provided an example instrumented website to assist.

    $ docker-compose up -d site
    

    Visit http://localhost:8080 and you will see Apache SensSoft's home page.

  8. Launch Kibana. Give Kibana about 2-5 minutes to start before accessing http://localhost:5601.

    $ docker-compose up -d kibana
    
  9. Register an index in Kibana to see the logs:

    Goto: Management -> Index Patterns and enter userale in the Index pattern box. Choose clientTime in the drop down Time Filter field name field.

    alt text

  10. Load example Dashboard and Visualizations under docker/kibana/.

    Goto: Management -> Saved Objects and select the Import button. Import the visualizations.json and dashboard.json file.

    alt text

    Confirm index conflicts if message appears.

    alt text

    Once that is complete, navigate to the Dashboard view in Kibana and click the Apache SensSoft Dashboard object.

    alt text

  11. To Launch Tap and Distill

    $ docker-compose up -d distill tap
    
  12. To stop all containers.

    $ docker-compose stop
    

Having Issues?

  1. Check out the docker-compose logs for the service(s) that are having issues.

    $ docker-compose ps 
    
  2. Make sure to send us the docker-compose logs to help diagnose your issues please!

    $ docker-compose logs > err.dump 
    

© Copyright 2016 The Charles Stark Draper Laboratory, Inc. All rights reserved.