Pra*_*ash 3 syslog elasticsearch logstash logstash-jdbc
我的 ubuntu 服务器中有 Logstash 配置,它从 postgres 数据库读取数据并将数据发送到弹性搜索。我已经配置了一个计划,logstash 每 15 分钟就会检查 postgres 表,如果表中有任何更改,它会将数据发送到弹性搜索。
但每次logstash也会将日志发送到我不需要的syslog。由于logstash,我的系统日志文件消耗了更多内存。
那么如何停止logstash将其日志发送到syslog。在logstash.yml 中是否有任何配置可以避免将日志发送到syslog。
我在网上提到了许多网站,他们说要从配置中删除以下行。
标准输出 { 编解码器 => rubydebug }
但我没有这条线。
在我的输出中,我只是将数据发送到我从 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-stdout或logstash-output-syslog插件混合时。这不适用于您,因为您使用logstash-output-elasticsearch写入elasticsearch的插件。
log4j.properties如果您在 Ubuntu 中从命令行运行logstash,该文件将被跳过。这是在终端中测试管道的好方法,您可以并行运行多个logstash实例(例如服务和命令行测试管道)
/usr/share/logstash/bin/logstash -f your_pipeline.conf
为了避免写入系统日志,请检查管道和 log4j.properties 文件。
在您的管道文件中,删除所有出现的以下内容:
stdout { codec => rubydebug }
Run Code Online (Sandbox Code Playgroud)
并在您的 log4j.properties 文件中注释此行:
rootLogger.appenderRef.console
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10162 次 |
| 最近记录: |