Zabbix3.4郵件報警配置詳解
一、郵件報警有兩種情況:
1,Zabbix服務端只是單純的發送報警郵件到指定郵箱,發送報警郵件的這個郵箱賬號是Zabbix服務端的本地郵箱賬號,只能發送,不能接收外部郵件。
2,使用一個可以在互聯網上正常收發郵件的郵箱賬號(例如:@163.com),通過在Zabbix服務端中設置,使其能夠發送報警郵件到指定郵箱。
3,在這裏我們採用是第二種方式來完成郵件告警任務。經過我的測試發現QQ不能發送郵件會被屏蔽,改用163需要配置客戶端授權密碼’郵件可以發;
但是問題是郵件有5分鐘 左右的延時,後來我測試sina郵件可以正常使用。
二、準備的環境說明:
Hostname | IPADDRE | OS-Releases | Applacation |
Zabbix_Server | 10.93.58.41 | Centos7.5 | Zabbix_server |
LinuxAgent | 10.93.58.66 | Centos7.3 | Zabbix_agent |
LinuxTest | 10.93.58.70 | Centos6.10 | Zabbix_agent |
三、實驗目的:
1, Server運行時長超過3個月(180天)觸發告警;表達式爲:{Templates Uptime Warm:checkuptime.last()}>180
2, Server運行時磁盤I/O使用率達到閾值告警。
3, 邏輯卷或者是分區使用率達到閾值告警。
四、邏輯關係:
開始之前先你需要整理一下郵件告警的邏輯關係,以便你更好的理解郵件告警的原理;
1,創建主機主機。
2,創建一個用戶組如:Linuxgroup將創建主機加入到linuxgroup。
3,創建一個模板,將需要監控的主機加入到模板裏面去
4,創建模板後,然後選中主機---選中模板-----創建監控項---創建觸發器---創建圖形
5,配置管理-----報警媒介-----創建一個報警介質----腳本-------參數設置-----
6,管理----用戶----選中一個用戶(Admin)----添加報警媒介----選中類型-----收件人----
7,最後配置動作------操作----關聯的用戶或者是用戶組。
8,這樣纔可以使你的監控系統生效。
五、正式開始安裝:
1, 調整語言爲簡體中文;你如果認爲你的英語OK,此步驟略過;
2,然後你會發現字體顯示不全,你還需要調整一下字體:
[root@mediawiki ~]# yum -y install wqy-microhei-fonts [root@mediawiki ~]#cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
3,在客戶端 安裝agent端並修改被監控端的zabbix_agent.conf配置文件:
[root@LinuxAgent ~]# rpm -ivh [root@LinuxAgent ~]#yum -y install zabbix-agent [root@LinuxAgent ~]#grep -v '^$' /etc/zabbix/zabbix_agentd.conf.bak |grep -v '^#'>/etc/zabbix/zabbix_agentd.conf [root@LinuxAgent ~]#cat /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server=10.93.58.41 ServerActive=10.93.58.41:10050 Hostname=10.93.58.66 UnsafeUserParameters=1 UserParameter=checkuptime,cat /proc/uptime| awk -F. '{run_days=$1 / 86400;print(run_days)}' Include=/etc/zabbix/zabbix_agentd.d/*.conf [root@LinuxAgent ~]#/etc/init.d/zabbix-agent start [root@LinuxAgent ~]#netstat -lntup |grep zabbix_agent
4,新建主機,並將主機添加到zabbix_server 和Template OS Linux模板中:(先添加主機,然後關聯到模板)
下面的Template Uptime Warm 暫時不要管,先添加Template Zabbix Server 和Template OS Linux 即可。
5,新建一個模板Template Uptime Warm:
自定義模板名稱和所屬組就,接着把關聯的ip:10.93.58.66也添加到這個模板組裏面。
最後的效果是這樣:
6,創建監控項:
7,創建觸發器:爲了方便測試告警需要把表達式改爲{Templates Uptime Warm:checkuptime.last()}>0.1
8,創建圖形:(Template Uptime Warm :主機運行時長告警)
web端設置先到這裏需要到server端設置郵件功能:
六、郵件推送:
1,爲了不影響郵件收發功能需要停止POSTfix:
[root@zabbix-server ~]# systemctl stop postfix [root@zabbix-server ~]# systemctl disable postfix
2,安裝郵件發送工具mailx:
[root@zabbix-server ~]# yum -y install mailx [root@zabbix-server ~]# mail -V
3,配置外部郵箱:
[root@zabbix-server ~]#cp /etc/mail.rc /etc/mail.rc.bak [root@zabbix-server ~]#grep -v "^$" /etc/mail.rc.bak |grep -v "^#" >/etc/mail.rc [root@zabbix-server ~]# vim /etc/mail.rc #在最末端添加 set [email protected] set smtp=smtp.sina.com set [email protected] set smtp-auth-password=xxx set smtp-auth=login
4,測試你的配置是否正確發一封測試郵件試試:
[root@zabbix-server ~]# echo "zabbix test mail 123" | mail -s "zabbix" [email protected]
5,編寫郵件發送腳本:
[root@zabbix-server alertscripts]# cat mail.sh #!/bin/bash FILE=/usr/lib/zabbix/alertscripts/mailtmp.txt echo "$3" >$FILE dos2unix -k $FILE cat $FILE|/bin/mail -s "$2" $1 [root@zabbix-server alertscripts]#touch mailtmp.txt
別忘記了給加上權限:
[root@zabbix-server ~]#chmod 777 /usr/lib/zabbix/alertscripts/mailtmp.txt [root@zabbix-server ~]#chmod 777 /usr/lib/zabbix/alertscripts/mail.sh [root@zabbix-server ~]# chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts/ [root@zabbix-server ~]# yum -y install dos2unix
6,在回到web端去添加郵件報警參數:管理-----報警媒介類型--新建報警名稱----EmailAlert
7,報警媒介關聯的動作:配置-----動作
新建動作名稱:Email-Send:
其次是操作:主要添加如下參數:
最後故障排除後的恢復操作:
七、測試模擬故障:
1,找一臺IP:10.93.58.66,停止zabbix-agent:
[root@LinuxAgent ~]# /etc/init.d/zabbix-agent stop Shutting down Zabbix agent: [ OK ]
2,查看web 界面看看有無故障:
3,查看郵箱看看有沒有郵件收到;在看看/usr/lib/zabbix/alertscripts/mailtmp.txt
[root@zabbix-server alertscripts]# cat mailtmp.txt Problem has been resolved at 10:59:12 on 2018.09.19 Problem name: Zabbix agent on 10.93.58.66 is unreachable for 5 minutes Host: 10.93.58.66 Severity: Average Original problem ID: 144
4,你也可以這樣模擬一下,測試磁盤使用率和分區(邏輯卷)空間不足報警:
[root@LinuxAgent ~]# df -TH Filesystem Type Size Used Avail Use% Mounted on /dev/sda3 ext4 20G 3.1G 16G 17% / tmpfs tmpfs 518M 0 518M 0% /dev/shm /dev/sda1 ext4 199M 60M 129M 32% /boot /dev/sda2 ext4 20G 47M 19G 1% /data
然後使用命令來測試一下:dd if=/dev/zero of=test bs=6M count=1950
[root@LinuxAgent ~]# dd if=/dev/zero of=test bs=6M count=1950
好了,你自己慢慢測試吧!自己算好空間,不要搞爆了。
最後,還有一臺10.93.58.70那臺機器我是先加到主機然後關聯到3個模板中,Agent配置一下就可以自動告警了,只要第一臺做好了,以後的就是添加關聯模板就好了。
參考文檔:https://www.zabbix.com/documentation/3.4/zh/manual/installation/install_from_packages