You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 24.04中rsyslog配置RainerScript无法向控制台广播紧急日志的问题求助

Ubuntu 24.04中rsyslog配置RainerScript无法向控制台广播紧急日志的问题求助

看起来你已经把规则触发的逻辑搞对了(确认了r_error规则集被调用),问题应该出在omusrmsg模块的配置或者权限上,咱们一步步排查:

1. 纠正omusrmsg的广播配置写法

你当前用的users="*"其实并不是omusrmsg实现全局广播的正确方式,这个模块专门提供了wall参数来模拟wall命令的广播功能。把你的规则集改成这样试试:

ruleset(name="r_error"){
    action(type="omusrmsg" wall="on" )
}

wall="on"会直接向所有当前登录的用户发送广播消息,这比users="*"更可靠,因为后者可能会因为用户解析逻辑的问题失效。

2. 检查syslog用户的终端权限

Ubuntu里rsyslog默认以syslog用户运行,而终端设备(比如/dev/pts/0、/dev/tty1)的权限通常只允许所属用户和tty组写入。你需要把syslog用户加入tty组来获得写入权限:

sudo usermod -aG tty syslog

执行完后一定要重启rsyslog服务让权限生效:

sudo systemctl restart rsyslog

3. 确认测试场景的终端接收权限

  • 如果你是通过SSH远程登录测试,要确保你的SSH会话没有禁用广播消息(有些终端工具或者SSH配置会屏蔽wall类消息,建议先在本地物理终端测试看看)。
  • 测试时要确保你处于登录状态的用户会话中,比如打开一个终端窗口保持登录,再运行测试命令。

4. 验证规则触发的细节(可选)

你可以在规则集里加一个文件输出动作,进一步确认消息确实到达了规则集:

ruleset(name="r_error"){
    action(type="omfile" file="/var/log/test_error.log")
    action(type="omusrmsg" wall="on" )
}

测试后查看/var/log/test_error.log,如果日志成功写入,说明规则逻辑没问题,问题还是在omusrmsg的执行环节。

按照上面的步骤调整后,再用你的测试命令试试:

logger -p local0.err -t test_message "This is a test syslog message" -n 127.0.0.1

应该就能收到广播消息了。

备注:内容来源于stack exchange,提问作者ProTofik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:04:40