Syslog-ng 日志服务器删除日志

Syslog-ng 日志服务器删除日志

我有一个 Syslog-ng 服务器。有许多客户端将其日志发送到日志服务器。问题是有时日志服务器中没有某些客户端的日志,有时甚至没有任何客户端的日志。发生这种情况时,我会执行以下步骤:

  1. 我检查了 syslog-ng 服务并且它几乎处于活动状态。
  2. 我创建了一个客户端进行测试,并将该客户端的日志发送到日志服务器。此后,我立即看到日志服务器开始为那些之前没有日志的客户端记录日志。因此,这些客户端在一段时间内某些日志不存在。

    例如:

    2017_10_10.日志

    2017_10_11.日志

    2017_10_12.日志

    2017_10_13.日志

    2017_10_14.日志

    例如,下一个日志文件是:

    2017_10_25.日志

    因此一些日志文件被丢失了。

  3. 我还使用命令检查了 UDP 丢弃数据包ifconfig,发现根本没有丢弃数据包。

我查看日志服务器的日志,发现这些日志,但是不确定它们属于什么问题:

Syslog,error,systemd-journald[225]: Failed to save stream data /run/systemd/journal/streams/8:6354381: Permission denied,"01 Jan 2018, 14:46:48

Syslog,error,"I/O error occurred while writing; fd='21', error='Operation not permitted (1)'","01 Jan 2018, 11:45:04

Syslog,error,"Error opening file for writing; filename='/mnt/remotelogs/syslog-services/10.1.171.54/anytype/2018_01_01.log', error='Permission denied (13)'","01 Jan 2018, 11:47:23"

问题出在哪里?如何让日志服务器稳定?

答案1

根据您的错误消息,您正在将日志文件写入已安装的目录。我猜想与此远程主机的连接不稳定,这会给 syslog-ng 带来问题。如果您使用的是 NFS,我建议您执行以下操作:

  • 至少使用 NFS v4
  • 使用软挂载选项(-o soft)来挂载分区
  • 使用 TCP 挂载选项 (-o tcp) 挂载分区
  • 不要将 syslog-ng 的运行时文件(例如,配置或持久文件)存储在已挂载的分区上

高血压

相关内容