1. 基础命令行通知设置
sudo wall "服务器将于今晚22:00进行维护"。适用于紧急通知所有在线用户。mesg y开启)。示例:write username "请检查你的进程状态"。适用于针对性沟通。mesg y允许接收,mesg n禁止接收。常用于保护隐私或避免干扰。2. 桌面环境通知优化(GNOME为例)
libnotify库。安装:sudo yum install libnotify;发送示例:notify-send "磁盘预警" "根分区使用率超过85%"。适用于桌面用户的日常提醒。sudo yum install dunst;配置文件位于~/.config/dunst/dunstrc,可调整通知显示时间(timeout = 5000表示5秒)、位置(origin = top-right)、颜色(frame_color = "#ff0000")等参数。适用于个性化通知风格。3. 邮件通知配置
sudo yum install mailx;配置/etc/mail.rc,添加SMTP信息:set from="admin@example.com"
set smtp=smtp.example.com
set smtp-auth=login
set smtp-auth-user="admin@example.com"
set smtp-auth-password="yourpassword"
set ssl-verify=ignore
发送测试邮件:echo "服务器负载正常" | mailx -s "系统状态报告" recipient@example.com。适用于远程接收系统告警或报告。4. 系统日志与实时监控
/etc/rsyslog.conf,可将特定服务日志(如authpriv)发送到远程服务器:authpriv.* @remote_server_ip:514(UDP)或@@remote_server_ip:514(TCP);重启服务:sudo systemctl restart rsyslog。适用于日志集中化管理。journalctl实时监控日志并触发通知。示例脚本(监控ERROR日志并发送桌面通知):#!/bin/bash
journalctl -f | grep --line-buffered "ERROR" | while read line; do
notify-send "系统错误" "$line"
done
赋予执行权限后运行:chmod +x log_monitor.sh。适用于实时捕获关键错误。5. 第三方工具与自动化
curl -X POST -H 'Content-type: application/json' --data '{"text":"服务器磁盘空间不足"}' https://hooks.slack.com/services/XXX/XXX/XXX
适用于集成到自动化脚本(如备份失败提醒)。/usr/local/bin/disk_check.sh检查磁盘空间,超过阈值则发送邮件;创建服务文件/etc/systemd/system/disk_notify.service:[Unit]
Description=Disk Space Notification Service
[Service]
ExecStart=/usr/local/bin/disk_check.sh
创建定时器文件/etc/systemd/system/disk_notify.timer:[Unit]
Description=Run disk check every hour
[Timer]
OnCalendar=hourly
Persistent=true
[Install]
WantedBy=timers.target
启用并启动:sudo systemctl enable --now disk_notify.timer。适用于周期性任务通知。alertmanager.yml设置邮件/Slack通知渠道,通过PromQL定义报警规则(如rate(node_cpu_seconds_total{mode="idle"}[5m]) < 0.1表示CPU空闲率低于10%)。适用于企业级系统监控。