温馨提示×

Ubuntu Overlay如何进行监控与告警

小樊
46
2026-01-08 13:04:08
栏目: 智能运维

Ubuntu Overlay 监控与告警落地指南

一 监控范围与总体架构

  • 监控对象
    • OverlayFS 行为:目录/文件的创建、删除、修改、移动等事件,用于发现异常写入、可疑覆盖等。
    • 主机与容器资源:CPU、内存、I/O、网络、温度等,识别资源瓶颈对 Overlay 的影响。
    • 服务与进程健康:关键进程存活、端口可达、日志异常等,保障业务可用性。
  • 架构建议
    • 采用“采集 + 存储/可视化 + 告警路由”三层架构:事件采集(如 inotify)、指标采集(如 node_exporter/Prometheus)、可视化(如 Grafana)、告警路由(如 Alertmanager 邮件/企业微信/钉钉)。

二 快速落地 Prometheus + Alertmanager + Grafana

  • 组件与职责
    • node_exporter:暴露主机层指标(CPU、内存、磁盘 I/O、网络、温度等)。
    • Prometheus:抓取指标与规则评估,配置告警规则文件。
    • Alertmanager:去重、分组、静默与路由,对接邮件/Webhook。
    • Grafana:构建 Overlay 相关仪表盘(如 Overlay 挂载点容量、I/O、事件计数等)。
  • 关键配置示例
    • Prometheus 抓取与告警规则(/etc/prometheus/prometheus.yml)
      • global: scrape_interval: 15s
      • rule_files: - “rules/overlay.rules.yml”
      • alerting: alertmanagers: - static_configs: - targets: [‘localhost:9093’]
    • 告警规则(/etc/prometheus/rules/overlay.rules.yml)
      • groups:
        • name: overlay rules:
          • alert: OverlayHighIO expr: rate(node_disk_read_seconds_total{device=~“.overlay.”}[5m]) > 0.5 or rate(node_disk_write_seconds_total{device=~“.overlay.”}[5m]) > 0.5 for: 5m labels: severity: warning annotations: summary: “Overlay 设备 {{ $labels.device }} 读写等待偏高” description: “5 分钟平均读写等待 {{ $value | humanize }} 超过阈值 0.5”
          • alert: OverlayInodeUsageHigh expr: 1 - node_filesystem_files_free{fstype=“overlay”, mountpoint=“/var/lib/docker/overlay2”} / node_filesystem_files{fstype=“overlay”, mountpoint=“/var/lib/docker/overlay2”} > 0.8 for: 10m labels: severity: critical annotations: summary: “Overlay 挂载点 {{ $labels.mountpoint }} Inode 使用率 > 80%”
    • Alertmanager 邮件路由(/etc/alertmanager/alertmanager.yml)
      • global: smtp_smarthost: ‘smtp.example.com:587’ smtp_from: ‘alertmanager@example.com’ smtp_auth_username: ‘alertmanager’ smtp_auth_password: ‘password’ smtp_require_tls: true
      • route: receiver: ‘email’
      • receivers:
        • name: ‘email’ email_configs:
          • to: ‘admin@example.com
  • 启动与验证
    • 启动:sudo systemctl start prometheus alertmanager
    • 验证:Prometheus Web(默认 :9090)检查 Targets 与 Alert 页面;Grafana(默认 :3000)添加 Prometheus 数据源并导入/构建仪表盘。

三 OverlayFS 事件监控与日志告警

  • 基于 inotify 的文件事件监控
    • 安装:sudo apt-get install inotify-tools
    • 最小脚本(将 /var/lib/docker/overlay2 替换为你的实际挂载点)
      • #!/bin/bash WATCH_DIR=“/var/lib/docker/overlay2” inotifywait -m -r -e create -e delete -e modify -e moved_to -e moved_from --format ‘%w%f %e’ “$WATCH_DIR”
    • 建议做法
      • 将脚本输出接入 rsyslogPromtail+Loki,用 Grafana 做可视化与计数告警(如短时间内大量创建/删除)。
      • 对敏感目录(如 /var/lib/docker/overlay2)监控时注意权限与性能,必要时采用采样或白名单路径。
  • 基于 systemd 的服务健康与日志告警
    • 服务存活:使用 systemd 的 Restart=always 与探针,结合 Prometheus 的 node_systemd_unit_state{state=“active”} 做存活告警。
    • 日志异常:用 journalctl -u -fPromtail+Loki 采集服务日志,在 Grafana 建立错误关键字(如 “panic”、“timeout”)的告警规则。

四 快速排障与临时巡检命令

  • 基础状态与资源
    • 查看挂载与层信息:mount | grep overlay
    • 容量与 Inode:df -h(关注 overlay 行);df -i(关注 Inode 使用率)
    • 实时 I/O:iostat -x 1(关注 %util、await、svctm)
    • 进程级 I/O:iotop -o(定位高占用进程)
    • 容器场景:docker stats(快速查看容器资源消耗)
  • 安全审计(可选)
    • 审计关键路径:sudo apt-get install auditd;sudo auditctl -w /var/lib/docker/overlay2 -p wa -k overlay_monitor
    • 检索审计日志:ausearch -k overlay_monitor

五 关键指标与阈值建议

  • Overlay 设备 I/O 等待:rate(node_disk_read/write_seconds_total{device=~“.overlay.”}[5m]) 持续偏高(如 > 0.5)可能预示底层存储瓶颈或异常写入。
  • Inode 使用率:1 - free/files 在 Overlay 挂载点(如 /var/lib/docker/overlay2)超过 80% 需尽快清理或扩容,避免容器/镜像无法创建。
  • 实例存活:up == 0 持续 1m 触发 Pager/电话级别告警(InstanceDown)。
  • 事件异常频率:短时间内大量 create/delete/modify 事件(来自 inotify/Loki)可提示异常行为或配置问题,建议结合基线设定阈值。

0