天天看點

zabbix監控url傳回狀态

<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,如需轉載請自行聯系原作者