[toc] web
先拋開zabbix監控的其餘架構不談,從最簡單的server-agent模式提及,即監控主機-被監控主機(主動模式、被動模式主要是影響數據的採集方式和服務端的負載壓力),首先是zabbix最重要的五個組成部分:Item、Trigger、Action、Media、User(其實應該還有個Event,不過這個表現的不直觀),翻譯一下就是監控元素、觸發器、動做、報警介質、用戶vim
1.item
Items are the ones that gather data from a host.
意思就是監控採集的項目bash
1.1先添加一個須要監控的主機
1.2 設置item監控項
2.Trigger
顧名思義觸發器,也就是將採集來的
item
值進行必定的判斷,須要注意的點有兩個,一個是serverity
,即報警等級,還有一個是判斷的邏輯,判斷邏輯分單機判斷和觸發依賴![]()
![]()
![]()
![]()
服務器
3.Action
action就是server對事件響應(Event)須要作相應的措施了,關鍵點是四個,一是如何觸發action,而是action具體使用什麼方式,三是發送的內容,四是動做的對象。action支持的Event有四種:用大白話講就是Trigger觸發時、discover rule文件生效時、自動發現新服務器時以及server自己出問題時。最主要的就是Trigger觸發來產生action,在建立action時會有"condition"這個選項來設置觸發器,而action的方式是由media來決定,media有五種,常見的是mail、sms、script這三種,郵件的方式只須要在建立一個media方式選郵件,而後填寫smtp服務器地址便可,郵件的內容是在action選項卡里面設置,支持普通的字符串以及表達式好比{TRIGGER.NAME}這種,這個值就是對應觸發的Trigger的名字
![]()
架構
3.1 報警媒介
3.1.1 使用本地虛擬郵箱
- yum安裝mailx
yum -y install mailx
- 設置郵箱白名單
白名單的郵箱地址能夠在服務端/var/spool/mail/zabbix
查找dom
Return-Path: <zabbix@localhost.localdomain> Received: from localhost (localhost [127.0.0.1]) by cl130.localdomain (Postfix) with SMTP id 62C0B1098C for <3558689766@qq.com>; Wed, 22 May 2019 23:20:29 -0400 (EDT) From: <zabbix@localhost.localdomain> To: <3558689766@qq.com> Date: Wed, 22 May 2019 23:20:29 -0400 Subject: Problem: /etc/passwd has been changed on 192.168.163.129 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Message-Id: <20190523032029.62C0B1098C@cl130.localdomain>
- 添加告警媒介
- 點擊配置——報警媒介類型——建立媒介類型,頁面配置以下
- 設置好了,就能夠觸發一下看效果了
3.1.2 web配置第三方郵箱
-
添加告警媒介post
- 點擊配置——報警媒介類型——建立媒介類型,頁面配置以下
- 點擊配置——報警媒介類型——建立媒介類型,頁面配置以下
-
設置好了,就能夠觸發一下看效果了測試
3.1.3 腳本告警
-
yum安裝mailxspa
-
修改
/etc/mail.rc
翻譯
//添加 set from=發件箱 set smtp=smtp.qq.com //我用的是qq,能夠根據使用郵箱的不一樣來填不一樣內容 set smtp-auth-user=發件箱 set smtp-auth-password=發件箱受權碼 set smtp-auth=login
-
重啓postfix服務
-
在服務端上寫發送告警信息腳本
[root@cl130 alertscripts]# vim /usr/local/share/zabbix/alertscripts/sendmail.sh #!/bin/bash subject=$(echo $2 |tr "\r\n" "\n") message=$(echo $3 |tr "\r\n" "\n") echo "$message" | /usr/bin/mail -s "$subject" $1 &>/tmp/sendmail.log [root@cl130 alertscripts]# cd .. [root@cl130 alertscripts]# chown -R zabbix.zabbix alertscripts [root@cl130 alertscripts]# chmod +x scripts/sendmail.sh //重啓服務 [root@cl130 ~]# pkill zabbix [root@cl130 ~]# zabbix_server [root@cl130 ~]# zabbix_agentd [root@cl130 ~]# ss -ntl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:10050 *:* LISTEN 0 128 *:10051 // 測試腳本 [root@cl130 alertscripts]# bash sendmail.sh 3558689766@qq.com test hello world
- 添加告警媒介
- 點擊配置——報警媒介類型——建立媒介類型,頁面配置以下
- 觸發告警,測試效果