我遇到一种情况,即源消息和syslog-ng服务器之间的UDP消息不能始终如一地拾取,而TCP消息可靠地工作。请注意,为了进行测试,该代码实际上使用IP来阻止DNS。我已经用占位符服务器名称替换了IP。该服务器将需要从无法发送TCP消息的设备中拾取数据。欢迎提供任何有关纠正此行为的建议。
统计数据:
测试:两个相同的测试消息是从LOGGINGHOST发送的:
logger -n SYSLOGHOST -P 10502 "Test message"
logger -n SYSLOGHOST -P 10502 "Test message"
它们由SYSLOGHOST上的 tcpdump 捕获-请注意,在两种情况下,校验和都很好:
[root@LXSYSLOGP02 LXSYSLOGP02]# tcpdump udp -n -i any port 10502 -vvv
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
09:50:49.783205 IP (tos 0x0, ttl 64, id 22870, offset 0, flags [DF], proto UDP (17), length 72)
LOGGINGHOST.53681 > SYSLOGHOST.10502: [udp sum ok] UDP, length 44
09:51:18.815331 IP (tos 0x0, ttl 64, id 40747, offset 0, flags [DF], proto UDP (17), length 72)
LOGGINGHOST.33076 > SYSLOGHOST.10502: [udp sum ok] UDP, length 44
结果: 第一个由syslog-ng拾取并处理,而第二个则没有。行为似乎没有规律。
系统日志配置:
options {
flush_lines (0);
time_reopen (10);
log_fifo_size (500000);
chain_hostnames (off);
use_dns (yes);
use_fqdn (yes);
create_dirs (yes);
keep_hostname (no);
perm(0644);
dir_perm(0755);
log_msg_size(32768);
};
## Sources
#
source s_vpn { tcp(ip(0.0.0.0) port(10502)); udp(ip(0.0.0.0) port(10502));};
## Destinations
destination d_vpn { file( "/syslog_data/SYSLOGHOST/vpn/$HOST/$YEAR.$MONTH.$DAY/$LEVEL.log" ); };
## Logs
#
log { source(s_vpn); destination(d_vpn); };