概述

自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法。例如,Zabbix可以在你的机器上自动开始监控文件系统或网络接口,而无需为每个文件系统或网络接口手动创建监控项。此外,可以配置Zabbix根据定期执行发现后的得到实际结果,来移除不需要的监控项。

上面是官方的解释,简单来说就是创建规则自动发现主机上的不确定数量的items,例如,我们要监控主机上的cpu 使用情况,但是问题来了,主机的cpu 数量每个主机可以不一样,有的8核,有的16核,这时候我们可能就要建立自动发现的规则了,让程序自动发现主机上的cpu 核心数,然后自动监控,并绘图。

实例:

创建web 监控,让主机自动监控我们网站,如果我们有一百个或者上千个url,这时不用一个个的去页面添加,可以让zabbix 自动为我们添加

1.配置zabbix-agent.conf

UnsafeUserParameters=1   
Include=/etc/zabbix/zabbix_agentd.d/      #放置用户自定义监控脚本

2.配置监控脚本

vim /etc/zabbix/zabbix_agentd.d/url_monitor.conf

UserParameter=url.discover,bash /etc/zabbix/LLD/discover.sh          #uri自动发现,用于自动发现我们的url,我们的url可以写到文件里,也可以取指定的地方获取,这里我们为了简单,就直接脚本中返回过去了。
UserParameter=url.monitor[*],bash /etc/zabbix/LLD/monitor.sh $1    #监控具体的uri是否可以访问。

note:

上面的那个discover.sh  脚本做的事情其实就是自动发现url ,然后返回一个json ,形如:

{"data":[{"{#URI}":"http://www.baidu.com"},{"{#URI}":"http://www.qq.com"},{"{#URI}":"http://www.sina.com"}]}

#大致的原理就是利用我们自己提供的脚本发现机器上的监控项然后zabbix server 收到后将这些值赋给我们指定的macro ,在本例中时赋值给  URI,然后zabbix 在将取到的值一个个的传到我们的monitor.sh 脚本中,用户监控具体的itmes。

vim /etc/zabbix/LLD/monitor.sh                    #监控具体的url,如果成功访问就返回1,失败就返回0,用于页面绘图,脚本中的 $1 其实就是上面discover.sh 这个脚本返回的值,比如;www.baidu.com  , www.qq.com,  www.sina.com

#!/bin/bash
curl $1 > /dev/null 2>&1
if [[ $? == 0 ]]
then
echo 1
else
echo 0
fi

编辑好后重启zabbix-agentd

########接下来就是web 页面的操作:

1.创建自动发现规则:

configuration  --->>  templates   --->>  template os linux   --->>  discover rules  --->> create discovery rule

2.创建item 的具体监控方式(上面第一步相当于只是获取到了主机上的具体itme 项名称,而这里时具体怎样去监控上一步发现到的item)

configuration  --->>  templates   --->>  template os linux   --->>  discover rules  --->> create discovery rule

3.根据发现到的itme 自动创建图形:

####查看获取到的图像:

点击对应的主机,可以看到已经自动发现了我们的url

到此,我们就可以利用lld自动发现我们的itmes 并应用对应的itme 绘制图形,当然还可以创建触发器触发对应的告警等功能

最新文章

  1. 基于 Angularjs&Node.js 云编辑器架构设计及开发实践
  2. 跟我从零基础学习Unity3D开发--资源打包篇(AssetBundle)
  3. HTML 事件处理
  4. 支持向量机(SVM)算法
  5. multiprocessing跨平台锁的使用(Windows问题)
  6. QNX 线程 调度策略 优先级 时钟频率 同步
  7. Python基础篇-day3
  8. mybatis-java代码调用部分
  9. 深度解析Java内存原型
  10. 【JVM】-NO.110.JVM.1 -【JDK11 HashMap详解】
  11. webpack打包去掉console.log打印与debugger调试
  12. mysql sysbench基准测试
  13. Java案例:超市库存管理系统
  14. select.select的使用注意事项
  15. gulp 系统教程
  16. PHP中new static()与new self()的区别异同
  17. mysql数据库 批量替换 某字段中的数据
  18. 160617、使用espeak将文字转语音(TTS)
  19. Storm的StreamID使用样例(版本1.0.2)
  20. Stars in Your Window(线段树求最大矩形交)

热门文章

  1. wamp64显示黄色图标不能忍
  2. EasyDSS高性能RTMP/FLV/HLS(m3u8)/RTSP流媒体服务器技术的HTTP QueryString URL的C++实现方案
  3. springboot:redis反序列化发生类型转换错误
  4. jQuery hashchange监听浏览器url变化
  5. 【linux学习笔记七】关机重启命令
  6. [LeetCode] 543. Diameter of Binary Tree 二叉树的直径
  7. charles安装和使用(转)
  8. 【视频开发】ffmpeg 的编译选项
  9. 【转帖】MySQL用得好好的,为什么要转ES?
  10. Netty 基本原理