zabbix觸發器到了要發送通知的情況下,需要一個中間介質來接收並傳遞它的消息給運維們,以往用nagios,通常用腳本發送郵件或者發送飛信來達到報警。這個腳本實際上就是一個媒介了。
zabbix有如下介質:
使用sendmail發送郵件,從這邊出去的郵件基本是垃圾郵件,我一直不喜歡用
SMS
需要短信設備,沒有,一直都沒用過這東西
Jabber
Jabber 有第三方插件,能讓Jabber用戶和MSN、YahooMessager、ICQ等IM用戶相互通訊。因為Google遵從 Jabber協議,並且Google已經將Gtalk的服務器開放給了其它的Jabber服務器。所以PSI、Giam等Jabber客戶端軟件支持 GTalk用戶登陸。國內沒啥人用
Ez Texting
給用戶手機發短信,貌似只支持美國和加拿大
Custom alertscripts
自定義腳本,把信息傳遞給腳本,我們在腳本里使用sendEmail(不要和sendmail搞混了)、飛信發短信、調用短信接口發送短信等等。
zabbix報警媒介:email
報警信息將會使用系統自帶的sendmail發送,配置比較簡單
配置媒介Email
Administration→Media types->Click on Create media type
選項 | 描述 |
Name | 媒介名稱,看着起名 |
Type | 選擇Email |
SMTP server | SMTP服務器 |
SMTP helo | SMTP helo值, 通常情況下是頂級域名 |
SMTP email | 這個郵件地址會顯示到收件人的From里 可用郵箱地址: zabbix@company.com (只包含郵箱地址,不需要尖括號括起來) Zabbix HQ <zabbix@company.com> (顯示名和郵箱地址,郵箱地址使用尖括號) ∑Ω-monitoring <zabbix@company.com> (顯示名稱為UTF8格式) 不可用的郵箱地址 Zabbix HQ zabbix@company.com (需要尖括號) "Zabbix\@\<H(comment)Q\>" <zabbix@company.com>不支持轉義 |
使用媒介
定義好了媒介之后,我們需要把這媒介指定給用戶。
Administration->Users->打開用戶配置->media type里面添加剛增加的媒介
參數說明
選項 | 描述 |
Type | 選擇媒介名稱,此處選Email |
Send to | 發郵件給誰,例如support@ttlsa.com,也可以使用顯示名 |
When active | 發送時間,只有在這個時間段內才會發郵件 |
Use if severity | 發送郵件的觸發器級別 |
Status | 當前媒介狀態 Enabled - 使用中. Disabled - 禁用中. |
zabbix報警媒介:SMS
介紹
服務器安裝串口GSM短信貓之后,zabbix可以使用它來發送短信通知給管理員,如下注意事項:
- 串行設備速度要與GSM貓相匹配(linux下默認為/dev/ttyS0),zabbix無法設置設置串行設備速率
- zabbix有對串行設備的讀寫全鄉,可以使用ls -l /dev/ttyS0查看設備權限
- 請禁用你GSM手機卡的PIN碼
zabbix測試過的GSM貓如下
- Siemens MC35
- Teltonika ModemCOM/G10
zabbix配置媒介SMS
Administration->Media types->媒介類型選擇SMS,和email的配置方法是一樣的,直接上參數吧。
選項 | 描述 |
Description | 媒介名稱 |
Type | 類型 |
GSM modem | SM modem串行設備,默認為:/dev/ttyS0 |
zabbix使用媒介SMS
Administration->Users->打開用戶配置->media type里面添加剛增加的媒介
選項 | 描述 |
Type | 選擇媒介名稱,此處選SMS |
Send to | 發短信給哪個手機號碼 |
When active | 發送時間,只有在這個時間段內才會發短信 |
Use if severity | 發送短信的觸發器級別 |
Status | 當前媒介狀態 Enabled - 使用中. Disabled - 禁用中. |
用短信貓發送短信的公司都很有錢,我從來只用郵件~
zabbix報警媒介:Jabber
Jabber 有第三方插件,能讓Jabber用戶和MSN、YahooMessager、ICQ等IM用戶相互通訊。因為Google遵從 Jabber協議,並且Google已經將Gtalk的服務器開放給了其它的Jabber服務器。所以PSI、Giam等Jabber客戶端軟件支持 GTalk用戶登陸。
jabberXMPP(可擴展消息處理現場協議)是基於可擴展標記語言(標准通用標記語言下的一個子集、外語縮 寫:XML)的協議,它用於即時消息 (IM)以及在線現場探測。它在促進服務器之間的准即時操作。這個協議可能最終允許因特網用戶向因特網上的其他任何人發送即時消息,即使其操作系統和瀏覽 器不同。XMPP的技術來自於Jabber,其實它是 Jabber的核心協定,所以XMPP有時被誤稱為Jabber協議。Jabber是一個基於XMPP協議的IM應用,除Jabber之外,XMPP還支 持很多應用。
IEEE XMPP工作組(一個工程師和程序員聯盟)正在改編XMPP以用作互聯網工程任務組(IETF)技術。XMPP最終有望使用鑒定、訪問控制、高級隱私、逐跳加密、端端加密以及與其它協議的相容等應用來支持IM。
zabbix報警媒介:Ez Texting
Ez Texting是zabbix的技術合作伙伴,主要提供短信服務,用手機注冊賬號,便可以使用它來發送短信了,不過他只支持美國和加拿大的手機號碼,並且應該是收費的。沒有美國/加拿大手機號碼的朋友請繞行,先了解的請繼續往下看。
Administration(管理)→Media types(媒介類型)->點擊創建
參數說明:
選項 | 描述 |
Name | 媒介名稱,看着起名 |
Type | 選擇Ez Texting,如果你沒有賬號,你可以到https://app.eztexting.com注冊(沒有手機號碼繞行) |
username | 你的ez賬號 |
Password | Ez密碼 |
Message text limit |
文本消息限制 USA (160 characters),美國一條短信支持160個字符 Canada (136 characters),加拿大一條短信支持136個字符 |
使用媒介
定義好了媒介之后,我們需要把這媒介指定給用戶。
Administration->Users->打開用戶配置->media type里面添加剛增加的媒介
參數說明
選項 | 描述 |
Type | 選擇媒介名稱,此處選Ez Texting |
Send to | 發短信給誰,填手機號碼 |
When active | 發送時間,只有在這個時間段內才會發短信 |
Use if severity | 發送短信的觸發器級別 |
Status | 當前媒介狀態 |
老板摳門不給買SMS短信貓,投錯胎導致沒有美國/加拿大手機號碼,根本搞不清楚jabber是個什么玩意兒,sendmail又不靠譜,那都不是事,想要輕輕松松報警,那么用上自定義腳本媒介。zabbix會將信息傳遞給腳本,接下來你在腳本里面隨意處理,一共會傳遞三個參數,按順序接受也就是$1,$2,$3了,為了方便記憶,一般分別給他們賦值到To\Subject\body.
配置AlertScriptsPath
在server的配置文件中配置,這是用來定義腳本目錄,這樣一來zabbix就能找到腳本了
# cat /usr/local/zabbix-2.2.1/etc/zabbix_server.conf | grep AlertScriptsPath ### Option: AlertScriptsPath AlertScriptsPath=/usr/local/zabbix-2.2.1/alertscripts # mkdir /usr/local/zabbix-2.2.1/alertscripts
創建發郵件腳本
# cat /usr/local/zabbix-2.2.1/alertscripts/mail.sh #!/bin/sh to=$1 subject=$2 body=$3 /usr/local/bin/sendEmail -f support@ttlsa.com -t "$to" -s smtp.ttlsa.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu support@ttlsa.com -xp 123456 -m "$body" 2>>/tmp/22.log # chmod a+x /usr/local/zabbix-2.2.1/alertscripts/mail.sh
腳本里面使用sendEmail發送郵件,sendEmail的用法請點擊《使用sendEmail發送郵件》,不一定非要發送郵件,也可以發飛信或者調用短信平台接口
配置自定義腳本媒介
Administration->Media types->創建
參數說明
選項 | 描述 |
Description | 媒介名稱,看着起名,這邊叫sendEmail |
Type | 選擇custom scripts |
Script name | 腳本名稱,這邊寫mail.sh,只要寫名稱就行了,不要寫絕對路徑 |
使用自定義腳本媒介
定義好了媒介之后,我們需要把這媒介指定給用戶。
Administration->Users->打開用戶配置->media type里面添加剛增加的媒介
參數說明
選項 | 描述 |
Type | 選擇媒介名稱,此處選sendEmail |
Send to | 發郵件給誰,例如support@ttlsa.com |
When active | 發送時間,只有在這個時間段內才會發郵件 |
Use if severity | 發送郵件的觸發器級別 |
Status | 當前媒介狀態 Enabled - 使用中. Disabled - 禁用中. |