如何使用Zabbix官方模板轻松实现Docker容器监控?

这篇具有很好参考价值的文章主要介绍了如何使用Zabbix官方模板轻松实现Docker容器监控?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

感谢王军 ZCP(Zabbix 高级认证专家)翻译!欢迎投稿分享你的使用经验。

本文将介绍通过Zabbix监控Docker容器。使用官方模板 Docker by Zabbix agent2 template 很容易实现Docker容器监控。模板下载链接和配置步骤可以在 Zabbix 集成页面上找到。

目录

  1. 导入官方Docker模板
  2. 安装并配置Zabbix Agent2
  3. Zabbix Agent2 的特定插件配置
  4. 配置Docker主机
  5. Docker by Zabbix agent 2 template
  6. 验证主机和模板配置
  7. 运行中的Docker模板

导入官方Docker模板

如何使用Zabbix官方模板轻松实现Docker容器监控?
导入Docker by Zabbix agent 2 template

 文章来源地址https://www.toymoban.com/news/detail-449410.html

因为要使用官方模板Docker by Zabbix Agent2。首先,我们需要确保这个模板在 Zabbix 中是可用的。Zabbix 5.0、5.4和6.0中都提供了该模板。如果你在 * 配置->模板 中没有找到这个模板,很有可能是你在升级完Zabbix版本之后,没有将它导入到你的环境里。请记住,Zabbix 在升级过程中不会修改或导入任何模板,因此我们必须手动导入模板。这样的话,只需要从官方Zabbix git(或者直接点击这里)下载并通过使用 配置->模板 页面中的 Import 按钮将其导入到 Zabbix 实例中。

安装并配置Zabbix Agent2

在开始配置主机之前,我们应该先安装Zabbix agent2并按照模板指南来配置。可以按照Zabbix 网站下载页面中的步骤来安装 Zabbix-agent2。根据需要,可以灵活使用其他代理部署方法(比如从源文件编译安装代理)。

从软件包中安装 Zabbix agent2只需要几个简单的步骤:

安装 Zabbix 仓库包:

rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm

安装Zabbix agent2软件包:

dnf install zabbix-agent2

使用 Zabbix server/proxy 地址来设置 Server 参数。

vi /etc/zabbix/zabbix_agent2.conf

### Option: Server
# List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
# Incoming connections will be accepted only from the hosts listed here.
# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
# and '::/0' will allow any IPv4 or IPv6 address.
# '0.0.0.0/0' can be used to allow any IPv4 address.
# Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
#
# Mandatory: yes, if StartAgents is not explicitly set to 0
# Default:
# Server=

Server=192.168.50.49

Zabbix Agent2 的特定插件配置

Zabbix agent2提供了特定的插件配置参数,通常情况下,与特定插件相关的参数都是可选参数。你可以在 Zabbix 文档中找到相关插件配置参数的完整列表。在新版本的Zabbix agent2中,特定插件的参数被定义在位于 /etc/zabbix/zabbix_agent2.d/plugins.d/ 下单独的插件配置文件中,而在旧版本中,它们直接在 zabbix_agent2.conf 文件中定义。

对于Zabbix agent2 Docker plugin(Docker监控插件),我们必须配置 Docker服务的 unix-socket 文件位置。可以通过下面这个插件参数实现:

### Option: Plugins.Docker.Endpoint
# Docker API endpoint.
#
# Mandatory: no
# Default: unix:///var/run/docker.sock
# Plugins.Docker.Endpoint=unix:///var/run/docker.sock

默认安装的Docker 环境套接字位置是正确的——在这种情况下,你可以不用修改配置文件。

在对Zabbix agent2 配置文件做了必要的修改后,启动并启用代理:

systemctl enable zabbix-agent2 --now

检查 Zabbix agent2是否运行:

tail -f /var/log/zabbix/zabbix_agent2.log

在进入Zabbix前端页面之前,我想提醒你注意一下Docker socket文件权限——Zabbix 用户需要有访问 Docker Docker socket文件的权限。应该将 zabbix 用户添加到 docker 组中,来解决以下错误消息。

[Docker] cannot fetch data: Get http://1.28/info: dial unix /var/run/docker.sock: connect: permission denied

ZBX_NOTSUPPORTED: Cannot fetch data.

可以通过执行以下命令将 zabbix 用户添加到 Docker 组:

usermod -aG docker zabbix

配置Docker主机

如何使用Zabbix官方模板轻松实现Docker容器监控?
配置Docker主机

导入模板之后,我们需要为Docker实例创建一个主机。设置主机名并分配主机组——我将把它分配给 Linux servers主机组。将 Docker by Zabbix agent 2模板关联到该主机。因为要使用Zabbix agent2模板来采集数据,所以需要在这个主机上添加一个代理接口。接口的地址是运行 Docker 容器的机器地址。单击 Add 按钮完成主机配置。

Docker by Zabbix agent 2 template

如何使用Zabbix官方模板轻松实现Docker容器监控?
docker 模板常规监控项

 

