zabbix 監控https URL


由於生產環境的需要,zabbix 需要監控https的url,但是因為zabbix 是aws ec2 zabbix web綁定了域名,所以沒有辦法所代理。 有興趣的可以看官方文檔
https://www.zabbix.com/documentation/4.0/_export/xhtml/zh/manual/web_monitoring
所以只能用腳本來實現了
 

一、agent 客戶端服務器操作

先貼上來腳本
#!/usr/bin/python
# coding: UTF-8
import StringIO
import pycurl
import sys
import os
class Test:
    def __init__(self):
        self.contents = ''
    def body_callback(self,buf):
        self.contents = self.contents + buf
def test_gzip(input_url):
    t = Test()
    #gzip_test = file("gzip_test.txt", 'w')
    c = pycurl.Curl()
    c.setopt(pycurl.WRITEFUNCTION,t.body_callback)
    c.setopt(pycurl.ENCODING, 'gzip')
    c.setopt(pycurl.URL,input_url)
    c.perform()
    http_code = c.getinfo(pycurl.HTTP_CODE)
    http_conn_time = c.getinfo(pycurl.CONNECT_TIME)
    http_pre_tran = c.getinfo(pycurl.PRETRANSFER_TIME)
    http_start_tran = c.getinfo(pycurl.STARTTRANSFER_TIME)
    http_total_time = c.getinfo(pycurl.TOTAL_TIME)
    http_size = c.getinfo(pycurl.SIZE_DOWNLOAD)
   #此處可選多個,因為需要所以只選了TOTAL_TIME
    print " %f"%(http_total_time)
if __name__ == '__main__':
    input_url = sys.argv[1]
    test_gzip(input_url)

 

 

1、腳本放在/etc/zabbix/目錄下

2、修改agent 配置文件

#添加內容
UserParameter=url.state[*],/etc/zabbix/url-status.py $1

 

3、重啟客戶端
service zabbix-agent restart

 

二、web 設置

1、配置 》》 主機 》》選擇agent 主機 》》點擊監控項

2、右上角點擊創建監控項

a.名稱隨意
b. 類型選擇客戶端
c.鍵值這個非常重要
UserParameter=url.state[*],/etc/zabbix/url-status.py $1
url.state [] 相當於命令名字,他是key
其中UserParameter用來自定義鍵值,(類似於net.if.in),自己寫的腳本往往會有參數,[*] 表示他有自己的參數,所以需要加[*],這是固定寫法,
如果腳本壓根就沒有什么參數,那么這個就省了。
逗號后面就是我們寫的腳本的路徑了,再后面就是要用到的參數,有幾個就寫幾。
如果沒有參數,后面的 $1 還有前面的 [*] 就都可以省略。
d、e、自己選擇一個適合的
最后點擊添加

頁面展示

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM