ubuntu syslog如何兼容性测试
导读:Ubuntu syslog 兼容性测试方案 一 测试目标与范围 验证本地接口兼容性:应用通过 syslog( /logger 写入是否仍被系统正常接收与持久化(Ubuntu 默认由 journald 提供 syslog 兼容套接字 /ru...
Ubuntu syslog 兼容性测试方案
一 测试目标与范围
- 验证本地接口兼容性:应用通过 syslog()/logger 写入是否仍被系统正常接收与持久化(Ubuntu 默认由 journald 提供 syslog 兼容套接字 /run/systemd/journal/syslog,并与 rsyslog 协同工作)。
- 验证网络协议兼容性:远端/本机通过 UDP/TCP 514 发送 RFC3164/RFC5424 报文是否能被接收与正确落盘。
- 验证配置语法与升级兼容:新旧 rsyslog 配置语法能否共存、升级后规则是否继续生效。
- 验证应用与设施兼容性:不同 **facility(如 LOCAL0–LOCAL7)**与 priority 是否按预期写入目标文件或转发链路。
二 本地接口兼容性测试
- 基线验证(不改动系统配置):
- 查看服务状态:
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") } EOF - 重启:
sudo systemctl restart rsyslog。 - 发送并验证:
logger -t tut02 "compat check";sudo tail -f /var/log/compat_test.log。
- 新建规则:
- 说明:Ubuntu 默认已加载 imjournal/imuxsock 等输入模块,新增片段无需重复加载;若此前手动加载过输入模块,建议移除相关行以避免冲突。
三 网络协议兼容性测试(UDP/TCP 514)
- 启用网络输入(仅用于测试,生产请结合防火墙与 TLS 策略):
在/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。 - 本机连通性验证:
- UDP:
nc -uvz 127.0.0.1 514 - TCP:
nc -vz 127.0.0.1 514(或telnet 127.0.0.1 514)
- UDP:
- 发送 RFC3164 示例(nc 到本机 514/TCP,注意末尾换行):
printf '< 13> %s host1 testapp[123]: hello via TCP\n' "$(date +'%b %d %H:%M:%S')" | nc 127.0.0.1 514 - 远端/容器测试:从另一台主机或容器向被测机的 514/UDP 或 514/TCP 发送同类报文,随后在
/var/log/syslog或自定义文件中检查是否出现对应消息。 - 权限与端口:确保 514 端口未被占用,且测试机防火墙放行;如使用非特权端口,请相应调整测试命令。
四 应用与设施兼容性测试
- C 应用(syslog API)验证 facility 与 level:
编译运行后,检查是否写入 LOCAL0 对应的目标文件(如#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(); }/var/log/my_logfile0),并同时出现在/var/log/syslog(取决于配置)。 - 命令行工具验证:
- 指定设施与级别:
logger -p local0.info -t myapp "from logger to local0" - 指定消息体:
logger -t mytag "plain message"
- 指定设施与级别:
- 验证要点:确认应用使用的 facility(LOCAL0–LOCAL7)、priority 与 rsyslog 规则匹配,且目标文件权限正确(自定义目录需
chown syslog:adm与合适权限)。
五 升级与回归测试清单
- 配置语法回归:升级前后执行
sudo rsyslogd -N1,确保无语法错误;保留最小化的 10-*.conf 片段进行隔离验证。 - 默认输入模块:确认未重复加载已由系统预置的 imjournal/imuxsock;如需网络输入,仅添加所需模块与端口。
- 日志路径与权限:自定义路径需确保 syslog:adm 所有权与 750 权限;验证
/var/log/syslog与自定义文件均可写。 - 本地与网络双路径:同时验证 logger 本地写入与 UDP/TCP 514 接收链路;必要时在远端主机重复网络测试。
- 观察与回滚:升级后用
journalctl -u rsyslog -e与tail -f /var/log/syslog观察启动与运行日志;出现异常,先回滚最近变更并逐项排查输入模块、端口占用与权限。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu syslog如何兼容性测试
本文地址: https://pptw.com/jishu/764949.html
