Zabbix 短信与邮件报警
zabbix报警的方式一般可以有短信、邮件、微信等方式.一、zabbix邮件报警
配置邮件报警的步大致的步骤是:
[*]配置外部邮箱、然后准备一个可以发邮件的脚本,可以是bash、python、php等
[*]创建一个报警媒介类型 ( 相当于建立一个发送 报警的通道 )
[*]针对用户选择创建好的报警媒介
[*]配置动作 ( 触发器、操作条件)
1、配置外部邮箱、准备发邮件的脚本
首先你要有一个外部邮箱用来报警邮件,我这里是163的,然后一定要开启授权,这样才能连到163的邮件服务器。登陆mail.163.com, 设置 ---》 常规设置 ---》 客户端授权码 ,按照相关步骤操作就行.
https://images2017.cnblogs.com/blog/855835/201708/855835-20170830143140812-585736164.png
在zabbix-server服务器上配置邮件客户端,这样就能连到163的邮件服务器
# yum install mail dos2unix -y
vim /etc/mail.rc # 在最近后面添加如下
set from=xxxxxxxxx@163.com # 发件人邮箱
set smtp
=smtp.163.com # 发件人smtp服务器
set smtp
-auth-user=xxxxxx # 发件人(用户)
set smtp
-auth-password=xxxxx # 密码
set smtp
-auth=login # 认证登陆
set ssl
-verify=ignore # 忽略ssl验证
准备发邮件的脚本,要放到zabbix_server.conf中的AlertScriptsPath路径下面并且有执行的权限, 我这里是/usr/lib/zabbix/alertscripts,也可以根据你的需求自己定义
# cd /usr/lib/zabbix/alertscripts
编写报警邮件脚本(vim zabbix-sendmail.sh)如下:
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
MAIL_FILE="/tmp/zabbix_mail_file" #注意此文件需要对启动zabbix-server的用户有写入的权限
sendto=$1
subject=$2
echo "$3" > $MAIL_FILE
dos2unix -k $MAIL_FILE
mail -s "$subject" "$sendto" < $MAIL_FILE
添加执行权限,否则发不了邮件
# chown zabbix.zabbix zabbix_sendmail.sh
#
chmod u+x zabbix_sendmail.sh
测试邮件脚本是否可用发送邮件,如果可以才能进行下一步配置
./zabbix_sendmail.sh 你的邮箱 主题 我的内容
2、创建报警媒介类型
管理 ===》 报警媒介类型===》 创建媒体类型
https://images2017.cnblogs.com/blog/855835/201708/855835-20170830145652218-366150735.png
3、用户选择创建好的媒体介质类型
管理 ==》 用户==》 报警媒介,在手机人中指定邮箱,多个以逗号隔开。这里有个建议是可以填qq邮箱,这样间接的可以在微信里看到报警的邮件
https://images2017.cnblogs.com/blog/855835/201708/855835-20170830150416796-466014193.png
4、配置动作
配置== 》 动作==》 创建动作
https://images2017.cnblogs.com/blog/855835/201708/855835-20170830162311296-1708871101.png
https://images2017.cnblogs.com/blog/855835/201708/855835-20170830150839655-1251925303.png
https://images2017.cnblogs.com/blog/855835/201708/855835-20170830150849140-2053862769.png
配置完成后,模拟一个agent断开告警,然后在动作日志里面查看有没有相关的动作
https://images2017.cnblogs.com/blog/855835/201708/855835-20170830184947749-770468192.png
再看下能不能收到邮件
https://images2017.cnblogs.com/blog/855835/201709/855835-20170906234828413-1859726068.png
二、zabbix短信报警
短信报警和邮件报警差不多
[*]首先要有短信网关,准备一个可以发送短信的脚本,什么语言的都可以
[*]创建一个报警媒介类型 ( 相当于建立一个发送 报警的通道 )
[*]针对用户选择创建好的报警媒介
[*]配置动作 ( 触发器、操作条件)
发送短信的脚本如下,其它的邮件报警一样
#!/usr/bin/env python3
#
coding:utf-8
"""
调用短信网关接口发短信
"""
import sys
try:
import requests
except ImportError:
sys.exit("Error: requests library must be installed: pip install requests.")
def send_msg(mobile, message):
"""
发送短信功能
parmas: mobile对方手机号
parmas: message 短信内容
return: json
"""
message = message.encode('gb2312')
payload = {
'UserID': 'xxxxxx',
'Account': 'xxxxxx',
'Password': 'xxxxxx',
'Content': message,
'Phones': mobile
}
try:
r = requests.get(
'http://www.lanz.net.cn/LANZGateway/DirectSendSMSs.asp', params=payload
)
message = r.text
return {'code': 200, 'message': message}
except Exception as err:
message = err
return {'code': 404, 'message': message}
if __name__ == '__main__':
filename = sys.argv
argvs = sys.argv
mobile = argvs
message = '【zabbix告警】\n' +argvs
send_msg(mobile=mobile, message=message)
模拟测试,看有没有收到短信
https://images2017.cnblogs.com/blog/855835/201708/855835-20170830154126374-1985081848.png
页:
[1]