dockerdocker. k8s小白学架构之路

zabbix--docker 监控

2019-11-30  本文已影响0人  _str_

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服务端里添加物理机主机

添加主机到配置中

添加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模板


image.png

模板docker链接 链接:https://pan.baidu.com/s/1fBSYo_IzcRCv_bmFKmEMwA 提取码:yotd

主机链接模板


链接模板 查看主机列表 查看自动发现

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


创建监控项

查看最新数据


image.png

监测到cpu的数据


image.png

最终展示图形


image.png
上一篇下一篇

猜你喜欢

热点阅读