文章目录

  • 一、简介
    • 1、什么叫低级自动发现DDL?
    • 2、实现原理及其流程
  • 二、获取变量名称
    • 1、设置获取变量名脚本
    • 2、添加监控key
    • 3、添加自动发现规则
  • 三、添加监控项
    • 1、添加监控项
    • 2、设置监控项原型
  • 测试:

一、简介

1、什么叫低级自动发现DDL?

我们都知道zabbix可以通过写脚本来监控一切自己想要监控的东西,但当你想要监控项是灵活的会自增自减时,就可以使用低级自动发现解决这个问题。

例如:可以自动发现你有几块网卡相对应的网卡名称,此文档是已监控docker容器为例子,可以监控自增的docker容器。

官方解释

2、实现原理及其流程

  • 实现原理:

  • 首先需要一个脚本来获取需监控的变量

  • 写一个脚本来获取变量名称

  • 创建一个 自动发现规则 来获取变量名称(操作跟新增脚本监控项一致)。

  • 再监控项内使用这种格式 {#DOCKERNAME} 的变量名称。

二、获取变量名称

1、设置获取变量名脚本

以获取docker容器名称为例子,参考一下shell脚本:

#!/bin/bashname=($(sudo docker ps -a|grep -v "CONTAINER ID"|awk '{print $NF}'))
printf '{'
printf '"data":['
for key in ${!name[@]}
do
if [[ "${#name[@]}" -gt 1 && "${key}" -ne "$((${#name[@]}-1))" ]];then
printf '{'
printf "\"{#DOCKERNAME}\":\"${name[${key}]}\"},"
else [[ "${key}" -eq "((${#name[@]}-1))" ]]
printf '{'
printf "\"{#DOCKERNAME}\":\"${name[${key}]}\"}"
fi
done
printf ']'
printf '}\n'

docker 容器的状态:

运行脚本获得的参数:

[root@zabbix-server1 ~]# ./docker_discovery2.sh
{"data":[{"{#DOCKERNAME}":"pedantic_faraday"},{"{#DOCKERNAME}":"objective_payne"},{"{#DOCKERNAME}":"crazy_clarke"},{"{#DOCKERNAME}":"sharp_snyder"}]}

注释:此脚本使用awk剪切docker容器的名称,再以字典的形式输出,必须要以这种格式 {“data”:[{"{#DOCKERNAME}":“变量”}]}

2、添加监控key

添加监控值:


[root@zabbix-server1 ~]# vi /etc/zabbix/zabbix_agentd.d/docker.conf
UserParameter=docker.discovery,sh /etc/zabbix/scripts/discover.sh

测试取值
注意:确保zabbix可以运行此脚本,可以使用 su -s 来测试,运行docker命令想要加入docker组,这里我加入了sudo 权限给zabbix。

[root@zabbix-server1 ~]# vi /etc/sudoers
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
zabbix  ALL=NOPASSWD: ALL[root@zabbix-server1 ~]# su -s '/bin/bash' -c "/etc/zabbix/scripts/discover.sh" zabbix

此命令是使用zabbix用户来运行次脚本的意思。

使用zabbix_get 测试是否取值成功

[root@zabbix-server1 ~]# zabbix_get -s 192.168.2.66 -k docker.discovery
{"data":[{"{#DOCKERNAME}":"priceless_snyder"},{"{#DOCKERNAME}":"heuristic_jones"},{"{#DOCKERNAME}":"pedantic_faraday"},{"{#DOCKERNAME}":"objective_payne"},{"{#DOCKERNAME}":"crazy_clarke"},{"{#DOCKERNAME}":"sharp_snyder"}]}

3、添加自动发现规则

为什么添加自动发现规则?
因为这个自动发现规则会生成变量,可以在后面使用到。

三、添加监控项

1、添加监控项

到这一步才是真正的添加你想要的监控项
获取docker的状态:

[root@zabbix-server1 zabbix_agentd.d]# vi /etc/zabbix/zabbix_agentd.d/docker.conf UserParameter=docker-status[*],sudo docker inspect $1|grep Status|cut -d'"' -f 4#测试一下获取数据
[root@zabbix-server1 zabbix_agentd.d]# zabbix_get -s 192.168.2.1 -k docker-status["docker_name"]

2、设置监控项原型


测试:

成功后的截图:

在启动一个docker:

监控自动添加:

至此教学全部完毕,操作还是比较简单的,可以通过这种方法实现监控项的自动发现

zabbix低级自动发现(DDL)相关推荐

  1. zabbix学习4: 监控Java原理-zabbix性能优化-低级自动发现-zabbix api

    文章目录 20: zabbix监控java jvm原理 21: zabbix性能优化 22: zabbix低级自动发现 23: zabbix api 20: zabbix监控java jvm原理 to ...

  2. zabbix通过自动发现功能实现自动识别网络设备接口

    可是现在公司上线了一大批网络设备,如果要每个网络设备都做模板,添加item......那就该废了,于是迫于压力今天来测试使用zabbix的自动发现功能实现自动发现网络设备接口,并且自动获取接口的流量值 ...

  3. Zabbix通过自动发现监控端口

    安装环境 Zabbix server和agent通过编译方式安装在服务器192.168.25.106上.Zabbix server/agent的安装目录为:/usr/local/zabbix. 创建脚 ...

  4. zabbix无法自动发现并监测华为AR路由器设备温度的解决办法

    使用zabbix的Template Net Huawei VRP SNMPv2模板(zabbix6.2的华为监测模板为Huawei VRP SNMP)监测华为交换机和路由器的状态,在使用中发现自动发现 ...

  5. zabbix 监控项自动发现过滤_通过Zabbix的自动发现(规则)自动创建监控项

    下图是一个已配置并启用的自动发现规则: 应用到165.194这个主机后,自动发现的监控项: 服务端配置创建Template 创建Discovery rule 键值readPorts跟被监控端配置的参数 ...

  6. Zabbix 神器——自动发现

    1.添加搜索范围: 系统配置--自动发现--Create discovery rule 名称:就是一个规则的名字而已 IP地址段:就是这个规则搜索的IP段 Delay:搜索间隔,就是隔多久搜索一次 C ...

  7. Zabbix的自动发现

    Zabbix自动发现是通过(1)网络扫描或(2)代理主动发现实现监控.本文主要介绍网络扫描的发现方式,并深入介绍底层监控项的主动发现功能. 网络发现(Discovery) 对于网络发现最需要理解的就是 ...

  8. zabbix怎么显示服务器流量,用zabbix的自动发现来获取交换机路由器等接口流量信息...

    前言 笔者之前一直用zabbix监控服务器的各项状态,最近老板交待一项新工作,监控类似交换机.路由器之类的网络设备的接口流量.老板的要求就是职工的需求,立即开始监控准备工作.为了统一管理,决定还是使用 ...

  9. zabbix snmp 自动发现、自定义自动发现规则和监控项原型实现原理

    自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法. 例如,Zabbix可以在你的机器上自动开始监控文件系统或网络接口,而无需为每个文件系统或网络接口手动创建监控项:还 ...

最新文章

  1. 直播 | 顾险峰教授讲座:对抗生成网络的几何理论解释
  2. APP投资 历史 十万到 十亿元的项目
  3. 【Windows 逆向】内存地址分析 ( 动态地址 | 静态地址 | 偏移量 )
  4. 数据扩展性探讨和总结--转
  5. 打破气球所能获得的最大积分 Burst Balloons
  6. Memcached学习---(3)Windows 下安装 Memcached
  7. AD19 add pins to nets错误_NGINX 502 Bad Gateway错误疑难解答
  8. pyqt5 getsavefilename 默认文件名_经Jerry编程小课堂之python如何安装PyQt5和QT Designer...
  9. 通过draggable实现布局_营销推广引流之百度霸屏内容详解 如何通过百度霸屏布局实现立体打法!...
  10. [第五组] 典型用户 +用例+功能说明书+技术说明书 2017.07.25版
  11. Win10x64安装Dolby
  12. mongoose时间自动转化为格林尼治标准时间的解决方案
  13. 食品生产设备用什么清洗消毒效果比较好?
  14. 知乎收藏数最高的1000个回答
  15. 【4. 扫描节点】 分布式漏洞扫描系统设计与实现
  16. mysql原理、索引、优化-【公司内部培训】
  17. Oracle修改数据库db_name
  18. php上传txt文件读取乱码
  19. 各种泵的图形符号_定量泵的图形符号
  20. 「UG/NX」Block UI RGB 颜色拾取器RGBColorPicker

热门文章

  1. java如何输出一个竖线_关于java:使用竖线字符(“|”)拆分字符串
  2. HTTPS 防范中间人攻击原理
  3. COMFORT 酒店 | 广州四季酒店溢彩闪耀节日颂
  4. C语言Python语言打印 ascii 表 乱码的原因,出现问号,无法打印心形
  5. mysql 同步 es_mysql数据实时同步到Elasticsearch
  6. css常用效果总结,《CSS揭秘》-总结47个Css技巧(三):视觉效果
  7. 易邮件群发大师 v3.00.505 免费
  8. python实验收获和反思_反思总结收获前行
  9. Samsung/三星I8558 Galaxy Win root教程_方法
  10. 转 码农提高工作效率