Zabbix监控Low level discovery实时监控网站URL状态

今天我们来聊一聊Low level discovery这个功能,我们为什么要用到loe level discovery这个功能呢?

很多时候,在使用zabbix监控一些东西,需要对类似于Itens进行添加,这些items具有一些共同特性,

如果说某些特定的参数是变量,而其他设置都一样,例如:一个程序有多个端口,需要多端口进行监控并配置Itmes,还有磁盘分区,·网卡名称等等,

都是具有不确定性,如果我们配置固定的Items的话,会出现无法通用的问题,所以呢,我们需要来了解一下low level discovery这个功能

Low level discovery的key返回值是一个JSON格式(如果是自定义的话,可以通过网站验证获取的值是否为正确的JSON格式的数)

#自动发现特定的变量名称

#添加对变量的Itmes

下面我们来一个现实中的案例:

业务需求:

现在业务上用有打量的URL需要监控,形式如:http:www.xxx.com,要求URL状态不为200时发出报警

需求分析 :

具有打量的URL,且URL经常变化,需要增加URL即可完成监控

解决方案:上述提到,URL经常发生变化,但是其他状态不变,这个是够刚好可以用zabbix的low level discovery功能来实现这一需求

思路:

1)既然有大量的URL需要监控,我们可以将URL域名地址写入一个配置文件里,方便后续调用监控

2)zabbix上面没有监控URL的模板和监控项,因此只能自定义,写一个自动发现的脚本,该脚本是JSON格式:主要用于调用 URL并获取URL的状态码

3)通过 zabbix_get在server端测试能否正确获取key值(URL状态码)

4)WEB页面添加Low level discovery;创建监控模板,监控项,触发器类型以及图形等;实时监控状态码并做出相应的告警

【zabbix-agent配置文件】

# grep -vE "(#|^$)" /usr/local/zabbix/etc/zabbix_agentd.conf

LogFile=/tmp/zabbix_agentd.log
EnableRemoteCommands=0    #启用远程命令
Server=192.168.37.129
StartAgents=8
ServerActive=192.168.37.129
Hostname=192.168.37.130
Timeout=8             #超时时间改为8即可,如果server端zabbix_get测试获取键值时提示超时,可进行修改调整
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/web_site_discovery.conf     #子配置文件,还有一种方式就是直接在agent.conf配置文件中的“UserParameter=”写入对应的键值
UnsafeUserParameters=1

【自定义Low level discovery自动发现脚本】

mkdir -p /usr/local/zabbix/etc/scripts/

vim /usr/local/zabbix/etc/scripts/Web.txt   #网站URL存放文件,将我们需要的监控的域名写入该自定义配置文件中

http://www.hexun.com
http://www.baidu.com
http://www.weibo.com

vim /usr/local/zabbix/etc/scripts/web_site_code_status

