安裝sendEmail
sendEmail是一個免費、輕量級、命令行的SMTP郵件客戶端。
如果你需要使用命令行方式發送郵件,那么sendEmail是非常完美的選擇:使用簡單、功能強大。
wget -P /tmp # 安裝組件 yum install perl-Net-SSLeay perl-IO-Socket-SSL -y # 解壓壓縮包,並把命令拷貝到/usr/local/bin下 tar -zxvf /tmp/sendEmail-v1.56.tar.gz -C /tmp cp /tmp/sendEmail-v1.56/sendEmail /usr/local/bin/ chmod +x zabbix:zabbix /usr/local/bin/sendEmail
3. 創建zabbix報警腳本目錄
mkdir -p /usr/local/zabbix/alertscripts
chown -R zabbix:zabbix /usr/local/zabbix/alertscripts
4. 修改zabbix服務端配置文件指定腳本目錄
vim /usr/local/zabbix/etc/zabbix_server.conf
# 將AlertScriptsPath變量修改為如下,大概在448行左右
AlertScriptsPath=/usr/local/zabbix/alertscripts
5. 測試sendEmail發送郵件(與步驟六二選一)
#命令行測試如下命令:
# sendEmail -f from@163.com -t to@qq.com -s smtp.163.com -u 'test' -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp 'passwd' -m 'test' # 出現一下提示證明命令安裝正確:
Dec 24 23:01:59 zabbix sendEmail[3612]: Email was sent successfully! # 收到此提示表示發送成功 # -f from@163.com # 發件人郵箱地址 # -t to@qq.com # 收件人郵箱地址 # -s smtp.163.com # 發件人郵箱的smtp服務器地址 # -u 'test' # 郵件標題 # -o message-content-type=html # 郵件內容格式為html # -o message-charset=utf8 # 郵件內容編碼為utf8 # -xu from@163.com # 發件人郵箱登錄用戶名 # -xp 'passwd' # 發件人郵箱登錄密碼 # -m 'test' # 郵件內容 # 編寫郵件警報腳本 vim /usr/local/zabbix/alertscripes/sendEmail.sh #!/bin/bash to=$1 subject=$2 message=$3 smtp_server="smtp.163.com" /usr/local/bin/sendEmail -f from@163.com -t "$to" -s "$smtp_server" -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp "passwd" -m "$message" chmod +x sendEmail.sh chown zabbix.zabbix sendEmail.sh
6. 使用163代理發送郵件
yum install -y mailx # 在文件最下方加入兩行163認證即可 vim /etc/mail.rc # 設置發件人地址,smtp服務器 set from=pyslinux@163.com smtp=smtp.163.com # 設置發件人smtp認證用戶名和密碼(由於163開啟smtp后這里設置的是授權碼而非登錄密碼) set smtp-auth-user=pyslinux@163.com smtp-auth-password=密碼 smtp-auth=login # 測試郵件發送 mail -s 'test' xxx@qq.com < /etc/passwd # 編寫腳本 vim /usr/local/zabbix/alertscripes/mail.sh #!/bin/bash echo "$3"|mail -s "$2" "$1" chmod +x /usr/local/zabbix/alertscripes/mail.sh