【2018.07.10學習筆記】【linux高級知識 19.12-19.16】

19.12 添加自定義監控項目

運維過程當中,常常會遇到一些個性化的需求,例如要統計網站天天活躍度數據,zabbix提供的模版不可以知足這樣的需求,咱們須要自定義編寫shell、python腳原本統計,而後把數據交給zabbix收集,再經過zabbix造成圖表展示出來。能夠經過統計web的80端口鏈接數實現網站活躍度統計python

一、zabbix-agent機器上編寫腳本:web

vim /usr/local/sbin/estab.sh

#!/bin/bash
##獲取80端口併發鏈接數
netstat -ant |grep ':80 ' |grep -c ESTABLISHED

chmod 755 /usr/local/sbin/estab.sh   //修改該腳本的權限爲755

二、修改agent配置文件:/etc/zabbix/zabbix_agentd.conf,增長配置行shell

UnsafeUserParameters=1   //表示使用自定義腳本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh   //自定義監控項的key是my.estab.count,後面的[*]裏面寫腳本的參數,若是沒有參數則能夠省略

三、重啓zabbix-agentvim

systemctl restart zabbix-agent

四、在server端驗證自定義agent是否正常:使用zabbix-getbash

zabbix_get -s 192.168.87.130 -p 10050 -k 'my.estab.count'
0    //由於130服務器上沒有80端口被訪問,因此結果爲0。

五、在zabbix-web界面,建立監控項目、並作圖形展示服務器

配置-->主機-->監控項目-->建立監控項:名稱、鍵值:my.estab.count(agent配置定義的)

圖形-->名稱-->添加監控項-->觸發器-->建立-->告警設置-->監控項值大於200時告警。

19.13/19.14 配置郵件告警

咱們使用第三方郵箱進行告警郵件的發送,這裏使用163郵箱進行配置。併發

一、登陸163郵箱網頁版,開啓POP3/SMTP/IMAP服務,設置受權碼與zabbix進行通訊認證運維

二、建立告警郵件發送的python腳本:/usr/lib/zabbix/alertscripts 存放目錄是固定的測試

vim /usr/lib/zabbix/alertscripts/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('lgs@163.com','aaaaaaa','lgs@163.com',to,subject,content)
 
if __name__ == "__main__":
    main()

三、在zabbix-web界面中配置報警媒介:網站

管理-->報警媒介類型-->新建報警媒介類型-->名稱爲baojing-->腳本名:mail.py-->腳本參數分別爲:{ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}

四、新建告警觸發的用戶,增長用戶羣組讀寫權限

管理-->用戶-->新建用戶-->用戶名-->羣組選擇Zabbix administrators-->配置zabbix的密碼

報警媒介-->類型選擇-->新建立的報警媒介類型:baojing-->輸入接收告警郵箱帳號-->選擇告警嚴重性等級

管理-->用戶羣組-->權限-->設置權限:全部組都有讀寫權限

五、配置告警的動做

一、配置-->動做-->新建動做-->動做-->名稱:發送郵件-->條件:維護狀態非在維護

二、操做-->修改默認信息:

HOST:{HOST.NAME} {HOST.IP}   #定義主機名
TIME:{EVENT.DATE}  {EVENT.TIME}   #定義事件發生時間
LEVEL:{TRIGGER.SEVERITY}   #定義示警度
NAME:{TRIGGER.NAME}   #定義哪個觸發器發出的報警
messages:{ITEM.NAME}:{ITEM.VALUE}   #發出告警會出現什麼狀態碼
ID:{EVENT.ID}   #發生事件的id

發送的用戶-->選擇新建的用戶-->僅發送到:新建的報警媒介baojing

三、恢復操做-->修改默認信息與操做頁同樣、發送的用戶選擇新建的用戶、僅發送到新建的報警媒介baojing

六、自定義觸發器:選擇監控系統負載小於1時產生告警。

19.15 測試告警、19.16 不發郵件的問題處理

一、將觸發器的規則設置爲監控系統負載小於1,模擬產生問題。

二、切換至zabbix主頁,在最近20個問題欄目中進行觀察:zabbix監控到問題的產生,觸發了告警動做

三、查看郵箱,收到告警郵件:告警ID是20

四、將觸發器的規則設置爲監控系統負載大於1,模擬問題解決。zabbix系統發送恢復操郵件通知

五、查看郵箱,收到恢復郵件:告警ID也是20

七、若是告警郵件接收不到,咱們經過如下幾個方面來排查:

一、單獨測試郵件腳本,看看郵件功能是否正常,查看腳本的權限等是否755
二、檢查zabbix告警媒介設置
三、用戶、媒介、用戶組權限等是否正常
四、動做是否配置正常。
五、觸發條件規則是否知足。
相關文章
相關標籤/搜索