百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>服务器> zabbix自动发现监控docker stats和top状态
分享文章到:

zabbix自动发现监控docker stats和top状态

发布时间:01/15 来源: 浏览: 关键词:
下面小编来为各位介绍一篇关于zabbix自动发现监控docker stats和top状态的相关文章希望文章能够让各位理解到zabbix的一些用法哦。

dcoker监控


首先需要将docker的name拿出来,循环执行docker stats将数据拿出重新排序后数值换算追加到/tmp/下以name命名

[root@localhost scripts]# cat docker_host_status.sh
#!/bin/bash
# -------------------------------------------------------------------------------

# -------------------------------------------------------------------------------
# Notice
# After this state will docker stats reorder append to a file
# Auto Discovery docker stats Container Name --no-stream Execution time
###############################################################################
docker_name=`/usr/bin/docker ps -a|grep -v "CONTAINER ID"|awk '{print $NF}'`
for e in ${docker_name};do
        /usr/bin/docker stats $e --no-stream |awk 'NR==2{a=$1;b=$2;c=$3$4;d=$6$7;e=$9$10;f=$12$13;g=$14$15;h=$17$18;j=$8}END{print "CONTAINER "a"\n""CPU "b"\n""MEMUSAGE "c"\n""LIMIT "d"\n""NETI-0 "e"\n""NETI-1 "f"\n""BLOCKI-0 "g"\n""BLOCKI-1 "h" \n""MEM "j}' |awk -F'%' '{print $1}' |awk '{a=/GiB/?$2*1024*1024*1024:(/M[i]?B/?$2*1024*1024:(/[Kk][Bb]/?$2*1024:(/B\>/?$2*1:$2)))}{print $1,a}' > /tmp/.$e.txt
done
这个脚本需要循环执行,放在计划任务中每分钟一次

*/1 * * * * /usr/bin/sh /etc/zabbix/scripts/docker_host_status.sh
docker name自动发现脚本

[root@localhost scripts]# cat docker_name.py
#!/usr/bin/python
# -------------------------------------------------------------------------------
# Filename:    docker_name
# Revision:    1.1
# Date:        201608018
# Author:      mark
# Email:       usertzc@163.com
# Website:     www.linuxea.com
# -------------------------------------------------------------------------------
# Notice
# Automatic discovery instance name
###############################################################################
import os
import json
t=os.popen("""/usr/bin/docker ps -a|grep -v "CONTAINER ID"|awk '{print $NF}' """)
docknam = []
for dname in  t.readlines():
        r = os.path.basename(dname.strip())
        docknam += [{'{#DOCKERNAME}':r}]
print json.dumps({'data':docknam},sort_keys=True,indent=4,separators=(',',':'))
#docker UserParameter

UserParameter=docker_status,/etc/zabbix/scripts/docker_name.py
UserParameter=docker_server[*],/usr/bin/docker top "$1"|grep "$2"|grep -v root |wc -l
UserParameter=docker_host[*],awk '/$2\>/{print $$2}' /tmp/."$1".txt
这里需要注意的是,docker默认是用root运行的,在使用docker ps 或者docker stats都需要和docker一样的用户,我在这里修改了配置文件,将zabbix-agent改为root运行,zabbix-agent的防火墙规则需要指点ip和端口到zabbix-server,请知悉
AllowRoot=1
User=root

另外,发现其他服务,可能需要手动添加

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有7人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板