美文网首页我爱编程
用wxpython製作簡易Zabbix微監控

用wxpython製作簡易Zabbix微監控

作者: Maliao | 来源:发表于2018-03-23 15:56 被阅读28次

    概念說明

    Zabbix前端報警及郵件發信等已可立即告警,但如果能整合到內部系統豈不甚好?

    既然如此,後面將會以下圖說明由Redis Server做為中間接收的媒介,讓Zabbix與內部系統整合告警。

    image

    1. Zabbix Server

    Zabbix告警動作可以選擇腳本,這點非常強大,只要設好監控項到動作告警,剩下都可以交由腳本做進一步的呈現。

    觸發器

    創建觸發器。

    image

    報警媒介

    創建腳本RedisAlarm.py,當發報時會將觸發器的狀態寫入到Redis中。

    名稱:RedisAlarm
    類型:"腳本"
    腳本名稱:RedisAlarm.py
    (
    路經:/usr/local/share/zabbix/alertscripts,
    權限:777
    )
    腳本參數:
    {ALERT.SENDTO} 收件人地址
    {ALERT.SUBJECT} 主題
    {ALERT.MESSAGE} 詳細內容

    image
    • 創建腳本

    RedisAlarm.py

    #!/home/zabbix/anaconda2/bin/python
    # -*- coding: utf-8 -*-
    
    '''
    # RedisAlarm.py
    '''
    import sys
    import redis
    
    if __name__ == '__main__':
        # {ALERT.SENDTO}
        rc = redis.StrictRedis(sys.argv[1].decode('utf8'))
        # {ALERT.SUBJECT}
        status = sys.argv[2].decode('utf8')
        # {ALERT.MESSAGE}
        name = sys.argv[3].decode('utf8')
    
        if "OK" in status:
            rc.set(name,status)
        else:
            rc.set(name,status)
    
    

    用戶報警媒介"收件人"

    設定收件人為RedisServerIP,設定完記得按更新

    image

    動作

    • 選擇觸發器

      一個動作可包含多個觸發器。

      image
    • 操作步驟

      默认接收人:{TRIGGER.STATUS} 觸發器狀態
      默认信息:{TRIGGER.NAME} 觸發器名稱

      image
    • 恢复操作步驟

      默认接收人:{TRIGGER.STATUS} 觸發器狀態
      默认信息:{TRIGGER.NAME} 觸發器名稱

      image

    2. Redis Server

    Redis Server是一個Key,Velue的數據庫,默認數據是存於內存的,擁有極快的存取速度,通常用於緩存資料使用。

    建立初始資料

    先確保Redis可否連接,在新增觸發器名稱作為Redis Key,這邊用一個簡單的腳本新增。

    import redis
    r = redis.StrictRedis("127.0.0.1")
    
    # Check redis server
    try:
        r.ping()
    except Exception as e:
        print "RedisServer Error"
    
    # Add redis keys
    items = ["Google","Modem","Negix1","Negix2"]
    [r.set(i,"OK") for i in items]
    print r.keys()
    

    先全部新增為"OK",不然後面Get不到值會出錯。

    3. Zabbix Alarm Client

    利用Wxpython製作一個實時監測Zabbix監控項的小程序。

    源碼地址

    下載項目

    git clone https://github.com/noyoung/Simple-Zabbix-Alarm.git
    

    服務器設定

    監控項設定

    運行監控

    4. 運行結果

    • 服務器異常時
      Zabbix將會觸發RedisAlarm.py腳本將異常狀態傳給Redis

      監控狀態

    • 服務器恢復時

      監控狀態

    相关文章

      网友评论

        本文标题:用wxpython製作簡易Zabbix微監控

        本文链接:https://www.haomeiwen.com/subject/ifgffftx.html