CentOS 消息与其他系统的协同工作指南
一、协同场景与总体架构
二、日志集中与跨系统协同
*.* @remote_server_ip:514(UDP);使用 @@ 表示 TCPauth,authpriv.* /var/log/securesudo systemctl restart rsyslogsudo firewall-cmd --permanent --add-port=514/udp && sudo firewall-cmd --reloadtail -f /var/log/messages、journalctl -xe三、邮件与第三方通知的跨平台协同
/etc/postfix/main.cf)
relayhost = [smtp.yourprovider.com]:587smtp_use_tls = yes、smtp_sasl_auth_enable = yessmtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd/etc/postfix/sasl_passwd 写入:[smtp.yourprovider.com]:587 user:passsudo postmap /etc/postfix/sasl_passwd && chmod 600 /etc/postfix/sasl_passwd*sudo systemctl enable --now postfixecho "Test body" | mail -s "Test Subject" recipient@example.com/var/log/maillogcurl -X POST -H 'Content-type: application/json' --data '{"text":"【系统通知】CPU 使用率超过 90%"}' https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXXcurl -s -X POST -H 'Content-Type: application/json' --data '{"chat_id":"YOUR_CHAT_ID","text":"【系统通知】已重启"}' https://api.telegram.org/botYOUR_BOT_TOKEN/sendMessageecho "【维护通知】22:00-23:00 维护" | wallnotify-send "标题" "内容"(需 libnotify/d-bus)。四、基于消息队列的异步协同
sudo systemctl enable --now rabbitmq-serversudo rabbitmq-plugins enable rabbitmq_management(默认 15672 端口)ha-mode=all; ha-sync-mode=automatic,提升队列可用性haproxy.cfg 片段:frontend rabbitmq_frontend
bind *:5672
default_backend rabbitmq_backend
backend rabbitmq_backend
balance roundrobin
server r1 192.168.1.11:5672 check
server r2 192.168.1.12:5672 check
五、落地组合方案与最小实践
rsyslog 发日志到 Logstash/Elasticsearch;用 Filebeat 采集应用日志ERROR/WARN 关键字,触发 Webhook 调用 Slack/企业微信/钉钉,同时用 Postfix 发邮件给值班人wall/write/notify-send 覆盖现场终端与桌面;关键事件同时通过 Webhook 通知远程团队,形成“现场+远程”双通道