Utilisez Docker pour déployer rapidement Logstash

Préparation environnementale

Nom du nœud adresse IP
node1 192.168.130.20
node2 192.168.130.19
node2 192.168.130.21

Installer docker

légèrement

Créer un répertoire de montage et une configuration

Démarrez le conteneur

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

Copier la configuration

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/

Supprimer (juste pour obtenir la configuration d'origine)

docker rm -f logstash

修改 logstash.yml

vi /root/logstash/config/logstash.yml

Le contenu de logstash.yml est le suivant

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

Modifier pipelines.yml

vi /root/logstash/config/pipelines.yml

Le contenu de pipelines.yml est le suivant

#- 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

Créez un nouveau fichier de configuration de pipeline kafka-ls-es.conf pour recevoir les données de kafka et l'écrire dans es après le filtrage

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

Le contenu est le suivant (configurer en fonction de la situation réelle)

# 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
   }
}

Commencez

node1

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

node2

S'il y a plusieurs instances de logstash, le clientid dans kafka-ls-es.conf doit être différent

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

Je suppose que tu aimes

Origine blog.csdn.net/kk3909/article/details/111938320
conseillé
Classement