通过zabbix批量监控 web url,脚本借鉴其他博友的,测试完全ok。自定义的key需要一台服务器部署,这边是放在zabbix_server端。
监控脚本如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<code># cat web_site_code_status.sh </code>
<code>#!/bin/bash </code>
<code># function:monitor tcp connect status from zabbix </code>
<code> </code>
<code>source</code> <code>/etc/bashrc</code> <code>></code><code>/dev/null</code> <code>2>&1 </code>
<code>source</code> <code>/etc/profile</code> <code>></code><code>/dev/null</code> <code>2>&1 </code>
<code>#/usr/bin/curl -o /dev/null -s -w %{http_code} http://$1/ </code>
<code>web_site_discovery () { </code>
<code>WEB_SITE=($(</code><code>cat</code> <code>/usr/local/zabbix/share/zabbix/alertscripts/WEB</code><code>.txt|</code><code>grep</code> <code>-</code><code>v</code> <code>"^#"</code><code>)) </code>
<code> </code><code>printf</code> <code>'{\n'</code>
<code> </code><code>printf</code> <code>'\t"data":[\n'</code>
<code>for</code><code>((i=0;i<${</code><code>#WEB_SITE[@]};++i)) </code>
<code>{ </code>
<code>num=$(</code><code>echo</code> <code>$((${</code><code>#WEB_SITE[@]}-1))) </code>
<code> </code><code>if</code> <code>[ </code><code>"$i"</code> <code>!= ${num} ]; </code>
<code> </code><code>then</code>
<code> </code><code>printf</code> <code>"\t\t{ \n"</code>
<code> </code><code>printf</code> <code>"\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$i]}\"},\n"</code>
<code> </code><code>else</code>
<code> </code><code>printf</code> <code>"\t\t{ \n"</code>
<code> </code><code>printf</code> <code>"\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$num]}\"}]}\n"</code>
<code> </code><code>fi</code>
<code>} </code>
<code>web_site_code () { </code>
<code>/usr/bin/curl</code> <code>-o </code><code>/dev/null</code> <code>-s -w %{http_code} http:</code><code>//</code><code>$1 </code>
<code>case</code> <code>"$1"</code> <code>in</code>
<code>web_site_discovery) </code>
<code>web_site_discovery </code>
<code>;;</code>
<code>web_site_code) </code>
<code>web_site_code $2 </code>
<code>;; </code>
<code>*) </code>
<code>echo</code> <code>"Usage:$0 {web_site_discovery|web_site_code [URL]}"</code>
<code>esac</code>
zabbix_agentd.conf文件添加如下2行:
<code>cat</code> <code>/usr/local/zabbix/etc/zabbix_agentd</code><code>.conf</code>
<code>UserParameter=web.site.discovery,</code><code>/usr/local/zabbix/share/zabbix/alertscripts/web_site_code_status</code><code>.sh web_site_discovery</code>
<code>UserParameter=web.site.code[*],</code><code>/usr/local/zabbix/share/zabbix/alertscripts/web_site_code_status</code><code>.sh web_site_code $1</code>
脚本调用的web url文件,竖列写:
<code>cat</code> <code>/usr/local/zabbix/share/zabbix/alertscripts/WEB</code><code>.txt</code>
<code>www.baidu.com</code>
<code>www.qq.com</code>
重启zabbix_agentd服务:
<code>/etc/init</code><code>.d</code><code>/zabbix_agentd</code> <code>restart</code>
通过zabbix_get去获取自定义的key:
<code>/usr/local/zabbix/bin/zabbix_get</code> <code>-p 10050 -s 10.10.254.25 -k web.site.discovery</code>
<code>/usr/local/zabbix/bin/zabbix_get</code> <code>-p 10050 -s 10.10.254.25 -k web.site.code[www.baidu.com]</code>
具体的操作过程如下:
创建发现规则:
<a href="http://s3.51cto.com/wyfs02/M00/8C/1F/wKiom1hiZLiT5hjaAABtH1yqv88328.png-wh_500x0-wm_3-wmp_4-s_2305776321.png" target="_blank"></a>
过滤配置:
<a href="http://s5.51cto.com/wyfs02/M00/8C/1B/wKioL1hiZPzTFJVMAABCl5GaZcU591.png-wh_500x0-wm_3-wmp_4-s_1284073196.png" target="_blank"></a>
监控原型:
<a href="http://s1.51cto.com/wyfs02/M00/8C/1B/wKioL1hiZXKjArk_AACLZPRiLow077.png-wh_500x0-wm_3-wmp_4-s_179193432.png" target="_blank"></a>
触发器原型:
<a href="http://s4.51cto.com/wyfs02/M02/8C/1F/wKiom1hiZarADK2iAACQTFtWQdo501.png-wh_500x0-wm_3-wmp_4-s_3299522380.png" target="_blank"></a>
本文转自青衫解衣 51CTO博客,原文链接:http://blog.51cto.com/215687833/1886671