温馨提示×

ubuntu上docker的监控与告警如何实现

小樊
80
2025-09-12 18:12:24
栏目: 智能运维

在Ubuntu上实现Docker监控与告警,可选用以下方案,核心工具组合为Prometheus+Grafana,也可根据需求选择其他工具:

一、Prometheus+Grafana方案(推荐)

1. 安装与配置

  • Prometheus

    • 编辑配置文件prometheus.yml,添加Docker监控目标:
      scrape_configs:
        - job_name: 'docker'
          static_configs:
            - targets: ['localhost:9323']  # cAdvisor默认端口
      
    • 启动容器时挂载配置文件:
      docker run -d --name prometheus -p 9090:9090 \
        -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
        prom/prometheus
      
  • cAdvisor(采集容器指标):

    docker run -d --name cadvisor --net=host \
      -v /:/rootfs:ro -v /var/run:/var/run:ro -v /sys:/sys:ro -v /var/lib/docker/:/var/lib/docker:ro \
      -p 8080:8080 google/cadvisor:latest
    

    访问http://宿主机IP:8080查看容器实时指标。

  • Grafana(可视化与告警):

    • 安装后配置Prometheus数据源,导入Docker监控仪表盘(如官方模板)。
    • 在“Alerting”页面设置告警规则,例如CPU使用率>80%持续5分钟触发告警,通知方式支持邮件、Slack等。

2. 告警规则示例

  • CPU使用率告警
    sum(rate(container_cpu_usage_seconds_total[5m])) by (instance) > 0.8
    
  • 内存不足告警
    container_memory_usage_bytes{instance="宿主机IP"} / container_spec_memory_limit_bytes{instance="宿主机IP"} > 0.9
    

二、其他工具方案

1. Checkmate

  • 一体化监控工具,支持Docker容器状态、资源使用等监控,提供邮件、Webhook告警。
  • 安装后通过Web界面配置监控项和告警规则,无需额外组件。

2. ELK Stack(日志监控+告警)

  • Elasticsearch+Logstash+Kibana
    • Logstash采集容器日志,Kibana可视化分析,结合Elasticsearch存储。
    • 适用于需要日志分析与告警的场景(如异常日志触发告警)。

三、工具对比

工具组合 优势 适用场景
Prometheus+Grafana 灵活可扩展,支持多维度监控 生产环境复杂监控
Checkmate 开箱即用,轻量级 中小规模环境快速部署
ELK Stack 强大的日志分析能力 以日志监控为核心的场景

四、注意事项

  • 确保Docker守护进程开启指标暴露:修改/etc/docker/daemon.json,添加"metrics-addr": "0.0.0.0:9323"并重启Docker。
  • 告警规则需根据实际业务调整阈值,避免误报。
  • 生产环境建议使用Prometheus Operator或Kubernetes集成方案,实现自动发现与管理。

以上方案可根据团队技术栈和规模选择,Prometheus+Grafana为业界主流方案,适合大多数场景。

0