version: "2" services: elasticsearch: image: elasticsearch # If you need to access ES directly, just uncomment those lines. #ports: # - "9200:9200" # - "9300:9300" logstash: image: logstash command: | -e ' input { # Default port is 12201/udp gelf { } # This generates one test event per minute. # It is great for debugging, but you might # want to remove it in production. heartbeat { } } # The following filter is a hack! # The "de_dot" filter would be better, but it # is not pre-installed with logstash by default. filter { ruby { code => " event.to_hash.keys.each { |k| event[ k.gsub('"'.'"','"'_'"') ] = event.remove(k) if k.include?'"'.'"' } " } } output { elasticsearch { hosts => ["elasticsearch:9200"] } # This will output every message on stdout. # It is great when testing your setup, but in # production, it will probably cause problems; # either by filling up your disks, or worse, # by creating logging loops! BEWARE! stdout { codec => rubydebug } }' ports: - "12201:12201/udp" kibana: image: kibana ports: - "5601:5601" environment: ELASTICSEARCH_URL: http://elasticsearch:9200