One:
650) this.width=650; "src=" http://s3.51cto.com/wyfs02/M01/76/24/wKiom1ZLJ6PhCARDAAUWs8pXNuc408.jpg "style=" float: none; "title=" 1sunday.jpg "alt=" Wkiom1zlj6phcardaauws8pxnuc408.jpg "/>
650) this.width=650; "src=" http://s3.51cto.com/wyfs02/M02/76/21/wKioL1ZLJ_nDj1jwAATQJ4Tmzok200.jpg "style=" float: none; "title=" 1qqtime.jpg "alt=" Wkiol1zlj_ndj1jwaatqj4tmzok200.jpg "/>
650) this.width=650; "src=" http://s3.51cto.com/wyfs02/M02/76/24/wKiom1ZLJ6uyjgZoAARuTXFk0S0881.jpg "style=" float: none; "title=" 1qqtime1.jpg "alt=" Wkiom1zlj6uyjgzoaarutxfk0s0881.jpg "/>
650) this.width=650; "src=" http://s1.51cto.com/wyfs02/M01/76/24/wKiom1ZLJ7PjdgwKAAXhCOMawWo018.jpg "style=" float: none; "title=" 1time.jpg "alt=" Wkiom1zlj7pjdgwkaaxhcomawwo018.jpg "/>
Ii. Description of requirements:
Recently needs to the node to the source station, the office environment Access Business Platform website Quality and the office network Line quality monitoring, the simple ping can detect some things, but the HTTP request examination also must carry on, therefore studied the next pycurl.
Pycurl is a C language written by the Libcurl Python binding library. Libcurl is a free and easy-to-use URL transfer library that is used in the client. It's very powerful, and Pycurl is a very fast (reference multi-concurrency operation) and rich full-featured, but somewhat complex interface.
Third, Python script:
1. Writing httptime.py Scripts
Command VI zabbix_agentd.conf.d/httptime.py
#!/usr/bin/python
# Coding:utf-8
Import Pycurl
Import Sys
Import OS
Import JSON
Class Test:
def __init__ (self):
self.contents = ' '
def body_callback (SELF,BUF):
self.contents = self.contents + buf
def web_performance (Input_url,mykey):
t = Test ()
c = Pycurl. Curl ()
C.setopt (Pycurl. Writefunction,t.body_callback)
C.setopt (Pycurl. ENCODING, ' gzip ')
C.setopt (Pycurl. Url,input_url)
C.perform ()
if MyKey = = "Namelookup_time":
#DNS解析时间ms
Namelookup_time = C.getinfo (c.namelookup_time)
Print "%.2f"% (namelookup_time*1000)
#return MyKey
elif MyKey = = "Connect_time":
#建立连接时间ms
Connect_time = C.getinfo (c.connect_time)
Print "%.2f"% (connect_time*1000)
#return MyKey
elif MyKey = = "Pretransfer_time":
#准备传输时间ms
Pretransfer_time = C.getinfo (c.pretransfer_time)
Print "%.2f"% (pretransfer_time*1000)
#return MyKey
elif MyKey = = "Starttransfer_time":
#传输开始时间ms
Starttransfer_time = C.getinfo (c.starttransfer_time)
Print "%.2f"% (starttransfer_time*1000)
#return MyKey
elif MyKey = = "Total_time":
#传输结束总时间ms
Total_time = C.getinfo (c.total_time)
Print "%.2f"% (total_time*1000)
#return MyKey
elif MyKey = = "Size_download":
#下载数据包大小bytes/S
Size_download = C.getinfo (c.size_download)
Print "%d"% (size_download)
#return MyKey
elif MyKey = = "Header_size":
#HTTP头部大小bytes
Header_size = C.getinfo (c.header_size)
Print "%d"% (header_size)
#return MyKey
elif MyKey = = "Speed_download":
#平均下载速度bytes/S
Speed_download=c.getinfo (C.speed_download)
Print "%d"% (speed_download)
#return MyKey
Def web_discovery ():
Website = [' www.qq.com ', ' www.sina.com ', ' sunday208.blog.51cto.com '];
devices = []
For Devpath in website:
device = Os.path.basename (Devpath)
Devices + = [{' {#SITENAME} ':d Evice}]
Print json.dumps ({' Data ':d evices},sort_keys=true,indent=7,separators= (', ', ': '))
if __name__ = = ' __main__ ':
If sys.argv[1] = = "Web_discovery":
Web_discovery ()
If sys.argv[1] = = "Web_performance":
Input_url = sys.argv[2]
MyKey = sys.argv[3]
Web_performance (Input_url,mykey)
2. Plus Execute permissions:
Command chmod +x zabbix_agentd.conf.d/httptime.py
3. Apply to Zabbix Client configuration:
Command Tail-1 zabbix_agentd.conf
userparameter=http_curl[*],python/opt/soft/zabbix/etc/zabbix_agentd.conf.d/httptime.py $ $
4. Restart the Zabbix client:
/etc/init.d/zabbix_agentd restart
5, the service side test:
The command is as follows:
Zabbix_get-s 192.168.2.32-p 10050-k "Http_curl[web_discovery]"
Zabbix_get-s 192.168.2.32-p 10050-k "Http_curl[web_performance,www.qq.com,total_time]"
650) this.width=650; "src=" Http://s1.51cto.com/wyfs02/M02/76/22/wKioL1ZLKFnRpd7cAAEtnacA3n4791.jpg "title=" 3zabbix_server_t.jpg "alt=" Wkiol1zlkfnrpd7caaetnaca3n4791.jpg "/>
Iv. Web Interface configuration:
1. After downloading the attachment template file (Web Access quality monitoring. xml), import it into Zabbix.
650) this.width=650; "src=" http://s1.51cto.com/wyfs02/M00/76/22/wKioL1ZLKG3D2EsyAAGaRlQvMlU749.jpg "title=" 4web_ 1.jpg "alt=" Wkiol1zlkg3d2esyaagarlqvmlu749.jpg "/>
2, the relevant configuration items in the template display:
650) this.width=650; "src=" http://s4.51cto.com/wyfs02/M01/76/22/wKioL1ZLKKDjsOy3AAIgaUD6vKs253.jpg "style=" float: none; "title=" 4web_2.jpg "alt=" Wkiol1zlkkdjsoy3aaigaud6vks253.jpg "/>
650) this.width=650; "src=" http://s2.51cto.com/wyfs02/M01/76/24/wKiom1ZLKFLhS_BzAAVVAZNWDHQ062.jpg "style=" float: none; "title=" 4web_3.jpg "alt=" Wkiom1zlkflhs_bzaavvaznwdhq062.jpg "/>
650) this.width=650; "src=" http://s3.51cto.com/wyfs02/M01/76/22/wKioL1ZLKKiCDECVAAOAFWbAvNs504.jpg "style=" float: none; "title=" 4web_4.jpg "alt=" Wkiol1zlkkicdecvaaoafwbavns504.jpg "/>
650) this.width=650; "src=" http://s1.51cto.com/wyfs02/M02/76/22/wKioL1ZLKKnhrPJ2AAIakHGsJP8102.jpg "style=" float: none; "title=" 4web_5.jpg "alt=" Wkiol1zlkknhrpj2aaiakhgsjp8102.jpg "/>
3. Create a host and link the template
650) this.width=650; "src=" http://s4.51cto.com/wyfs02/M02/76/24/wKiom1ZLKHTBNyzrAAIXj18MkOA720.jpg "title=" 4web_ 6.jpg "alt=" Wkiom1zlkhtbnyzraaixj18mkoa720.jpg "/>
4. Data display
650) this.width=650; "src=" http://s4.51cto.com/wyfs02/M00/76/24/wKiom1ZLKIaAQF7IAAdqObgK2Qc378.jpg "title=" 4web_ 7.jpg "alt=" Wkiom1zlkiaaqf7iaadqobgk2qc378.jpg "/>
Lazy people use lazy methods.
Write Python for the first time, if you have any questions, please correct them in time.
This article is from the "Urban Cloth" blog, please be sure to keep this source http://sunday208.blog.51cto.com/377871/1713823
Web monitoring: Zabbix automatically discovers +python's Pycur module on website Access quality monitoring