Sign inSign up

khezen/logstash

By khezen

•Updated about 7 years ago

Logstash Docker image.

Image
2

10K+

khezen/logstash repository overview

⁠What is logstash?

Logstash is an open source, server-side data processing pipeline that ingests data from a multitude of sources simultaneously, transforms it, and then sends it to your favorite “stash.” (Elasticsearch for example.)

⁠How To Use

⁠docker engine

docker run -d -p 5000:5000 - p 5001:5001 khezen/logstash:latest   

⁠docker-compose

⁠File Descriptors and MMap⁠

run the following command on your host:

sysctl -w vm.max_map_count=262144

You can set it permanently by modifying vm.max_map_count setting in your /etc/sysctl.conf.

⁠docker-compose.yml
version: '3'
services:
    elasticsearch:
        image: khezen/elasticsearch:2
        environment:
            ELASTIC_PWD: changeme
            KIBANA_PWD: brucewayne
            LOGSTASH_PWD: heizenberg
        volumes:
            - /data/elasticsearch:/usr/share/elasticsearch/data
            - /etc/elasticsearch:/usr/share/elasticsearch/config 
        ports:
             - "9200:9200"
             - "9300:9300"
        network_mode: bridge
        restart: unless-stopped
    
    kibana:
        links:
            - elasticsearch:elasticsearch-0
        image: khezen/kibana:4
        environment:
            KIBANA_PWD: brucewayne
            ELASTICSEARCH_HOST: elasticsearch-0
            ELASTICSEARCH_PORT: 9200
        volumes:
            - /etc/kibana:/opt/kibana/config
        ports:
             - "5601:5601"
        network_mode: bridge
        restart: unless-stopped

    logstash:
        links:
            - elasticsearch:elasticsearch-0
        image: khezen/logstash:2
        environment:
            LOGSTASH_PWD: heizenberg
            ELASTICSEARCH_HOST: elasticsearch-0
            ELASTICSEARCH_PORT: 9200
        volumes:
            - /etc/logstash:/etc/logstash/conf.d
            - /etc/elasticsearch/searchguard/ssl:/etc/elasticsearch/searchguard/ssl
        ports:
             - "5000:5000"
             - "5001:5001"
        network_mode: bridge
        restart: unless-stopped

⁠Environment Variables

⁠HEAP_SIZE | 1g

Defines the maximum memory allocated to logstash.

⁠LOGSTASH_PWD | changeme

password for elasticsearch built-in user logstash.

⁠ELASTICSEARCH_HOST | elasticsearch

Elasticsearch hostname.

⁠ELASTICSEARCH_PORT | 9200

Elasticsearch port.

⁠TS_PWD | changeme

Truststore password

⁠Default config

input {
	tcp {
		port => 5000
		codec => "json"
	}
	udp {
		port => 5001
		codec => "json"
	}
}

filter {
	date {
		match => [ "timestamp", "dd/MMM/YYYY:HH:mm:ss Z" ]
	}
	geoip {
    	source => "clientip"
 	}
  	useragent {
    	source => "agent"
    	target => "useragent"
  	}
}

output {
	elasticsearch {
		hosts => "${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT}"
    user => "logstash"
    password => "${LOGSTASH_USER}"
		ssl => true
    ssl_certificate_verification => true
		truststore => "/etc/elasticsearch/searchguard/ssl/truststore.jks"
    truststore_password => "${TS_PWD}"
	}
}

⁠Configure Logstash

Configuration file is located in /etc/logstash/logstash.conf if you follow the same volume mapping as in docker-compose examples above.

You can find default config there⁠.

NOTE: It is possible to use environment variables in logstash.conf⁠.

You can find help with logstash configuration there⁠.

⁠User Feedback

⁠Issues

If you have any problems with or questions about this image, please ask for help through a GitHub issue⁠.

Tag summary

Content type

Image

Digest

Size

272.2 MB

Last updated

over 9 years ago

docker pull khezen/logstash