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监控就完成了
器上的所有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监控就完成了
相关文章推荐
- 利用zabbix web scenario 监控Web站点的可用性
- 使用python写一个监控mysql的脚本,在zabbix web上加上模板
- zabbix利用lld监控memcached
- 【zabbix】利用LLD自动发现功能监控多Tomcat实例
- 自动化运维之监控篇---利用zabbix自动发现功能实现批量web url监控
- 11、利用Zabbix监控Web性能和可用性
- 【zabbix】利用LLD自动发现功能监控多Memcached实例
- 【zabbix】利用LLD自动发现功能监控多Redis实例
- 利用adsutil.vbs脚本创建自定义web站点
- python 3 对dns负载均衡环境下的web服务器的监控脚本
- 利用VBS脚本监控CPU,实现邮件报警
- 利用脚本监控某进程
- 基于ubuntu10之利用脚本帮你完成监控任务
- 利用shell脚本来监控linux系统
- 案例:本地脚本监控web容器
- 利用shell脚本监控网站状态
- linux下利用curl监控web应用状态
- 利用shell脚本来监控linux系统的内存 推荐
- PostgreSQL 监控脚本[from zabbix.org]
- 利用shell脚本监控网站状态 推荐