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

标签 elasticsearch logstash syslog logstash-jdbc

我的 ubuntu 服务器中有我的 logstash 配置,它从 postgres 数据库读取数据并将数据发送到 Elasticsearch 。我配置了一个时间表,logstash 每 15 分钟查看 postgres 表,如果表中有任何变化,它会将数据发送到 Elasticsearch 。

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

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

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

stdout { codec => rubydebug }

但是我没有这条线。

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

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

最佳答案

在 log4j 中禁用 rootLogger.appendRef.console

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

中配置的

在默认配置中有一行以

开头

rootLogger.appenderRef.console

如果在该行前面加一个#,然后重启logstash。 logstash 创建的日志文件将停止进入 syslog

服务 logstash 重启

使用 RollingFileAppender 的其他 rootLogger 仍应从 logstash 本身写入日志消息(因此不是管道正在处理的消息)

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

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

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

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

关于elasticsearch - 如何停止 logstash 将 logstash 日志写入 syslog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58519728/

相关文章:

java - AWS/Lambda/Java 上的 Elasticsearch 客户端 - 2.5 秒客户端启动时间

elasticsearch - 从 mysql 错误导入数据 - 管道已终止

json - Logstash 删除类型并保留 _type

logging - Rsyslog - 日志未显示在服务器上

c - 从 linux 驱动程序中执行二进制文件

mysql - ElasticSearch如何与Mysql集成

java - Elastic Search - Boosting/Scoring - 两个不同长度的词

elasticsearch - 使用user\pass将Logstash请求转发到Elasticsearch

java - 将日志文件流式传输到远程客户端

elasticsearch - 我可以强制ES以epoch_millis格式返回日期吗?