我在三台 WRT54GL 路由器上运行 ddwrt v24-sp2。这些路由器都使用 syslogd 将其系统日志信息发送到同一台远程服务器
问题是,在日志中主机名将在 LAN IP 和 127.0.0.1 之间切换。
当我将多个事件列为本地主机时,很难分辨哪个设备正在做什么,并且无法编写在收到某些系统日志消息时发生的事件脚本。
有谁知道有什么方法可以区分哪条消息来自哪个主机?是否有一些我没有看到的选项,用于在消息中添加标签或额外信息。我可以强制主机在每条消息中发送其主机名吗?
以下是 syslog 输出的一个示例:
2010-06-28 11:43:57 User.Info 10.255.255.2 6月28日 17:43:58 : >正在连接到
*.*.*.*
2010-06-28 11:43:54 User.Info 127.0.0.1 6月28日 17:43:54 : >正在连接到
*.*.*.*
06-28-2010 11:43:52 Daemon.Info 10.255.255.1 Jun 28 17:43:53 >chillispot[428]: chilli.c: 1088: 重新读取配置文件并进行 DNS 查找
06-28-2010 11:43:51 Daemon.Info 127.0.0.1 Jun 28 17:43:52 >chillispot[623]: chilli.c: 1088: 重新读取配置文件并进行 DNS 查找
06-28-2010 11:43:51 Daemon.Info 10.255.255.3 Jun 28 17:43:51 >chillispot[4185]: chilli.c: 1088: 重新读取配置文件并进行 DNS 查找
谢谢
克里斯
答案1
尝试使用 syslog-ng。我在 openwrt 上使用 syslogd 时遇到了很多问题。我怀疑你也遇到了类似的问题。请参阅我的文档在 openwrt 中使用 syslog-ng。我的日志服务器是运行 rsyslogd 的 Ubuntu。
或者,您应该能够使用 syslog-ng 在日志服务器上进行所需的更改,以根据发送服务器重写日志消息。
答案2
答案3
将 syslog 消息传送到 netcat 将添加主机名。
一种简单的方法是使用 syslog.conf 文件中的 netcat (nc) 来传输消息,如下所示:
*.* “TAB” | nc RemoteLogServer -u 514 -w 1”
必须在管道符号前插入 TAB 字符。