我在我的ubuntu服务器中有我的logstash配置,它从postgres数据库读取数据并将数据发送到ElasticSearch。我已经配置了一个时间表,每15分钟logstash将查看postgres表,如果表中有任何更改,它将数据发送到ElasticSearch。
但是每次logstash也会将日志发送到syslog,这是我不需要的。因为logstash我的syslog文件消耗更多的内存。
那么如何停止logstash将其日志发送到syslog。在logstash.yml中是否有任何配置来避免将日志发送到syslog。
我在网上提到了很多网站,他们说要从配置中删除下面的一行。
stdout { codec => rubydebug }
但我没有这条线。
在我的输出中,我只是将我的数据发送到我从AWS带来的ElasticSearch。
有没有办法阻止logstash将其日志发送到syslog?
3条答案
按热度按时间mwyxok5s1#
关闭log4j中的rootLogger.appendRef.console
logstash本身生成的日志文件是通过log4j创建的,默认情况下,一个流将被发送到控制台。Syslog将向控制台日志写入syslog文件本身。在Ubuntu版本的logstash中,这是在文件名
/etc/logstash/log4j2.properties
中配置的在默认配置中,有一行以
rootLogger.appenderRef.console
如果在行前面添加
#
并重新启动logstash。logstash创建的日志文件将停止转到syslogservice logstash restart
另一个使用RollingFileAppender的rootLogger仍然应该将logstash本身的logmessages(所以不是管道正在处理的消息)写入到
/var/log/logstash/logstash-plain.log
logstash创建的日志文件很容易与您处理的消息混淆,特别是当它们被
logstash-output-stdout
或logstash-output-syslog
插件混合时。这不适用于你,因为你使用的是logstash-output-elasticsearch
插件,它会写入elasticsearch。在Ubuntu中,如果从命令行运行logstash,
log4j.properties
文件将被跳过。这是在终端中测试管道的好方法,你可以并行运行多个logstash示例(例如:服务和命令行测试管道)/usr/share/logstash/bin/logstash -f your_pipeline.conf
hwazgwia2#
要避免写入系统日志,请检查管道和log4j.properties文件。
在管线文件中,删除以下内容的所有示例:
在您的log4j.properties文件中注解这行:
nqwrtyyt3#
不知道为什么会发生这种情况,但我们通过禁用
rootLogger.appenderRef.console.ref = ${sys:ls.log.format}_console
来解决。步骤:
rootLogger.appenderRef.console.ref = ${sys:ls.log.format}_console
更新为#rootLogger.appenderRef.console.ref = ${sys:ls.log.format}_console
log4j.properties 应该如下所示:
https://github.com/elastic/logstash/blob/main/config/log4j2.properties
请确保您禁用所有logstash示例。