温馨提示×

CentOS如何进行系统监控和报警

小樊
44
2025-12-21 18:14:07
栏目: 智能运维

CentOS系统监控与报警实用方案

一 快速上手 命令行巡检与即时告警

  • 常用实时与历史命令
    • 资源总览与进程:tophtop(需 EPEL)、vmstatfreeiostat -x 1sardstatiftopnloadnethogspidstatiotopsystemctl status/ journalctl -u。这些命令覆盖 CPU、内存、磁盘 I/O、网络 等关键指标,适合临时排查与日常巡检。对于 CentOS Stream 8,上述工具同样适用。
  • 即时广播与本地通知
    • 向所有登录终端广播:wall “告警:CPU 使用率超过 90%”
    • 记录到系统日志并触发外部处理:logger -t “ALERT” “磁盘空间不足”(可配合 rsyslog 转发/处理)。
    • 图形会话通知(有桌面环境):notify-send “磁盘告警” “可用空间低于 10%”

二 轻量自动化 脚本化邮件告警

  • 适用场景
    • 没有监控平台、服务器数量较少、希望快速落地邮件告警(如 CPU、内存、磁盘、IO、网络 超限即告警)。
  • 实施步骤
    1. 安装依赖
      • yum install -y msmtp sysstat ifstat bc curl
      • 配置 msmtp 使用邮箱 SMTP(如 QQ/163 邮箱的授权码),确保可发信。
    2. 配置阈值与收件人
      • 例如:CPU_THRESHOLD=80MEM_THRESHOLD=80DISK_THRESHOLD=80IO_AWAIT_THRESHOLD=50(ms)、NET_THRESHOLD=10(MB/s)。
    3. 核心检查逻辑(示例)
      • CPU:通过 vmstat 计算近 1 分钟平均使用率;超过阈值则拼装告警内容。
      • 内存:基于 free 计算已用率(含缓存/缓冲的可用内存口径),超过阈值告警。
      • 磁盘:对关键分区(如 /)使用率检查,超过阈值告警。
      • IO:通过 iostat -x 获取 await,超过阈值告警。
      • 网络:通过 ifstat 采样带宽,超过阈值告警。
    4. 发送邮件与日志
      • 使用 msmtp 发送 HTML/文本邮件,附带 主机名、IP、时间、指标与建议
      • 写入本地日志:/var/log/system_monitor.log,便于审计与回溯。
    5. 定时执行
      • 使用 cron(如每 5 分钟)执行脚本,形成准实时告警。
  • 邮件与脚本要点
    • 邮箱需开启 SMTP/POP3/IMAP 并使用授权码而非登录密码;脚本需处理多收件人、字符编码与连接失败重试。

三 平台化方案 Prometheus Alertmanager Grafana

  • 组件与端口
    • Node Exporter(主机指标,9100)、Prometheus(时序与规则,9090)、Alertmanager(告警路由与去重,9093)、Grafana(可视化,3000)。
  • 快速落地步骤
    1. 部署 Node Exporter
      • 在目标主机启动 node_exporter,确保 9090 访问可达。
    2. 配置 Prometheus
      • 抓取 Node Exporter:scrape_configs 中加入 job_name: ‘linux’、targets: [‘:9100’];配置 rule_files 指向告警规则文件。
    3. 编写告警规则(示例)
      • 规则要点:使用 irate/node_cpu_seconds_total 计算 CPU 使用率,阈值 >80% 且持续 5m 触发;为告警添加 severityannotations(摘要/描述)。
    4. 配置 Alertmanager
      • 路由与接收器:设置 route.receiverreceivers.name;邮件示例:配置 smtp_smarthostfromtoauth_usernameauth_passwordrequire_tls 等;可按需配置 group_byrepeat_intervalinhibit_rules 以抑制告警风暴。
    5. Grafana 可视化
      • 添加 Prometheus 数据源(URL:http://:9090),导入 Node Exporter 仪表盘(如模板 16098),实现指标观测与面板告警联动。
    6. 防火墙与连通性
      • 开放 9090/3000/9093(以及 9100 对 Prometheus 可达);生产环境建议最小暴露面与鉴权。

四 企业常用平台 Zabbix 与日志安全监控

  • Zabbix 监控与告警
    • 安装 Zabbix Server(如 zabbix-server-mysql、zabbix-web-mysql)与 Zabbix Agent;在 zabbix_agentd.conf 设置 Server/ServerActive 指向 Server IP;Web 界面添加主机、监控项、触发器与动作(邮件/脚本/企业微信/钉钉等通知)。
  • 日志与安全事件监控
    • 集中式日志:部署 ELK(Elasticsearch、Logstash、Kibana)Graylog,采集 /var/log/ 与安全日志,进行检索、可视化与告警规则配置。
    • 入侵处置示例:结合日志发现异常 IP 后,使用 iptables 封禁(如:iptables -I INPUT -s -j DROP),并持久化保存规则。

五 告警策略与运维建议

  • 阈值与持续时间
    • 先宽松后收敛:如 CPU>80% 持续 5m磁盘>80%IO await>50ms带宽>10MB/s;结合业务高峰与历史基线逐步调优。
  • 分组、抑制与频率
    • 通过 group_by 将相关告警聚合;使用 inhibit_rules 避免重复告警;设置 repeat_interval 控制重复通知频率,避免告警风暴。
  • 通知渠道与值班
    • 邮件、企业微信、钉钉、Webhook 等多渠道;建立 值班与升级 机制,确保告警闭环。
  • 变更与演练
    • 变更前后进行基线对比压测/故障演练;定期验证告警链路(可临时制造阈值触发)。

0