Utilice Docker para implementar logstash rápidamente

Preparación ambiental

Nombre del nodo dirección IP
nodo1 192.168.130.20
nodo2 192.168.130.19
nodo2 192.168.130.21

Instalar ventana acoplable

levemente

Crear directorio de montaje y configuración

Iniciar el contenedor

docker run -d  -p 5044:5044 --name logstash \
logstash:7.4.1

Copiar configuración

mkdir -p /root/logstash/data && chmod 777 /root/logstash/data
docker cp logstash:/usr/share/logstash/config  /root/logstash/
docker cp logstash:/usr/share/logstash/pipeline /root/logstash/

Eliminar (solo para obtener la configuración original)

docker rm -f logstash

修改 logstash.yml

vi /root/logstash/config/logstash.yml

El contenido de logstash.yml es el siguiente

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://192.168.130.20:9200" ]

Modificar pipelines.yml

vi /root/logstash/config/pipelines.yml

El contenido de pipelines.yml es el siguiente

#- pipeline.id: main
#  path.config: "/usr/share/logstash/pipeline/logstash.conf"
- pipeline.id: kafkatoes
  path.config: "/usr/share/logstash/pipeline/kafka-ls-es.conf"
  pipeline.workers: 4

Cree un nuevo archivo de configuración de canalización kafka-ls-es.conf para recibir datos de kafka y escribirlos en es después de filtrar

vi /root/logstash/pipeline/kafka-ls-es.conf

El contenido es el siguiente (configurar según la situación real)

# kafka -> Logstash -> Elasticsearch pipeline.
input {
    
    
  kafka {
    
    
    bootstrap_servers => ["192.168.130.20:9092,192.168.130.19:9092,192.168.130.21:9092"]
	group_id => "hello"
	client_id => "ls-node1"
	consumer_threads => "4"
	topics => ["hello-elk"]
	codec => json {
    
     charset => "UTF-8" }
  }
}

filter{
    
    
    json{
    
    
        source=>"message"
    }
}

output {
    
    
   elasticsearch {
    
     
        hosts => ["192.168.130.20:9200","192.168.130.19:9200","192.168.130.21:9200"] 
        index => "hello-elk-%{+YYYY.MM.dd}"
        #user => "elastic"
        #password => "changeme
   }
}

puesta en marcha

nodo1

docker run -d --user root \
--name ls-node1 \
-p 5044:5044 \
-v /root/logstash/config:/usr/share/logstash/config \
-v /root/logstash/pipeline:/usr/share/logstash/pipeline \
-v /root/logstash/data:/usr/share/logstash/data \
-e TZ=Asia/Shanghai \
logstash:7.4.1

nodo2

Si hay varias instancias de logstash, el ID de cliente en kafka-ls-es.conf debería ser diferente

docker run -d --user root \
--name ls-node2 \
-p 5044:5044 \
-v /root/logstash/config:/usr/share/logstash/config \
-v /root/logstash/pipeline:/usr/share/logstash/pipeline \
-v /root/logstash/data:/usr/share/logstash/data \
-e TZ=Asia/Shanghai \
logstash:7.4.1

Supongo que te gusta

Origin blog.csdn.net/kk3909/article/details/111938320
Recomendado
Clasificación