本片博客主要介紹了[Zabbix] Centos 6下 Zabbix 3.4郵件報警配置及Zabbix郵件故障解決方法 ;分別介紹了zabbix使用本地帳號發送郵件報警及使用互聯網帳號發送郵件報警配置,並處理郵件發送故障「cannot connect to SMTP server "zabbix.itwish.cn": cannot connect to [[zabbix.itwish.cn]:25]: [111] Connection refused」及「Support for SMTP authentication was not compiled in」。
mysql
Zabbix Server報警linux
說明:web
Zabbix監控服務端、客戶端都已經部署完成,被監控主機已經添加,Zabiix監控運行正常。Zabbix配置監控方式請參照前文:http://www.javashuo.com/article/p-zxogddqv-m.html sql
實現:bash
在Zabbix服務端設置郵件報警,當被監控主機宕機或者達到觸發器預設值時,會自動發送報警郵件到指定郵箱。服務器
Zabbix服務端只是單純的發送報警郵件到指定郵箱,發送報警郵件的這個郵箱帳號是Zabbix服務端的本地郵箱帳號,只能發送,不能接收外部郵件。網絡
使用互聯網上可正常收發郵件的郵箱帳號(例如:xxx@qq.com),經過在Zabbix服務端中設置,使其可以發送報警郵件到指定郵箱。ssh
Zabbix 使用本地帳號發送郵件報警配置curl
1、安裝郵件服務poxfixtcp
[root@zabbix ~]# yum install postfix # 安裝postfix [root@zabbix ~]# service postfix start # 啓動postfix服務 [root@zabbix ~]# chkconfig postfix on # 開機自啓動 [root@zabbix mail]# ss -tunl # SMTP 25端口啓用 Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port ... tcp LISTEN 0 100 ::1:25 :::* tcp LISTEN 0 100 127.0.0.1:25 *:*
2、安裝郵件發送工具mailx
[root@zabbix ~]# yum install mailx # 安裝郵件發送工具 [root@zabbix ~]# echo "Hello word" | mailx -s "hello" 345876547@qq.com # 測試發送郵件
注:
mailx是UNIX系統上用來處理郵件的工具,使用它能夠發送,讀取郵件。
發送格式: mailx -s subject XXX@163.com < message_file 假設郵件內容存儲於msg文件中,用以下方法: mailx -s "test mail" XXX@163.com < msg 或者 cat msg | mailx -s "test mail" XXX@163.com 多個收件人之間用逗號分隔 cat msg | mailx -s "test mail" XXX@163.com,XX2@163.com 也能夠直接從命令行輸入郵件內容: mailx -s "test" XXX@163.com 上面這條命令會進入命令行輸入狀態,此時能夠輸入內容,按Ctrl+d鍵來結束輸入。
3、配置zabbix郵件報警
報警介質類型配置:登錄web管理界面,進入「管理」——「報警媒介類型」——「Email」選項
名稱: Email
SMTP服務器: zabbix.itwish.cn (爲zabbix主機名稱)
SMTP服務器端口: 25
SMTP HELO: itwish.cn
SMTP電郵: zabbix@itwish.cn
勾選「已啓用」
點擊更新
用戶配置(收件人郵箱配置):登錄web管理界面,進入「管理」——「用戶」——「Admin」——「報警媒介」選項
類型: Email
收件人: ***@qq.com
勾選「若是存在嚴重性則使用」相關選項
勾選「已啓用」
點擊更新
動做配置:登錄web管理界面,進入「配置」——「動做」——「Report problems to Zabbix administrators」選項
名稱:Report problems to Zabbix administrators
添加觸發條件:「觸發器示警度 = **」
勾選」已啓用「
點擊更新
"操做"配置:登錄web管理界面,進入「配置」——「動做」——「Report problems to Zabbix administrators」——「操做」選項
默認操做時間: 1h
默認標題: 主機 {HOSTNAME} 在 {EVENT.DATE} {EVENT.TIME} 發生故障 {TRIGGER.NAME} {ITEM.VALUE}
告警主機:{HOSTNAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE}
事件ID:{EVENT.ID}
勾選「維護期間暫停操做」
點擊 「新的」
"操做細節"配置:
步驟:1 -1
操做類型:發送消息
發送到用戶:添加指定用戶
僅送到:Email
條件:「條件已確認 = 非確認」
點擊 "添加"
點擊「更新」
恢復配置:登錄web管理界面,進入「配置」——「動做」——「Report problems to Zabbix administrators」——「恢復操做」選項
默認操做時間: 1h
默認標題: 主機 {HOSTNAME} 於 {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 恢復故障 ,當前狀態是 {ITEM.NAME} {ITEM.VALUE}
恢復主機:{HOSTNAME}
恢復時間:{EVENT.DATE} {EVENT.TIME}
恢復故障:{ITEM.NAME}:{ITEM.VALUE}
告警等級:{TRIGGER.SEVERITY}
恢復信息: {TRIGGER.NAME}
恢復項目:{TRIGGER.KEY}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE}
事件ID:{EVENT.ID}
點擊 「新的」
"操做細節"配置
操做類型:發送消息
發送到用戶:添加指定用戶
僅送到:Email
點擊 "添加"
點擊「更新」
4、測試zabbix報警
關閉zabbix server 中zabbix_agentd 服務測試,關閉網絡設備端口測試
在zabbix 3.4 服務器端配置本地帳號進行郵件報警時,郵件發送失敗。提示「cannot connect to SMTP server "**": cannot connect to [[**]:25]: [111] Connection refused」。以下圖
故障緣由: zabbix服務器未監聽主機 IP 25端口
解決方法:配置postfix 腳本配置文件,對服務器端主機ip地址進行監聽
[root@zabbix ~]# vi /etc/postfix/ # 調整postfix 腳本配置文件 inet_interfaces = localhost,zabbix.itwish.cn,172.16.10.5 # 修改該項,把localhost 修改成localhost,zabbix.itwish.cn,172.16.10.5 [root@zabbix ~]# service postfix restart Shutting down postfix: [ OK ] Starting postfix: [ OK ] [root@zabbix ~]# ss -tunl # 服務器監聽本機ip 25端口 Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp LISTEN 0 100 172.16.10.5:25 *:* tcp LISTEN 0 100 127.0.0.1:25 *:*
故障解決
郵箱驗證
Zabbix Server使用互聯網郵箱帳號發送郵件報警
1、安裝郵件發送工具mailx
[root@zabbix ~]# service postfix stop # 關閉postfix 服務 Shutting down postfix: [ OK ] [root@zabbix ~]# chkconfig postfix off [root@zabbix ~]# yum install mailx # 安裝郵件發送工具 [root@zabbix ~]# echo "Hello word" | mailx -s "hello" 345876547@qq.com # 測試發送郵件 [root@zabbix ~]# whereis mailx # 查看mailx路徑 mailx: /bin/mailx /usr/share/man/man1/mailx.1.gz /usr/share/man/man1p/mailx.1p.gz [root@zabbix ~]# mailx -V # 查看mailx版本 12.4 7/29/08
2、配置Zabbix服務端外部郵箱
配置mailx配置文件mail.rc
[root@zabbix ~]# vi /etc/mail.rc #編輯,添加如下信息 set from=xxx@qq.com smtp=smtp.qq.com set smtp-auth-user=xxx@qq.com smtp-auth-password=123456 # 分別爲郵箱帳號及郵箱密碼 set smtp-auth=login :wq! #保存退出 [root@zabbix ~]# echo "zabbix test mail" |mail -s "zabbix" 345876547@qq.com #測試發送郵件,標題zabbix,郵件內容:zabbix test mail,發送到的郵箱:345876547@qq.com
郵箱測試 ,
3、配置zabbix郵件報警
報警介質類型配置:登錄web管理界面,進入「管理」——「報警媒介類型」——「Email」選項
名稱 Email
SMTP服務器smtp.qq.com
SMTP服務器端口 25
SMTP HELO qq.com
SMTP電郵 345876547@qq.com
勾選「已啓用」
點擊更新
用戶配置:進入「管理」——「用戶」——「Admin」——「報警媒介」選項
類型 Email
收件人 ***@qq.com
勾選「若是存在嚴重性則使用」相關選項
勾選「已啓用」
點擊更新
動做配置:登錄web管理界面,進入「配置」——「動做」——「Report problems to Zabbix administrators」選項
名稱:Report problems to Zabbix administrators
添加觸發條件:「觸發器示警度 = **」
勾選」已啓用「
點擊更新
"操做"配置:登錄web管理界面,進入「配置」——「動做」——「Report problems to Zabbix administrators」——「操做」選項
默認操做時間: 1h
默認標題: 主機 {HOSTNAME} 在 {EVENT.DATE} {EVENT.TIME} 發生故障 {TRIGGER.NAME} {ITEM.VALUE}
告警主機:{HOSTNAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE}
事件ID:{EVENT.ID}
勾選「維護期間暫停操做」
點擊 「新的」
"操做細節"
步驟:1 -1
操做類型:發送消息
發送到用戶:添加指定用戶
僅送到:Email
條件:「條件已確認 = 非確認」
點擊 "添加"
點擊「更新」
恢復配置:登錄web管理界面,進入「配置」——「動做」——「Report problems to Zabbix administrators」——「恢復操做」選項
默認操做時間: 1h
默認標題: 主機 {HOSTNAME} 於 {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 恢復故障 ,當前狀態是 {ITEM.NAME} {ITEM.VALUE}
恢復主機:{HOSTNAME}
恢復時間:{EVENT.DATE} {EVENT.TIME}
恢復故障:{ITEM.NAME}:{ITEM.VALUE}
告警等級:{TRIGGER.SEVERITY}
恢復信息: {TRIGGER.NAME}
恢復項目:{TRIGGER.KEY}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE}
事件ID:{EVENT.ID}
點擊 「新的」
"操做細節"
操做類型:發送消息
發送到用戶:添加指定用戶
僅送到:Email
點擊 "添加"
點擊「更新」
4、測試zabbix 報警
模擬關閉監控的網絡設備端口 ,觀察zabbix報警狀態
zabbix服務器端配置外網郵箱帳號進行發送郵件時,郵件發送失敗;提示: 「Support for SMTP authentication was not compiled in 」
故障緣由:要求curl版本最低7.20.0,系統curl版本號太低 。
解決辦法:升級libcurl ,並從新編譯zabbix
[root@zabbix ~]# curl -V # 查看curl版本號 curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.27.1 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 [root@zabbix ~]# vi /etc/yum.repos.d/CentOS-Base.repo # 添加以下內容curl源 [city-fan] name=CentOS -$releasever - City-fan baseurl=http://mirror.city-fan.org/ftp/contrib/yum-repo/rhel6Server/x86_64/ gpgcheck=0 enabled=1 [root@zabbix ~]# yum upgrade libcurl # 升級libcurl [root@zabbix zabbix]# cd zabbix-3.4.14 # 進入zabbix解壓包 ,從新編譯安裝 [root@zabbix zabbix-3.4.14]# ./configure \--prefix=/usr/local/zabbix \ --enable-server \ --enable-agent \ --enable-ipv6 \ --with-mysql \ --with-libxml2 \ --with-net-snmp \ --with-libevent \ --with-openssl \ --with-libcurl \ --with-libpcre \ --with-iconv \ --with-ssh2 \ --with-ldap \ --with-openipmi [root@zabbix zabbix-3.4.14]# make && make install [root@zabbix zabbix]# service zabbix_server restart # 重啓zabbix_server 服務 Shutting down zabbix_server: [ OK ] Starting zabbix_server: [ OK ]
故障解決:
至此,經過配置兩種方式,實現了郵件報警功能。分別是經過本地服務器發送郵件報警配置 及互聯網郵箱帳號發送郵件報警配置。
轉載請註明出處:https://blog.51cto.com/itwish