使用docker直接启动logstash遇到的无法写入es的问题

文章讲述了在使用Docker安装Logstash时,遇到配置问题的过程,涉及到挂载配置文件、ES连接设置和启动位置的确认。作者分享了解决挂载配置、连接问题及定位logstash.conf实际位置的经验。
摘要由CSDN通过智能技术生成

一般使用docker安装的logstash都是去docker内部去修改对应配置,但是同样可以直接挂载的方式直接用命令执行。

通过挂载的方式要注意的点是对应正确的文件。

要确认的点是容器启动后使用的配置文件是哪个,困扰了一天的问题最后发现是启动使用的配置文件目录错误。

通过docker pull安装的logstash景象启动时候的配置文件开始认为在

/usr/share/logstash/config

下的.conf文件。

接下来遇到的问题:

        - 通过挂载的方式替换后启动,连接的es仍为 http://elasticsearch:9200 连接es失败。

        解决:

                /usr/share/logstash/config目录中有一logstash.yml文件,需要通过挂载的方式替换为可用的es连接,或者将内容注释添加

http.host: "0.0.0.0"

        - 换完yml文件之后,再次启动。这次连接成功了,但是只是连接成功了,日志停留在

Starting server on port: 5044

说明并没有去读文件并将数据传输到es。

        一般解决过程:

                1 检查对应的挂载文件中的配置信息是否正确,进入到docker中直接访问需要读取的文件是否有权限。

                2 .conf配置文件中在 file中增加sincedb_path => "/dev/null"。

        以上1,2 都尝试过并没有用,并且认为自己的配置文件没问题,那么问题大概出在logstash启动时候使用的默认logstash.conf的所在位置了。

        实际启动位置在

/usr/share/logstash/pipeline/logstash.conf

        而不是在我们常认为的config目录。

        修改启动命令 容器中的logstash.conf挂载目录替换。

docker run --name logstash \
  -v /you/logstashpath/logstash_pipline.conf:/usr/share/logstash/pipeline/logstash.conf \
  -v /you/logstashpath/logstash.yml:/usr/share/logstash/config/logstash.yml \
  -v /you/logstashpath/测试日志.log:/usr/share/logstash/myfile/测试日志.log \
  -d docker.elastic.co/logstash/logstash:7.17.0

版本7.17.0

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值