CentOS 系统消息推送机制全景
在 CentOS 上,消息推送可按用途分为本地终端通知、系统日志与远程告警、邮件通知、第三方 Webhook 与自建推送服务,以及面向物联网与实时场景的协议级推送。常用机制与协议包括:wall/write/mesg(本地终端广播与私信)、rsyslog(日志与远程转发)、SMTP/SMTPS(邮件)、HTTP/HTTPS Webhook(Slack/Telegram 等)、AMQP/MQTT/WebSocket(企业集成与 IoT/实时)。下表给出速览:
| 机制/协议 | 典型工具/组件 | 适用场景 | 关键要点 |
|---|---|---|---|
| 本地终端广播 | wall, write, mesg | 本机多用户即时提醒 | 简单、无依赖,仅对在线终端有效 |
| 日志与远程告警 | rsyslog | 系统/应用事件集中与转发 | 支持 UDP/TCP,远程集中与后续联动告警 |
| 邮件通知 | mailx/postfix | 运维/业务报表与告警邮件 | 需配置 SMTP,支持文本/HTML |
| Webhook | curl + Slack/Telegram | 团队协作平台通知 | 轻量、易集成,需妥善保管 Token |
| 自建推送服务 | Gotify/Rocket.Chat | 内网服务消息、应用内通知 | 支持用户/应用、Token、可选 Nginx/HTTPS |
| 企业集成/IoT/实时 | AMQP/MQTT/WebSocket | 异步解耦、IoT、实时推送 | RabbitMQ/Mosquitto 等,支持 QoS/长连接 |
本地终端通知
sudo wall "系统将在5分钟后维护"。write alice "请检查日志";配合 mesg 控制接收:mesg y(允许)/ mesg n(禁止)。系统日志与远程告警
*.* @remote_server_ip:514,保存后执行 sudo systemctl restart rsyslog 生效。邮件通知
set from="your_email@example.com"set smtp=smtp.example.comset smtp-auth=loginset smtp-auth-user="your_email@example.com"set smtp-auth-password="your_password"echo "测试邮件" | mail -s "Test Email" recipient@example.com。第三方 Webhook 与自建推送服务
curl -X POST -H 'Content-type: application/json' --data '{"text":"部署完成"}' https://hooks.slack.com/services/...。协议与场景选型