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