我正在使用集中式 syslog-ng 日志主机来收集某些客户端上的日志和 syslog-ng。
在 Devil Linux 上运行 syslog-ng 的特定客户端上,系统日志条目以以下格式发送(使用 tcpdump 确认)
DATE local@hostname MESSAGE
其中 local 是配置文件中的源名称
source local { file("/proc/kmsg" program_override("kernel: ")); unix-stream("/dev/log" max-connections(1000)); internal(); };
log { source(local); destination(console); };
其他 syslog-ng 主机都不这样做,尽管大多数是运行 syslog-ng 2.1.4 的 Centos 5.4,而这是 syslog-ng 版本 3.05
有谁知道为什么会发生这种情况以及如何阻止它。
编辑:完整配置文件
@version: 3.0
#####################################################################
# define options for syslog
#####################################################################
options { long_hostnames(on); flush_lines(0); time_reopen(60); use_dns (no); };
#####################################################################
# define the source pipe for all local messages
#####################################################################
source local { file("/proc/kmsg" program_override("kernel: ")); unix-stream("/dev/log" max-connections(1000)); internal(); };
#####################################################################
# print all messages on tty10
#####################################################################
destination console { file("/dev/tty10"); };
log { source(local); destination(console); };
#####################################################################
# send all messages to the loghost
#####################################################################
destination loghost {
udp("192.168.45.15" port (514)) ;
};
log { source(local); destination(loghost); };
#####################################################################
# send all messages to /var/log/messages
#####################################################################
#destination logfile { file("/var/log/messages"); };
#log { source(src); destination(logfile); };
#####################################################################
# END
#####################################################################
答案1
通常,“local@localhost”字符串是以下任一配置选项的结果:
chain_hostnames(yes);
long_hostnames(yes);
我不记得是否还涉及这个选项:
keep_hostname(yes);
请使用完整的配置文件更新您的问题。
编辑:似乎long_hostnames(on)
是错的。当然,一些 syslog-ng 选项不仅名称错误,而且记录也很差。我试图重新设计这个烂摊子,我把结果放在了这里从 syslogd 迁移到 syslog-ng 期间的 FQDN