天天看點

zabbix 自定義自動發現的key! low level discovery

1 意義和目的,在這裡不讨論,隻讨論是實作方法

2 學習的前提,你會編寫正常的key! 和了解模闆,item知識

系統環境

master端:

<code>[root@master zabbix_agentd.conf.d]</code><code># ifconfig  eth0| sed -n 's#.*inet addr:\(.*\) B.*#\1#gp'</code>

<code>192.168.100.10</code>

<code>client端</code>

<code>[root@slave zabbix]</code><code># ifconfig  eth0| sed -n 's#.*inet addr:\(.*\) B.*#\1#gp' </code>

<code>192.168.100.13</code>

分兩塊,zabbix-server 的web界面 進行建立,和agent端腳本實作

<code>[root@slave ~]</code><code># grep -i "Include" /etc/zabbix/zabbix_agentd.conf | egrep -v "^#|^$"</code>

<code>Include=</code><code>/etc/zabbix/zabbix_agentd</code><code>.conf.d/</code>

<code>[root@slave ~]</code><code># cat /etc/zabbix/zabbix_agentd.conf.d/web_site_discovery.conf </code>

<code>#web sitec code</code>

<code>UserParameter = web.site.discovery, python </code><code>/etc/zabbix/scripts/web_site_code_status</code><code>.py</code>

<code>UserParameter = </code><code>test</code><code>.</code><code>test</code><code>, sh </code><code>/etc/zabbix/scripts/test</code><code>.sh</code>

<code>UserParameter= web.site.code[*], sh </code><code>/etc/zabbix/scripts/check_web_code</code><code>.sh $1</code>

<code>[root@slave ~]</code><code>#</code>

第一步、在agent上看如何寫自動發現的key,web.site.discovery 腳本

<code>[root</code><code>@slave</code> <code>~]</code><code># cat /etc/zabbix/scripts/web_site_code_status.py</code>

<code>#!/usr/bin/env python</code>

<code>#encoding=utf8</code>

<code>import os</code>

<code>import json</code>

<code>r = file(</code><code>'/etc/zabbix/scripts/web.txt'</code><code>)</code>

<code>devices = []</code>

<code>for</code> <code>f </code><code>in</code> <code>r.readlines():</code>

<code>    </code><code>devices.append({</code><code>"{#SITENAME}"</code><code>: f.strip()})</code>

<code>print json.dumps({</code><code>'data'</code><code>: devices}, sort_keys=True, indent=</code><code>4</code><code>)</code>

<code>[root@slave ~]</code><code># cat /etc/zabbix/scripts/web.txt </code>

<code>www.baidu.com</code>

<code>www.sina.com.cn</code>

<code>www.pingan.com.cn</code>

<code>www.weibo.com</code>

zabbix中low level discovery 的key的傳回值是一個Json格式。且格式一定要如下k/v

<code>[root@slave ~]</code><code># python /etc/zabbix/scripts/web_site_code_status.py</code>

<code>{</code>

<code>    </code><code>"data"</code><code>: [</code>

<code>        </code><code>{</code>

<code>            </code><code>"{#SITENAME}"</code><code>: </code><code>"www.baidu.com"</code>

<code>        </code><code>}, </code>

<code>            </code><code>"{#SITENAME}"</code><code>: </code><code>"www.sina.com.cn"</code>

<code>            </code><code>"{#SITENAME}"</code><code>: </code><code>"www.pingan.com.cn"</code>

<code>            </code><code>"{#SITENAME}"</code><code>: </code><code>"www.weibo.com"</code>

<code>        </code><code>}</code>

<code>    </code><code>]</code>

<code>}</code>

驗證在master上使用zabbix-get 測試是否這個key有效

<code>[root@master zabbix_agentd.conf.d]</code><code># /usr/local/zabbix/bin/zabbix_get -s 192.168.100.13 -k web.site.discovery</code>

根據上面,值,這個key已經生效!

第二步,在master的web端界面上建立一個自動發現(在你需要的模闆上建立)

a.

<a href="http://s1.51cto.com/wyfs02/M02/7F/3F/wKioL1cXk9_BJNj2AABpgbAarUA790.png" target="_blank"></a>

b. 在建立一個自動發現的item(注意區分其他正常的item)

<a href="http://s3.51cto.com/wyfs02/M01/7F/42/wKiom1cXlHrjgpL-AABqVKJbces515.png" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/7F/42/wKiom1cXlHvw0FErAACMPMMuzAQ406.png" target="_blank"></a>

呈現的狀态:

<a href="http://s1.51cto.com/wyfs02/M02/7F/3F/wKioL1cXlhyhNJXIAABebkCfFxc352.png" target="_blank"></a>

第三步、把agent這台主機關聯到這個模闆上(這個你因該要懂得操作)

這個主機的itme中會出現

<a href="http://s1.51cto.com/wyfs02/M00/7F/3F/wKioL1cXlaPBmLnGAABHWLxjyLY498.png" target="_blank"></a>

本文轉自殘劍部落格51CTO部落格,原文連結http://blog.51cto.com/cuidehua/1766027如需轉載請自行聯系原作者

cuizhiliang