我在ubuntu服务器中使用了logstash配置,该服务器从postgres数据库中读取数据,并将数据发送到弹性搜索。我已经在每15分钟配置了一个时间表,logstash将查找postgres表,如果表中有任何更改,它将把数据发送到弹性搜索。
但是每次logstash还将日志发送到我不需要的syslog。由于logstash,我的系统日志文件占用更多内存。
所以如何停止logstash以将其日志发送到syslog。 logstash.yml中是否有任何配置,以避免将日志发送到syslog。
我在网上提到了许多站点,他们说要从配置中删除以下行。
stdout {编解码器=> rubydebug}
但是我没有此行。
在我的输出中,我只是将数据发送到从AWS带来的弹性搜索。
有没有一种方法可以停止logstash将其日志发送到syslog?
logstash本身生成的日志文件是通过log4j创建的,默认情况下,一个流进入控制台。 Syslog会将控制台日志写入syslog文件本身。在Ubuntu的logstash版本中,此配置是在文件名/etc/logstash/log4j2.properties
rootLogger.appenderRef.console
如果在行的前面添加#
,然后重新启动logstash。 logstash创建的日志文件将停止进入syslog
service logstash restart
使用RollingFileAppender的另一个rootLogger仍应将logstash本身的logmessage写入(因此,您的管道所处理的消息不应如此)>]
/var/log/logstash/logstash-plain.log
容易将logstash创建的日志文件与您处理的消息混淆,尤其是当它们被logstash-output-stdout
或logstash-output-syslog
插件混合时。这不适用于您,因为您使用的是写入Elasticsearch的logstash-output-elasticsearch
插件。
如果在Ubuntu中从命令行运行logstash,则会跳过[log4j.properties
文件。这是在终端中测试管道的好方法,您可以并行运行多个logstash实例(例如,服务和命令行测试管道)
/usr/share/logstash/bin/logstash -f your_pipeline.conf