監控平臺zabbix高級配置

12月26日任務python

19.12 添加自定義監控項目linux

19.13/19.14 配置郵件告警web

19.15 測試告警vim

19.16 不發郵件的問題處理bash

 

添加自定義監控項目

zabbix能夠自定義監控項目,知足個性化的需求。例如網站註冊量、訪問量等具體監控項目就須要編寫相關的腳原本監控數據,以知足具體應用的需求。服務器

實例:監控某臺web的80端口鏈接數,並出圖(步驟以下)測試

  1. zabbix監控中心建立監控項目
  2. 針對該監控項目以圖形展示

客戶端腳本編寫

  • 客戶端上定義腳本
[root@client ~]# vim /usr/local/sbin/estab.sh
#!/bin/bash
##獲取80端口轉發鏈接數
netstat -ant | grep ':80' | grep -c ESTABLISHED

[root@client ~]# chmod 755 /usr/local/sbin/estab.sh
  • 客戶端上編輯配置文件
[root@client ~]# vim /etc/zabbix/zabbix_agentd.conf
//增長
UnsafeUserParameters=1 //表示使用自定義腳本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh //自定義監控項的key爲my.estab.count,後面的[*]裏面寫腳本的參數,若是沒有參數則能夠省略,腳本爲/usr/local/sbin/estab.sh

//重啓zabbix-agent服務
[root@client ~]# systemctl restart zabbix-agent
  • 到服務器端驗證
//有值顯示錶示配置有效
[root@server ~]# zabbix_get -s 192.168.65.134 -p 10050 -k 'my.estab.count'
0

這裏測試時最好保持防火牆、selinux的通暢網站

服務器端web配置

  • 建立監控項

在web網頁配置監控項配置-->主機-->client1--> 建立監控項this

新建監控項

監控項

填寫監控項名稱及鍵值spa

監控項圖形效果預覽

  • 建立觸發器(報警)

選擇觸發條件

須要點擊添加,使表達式生效


配置郵件告警

開啓郵箱相關服務

登陸你的163郵箱,點擊設置-->POP3/SMTP/IMAP,選中POP3/SMTPIMAP/SMTP這2個服務。(開啓IMAP/SMTP服務須要設置客戶端受權碼,該密碼用於後續發郵件)

服務器web配置

建立報警媒介

新建監控項

服務器上編寫發郵件腳本

# 腳本存放目錄在zabbix_server.conf內定義了
[root@server ~]# grep alert /etc/zabbix/zabbix_server.conf | grep -v "#"
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@server ~]# cd /usr/lib/zabbix/alertscripts/

# 編寫腳本並賦予權限

[root@server alertscripts]# vim mail.py
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
import getopt
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from  subprocess import *
def sendqqmail(username,password,mailfrom,mailto,subject,content):
    gserver = 'smtp.163.com'
    gport = 25
    try:
        msg = MIMEText(unicode(content).encode('utf-8'))
        msg['from'] = mailfrom
        msg['to'] = mailto
        msg['Reply-To'] = mailfrom
        msg['Subject'] = subject
        smtp = smtplib.SMTP(gserver, gport)
        smtp.set_debuglevel(0)
        smtp.ehlo()
        smtp.login(username,password)
        smtp.sendmail(mailfrom, mailto, msg.as_string())
        smtp.close()
    except Exception,err:
        print "Send mail failed. Error: %s" % err
def main():
    to=sys.argv[1]
    subject=sys.argv[2]
    content=sys.argv[3]
    sendqqmail('18367826960@163.com','你的受權碼','18367826960@163.com',to,subject,content)
if __name__ == "__main__":
    main()

[root@server alertscripts]# chmod 777 /usr/lib/zabbix/alertscripts/mail.py
  • 腳本測試
[root@server alertscripts]# python mail.py 18367826960@163.com "test" "this is a test"

建立接收郵件的用戶

  • 配置用戶

  • 配置報警媒介

  • 配置權限

這裏須要到用戶組內進行設置

建立告警動做

  • 建立動做

維護狀態 非在 維護 :在維護狀態時不報警

  • 修改操做: 修改默認信息爲
HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE}  {EVENT.TIME} 
LEVEL:{TRIGGER.SEVERITY} 
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}

配置操做的細節

  • 配置恢復操做(維護後)

最終告警配置


測試告警

這裏在主機內新建一個觸發器"負載"用於測試,並調整其監控項刷新時間爲10s。

設置表達式{client1:system.cpu.load[percpu,avg1].last()}<1

新建監控項

點擊監測中 --> 儀表盤,問題出現,郵箱成功接收到告警郵件

新建監控項


問題處理

在測試中,因爲我報警媒介類型設置中腳本名稱寫錯致使郵件沒法發送(報找不到文件錯誤),修改後正常接收郵件。

經常使用的排查錯誤的步驟:

  1. 告警媒介類型

    腳本名稱、參數及其順序

  2. 郵件腳本

    腳本存儲路徑、腳本是否可用、腳本權限

  3. 用戶

    用戶羣組設置、報警媒介選擇、權限是否讀寫

  4. 動做

    觸發條件、操做、恢復操做是否配置正確

配置主動、被動模式

在主機(模板)的監控項內配置

模式選擇

默認是zabbix客戶端即被動模式;主動模式須要選擇zabbix客戶端(主動式)

相關文章
相關標籤/搜索