千家信息网

如何在Docker容器中安装Logstash并连接Elasticsearch服务器?

发表于:2024-12-01 作者:千家信息网编辑
千家信息网最后更新 2024年12月01日,1.拉取Logstash镜像(注意与ES版本保持一致)docker pull logstash:7.5.12.启动容器docker run --name logstash -d -p 5044:504
千家信息网最后更新 2024年12月01日如何在Docker容器中安装Logstash并连接Elasticsearch服务器?
1.拉取Logstash镜像(注意与ES版本保持一致)
docker pull logstash:7.5.1
2.启动容器
docker run --name logstash -d -p 5044:5044 --net esnet 8b94897b4254

命令中的--net设置的网络要和ES、kibana保持一致

3.修改Logstash配置文件

该配置文件是config文件夹下的logstash.yml

// 0.0.0.0:允许任何IP访问http.host: "0.0.0.0"// 配置elasticsearch集群地址xpack.monitoring.elasticsearch.hosts: [ "http://192.168.172.131:9200","http://192.168.172.129:9200","http://192.168.172.128:9200" ]// 允许监控xpack.monitoring.enabled: true// 启动时读取配置文件指定path.config: /usr/share/logstash/config/logstash.conf// 指定的该文件可以配置Logstash读取一些文件导入ES
4.logstash.conf配置
# Sample Logstash configuration for creating a simple# Beats -> Logstash -> Elasticsearch pipeline.input {  //这块端口可以不配,因为默认就是5044端口  beats {    port => 5044  }}output {  elasticsearch {    // 配置成ES节点,集群则可以配置所有节点    hosts => ["http://localhost:9200"]    // 可以自定义    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"    #user => "elastic"    #password => "changeme"  }}

如果在logstash启动的时候要导入文档

配置如下:

input {  file {    path => "/usr/share/logstash/bin/file.csv"    start_position => "beginning"    sincedb_path => "/dev/null"  }}`````output {   elasticsearch {     hosts => "http://localhost:9200"     index => "file"     document_id => "%{id}"   }  stdout {}}

当然,7.X版本默认只有一个主分片和一个副分片,如果我们想要指定多个分片,那么需要在启动logstash的时候预先创建好索引,并设置好分片分配

PUT /file{  "settings": {    "number_of_shards": 3,    "number_of_replicas": 1  }}
0