#!/bin/bash
#Monitoring website domain name URL change script
#mail:[email protected]
#QQ:1261813048
#/usr/bin/curl -o /dev/null -s -w %{http_code} http://$1/
Web_SITE_discovery(){
Web_SITE=($(cat /usr/local/zabbix/etc/scripts/Web.txt | grep -v "^#"))
printf ‘{\n‘
printf ‘\t"data":[\n‘
for((i=0;i<${#Web_SITE[@]};++i))
{
num=$(echo $((${#Web_SITE[@]}-1)))
if [ "$i" != ${num} ];
then
printf "\t\t{ \n"
printf "\t\t\t\"{#SITENAME}\":\"${Web_SITE[$i]}\"},\n"
else
printf "\t\t{ \n"
printf "\t\t\t\"{#SITENAME}\":\"${Web_SITE[$num]}\"}]}\n"
fi
}
}
web_site_code (){
# /usr/bin/curl -o /dev/null -s -w %{http_code} http://$1
/usr/bin/curl -I -m 10 -o /dev/null -s -w %{http_code}"\n" http://$1
}

case "$1" in
web_site_discovery)
Web_SITE_discovery
;;
web_site_code)
web_site_code $2
;;
*)
echo "Usage:$0 {web_site_discovery |web_site_code [URL]}"
;;
esac

# chmod 755 /usr/local/zabbix/etc/scripts/web_site_code_status    #脚本权限给予755

【自定义Key值配置文件】

# vim  /usr/local/zabbix/etc/zabbix_agentd.conf.d/web_site_discovery.conf     #子配置文件,已在agent.conf配置文件中Include中引用

UserParameter=web.site.discovery,/usr/local/zabbix/etc/scripts/web_site_code_status web_site_discovery
UserParameter=web.site.code[*],/usr/local/zabbix/etc/scripts/web_site_code_status web_site_code $1

测试:

在server端·测试agent端自定的key值能否获取到?ok~从截图看出,都能获取到url域名状态码

【Web页面添加Low level discory】

1)创建自定义模板

Configuration(配置)-----Templates(模板)----Create templates(创建模板)

创建自动发现规则

创建应用集

【基于自动发现规则基础创建监控项原型】

Ps:这里的键值一定要与之对应

创建触发器类型,设置多梯度告警检测,

设置不同周期告警。3,10,15分钟三种不同的故障级别

【创建图像原型】

到目前为止,整个模板已经构建完成~如下图所示

我们将这个模板链接到某台Agent端的主机上,等待30s左右时间,我们会发现,已经存在添加的三个站点的图形 了,

原文地址:https://www.cnblogs.com/bixiaoyu/p/9375270.html

时间: 2024-12-12 18:03:43

Zabbix监控Low level discovery实时监控网站URL状态的相关文章

Zabbix监控redis多实例(low level discovery)

对于多实例部署的tomcat.redis等应用,可以利用zabbix的low level discovery功能来实现监控,减少重复操作. 注:Zabbix版本: Zabbix 3.0.2 一.服务端配置 1.创建模板 模板名称: Template_Redis_Monitor 2.创建自动发现规则 给已创建好的模板Template_Redis_Monitor添加自动发现规则. 3.添加监控项原型 从上面截图可以看到,我已经创建了4个,具体如下: 看看其中一个: 再来看看主机关联模板后的监控项:

zabbix 自定义自动发现的key! low level discovery

1 意义和目的,在这里不讨论,只讨论是实现方法 2 学习的前提,你会编写常规的key! 和理解模板,item知识 系统环境 master端: [[email protected] zabbix_agentd.conf.d]# ifconfig  eth0| sed -n 's#.*inet addr:\(.*\) B.*#\1#gp' 192.168.100.10 client端 [[email protected] zabbix]# ifconfig  eth0| sed -n 's#.*in

Zabbix自动化之low level discovery遇到的问题

前言: 话说很久都没有写Zabbix相关的文章,今天来写写Zabbix LLD使用中遇到的问题. 广而告之: 在这里告诉大家一个好消息,本人所写的<Zabbix企业级分布式监控系统>将在8月上旬发布,关注此书的朋友可以加Q群[zabbix企业级分布式监控 271659981 (可申请加入,验证码:Zabbix监控)] 原文链接为新书<Zabbix企业级分布式监控系统>所带的附件部分,托管在github上面,不定期更新更多新内容,欢迎关注,下面正文开始. {        "

Zabbix 的自动监控项目监控Nginx各hostname配置 - Low Level Discovery

Zabbix演示版本:2.4.4 涉及到的脚本语言:PHP low-level discovery的意思是"低层次的自动发现",检查lld. lld并不似因为功能简单或者不重要而被称为"低层次的",而是因为相对于服务器的自动发现,low-level discovery是针对服务器上设备的自动发现. Zabbix 原生支持针对三种(文件系统.网卡.SNMP OIDs)自动发现来配套自动添加Items.Triggers 和 Graphs等.在lld中它们被称为Item原

【8】、Low Level Discovery发现实现实时监控

环境:Centos 6.6 Zabbix自动发现WEB站点: [[email protected] ~]# tail -3 /etc/zabbix/zabbix_agentd.conf UserParameter=web.site_discovery,/etc/zabbix/scripts/discovery_web_site.sh web_site_discovery UserParameter=web.site_code[*],/etc/zabbix/scripts/discovery_we

Orabbix 监控oracle表空间 Low Level Discovery

在被监控端创建脚本,此脚本用于获取表空间及空间使用信息,此脚本由oracle用户下创建 vim mornitor_tbs.sh #!/bin/bash source /home/oracle/.bash_profile sqlplus -s zabbix/zabbix > /tmp/tablespace.log<<EOF set linesize 140 pagesize 10000 col "Status" for a10 col "Name" 

污水远程监控系统,手机+电脑实时监控

将分布在全国不同省市的污水处理现场水质及状态数据实时采集上报至公司总部数据中心,进行数据时时显示.分析.处理和存储.并配多种报警通知方式,当检测到相关现场水质数据异常,可实时通过短信预警.本系统大大方便了管理人员对分布在不同地域的污水处理系统的管理和维护,能在第一时间获取现场异常信息,提高了维护管理效率. 一.污水监测物联网系统概述   菲利科推出污水集中管控的 污水在线监测物联网系统通过在现场加装 3G 无线数据采控终端,将分布在全国不同省市的污水处理现场水质及状态数据实时采集上报至公司总部数

zabbix监控mysql的Discovery模板

环境: centos6.6 zabbix-2.4.5 mysql-5.6.24 zabbix没有自带对mysql的监控模板,网上许多模板也都是固定的监听某端口,不够灵活,如果mysql的端口很多记不清楚的话,我们就应该以lld(low level discovery)方式监控mysql. 步骤: 一.客户端 1.监控内容的json化 在客户端里,需要把监控的内容json化展示,然后服务端可以通过正则来过滤出结果.下面在是我的json监控mysql的json展示: 脚本内容如下: #Fucatio

zabbix应用之low-level discovery监控mysql

当一台服务器上MySQL有多个实例的时候,MySQL占用多个不同端口.利用zabbix的low-level discovery可以轻松监控. 思路参考:http://dl528888.blog.51cto.com/2382721/1357713 下面我写了一个简单的脚本,用于一键部署mysql监控. 一.客户端 在被监控端运行此脚本,前提条件已经安装好了zabbix agent(推荐yum安装).脚本已在CentOS6.2 x86_64环境下测试通过.脚本在附件提供下载. #!/bin/sh #