模板包含一系列常规监控项,用于Docker实例通用指标监控,例如:可用镜像数量,Docker架构信息,容器的总数等等。除此之外,该模板还使用LLD(低级别发现)

如何使用Zabbix官方模板轻松实现Docker容器监控?规则采集容器和特定镜像的信息。一旦 Zabbix 发现了你的容器和镜像,这些LLD(低级别发现)规则将通过原型为每个容器和镜像创建监控项、触发器和图形。通过这种方法实现容器和特定镜像的指标监控,例如:容器内存、网络信息、容器状态等等。

如何使用Zabbix官方模板轻松实现Docker容器监控?
Docker 模板LLD监控项原型

验证主机和模板配置

我们可以使用 Zabbix get 命令行工具来尝试轮询代理,以验证代理和主机配置是否正确。如果你还没有安装 Zabbix get,可以在 Zabbix server或 Zabbix proxy主机上这样来安装:

dnf install zabbix-get

现在我们可以使用 zabbix-get 来验证我们的代理是否能够获得与 docker 相关的指标。执行以下命令:

zabbix_get -s docker-host -k docker.info

使用 -s 参数指定你代理主机的IP或主机名, -k 参数定义了我们希望通过zabbix-get轮询代理来获取指标的键值。

zabbix_get -s 192.168.50.141 -k docker.info
{"Id":"SJYT:SATE:7XZE:7GEC:XFUD:KZO5:NYFI:L7M5:4RGO:P2KX:QJFD:TAVY","Containers":2,"ContainersRunning":2,"ContainersPaused":0,"ContainersStopped":0,"Images":2,"Driver":"overlay2","MemoryLimit":true,"SwapLimit":true,"KernelMemory":true,"KernelMemoryTCP":true,"CpuCfsPeriod":true,"CpuCfsQuota":true,"CPUShares":true,"CPUSet":true,"PidsLimit":true,"IPv4Forwarding":true,"BridgeNfIptables":true,"BridgeNfIP6tables":true,"Debug":false,"NFd":39,"OomKillDisable":true,"NGoroutines":43,"LoggingDriver":"json-file","CgroupDriver":"cgroupfs","NEventsListener":0,"KernelVersion":"5.4.17-2136.300.7.el8uek.x86_64","OperatingSystem":"Oracle Linux Server 8.5","OSVersion":"8.5","OSType":"linux","Architecture":"x86_64","IndexServerAddress":"https://index.docker.io/v1/","NCPU":1,"MemTotal":1776848896,"DockerRootDir":"/var/lib/docker","Name":"localhost.localdomain","ExperimentalBuild":false,"ServerVersion":"20.10.14","ClusterStore":"","ClusterAdvertise":"","DefaultRuntime":"runc","LiveRestoreEnabled":false,"InitBinary":"docker-init","SecurityOptions":["name=seccomp,profile=default"],"Warnings":null}

此外,我们还可以使用LLD(低级别发现)键值— docker.containers.discovery[false] 来检查LLD(低级别发现)的结果。

zabbix_get -s 192.168.50.141 -k docker.containers.discovery[false]
[{"{#ID}":"a1ad32f5ee680937806bba62a1aa37909a8a6663d8d3268db01edb1ac66a49e2","{#NAME}":"/apache-server"},{"{#ID}":"120d59f3c8b416aaeeba50378dee7ae1eb89cb7ffc6cc75afdfedb9bc8cae12e","{#NAME}":"/mysql-server"}]

我们可以看到 Zabbix 将发现并监控两个容器—apache-server and mysql-server。任何代理的LLD(低级别发现)规则或监控项都可以用 zabbix get 进行检查.

运行中的Docker模板

如何使用Zabbix官方模板轻松实现Docker容器监控?
在Docker主机上发现的监控项

现在我们已经配置了代理和主机,也应用了 Docker 模板,并验证了一切正常,在前端就能够看到已发现的实体对象。

如何使用Zabbix官方模板轻松实现Docker容器监控?
采集到的Docker容器指标

另外,我们的指标数据也应该收集上来了。我们可以通过查看最新数据来验证数据是否采集正常。

如何使用Zabbix官方模板轻松实现Docker容器监控?
从 Docker 模板继承宏

最后,有一些额外的选项能够进一步修改模板和LLD(低级别)发现的结果。如果你打开主机的宏并选择继承主机宏,你将看到从 Docker 模板继承了4个宏。这些宏用来过滤发现的容器和图像镜像。如果你希望根据自己的需求过滤这些被发现的实体,可以灵活修改这些值。

注意,在模板上容器发现监控项有一个false的参数:

  • docker.containers.discovery[false] – 只发现正在运行的容器
  • docker.containers.discovery[true] – 发现所有容器,不管是什么状态。

至此,我们成功地导入了模板,安装并配置了 Zabbix agent2,创建了一个主机,并应用了 Docker 模板。最终实现了在 Zabbix 中监控Docker 环境!

如果你有任何问题或建议,欢迎在留言交流。

如何使用Zabbix官方模板轻松实现Docker容器监控?
Zabbix6.0认证之路

