您的位置:首页 > 运维架构

zabbix利用脚本和lld监控web

2014-08-11 09:47 537 查看
zabbix实现对web的监控有两种方式实现,一种是自带的web scenarios,基本能够实现大部分web监控的需求,但是方便简易性差很多;另一种是利用脚本+lld,可以实现任一机

器上的所有url监控,我们只需手动添加要监控的url,再加上zabbix模版的功能,就能够轻而易举的应用到所需要的监控的服务器上。

首先要感线itnihao童鞋提供的这种方式,博客地址为/article/4292667.html

1.zabbix客户端配置

vim /etc/zabbix/zabbix_agent.conf

Include=/etc/zabbix/zabbix_agentd.conf

UnsafeUserParameters=1

允许用户使用自定义的参数进行传递

2.脚本及参数

[root@localhost zabbix]# tree

.

├── monitor_scripts

│ ├── discovertcpport.sh

│ ├── web_site_code_status.sh

│ └── WEB.txt

├── zabbix_agentd.conf

└── zabbix_agentd.d

├── userparameter_mysql.conf

└── web_site_discovery.conf

(1)zabbix传递参数及配置文件

[root@localhost zabbix]# cat zabbix_agentd.d/web_site_discovery.conf

UserParameter=web.site.discovery,/etc/zabbix/monitor_scripts/web_site_code_status.sh web_site_discovery

UserParameter=web.site.code[*],/etc/zabbix/monitor_scripts/web_site_code_status.sh web_site_code $1

(2)zabbix自动监控脚本

[root@localhost zabbix]# cat monitor_scripts/web_site_code_status.sh

#!/bin/bash

#function:monitor web site code status from zabbix

WEB_SITE_discovery(){

WEB_SITE=($(cat /etc/zabbix/monitor_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
}

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

(3)需要监控的url在WEB.TXT中

[root@localhost zabbix]# cat monitor_scripts/WEB.txt

s1.xd.com/Default.aspx

s2.xd.com/Default.aspx

3.在zabbix服务端进行监控测试

[root@83 yum.repos.d]# /usr/bin/zabbix_get -s 192.168.1.211 -p 10050 -k web.site.code[s1.xd.com/Default.aspx]

200

[root@83 yum.repos.d]# /usr/bin/zabbix_get -s 192.168.1.211 -p 10050 -k web.site.discovery

{

"data":[

{

"{#SITENAME}":"s1.xd.com/Default.aspx"},

{

"{#SITENAME}":"s2.xd.com/Default.aspx"}]}

测试成功

4.下面我们来配置下discovery模版,配好后直接应用到服务器即可。

(1)创建模版,并应用到需要监控的服务器上





(2)在新建的Template Web Monitor模版的Application中创建新应用



(3)在在新建的Template Web Monitor模版的Discovery rules中创建新rule



(4)在新建的web.site.discovery中创建Item porototyoed





(5)在新建的web.site.discovery中创建Trigger porotypes,此处设置为状态码大于399就报警。





ok,配置完后我们的web url监控就完成了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: