首页主机资讯CentOS消息推送功能如何启用

CentOS消息推送功能如何启用

时间2026-01-16 08:59:03发布访客分类主机资讯浏览1073
导读:CentOS 启用消息推送的可选方案与步骤 一、快速选择 本机向所有登录用户广播:用 wall 或 systemd 定时器 定时推送,零依赖、最快落地。 服务器事件告警(如 SSH 登录):用 PAM/SSH 登录脚本 触发,即时通知到企...

CentOS 启用消息推送的可选方案与步骤

一、快速选择

  • 本机向所有登录用户广播:用 wallsystemd 定时器 定时推送,零依赖、最快落地。
  • 服务器事件告警(如 SSH 登录):用 PAM/SSH 登录脚本 触发,即时通知到企业微信、钉钉、Slack 等。
  • 团队内平台化推送:自建 GotifyRocket.Chat,支持用户、应用、Webhook 等多端接入。
  • 面向浏览器/APP 的实时推送:用 WebSocket/Swoole 自建实时通道,适合自研前端/客户端。
  • 日志集中与邮件通知:配置 rsyslog 远程日志,或用 Postfix 发送邮件告警。

二、本机广播与定时推送

  • 即时广播给已登录用户
    • 命令:wall "系统将在5分钟后维护,请保存数据。"
  • 定时广播(cron)
    • 例:每天 08:00 推送
      0 8 * * * /usr/bin/wall "这是一条定时消息"
      
  • 定时广播(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 即可按频率推送或事件触发。

四、自建团队推送平台

  • 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 用于脚本推送。
  • Rocket.Chat(团队协作平台)
    • 准备 CentOS 7+、建议 ≥2GB 内存、域名与 Nginx/SSL;开放 3000 端口。
    • 安装 Node.js 12MongoDB 4.0,部署 Rocket.Chat,创建 systemd 服务并启动,即可通过 Web 界面与 Webhook/机器人接入。

五、日志与邮件通知

  • 远程日志集中(rsyslog)
    • 将全部日志发往远程 syslog 服务器(UDP 514):
      *.* @192.0.2.10:514
      
    • 应用:systemctl restart rsyslog
  • 邮件告警(Postfix)
    • 安装与基础配置(选择 Internet Site),启动 systemctl start postfix & & systemctl enable postfix
    • 测试:echo "Test email body" | mail -s "Test Email" user@example.com

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS消息推送功能如何启用
本文地址: https://pptw.com/jishu/781169.html
centos下flutter代码如何版本控制 如何查看CentOS历史消息记录

游客 回复需填写必要信息