云计算运维

Windows Server 2003 - Windows Server 2019 系统工具,Linux系统脚本,Mysql、Nginx、PHP、Redis、K8S、Seafile、Weblogic 、Jenkins、DNS、DHCP、FTP、IIS、Zookeeper、Rabbitmq、Oracle、Tomcat、Mavrn等服务搭建维护,请关注我.

容器监控指南:三剑客轻松实现 Docker 容器监控


在本指南中,我们将学习如何使用 docker-compose 在容器中设置 cAdvisor,将其与 prometheus 连接,并通过 grafana 监控服务器的容器。


CAdvisor 是一种流行的工具,用于收集容器的信息。它是 prometheus 和 grafana 用来抓取信息并将信息以图形、图表、时间序列和其他各种形式可视化的代理。CAdvisor 从容器中收集各种指标,这些信息由 prometheus 抓取,然后 grafana 将数据转换为直观的展现形式。

CAdvisor 是一个独立的应用程序。它具有对 Docker 容器的原生支持,并且还支持其他容器环境,例如开箱即用的 Kubernetes。


在容器中设置 cAdvisor 和 prometheus

配置 docker-compose.yml 文件并启动容器

sudo nano docker-compose.yml

现在将以下代码添加到其中:

cadvisor:
    image: gcr.io/cadvisor/cadvisor:latest
    container_name: cadvisor
    ports:
      - "9200:8080"
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
      - /dev/disk/:/dev/disk:ro
    devices:
      - /dev/kmsg
    networks:
      - prometheus-network
    restart: unless-stopped

在 docker compose 文件中,卷已以只读模式映射到容器中。这是收集有关正在运行的容器信息所必需的。配置文件应该是这样的:

需要在 Prometheus 的配置文件中添加一些配置

sudo nano config/prometheus.yml

在其中添加以下代码:

- job_name: 'cadvisor'
    static_configs:
      - targets: ['cadvisor:8080']

在这里,添加了目标 cadvisor:8080。这个地址只有在 prometheus 和 cAdvisor 容器都在同一个网络中时才有效。对于远程容器监控,只需要设置远程 cadvisor 的地址和端口,因为上面已经分别映射了主机和容器的端口 9200 和 8080。

配置应该如下所示:

现在使用 docker-compose 文件构建的 cAdvisor,然后启动容器:

sudo docker-compose up --build –d

并检查状态:

docker-compose ps

看起来 cAdvior 运行良好。现在访问 http://yourserverip:9090/ 访问 prometheus 并检查 cAdvisor 是否连接到 prometheus:

转到状态-> 目标。

在这里可以看到 cadvisor 已经启动了。

这意味着 prometheus 也可以从 cadvisor 中抓取数据。

登录到 grafana 服务器。

转到 http://yourserverip:3000/

现在为容器监控设置仪表板。

点击导入:

现在粘贴 14282 并单击加载。

此 ID 从 grafana 仪表板库中导出完整的 cadvisor 仪表板。您可以在下面链接中浏览更多仪表板。

https://grafana.com/grafana/dashboards/

点击加载。

设置名称,设置正确的 preometheus 并点击导入。

导入后,您可以看到仪表板。这个仪表板是现成的仪表板,包含很多关于容器的信息。

仪表板已加载各种指标,例如 CPU 利用率、内存利用率、缓存内存、网络流量利用率等。您可以根据需要探索和自定义许多其他各种指标。还可以使用自己的自定义查询创建自定义仪表板。

您还可以从另一台服务器监控容器,只需进行少量修改。此外,您可以设置警报系统,并在您的服务器或容器中检测到异常时向您的电子邮件、微信、钉钉发送警报消息。

  • 分享:
评论
还没有评论
    发表评论 说点什么