“Zabbix通过Python/Shell对HTTP服务状态的监控”的版本间的差异

来自linux中国网wiki
跳到导航 跳到搜索
(创建页面,内容为“=py脚本= ==py2版本== <pre> #!/usr/bin/python # -*- coding: utf-8 -*- #mon.web.py import urllib2 import sys def monitor_http(url): response = None try:…”)
 
第33行: 第33行:
 
#就判 404吧  
 
#就判 404吧  
  
# zabbix agin
 
#UserParameter=mon.web[*],/data/mon/mon.web.py $1
 
  
 
#UserParameter=mon.web[*],/data/app/zabbix/bin/monitor_http.py $1
 
#UserParameter=mon.web[*],/data/app/zabbix/bin/monitor_http.py $1
第40行: 第38行:
  
 
</pre>
 
</pre>
 +
 +
==py3版本脚本==
 +
 +
 +
=整合到Zabbix=
 +
 +
==首先在ZabbixAgent配置文件中配置一条UserParameter==
 +
<pre>
 +
# zabbix client
 +
UserParameter=mon.web[*],/data/mon/mon.web.py $1
 +
</pre>
 +
==然后配置item:==
 +
<pre>
 +
 +
名 api status code
 +
键值  mon.web[http://market-api.cailuw.com]
 +
 +
 +
</pre>
 +
 +
==接下来配置一个Trigger:==
 +
<pre>
 +
 +
 +
</pre>
 +
 +
on zbx server
 +
 +
[root@mail ~]# zabbix_get  -s 10.3.10.143  -k "mon.web[http://market-api.cailuw.com]"
 +
404

2020年4月9日 (四) 07:08的版本

py脚本

py2版本

#!/usr/bin/python
# -*- coding: utf-8 -*-
#mon.web.py

import urllib2
import sys

def monitor_http(url):
    response = None
    try:
        response = urllib2.urlopen(url,timeout=5)
        #print response.info() # header
        print response.getcode()
    except urllib2.URLError as e:
        if hasattr(e, 'code'):
            print e.code
        elif hasattr(e, 'reason'):
            print e.reason

    finally:
        if response:
            response.close()

url = sys.argv[1]

monitor_http(url)

#usage python2 1.py  'http://www.baidu.com'

#就判 404吧 


#UserParameter=mon.web[*],/data/app/zabbix/bin/monitor_http.py $1


py3版本脚本

整合到Zabbix

首先在ZabbixAgent配置文件中配置一条UserParameter

# zabbix client
UserParameter=mon.web[*],/data/mon/mon.web.py $1

然后配置item:


名 api status code
键值  mon.web[http://market-api.cailuw.com]


接下来配置一个Trigger:



on zbx server

[root@mail ~]# zabbix_get -s 10.3.10.143 -k "mon.web[1]" 404