Zabbix的架構配置選項(二)

[toc]python

Zabbix的架構配置選項(二)

1、添加自定義監控項目

Zabbix的特點:咱們有時候會根據業務需求配置一些個性化的需求服務去監控某臺web的80端口鏈接數,
並整出監控狀態圖:web

  • [ ] zabbix監控中心建立監控項目;
  • [ ] 針對該監控項目以圖形展示;

1.1 須要到客戶端定義腳本:

# vim /usr/local/sbin/estab.sh 
//內容以下

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

1.2 給腳本受權,編輯配置文件

自定義監控項的key爲my.estab.count(也就是在監控項中須要填寫的鍵值),後面的[*]裏面寫腳本的參數vim

# chmod 755 /usr/local/sbin/estab.sh

# 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

1.3 重啓客戶端的zabbix服務:

[root@xavi-002 ~]# systemctl restart zabbix-agent

1.4 到服務端驗證,執行命令:

[root@xavi ~]# zabbix_get -s 192.168.72.133 -p 10050 -k 'my.estab.count'
0

-s:源地址
-p: 端口
-k: 鍵值

如上顯示0即爲沒有任何鏈接。

1.5 可是這不是咱們須要的效果,效果是咱們須要在web頁面去隨時查看:

配置 → 主機 → 監控項 → 建立監控項bash

mark

  • 其它項默認便可,若有需求按照現場需求定製。

mark

1.6 配置一個監控圖形:

「配置」→「主機」 →「圖形」 → 建立圖形」架構

mark

mark

mark

1.7 建立觸發器

mark

mark

mark

2、配置郵件告警

配置告警是目前絕大多數企業必需要有的一個狀態,遇到問題第一時間得到警告大大提高了運維的高效性,若是沒有配置任何告警,等待客戶反應,這是一個很是不明智的選擇。併發

2.1 在開始前,必定要把這兩項開啓:

mark

mark

2.2 將受權碼開通並定義

mark

mark

mark

2.3 編輯報警媒介

登陸web管理界面:運維

管理 → 報警媒介類型 → 建立媒體類型(不建議用自帶的,很差用)ide

mark

腳本名稱必定要用本身自定義的!!! 測試

mark

腳本參數(否則不能夠發郵件):

{ALERT.SENDTO} //發給誰優化

{ALERT.SUBJECT} //主題

{ALERT.MESSAGE} //郵件內容

mark

2.4 寫一個報警的郵件腳本:

在服務端配置:

[root@xavi ~]# vim /usr/lib/zabbix/alertscripts/Sendmail.py

腳本爲何放在這邊呢?由於我們在配置文件中=vim /etc/zabbix/zabbix_server.conf有個參數 AlertScriptsPath=/usr/lib/zabbix/alertscripts 定義了位置

vim Sendmail.py

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('xxxxxx@163.com','Password','xxxxxx@163.com',to,subject,content)
    //注意這裏的password是剛纔在163郵箱設置的受權碼

賦權限,測試郵件運行結果

[root@xavi alertscripts]# chmod 755 /usr/lib/zabbix/alertscripts/Sendmail.py
[root@xavi alertscripts]# python Sendmail.py dsf1626@163.com 'torreicdmailcn' 'datatime20180417'

mark

2.5 建立運維人員的郵箱,接受報警郵件

管理 -> 用戶 -> 建立用戶

建立一個接受告警郵件的用戶,「管理」,「用戶」,「建立用戶」,「報警媒介」,類型選擇「baojing」,注意用戶的權限,若是沒有須要到用戶組去設置權限

mark

mark

mark

給建立的用戶,賦予權限

關於權限選項,咱們先保存當前的配置,而後進入用戶羣組 → Zabbix administrators → 權限

爲了防止發生錯誤,暫時先選擇所有用戶。千萬不要忘記點擊添加

mark

mark

mark

mark

mark

受權成功後更新,檢查下用戶權限

mark

mark

2.6 權限設定成功,下一步設定報警動做

「配置」,「動做」,「建立動做」,

設置動做,「配置」,「動做」,「建立動做」,名稱寫「sendmail」(自定義),「操做」頁面,內容以下

mark

增長一個觸發動做

mark

mark

  • 新的觸發條件」,A維護狀態 非在 維護,B觸發器示警度>=未分類

針對動做的操做部分進行優化修改

  • 「操做」,選擇發送的用戶爲剛建立的用戶,僅送到選擇「baojing」

mark

mark

HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE}  {EVENT.TIME} 
LEVEL:{TRIGGER.SEVERITY} 
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}

mark

mark

mark

對恢復操做部分修改

「恢復操做」,把信息改爲以下:

HOST:{HOST.NAME} {HOST.IP}
TIME:{EVENT.DATE}  {EVENT.TIME} 
LEVEL:{TRIGGER.SEVERITY} 
NAME:{TRIGGER.NAME}
messages:{ITEM.NAME}:{ITEM.VALUE}
ID:{EVENT.ID}

點擊「新的」,「操做」,選擇發送的用戶爲剛建立的用戶,僅送到選擇「baojing」

mark

點擊添加後查看
mark

3、驗證配置:

配置 → 主機 → 觸發器 → 建立觸發器

mark

mark

條件是,併發數小於1,我們的虛擬機壓根就沒有任何人去訪問,因此必然報警。

mark

mark

在郵箱裏查收

mark

mark

mark

修改參數,查看恢復郵件

mark

mark

mark

相關文章
相關標籤/搜索