<code>cd </code><code>/</code><code>usr</code><code>/</code><code>local</code><code>/</code><code>zabbix</code><code>/</code><code>bin</code>
<code>[root@xx </code><code>bin</code><code>]</code><code># cat warn_web.py</code>
<code>#!/usr/bin/env python</code>
<code># -*- coding: utf-8 -*-</code>
<code>import</code> <code>subprocess</code>
<code>import</code> <code>json</code>
<code>args </code><code>=</code> <code>'''awk -F' ' '{print $1}' /usr/local/zabbix/scripts/warn.txt'''</code>
<code>t </code><code>=</code> <code>subprocess.Popen(args, shell</code><code>=</code><code>True</code><code>, stdout</code><code>=</code><code>subprocess.PIPE).communicate()[</code><code>0</code><code>]</code>
<code>lwarns </code><code>=</code> <code>[]</code>
<code>for</code> <code>mongo </code><code>in</code> <code>t.split(</code><code>'\n'</code><code>):</code>
<code> </code><code>if</code> <code>len</code><code>(mongo) !</code><code>=</code> <code>0</code><code>:</code>
<code> </code><code>lwarns.append({</code><code>'{#WARN_HOST}'</code><code>: mongo})</code>
<code>print</code> <code>json.dumps({</code><code>'data'</code><code>: lwarns}, indent</code><code>=</code><code>4</code><code>, separators</code><code>=</code><code>(</code><code>','</code><code>, </code><code>':'</code><code>))</code>
<code>[root@jk </code><code>bin</code><code>]</code><code># cat warn_monitor.py </code>
<code>import</code> <code>urllib2,sys</code>
<code>if</code> <code>len</code><code>(sys.argv) </code><code>=</code><code>=</code> <code>2</code><code>:</code>
<code> </code><code>argv1 </code><code>=</code> <code>sys.argv[</code><code>1</code><code>]</code>
<code>def</code> <code>http_get():</code>
<code> </code><code>url </code><code>=</code> <code>argv1 </code><code># 頁面的位址</code>
<code> </code><code>response </code><code>=</code> <code>urllib2.urlopen(url) </code><code># 調用urllib2向伺服器發送get請求</code>
<code> </code><code>return</code> <code>response.read() </code><code># 擷取伺服器傳回的頁面資訊</code>
<code>ret </code><code>=</code> <code>http_get()</code>
<code>retj</code><code>=</code><code>json.loads(ret)</code>
<code>if</code> <code>retj[</code><code>'action'</code><code>] </code><code>=</code><code>=</code> <code>"NONE"</code><code>:</code>
<code> </code><code>print</code> <code>0</code>
<code>else</code><code>:</code>
<code> </code><code>print</code> <code>1</code>
<code>cat </code><code>/</code><code>usr</code><code>/</code><code>local</code><code>/</code><code>zabbix</code><code>/</code><code>etc</code><code>/</code><code>zabbix_agentd.conf.d</code>
<code>[root@xx zabbix_agentd.conf.d]</code><code># cat warn_status.conf </code>
<code>UserParameter</code><code>=</code><code>get_warn_name,</code><code>/</code><code>usr</code><code>/</code><code>local</code><code>/</code><code>zabbix</code><code>/</code><code>bin</code><code>/</code><code>warn_web.py</code>
<code>UserParameter</code><code>=</code><code>get_warn_status[</code><code>*</code><code>],</code><code>/</code><code>usr</code><code>/</code><code>local</code><code>/</code><code>zabbix</code><code>/</code><code>bin</code><code>/</code><code>warn_monitor.py $</code><code>1</code>
簡單判斷。
本文轉自 liqius 51CTO部落格,原文連結:http://blog.51cto.com/szgb17/1928643,如需轉載請自行聯系原作者