zabbix报警机制的实现
一飞信的实现:
首先下载飞信客户端:这里提供一个在附件里可以下载:
1 安装测试飞信机器人
测试
#/usr/local/feixin/fetion --mobile=159009XXXXX --pwd=XXXXX --to=15900959XXXXX --msg-utf8="
这是一条测试消息
"
检查手机是否收到消息
2 创建 sendsms.sh 短信发送脚本
#vim /usr/bin/sendsms.sh
文件内容为如下 :
#!/bin/sh
#send sms by fetion
#$1, $2, $3 mean Recipient, Subject and Message
/usr/local/fx/fetion --mobile=138176XXXXX --pwd=risghdhdn1 --to=$1 --msg-utf8="$2, $3"
保存后测试脚本 :
# chmod +x /usr/bin/sendsms.sh
# /usr/bin/sendsms.sh 138176XXXXX hello world
检查手机是否收到消息
3 、新增 zabbix 的 Media Type
登录到 zabbix ,进入“ Administration" >> ” Media types" ,点击右上角“ Create Media Type" 。
Description 填 "Fetion" 或其它名称, Type 选择 "Script" , Script 填” sendsms.sh" 。
点击 "Save" 保存配置。
# vim /etc/zabbix/zabbix_server.conf
找到AlertScriptsPath参数并修改成 AlertScriptsPath=/usr/bin/
重启 zabbix-server 服务
4 、新增 zabbix 的 Actions 配置
登录到
zabbix
,进入
"Configation" >> "Actions"
,点击右上角
"Create Actions"
。
输入” Name" ,其它都默认
点击右侧“ Action Operations" 下的 "New" 按钮, "Operation Type" 选择 "Send message" , "Send Message to" 选择一个或多个要发送消息的用户组,” Send only to" 选择我们之前新增的 Fetion 。
点击 "Save" 保存配置。
5 、 zabbix 用户配置
登录到 zabbix, 进入 "Adimistration" >> "Users" ,在之前选定要发送消息的组里的 Members 栏位里选择一个用户,例如选择 Admin 用户。
在用户信息修改界面最下方的” Media" 处点击 "Add" 按钮。
Type 选择 "Fetion" , Send to 填入收信手机号码,其它参数按需修改,点击 Add 添加。
点击 "Save" 保存配置。
至此配置完成,触发一个警报试下手机是否收到讯息。
二:邮件的实现
一使用 msmtp 这个命令行 MUA
(1)./configure --prefix=/usr/local/msmtp
(2)make
(3)make install
(4)mkdir /usr/local/msmtp/etc
(5)touch /usr/local/msmtp/etc/msmtprc
(6) 在 /usr/local/msmtp/etc/msmtprc 中写入如下内容:
defaults
account 126
host smtp.126.com
domain 126.com
from test@126.com
auth login
user test2126.com
password your_password
account default:126
logfile /var/log/maillog
(7) 测试一下: /usr/local/msmtp/bin/msmtp test@126.com ,输入内容后按 ctrl+D 发出。
二、在实际测试中发现直接使用 msmtp 命令发出去的邮件会看不到发件人和主题,只能看到邮件内容,所以我使用 mutt 挂接在 msmtp 上, mutt 默认会安装,如果没有安装请 yum install mutt*
(1) 修改 mutt 的配置文件 /etc/Muttrc, 不是 /etc/muttrc , M 要大写
1
.
set sendmail="/usr/local/msmtp/bin/msmtp"
2
.
set use_from=yes
3
.
set realname=test@126.com #
发件人邮箱地址
4
.
set editor="vi"
5
.保存退出
(2) 测试一下: echo " 邮件报警测试 " | mutt -s " 测试 " test@126.com # 收件人地址
三创建 zabbix 用于发送邮件的脚本 , 脚本放在什么位置随便,但是要保证 zabbix 能找到!
(1)vim /usr/bin/baojing, 并写入如下内容:
#!/bin/bash
echo "$3" | mutt -s "$2" $1 # $3
表示邮件内容、
$2
表示邮件标题、
$1
表示收件人
(2)chmod a+x /usr/bin/baojing
四、 zabbix 配置
(1) 创建 meida types
1
.登录到
zabbix
,进入“
Administration" >>
”
Media types"
,点击右上角“
Create Media Type"
。
Description
填
"mediatype-baojing"
或其它名称,
Type
选择
"Script"
,
Script
填”
baojing
”。
2 .点击 save 保存
(2) 创建 actions
1.
登录到
zabbix
,进入
"Configation" >> "Actions"
,点击右上角
"Create Actions"
。输入
Name
“
action-baojing
”
,其它都默认点击右侧“
Action Operations"
下的
"New"
按钮,
"Operation Type"
选择
"Send message"
,
"Send Message to"
选择一个或多个要发送消息的用户组,”
Send only to"
选择我们之前新增的
mediatype-baojing
。
2. 点击 save 保存
(3) zabbix 用户配置
登录到 zabbix, 进入 "Adimistration" >> "Users" ,在之前选定要发送消息的组里的 Members 栏位里选择一个用户,例如选择 Admin 用户
在用户信息修改界面最下方的” Media" 处点击 "Add" 按钮。
Type 选择 "mediatype-baojing" , Send to 填入收件人地址,点击 Add 添加。
点击 "Save" 保存配置。
至此配置完成,测试!
不光是 zabbix,nagios 等监控平台的邮件报警都可以这样配置。当然转到 139 邮箱的话可以收到短信的,会更加及时的收到报警
三:公司内部短信通道的设置:
这里只用定义个脚本触发脚本向短信服务器发送短信:其他的部分不变
注:其中 $1 是手机号, $2 是标题, $3 是内容,附件大于2M的不能上传,自己下载吧!不行的到时发邮件索要mail:wshugao@126.com