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

93d69dd030d3b65180b35a43cb6d74ae.gif

作者 | Milan Mahat

在本指南中,我们将学习如何使用 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 的配置文件中添加一些配置:

4edbc4ac876e9cf14c24fbb9a7cb3379.png

sudo nano config/prometheus.yml

在其中添加以下代码:

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

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

配置应该如下所示:

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

sudo docker-compose up --build –d

并检查状态:

docker-compose ps

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

转到状态-> 目标。

1d3008ffa9131fb9c148ad7757f7d297.png


35ec39ff09a551eb375814fd97ef90d5.png

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

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

登录到 grafana 服务器。

转到 http://yourserverip:3000/

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

点击导入:

8220ae1f1d6e4f5fadd5e0acf5786b6b.png

现在粘贴 14282 并单击加载。

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

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

点击加载。

a0d6648dab83f83c9b8015147f24cf50.png

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

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

b2f5975031c3c783a557dd34ad36ac44.png

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

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

原文:

https://cloudtechservice.com/container-monitoring/

95924c2153aba0091dd8aa95a0e0f962.gif

往期推荐

read 文件一个字节实际会发生多大的磁盘IO?

如何优雅保护 Kubernetes 中的 Secrets

Redis 内存满了怎么办?这样置才正确!

云原生的本手、妙手和俗手

7bdd955b7eba78cf3687fdf51fc9dca7.gif

点分享

57bd774fd088824d2964e9806980422c.gif

点收藏

e3092b80a327aa2725f81d53112ccf84.gif

点点赞

4ae216b8466618d8c0028bad9c6fc936.gif

点在看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值