机智的你一定发现了,升级相对合适(省时省钱)就是获得5.0认证!最后一场5.0认证培训,就在5月底线上开课。

5月30日-6月1日 ZCP3天,培训大纲和价格请查看官网。

如何使用Zabbix官方模板轻松实现Docker容器监控?

600+学员已成为Zabbix认证专家,助力工作,升职加薪!欢迎联系,了解更多。

 

到了这里,关于如何使用Zabbix官方模板轻松实现Docker容器监控?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Zabbix最简易安装部署:基于docker容器

    zabbix 读音: 正确读法: [`zæbiks] ,中文发音:擦日阿(ra)贝克斯 zabbix 是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在

    2024年02月12日
    浏览(51)
  • 如何在群辉NAS使用Docker搭建容器魔方并实现无公网ip远程访问

    本文主要介绍如何在群辉7.2版本中使用Docker安装容器魔方,并结合Cpolar内网穿透工具实现远程访问本地网心云容器魔方界面. 容器魔方是由网心云推出的一款Docker容器镜像软件,通过简单安装后即可快速加入网心云共享计算生态网络,为网心科技星域云贡献带宽和存储资源,

    2024年02月02日
    浏览(65)
  • 如何在CentOS使用Docker搭建MinIO容器并实现无公网ip远程访问本地服务

    MinIO是一个开源的对象存储服务器,可以在各种环境中运行,例如本地、Docker容器、Kubernetes集群等。它兼容Amazon S3 API,因此可以与现有的S3工具和库无缝集成。MinIO的设计目标是高性能、高可用性和可扩展性。它可以在分布式模式下运行,以满足不同规模的存储需求。 MinIO是

    2024年04月15日
    浏览(43)
  • 如何使用Docker本地部署Wiki.js容器并结合内网穿透实现知识库共享

    不管是在企业中还是在自己的个人知识整理上,我们都需要通过某种方式来有条理的组织相应的知识架构,那么一个好的知识整理工具是非常重要的,今天推荐一款维基知识库系统——Wiki.js。 本文将介绍如何用 Docker 容器技术部署 Wiki.js 应用程序,并且结合cpolar发布至公网实

    2024年01月19日
    浏览(56)
  • 如何在CentOS使用Docker运行Nacos容器并实现无公网IP远程访问UI界面

    Nacos是阿里开放的一款中间件,也是一款服务注册中心,它主要提供三种功能:持久化节点注册,非持久化节点注册和配置管理。 本例通过结合Cpolar内网穿透实现远程访问Nacos 提供的UI (控制台)界面,帮助管理所有的服务和应用的配置 Cpolar内网穿透是一种安全的内网穿透云服务

    2024年04月17日
    浏览(48)
  • Docker容器的官方镜像仓库

    镜像仓库分类 公有仓库 私有仓库 官方镜像仓库属于公有仓库 网址: hub.docker.com        网站名称:dockerhub 注册邮箱 创建仓库 创建自己的仓库 登录仓库  web界面登录 linux命令行登录  直接docker login 输入用户名和密码 这个自己创建的存储库一般只有pull时才会登录 push上传

    2024年02月08日
    浏览(47)
  • 如何实现docker内部容器之间的端口访问

    Docker 的普及促使众多应用迁至其上部署,得益其诸多优势。然而,相较于传统非 Docker 环境中各应用通过 127.0.0.1:端口 即可轻松互访,Docker 容器若未经端口映射,彼此间端口则无法直接相通。是否存在更优方案以应对这一挑战? 场景简述:alpine-client 与 alpine-server 两容器,前

    2024年04月22日
    浏览(27)
  • 【Python编程工具】【ssh连接Docker容器】如何使用Docker容器里的python环境,如何调试在容器中的代码

    本篇博客将介绍如何在Docker容器中打开SSH连接服务,以及如何使用JetBrains Gateway软件进行代码调试。 JetBrains Gateway是一款紧凑型桌面应用,可让您通过 JetBrains IDE 远程工作,甚至无需下载这些IDE。通过在桌面端安装这款软件,您可以直接调试服务器上的代码。 使用以下命令启

    2024年01月25日
    浏览(65)
  • 【如何使用Docker将容器打包成镜像】

    本文主要讲解如何将现有的容器打包为镜像以及如何将现有的镜像打包为tar文件并在新环境中重新载入。 docker提供了 commit 命令,可将容器打成镜像,其命令格式如下: 我们首先运行 docker images 去查看现有的镜像,当前镜像只有两个。 然后运行 docker ps -a 去查看当前容器。 执

    2023年04月18日
    浏览(44)
  • 如何使用docker容器中的redis

    1.检查docker容器中是否启动了redis;命令: docker ps 2.如果没启动,则先启动服务;命令: docker run -p 6379:6379 --name redis -d redis (这里name后面的redis就是你在docker里面的redis服务映射的名称,可以叫任何名称,端口号也是) 3.根据查询出来的名称,比如你的redis服务就叫redis;命令

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包