CentOS消息推送功能如何启用
导读:CentOS 启用消息推送的可选方案与步骤 一、快速选择 本机向所有登录用户广播:用 wall 或 systemd 定时器 定时推送,零依赖、最快落地。 服务器事件告警(如 SSH 登录):用 PAM/SSH 登录脚本 触发,即时通知到企...
CentOS 启用消息推送的可选方案与步骤
一、快速选择
- 本机向所有登录用户广播:用 wall 或 systemd 定时器 定时推送,零依赖、最快落地。
- 服务器事件告警(如 SSH 登录):用 PAM/SSH 登录脚本 触发,即时通知到企业微信、钉钉、Slack 等。
- 团队内平台化推送:自建 Gotify 或 Rocket.Chat,支持用户、应用、Webhook 等多端接入。
- 面向浏览器/APP 的实时推送:用 WebSocket/Swoole 自建实时通道,适合自研前端/客户端。
- 日志集中与邮件通知:配置 rsyslog 远程日志,或用 Postfix 发送邮件告警。
二、本机广播与定时推送
- 即时广播给已登录用户
- 命令:
wall "系统将在5分钟后维护,请保存数据。"
- 命令:
- 定时广播(cron)
- 例:每天 08:00 推送
0 8 * * * /usr/bin/wall "这是一条定时消息"
- 例:每天 08:00 推送
- 定时广播(systemd 定时器,更现代)
- 服务单元
/etc/systemd/system/send-message.service[Unit] Description=Send a scheduled message [Service] ExecStart=/usr/bin/wall "这是一条定时消息" - 定时器单元
/etc/systemd/system/send-message.timer[Unit] Description=Run send-message.service every day at 8 AM [Timer] OnCalendar=*-*-* 08:00:00 Persistent=true Unit=send-message.service [Install] WantedBy=timers.target - 启用:
systemctl daemon-reload & & systemctl enable --now send-message.timer
- 服务单元
三、服务器事件告警与第三方 Webhook
- SSH 登录即告警到企业微信(示例思路)
- 准备脚本(如
/etc/ssh/sshrc或放到用户 profile),获取 用户、IP、时间、服务器IP,调用企业微信 API 发送文本消息;企业微信需提前准备 corpID、secret、agentID 并获取 access_token。 - 关键点:脚本要轻量、幂等;企业微信消息体示例
{ "touser": "UserID", "msgtype": "text", "agentid": 1000002, "text": { "content": "用户root在2025-08-22 10:00:00从1.2.3.4登录服务器10.0.0.1" } , "safe": 0 }
- 准备脚本(如
- 其他 Webhook(Slack/钉钉等)
- Slack 示例脚本
#!/usr/bin/env bash WEBHOOK_URL="https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX" MSG="$1" curl -X POST -H 'Content-type: application/json' --data "{ \"text\":\"$MSG\"} " "$WEBHOOK_URL" - 结合 cron/systemd 即可按频率推送或事件触发。
- Slack 示例脚本
四、自建团队推送平台
- Gotify(轻量、自托管)
- 下载解压并运行(默认监听 80 端口,可改配置为 9080);建议前置 Nginx 反向代理并开启 WebSocket 头:
upstream gotify { server 127.0.0.1:9080; } server { listen 18080; server_name push.example.com; location / { proxy_pass http://gotify; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_connect_timeout 1m; proxy_send_timeout 1m; proxy_read_timeout 1m; } } - 访问
http://your-domain:18080,默认账号 admin/admin;在 APPS → CREATE APPLICATION 获取 Token 用于脚本推送。
- 下载解压并运行(默认监听 80 端口,可改配置为 9080);建议前置 Nginx 反向代理并开启 WebSocket 头:
- Rocket.Chat(团队协作平台)
- 准备 CentOS 7+、建议 ≥2GB 内存、域名与 Nginx/SSL;开放 3000 端口。
- 安装 Node.js 12、MongoDB 4.0,部署 Rocket.Chat,创建 systemd 服务并启动,即可通过 Web 界面与 Webhook/机器人接入。
五、日志与邮件通知
- 远程日志集中(rsyslog)
- 将全部日志发往远程 syslog 服务器(UDP 514):
*.* @192.0.2.10:514 - 应用:
systemctl restart rsyslog
- 将全部日志发往远程 syslog 服务器(UDP 514):
- 邮件告警(Postfix)
- 安装与基础配置(选择 Internet Site),启动
systemctl start postfix & & systemctl enable postfix - 测试:
echo "Test email body" | mail -s "Test Email" user@example.com
- 安装与基础配置(选择 Internet Site),启动
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS消息推送功能如何启用
本文地址: https://pptw.com/jishu/781169.html
