如何停止logstash将logstash日志写入syslog?

时间:2019-10-23 09:30:50

标签: elasticsearch logstash syslog logstash-jdbc

我在ubuntu服务器中有我的logstash配置,该服务器从postgres数据库读取数据并将数据发送到弹性搜索。我已经配置了一个计划,每隔15分钟,logstash将查找postgres表,如果表中有任何更改,它将把数据发送到弹性搜索。

但是每次logstash还将日志发送到我不需要的syslog时。由于使用logstash,我的syslog文件占用了更多内存。

因此,如何停止logstash将其日志发送到syslog。 logstash.yml中是否有任何配置,以避免将日志发送到syslog。

我在网上提到了许多网站,他们说要从配置中删除以下行。

  

stdout {编解码器=> ruby​​debug}

但是我没有这行。

在输出中,我只是将数据发送到我从AWS带来的弹性搜索。

是否有一种方法可以停止logstash并将其日志发送到syslog?

2 个答案:

答案 0 :(得分:1)

为避免写入syslog,请检查管道和log4j.properties文件。

在管道文件中,删除所有出现的情况:

 stdout { codec => rubydebug }

然后在您的log4j.properties文件中注释以下行:

rootLogger.appenderRef.console

如上一个答案所示。

答案 1 :(得分:0)

在log4j中禁用rootLogger.appendRef.console

logstash本身生成的日志文件是通过log4j创建的,默认情况下一个流进入控制台。 Syslog会将控制台日志写入syslog文件本身。在Ubuntu的logstash版本中,此配置是在文件名/etc/logstash/log4j2.properties

中进行的

在默认配置中,有一行以

开头

rootLogger.appenderRef.console

如果在行前添加#,然后重新启动logstash。 logstash创建的日志文件将停止进入syslog

service logstash restart

另一个使用RollingFileAppender的rootLogger仍应将logtash本身的logmessage(而不是管道正在处理的消息)写入

/var/log/logstash/logstash-plain.log

很容易将logstash创建的日志文件与您处理的消息混淆,尤其是当它们被logstash-output-stdoutlogstash-output-syslog插件混合在一起时。这不适用于您,因为您使用的是写入Elasticsearch的{​​{1}}插件。

如果在Ubuntu中从命令行运行logstash,则logstash-output-elasticsearch文件将被跳过。这是在终端中测试管道的好方法,您可以并行运行多个logstash实例(例如服务和命令行测试管道)

log4j.properties