Ubuntu syslog 兼容性测试方案
一 测试目标与范围
二 本地接口兼容性测试
systemctl status rsyslog;必要时 sudo systemctl restart rsyslog。logger -t tut01 "hello from rsyslog"。sudo tail -n 50 /var/log/syslog(若未见,再查 /var/log/messages)。sudo rsyslogd -N1(定位语法错误文件与行号)。sudo tee /etc/rsyslog.d/10-compat-test.conf >/dev/null <<'EOF' if ($programname == "tut02") then { action(type="omfile" file="/var/log/compat_test.log") } EOFsudo systemctl restart rsyslog。logger -t tut02 "compat check";sudo tail -f /var/log/compat_test.log。三 网络协议兼容性测试(UDP/TCP 514)
/etc/rsyslog.d/10-network-test.conf 中加入:module(load="imudp")
input(type="imudp" port="514")
module(load="imtcp")
input(type="imtcp" port="514")
重启:sudo systemctl restart rsyslog。nc -uvz 127.0.0.1 514nc -vz 127.0.0.1 514(或 telnet 127.0.0.1 514)printf '<13>%s host1 testapp[123]: hello via TCP\n' "$(date +'%b %d %H:%M:%S')" | nc 127.0.0.1 514
/var/log/syslog 或自定义文件中检查是否出现对应消息。四 应用与设施兼容性测试
#include <syslog.h>
int main(){
openlog("myapp", LOG_CONS|LOG_PID, LOG_LOCAL0);
syslog(LOG_INFO, "info from myapp");
syslog(LOG_ERR, "error from myapp");
closelog();
}
编译运行后,检查是否写入 LOCAL0 对应的目标文件(如 /var/log/my_logfile0),并同时出现在 /var/log/syslog(取决于配置)。logger -p local0.info -t myapp "from logger to local0"logger -t mytag "plain message"chown syslog:adm 与合适权限)。五 升级与回归测试清单
sudo rsyslogd -N1,确保无语法错误;保留最小化的 10-*.conf 片段进行隔离验证。/var/log/syslog 与自定义文件均可写。journalctl -u rsyslog -e 与 tail -f /var/log/syslog 观察启动与运行日志;出现异常,先回滚最近变更并逐项排查输入模块、端口占用与权限。