docker zabbix监控mysql_zabbix--docker 监控

本文介绍了如何使用Zabbix通过Docker监控宿主机上的所有容器。首先,在物理机上安装Zabbix仓库和agent,然后配置agent以连接Zabbix_server。接着,将zabbix用户添加到docker组,以便执行docker命令。编写并赋予python脚本执行权限,用于收集容器信息。最后,通过自定义键值和模板在Zabbix web界面中监控Docker容器的CPU、内存等指标。
摘要由CSDN通过智能技术生成

docker是一个进程,所以即使拉取的centos镜像也不应该在安装docker服务,所以这里监控的是宿主机上的所有docker进程

先在物理机上安装zabbix仓库

rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

yum安装agent

yum -y install zabbix-agent

修改配置文件让zabbix_server监控到

vim /etc/zabbix/zabbix_agentd.conf

#先备份原始的

Server=172.17.0.2 ---zabbix_server 的ip地址

ServerActive=172.17.0.2 ---客户端主动提交信息 和上面的保持一致

Hostname=localhost ---客户端的主机名,宿主机的主机名

将zabbix用户加入到docker组里面 使得zabbix服务可以执行docker命令

gpasswd -a zabbix docker

启动agent服务

systemctl start zabbix_agent

在web服务端里添加物理机主机

88e1a3b6196fec8493f38826ef34ddbe.png

添加主机到配置中

添加python脚本(python2版) 这里路径是/opt/zabbix/docker.py

#!/usr/bin/python

import sys

import os

import json

def discover():

d = {}

d['data'] = []

with os.popen("docker ps -a --format {{.Names}}") as pipe:

for line in pipe:

info = {}

info['{#CONTAINERNAME}'] = line.replace("\n","")

d['data'].append(info)

print json.dumps(d)

def status(name,action):

if action == "ping":

cmd = 'docker inspect --format="{{.State.Running}}" %s' %name

result = os.popen(cmd).read().replace("\n","")

if result == "true":

print 1

else:

print 0

else:

cmd = 'docker stats %s --no-stream --format "{{.%s}}"' % (name,action)

result = os.popen(cmd).read().replace("\n","")

if "%" in result:

print float(result.replace("%",""))

else:

print result

if __name__ == '__main__':

try:

name, action = sys.argv[1], sys.argv[2]

status(name,action)

except IndexError:

discover()

修改脚本权限 获得执行权限

chmod 755 /opt/zabbix/docker.py

[root@localhost zabbix]# ll docker.py

-rwxr-xr-x 1 root root 846 11月 30 17:11 docker.py

添加自定义键值 /etc/zabbix/zabbix_agentd.d

###docker

UserParameter=docker.discovery, python /opt/zabbix/docker.py

UserParameter=docker.[*], python /opt/zabbix/docker.py $1 $2

重启zabbix_agent

systemctl restart zabbix_agent

使用服务端进行测试

/etc/zabbix # zabbix_get -s 10.0.122.178 -p 10050 -k docker.[centos-zabbix-agent,ping]

1

表示这个容器是存活的

/etc/zabbix # zabbix_get -s 10.0.122.178 -p 10050 -k docker.[centos-zabbix-agent,BlockIO]

609MB / 45.8MB

测试成功

这样就可以去web端进行测试

首先要导入docker模板

0c1634cc9b2ce47d13fb1640a5440ee2.png

image.png

主机链接模板

898d972c6f2eca506c04b42518ecb89f.png

链接模板

f202f8e51249acfcbcb549408a9ea0d2.png

查看主机列表

4bece0d3b1f8b0942202a48a4cf35853.png

查看自动发现

使用自定义键值对创建监控项

7e9ee1debaeacdb40b03ed32eddb7d37.png

创建监控项

查看最新数据

a9fbff3d71355bd850b8a8f72ffa0ff1.png

image.png

监测到cpu的数据

4e055740b5abe2ac44761b4c1856aa2c.png

image.png

最终展示图形

ae9ae6666f8f532b4a4c494154e74783.png

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值