天天看点

zabbix 批量web url监控

通过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>&gt;</code><code>/dev/null</code> <code>2&gt;&amp;1 </code>

<code>source</code> <code>/etc/profile</code>  <code>&gt;</code><code>/dev/null</code> <code>2&gt;&amp;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&lt;${</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