温馨提示×

CentOS Overlay如何进行监控与告警

小樊
43
2025-12-27 11:28:37
栏目: 智能运维

CentOS Overlay监控与告警实战指南

一 明确监控对象与分层

  • Overlay网络(容器跨主机通信):关注容器网络I/O、丢包/重传、跨主机连通性与服务发现健康度。
  • OverlayFS(容器镜像/分层存储):关注合并层读写性能、底层磁盘I/O与空间、inode使用、文件变更审计。
  • 主机与内核:关注CPU/内存/磁盘/网络资源瓶颈,以及内核与Docker/容器运行时日志。

二 快速落地方案 Prometheus Grafana Alertmanager

  • 组件与目标
    • Node Exporter:采集主机指标(CPU、内存、磁盘、网络),端口9100
    • cAdvisor:采集容器资源与网络I/O,端口8080
    • Prometheus:时序数据库与告警评估,端口9090
    • Alertmanager:告警去重、分组、静默与路由,端口9093
    • Grafana:可视化与仪表盘,端口3000
  • 安装与启动(示例)
    • 安装与开机自启
      • yum 安装:Prometheus、Grafana、Node Exporter、cAdvisor(若仓库无包,可用官方二进制或容器方式部署)。
      • systemctl enable --now prometheus grafana-server node_exporter cAdvisor
    • 访问控制台
      • Prometheus:http://:9090
      • Grafana:http://:3000(默认账号/密码:admin/admin)
  • Prometheus抓取配置示例 prometheus.yml
    • scrape_configs:
      • job_name: ‘node’ static_configs:
        • targets: [‘localhost:9100’]
      • job_name: ‘cadvisor’ static_configs:
        • targets: [‘localhost:8080’]
  • Alertmanager邮件告警示例 alertmanager.yml
    • route: receiver: ‘email’ receivers:
      • name: ‘email’ email_configs:
        • to: ‘ops@example.com’ from: ‘alertmanager@example.com’ smarthost: ‘smtp.example.com:587’ auth_username: ‘alertmanager’ auth_password: ‘******’ require_tls: true
  • 常用告警规则示例(Prometheus规则文件)
    • groups:
      • name: overlay.rules rules:
        • alert: HostHighCPU expr: 100 - (avg by(instance)(irate(node_cpu_seconds_total{mode=“idle”}[5m]))) > 80 for: 5m labels: severity=critical annotations: summary: High CPU on {{ $labels.instance }} description: CPU usage > 80% for 5m
        • alert: NodeDiskUsageHigh expr: (1 - node_filesystem_avail_bytes{fstype!~“tmpfs|overlay”} / node_filesystem_size_bytes{fstype!~“tmpfs|overlay”}) > 0.85 for: 10m labels: severity=warning annotations: summary: Disk usage high on {{ $labels.instance }}: {{ $value | humanizePercentage }}
        • alert: ContainerNetworkReceiveErrors expr: rate(container_network_receive_errors_total[5m]) > 0 for: 5m labels: severity=warning annotations: summary: Container receive errors on {{ $labels.instance }} {{ $labels.name }}
        • alert: OverlayFSUtilizationHigh expr: (1 - node_filesystem_avail_bytes{fstype=“overlay”} / node_filesystem_size_bytes{fstype=“overlay”}) > 0.80 for: 10m labels: severity=warning annotations: summary: OverlayFS utilization high on {{ $labels.instance }}: {{ $value | humanizePercentage }}
  • Grafana可视化
    • 添加数据源:Prometheus(URL:http://localhost:9090)
    • 导入容器/主机大盘(如容器监控常用面板ID:193),并按业务补充Overlay相关图表。

三 容器与网络层的即时观测命令

  • 容器资源与网络
    • docker stats(实时查看容器CPU、内存、网络I/O)
    • cAdvisor Web(http://:8080,查看容器与文件系统指标)
  • 网络流量与连通性
    • iftop -i <overlay或物理接口>(按带宽排序,定位高占用对端)
    • nload(接口入/出流量可视化)
    • tcpdump -i -nn(抓包分析异常流量/重传)
    • iptables -L -v -n / nft list ruleset(查看规则命中字节/包计数,定位策略或异常流量)
  • 主机与存储
    • top/htop、vmstat、iostat -x(识别CPU/内存/磁盘瓶颈)
    • df -h、du -sh(检查OverlayFS与底层磁盘空间)
    • journalctl -u docker(容器运行时日志)与系统日志(/var/log/messages、/var/log/secure)

四 OverlayFS专项监控与审计

  • 文件系统变更审计
    • auditd + inotify
      • 安装:yum install -y audit inotify-tools
      • 审计规则:auditctl -w /var/lib/docker/overlay2 -p wa -k overlay_monitor
      • 查询:ausearch -k overlay_monitor 或 journalctl -k | grep overlay_monitor
  • 变更事件观察
    • inotifywait -m -r -e create,delete,modify,moved_to,moved_from --format ‘%w%f %e’ /var/lib/docker/overlay2
  • 性能与健康
    • iostat -x(关注%util、await、svctm)
    • df/du(关注可用空间与inode)
    • 结合 Prometheus Node Exporter 的 node_filesystem_* 指标对 fstype=“overlay” 做阈值告警

五 告警落地与运维要点

  • 告警分组与抑制
    • 按服务/实例/严重级别分组,避免告警风暴;对父子告警设置抑制(如节点宕机抑制其上的容器告警)。
  • 阈值与持续时间
    • 先宽松后收敛:如CPU>80%持续5m、磁盘>85%持续10m再告警;高峰期可适当上调。
  • 通知策略
    • 邮件、企业微信/钉钉/Slack Webhook、PagerDuty等;不同严重级别走不同路由与频率限制。
  • 验证与演练
    • 定期故障演练(断网/磁盘满/高负载)验证告警链路;检查静默/维护窗口策略是否生效。
  • 安全与合规
    • 暴露抓取端点时限制来源IP;启用TLS/认证;避免将敏感接口(如2375)对公网开放。

0