# Docker ELK / Elastic Stack Development Tools These are tools to run a containerized version of ELK stack, comprising of Logstash, Elastic Search, and Kibana. A copy of the license is in `docs/licenses/docker-elk.txt` ## Instructions Due to complex requirements from the elastic search container upstream, there is a prerequisite to get the containers running. The docker _host_ machine must have the `max_map_count` variable increased. For a developer using docker-machine with something like VirtualBox of VMWare, this can be done by getting via bash in the running Docker machine. Example: ```bash docker-machine ssh default sudo sysctl -w vm.max_map_count=262144 ``` After this, the containers can be started up with commands like: ```bash make docker-compose-elk ``` ```bash make docker-compose-cluster-elk ``` These are ran from the root folder of the ansible-tower repository. Kibana is the visualization service, and it can be accessed in a web browser by going to `{server address}:5601`. ### Authentication The default HTTPS logstash configuration makes use of basic auth, so a username and password is needed in HTTPS configuration, in addition to the other parameters. The following settings are supported: ``` { "LOG_AGGREGATOR_HOST": "logstash", "LOG_AGGREGATOR_PORT": 8085, "LOG_AGGREGATOR_TYPE": "logstash", "LOG_AGGREGATOR_USERNAME": "awx_logger", "LOG_AGGREGATOR_PASSWORD": "workflows", "LOG_AGGREGATOR_LOGGERS": [ "awx", "activity_stream", "job_events", "system_tracking" ], "LOG_AGGREGATOR_INDIVIDUAL_FACTS": false, "LOG_AGGREGATOR_ENABLED": true, "LOG_AGGREGATOR_PROTOCOL": "https", "LOG_AGGREGATOR_TCP_TIMEOUT": 5 } ``` and ``` { "LOG_AGGREGATOR_HOST": "logstash", "LOG_AGGREGATOR_PORT": 8086, "LOG_AGGREGATOR_TYPE": "logstash", "LOG_AGGREGATOR_LOGGERS": [ "awx", "activity_stream", "job_events", "system_tracking" ], "LOG_AGGREGATOR_INDIVIDUAL_FACTS": false, "LOG_AGGREGATOR_ENABLED": true, "LOG_AGGREGATOR_PROTOCOL": "udp", "LOG_AGGREGATOR_TCP_TIMEOUT": 5 } ``` and ``` { "LOG_AGGREGATOR_HOST": "logstash", "LOG_AGGREGATOR_PORT": 8087, "LOG_AGGREGATOR_TYPE": "logstash", "LOG_AGGREGATOR_LOGGERS": [ "awx", "activity_stream", "job_events", "system_tracking" ], "LOG_AGGREGATOR_INDIVIDUAL_FACTS": false, "LOG_AGGREGATOR_ENABLED": true, "LOG_AGGREGATOR_PROTOCOL": "tcp", "LOG_AGGREGATOR_TCP_TIMEOUT": 5 } ``` These can be entered via Configure-Tower-in-Tower by making a POST to `/api/v1/settings/logging/`. ### Connecting Logstash to 3rd Party Receivers In order to send these logs to an external consumer of logstash format messages, replace the output variables in the logstash.conf file. ``` output { elasticsearch { hosts => "elasticsearch:9200" } } ``` ## Changelog Current branch point `a776151221182dcfaec7df727459e208c895d25b` Nov 18, 2016 - Original branch point `b5a4deee142b152d4f9232ebac5bbabb2d2cef3c` Sep 25, 2016, before X-Pack support