一、安裝sendmail或postfix
[root@zabbix ~]# yum install sendmail –y #在線yum安裝sendmail
[root@zabbix ~]# service sendmail start #啟動sendmail服務
[root@zabbix ~]# chkconfig sendmail on #設置開機啟動
CentOS 5.x 默認已經安裝好sendmail (這個可以查一下)
CentOS 6.x 默認已經安裝好postfix (這個可以查一下)
sendmail和postfix只需要安裝一個即可並開啟服務即可。
[root@zabbix ~]# /etc/init.d/sendmail status #查看sendmail啟動情況
sendmail 已死,但是 subsys 被鎖
sm-client (pid 2113) 正在運行... #sendmail進程鎖住,原因是postfix服務啟動導致sendmail服務進程鎖住,需要關閉postfix服務
[root@zabbix ~]# /etc/init.d/postfix stop #暫停postfix服務
[root@zabbix ~]# chkconfig postfix off #設置postfix開機不啟動
[root@zabbix ~]# /etc/init.d/sendmail stop #暫停sendmail服務
[root@zabbix ~]# /etc/init.d/sendmail start #啟動sendmail服務
[root@zabbix ~]# /etc/init.d/sendmail status #查看sendmail啟動情況
sendmail (pid 2475) 正在運行...
sm-client (pid 2485) 正在運行...
二、安裝郵件發送工具mailx
[root@zabbix ~]# yum remove mailx #卸載系統自帶的舊版mailx
[root@zabbix ~]# yum install mailx –y #安裝
[root@zabbix ~]#mailx -V #查看版本信息
[root@zabbix ~]# whereis mailx #查看安裝路徑
利用外部的smpt服務器
而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的smtp服務器發送郵件的目的:
[root@zabbix ~]# vim /etc/mail.rc 修改/etc/mail.rc
set from=709885674@qq.com smtp=smtp.qq.com
set smtp-auth-user=709885674@qq.com smtp-auth-password=********
set smtp-auth=login
說明:
from是發送的郵件地址
smtp是發生的外部smtp服務器的地址
smtp-auth-user是外部smtp服務器認證的用戶名
smtp-auth-password是外部smtp服務器認證的用戶密碼,在qq郵箱中設置生成 (郵箱密碼使用SMTP授權碼)
smtp-auth是郵件認證的方式
配置成功后,就可以使用了
可以發送一封郵件測試一下:
[root@zabbix ~]# mailx -s "mail from linux" 709885674@qq.com < zabbixtest.txt 其中-s后面的是郵件標題,709885674@qq.com是收件人地址,zabbixtest.txt里面是郵件正文(先創建zabbixtest.txt寫入內容)
收到郵件如下:
編寫郵件發送腳本sendmail.sh
[root@zabbix ~]#cd /usr/local/zabbix/share/zabbix/alertscripts/ #進入zabbix默認存放腳本路徑
[root@zabbix alertscripts]# vim sendmail.sh #編寫發送郵件腳本
#!/bin/bash
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1
[root@zabbix ~]# chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#sendmail.sh腳本修改所屬用戶和用戶組
[root@zabbix ~]# chmod 755 /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#sendmail腳本賦予執行權限
[root@zabbix ~]# ls -l /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
-rwxr-xr-x. 1 zabbix zabbix 153 10月 25 15:09 /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#查看sendmail.sh腳本權限相關信息
[root@zabbix ~]# vim /usr/local/zabbix/etc/zabbix_server.conf #配置zabbix_server.conf配置文件
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
#加入一行sendmail.sh腳本存放路徑
[root@zabbix ~]# su zabbix #切換zabbix用戶
[zabbix@zabbix root]$ /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh 709885674@qq.com "test linux" "test"
#用zabbix用戶執行sendmail.sh腳本看是否有權限,發件成功,郵件如下:
進入Zabbix后台web介面配置
1、管理 ----報警媒介類型-----創建媒介類型。
2、名稱可以隨便自己定義-----類型選擇“腳本”-----腳本名稱輸入上一步編寫的發送郵件的腳本名稱----
再添加以下3個參數,分別對應腳本需要的3個參數:收件人地址、主題、詳細內容:
{ALERT.SENDTO} #收件人地址
{ALERT.SUBJECT} #主題
{ALERT.MESSAGE} #詳細內容
3、管理----用戶-----選擇admin用戶(自己創建一個用戶也可以)。
4、報警媒介----添加。
5、類型輸入剛剛創建的報警媒介類型sendmail腳本---輸入個人郵箱用於接收報警郵件---啟動打勾----添加。
6、選擇更新。
7、權限設置(管理員用戶不用修改,權限默認所有服務器,如果要分類權限需要在用戶組進行控制)。
8、管理---用戶群組,需要把剛剛添加的
9、配置----動作----創建動作。
10、動作----名稱自定義---設置一條新的觸發條件----啟用----添加。(觸發條件根據實際情況設置) “觸發器名稱”、“ 似”、方框可填入“is unreachable for 5 minutes”#根據主機觸發器 Template App Zabbix Agent:Zabbix agent on {HOST.NAME} is unreachable for 5 minutes設置,主要監測zabbix_agentd客戶端連接情況。
11、配置---動作---操作(自定義的,根據自己的需求定義)。
默認接收人: fault {trigger.status}, server: {HOSTNAME1} occurs: {trigger.name} failure!
默認信息: alarm HOST IP address: {host.conn}
Alarm host: {HOSTNAME1}
Alarm TIME: {event.date} {event.time}
Alarm level: {trigger.severity}
Warning: {trigger.name}
Alarm project: {trigger.key1}
Details: {item.name} : {item.value}
Current STATUS: {trigger.status} : {item.value1}
12、配置---動作---恢復操作(自定義的,根據自己的需求定義)。
默認接收人:: restore {trigger.status}, server: {HOSTNAME1}: {trigger.name} has been restored!
恢復信息: alarm HOST IP address: {host.conn}
Alarm host: {HOSTNAME1}
Alarm TIME: {event.date} {event.time}
Alarm level: {trigger.severity}
Warning: {trigger.name}
Alarm project: {trigger.key1}
Details: {item.name} : {item.value}
Current STATUS: {trigger.status} : {item.value1}
13、已經設置好了,我們測試一下。檢測中---儀表板,在 “系統狀態”可以看到,有一個一般嚴重的故障,把鼠標放在1的位置就能看到相關信息。
14、報表---動作日志,可以看到發件的狀態:已發送及內容(我這亂碼了)。
15、返回郵箱,可以看到郵件報警內容了。(我這亂碼了)。