zabbix--docker 監(jiān)控

docker是一個進程,所以即使拉取的centos鏡像也不應該在安裝docker服務,所以這里監(jiān)控的是宿主機上的所有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監(jiān)控到

vim /etc/zabbix/zabbix_agentd.conf
#先備份原始的
Server=172.17.0.2    ---zabbix_server 的ip地址
ServerActive=172.17.0.2    ---客戶端主動提交信息 和上面的保持一致
Hostname=localhost         ---客戶端的主機名,宿主機的主機名

將zabbix用戶加入到docker組里面 使得zabbix服務可以執(zhí)行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()

修改腳本權限 獲得執(zhí)行權限

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

主機鏈接模板


鏈接模板
查看主機列表
查看自動發(fā)現(xiàn)

使用自定義鍵值對創(chuàng)建監(jiān)控項


創(chuàng)建監(jiān)控項

查看最新數(shù)據(jù)


image.png

監(jiān)測到cpu的數(shù)據(jù)


image.png

最終展示圖形


image.png
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容