Zabbix的架構配置選項(二)
阿新 • • 發佈:2018-04-18
添加自定義監控項 配置郵件告警 驗證配置 [toc]
Zabbix的架構配置選項(二)
一、添加自定義監控項目
Zabbix的特色:我們有時候會根據業務需求配置一些個性化的需求服務去監控某臺web的80端口連接數,
並整出監控狀態圖:
- [ ] 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(也就是在監控項中需要填寫的鍵值),後面的[*]裏面寫腳本的參數
# 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頁面去隨時查看:
配置 → 主機 → 監控項 → 創建監控項
- 其它項默認即可,如有需求按照現場需求定制。
1.6 配置一個監控圖形:
“配置”→“主機” →“圖形” → 創建圖形”
1.7 創建觸發器
二、配置郵件告警
配置告警是目前絕大多數企業必須要有的一個狀態,遇到問題第一時間獲得警告大大提升了運維的高效性,如果沒有配置任何告警,等待客戶反應,這是一個非常不明智的選擇。
2.1 在開始前,一定要把這兩項開啟:
2.2 將授權碼開通並定義
2.3 編輯報警媒介
登錄web管理界面:
管理 → 報警媒介類型 → 創建媒體類型(不建議用自帶的,不好用)
腳本名稱一定要用自己自定義的!!!
腳本參數(不然不可以發郵件):
{ALERT.SENDTO} //發給誰
{ALERT.SUBJECT} //主題
{ALERT.MESSAGE} //郵件內容
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(‘[email protected]‘,‘Password‘,‘[email protected]‘,to,subject,content)
//註意這裏的password是剛才在163郵箱設置的授權碼
賦權限,測試郵件運行結果
[root@xavi alertscripts]# chmod 755 /usr/lib/zabbix/alertscripts/Sendmail.py
[root@xavi alertscripts]# python Sendmail.py [email protected] ‘torreicdmailcn‘ ‘datatime20180417‘
2.5 創建運維人員的郵箱,接受報警郵件
管理 -> 用戶 -> 創建用戶
創建一個接受告警郵件的用戶,“管理”,“用戶”,“創建用戶”,“報警媒介”,類型選擇“baojing”,註意用戶的權限,如果沒有需要到用戶組去設置權限
給創建的用戶,賦予權限
關於權限選項,我們先保存當前的配置,然後進入用戶群組 → Zabbix administrators → 權限
為了防止發生錯誤,暫時先選擇全部用戶。千萬不要忘記點擊添加
授權成功後更新,檢查下用戶權限
2.6 權限設定成功,下一步設定報警動作
“配置”,“動作”,“創建動作”,
設置動作,“配置”,“動作”,“創建動作”,名稱寫“sendmail”(自定義),“操作”頁面,內容如下
增加一個觸發動作
- 新的觸發條件”,A維護狀態 非在 維護,B觸發器示警度>=未分類
針對動作的操作部分進行優化修改
- “操作”,選擇發送的用戶為剛創建的用戶,僅送到選擇“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}
對恢復操作部分修改
“恢復操作”,把信息改成如下:
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”
點擊添加後查看
三、驗證配置:
配置 → 主機 → 觸發器 → 創建觸發器
條件是,並發數小於1,咱們的虛擬機壓根就沒有任何人去訪問,所以必然報警。
在郵箱裏查收
修改參數,查看恢復郵件
Zabbix的架構配置選項(二)