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

Pra*_*ash 3 syslog elasticsearch logstash logstash-jdbc

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

但每次logstash也会将日志发送到我不需要的syslog。由于logstash,我的系统日志文件消耗了更多内存。

那么如何停止logstash将其日志发送到syslog。在logstash.yml 中是否有任何配置可以避免将日志发送到syslog。

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

标准输出 { 编解码器 => ruby​​debug }

但我没有这条线。

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

有没有办法阻止logstash将其日志发送到syslog?

小智 9

禁用 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 仍应将 logstash 本身的日志消息(因此不是管道正在处理的消息)写入

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

很容易将 Logstash 创建的日志文件与您处理的消息混淆,特别是当它们被logstash-output-stdoutlogstash-output-syslog插件混合时。这不适用于您,因为您使用logstash-output-elasticsearch写入elasticsearch的插件。

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

/usr/share/logstash/bin/logstash -f your_pipeline.conf


mik*_*i5k 6

为了避免写入系统日志,请检查管道和 log4j.properties 文件。

在您的管道文件中,删除所有出现的以下内容:

 stdout { codec => rubydebug }
Run Code Online (Sandbox Code Playgroud)

并在您的 log4j.properties 文件中注释此行:

rootLogger.appenderRef.console
Run Code Online (Sandbox Code Playgroud)