zabbix 配置邮件和微信告警

回复 收藏
本帖最后由 zql254 于 2015-12-20 21:55 编辑

zabbix 配置邮件告警
设置触发器的目的是为了让监控的服务实现告警,那告警如何告呢,下面我们来配置一下邮件告警。
测试mail是否能发送邮件:
echo "test mail" |mail -s "testtest" test@qq.com

如果测试mail不能发送,则配置为外部的smtp服务器发送:
vim /etc/mail.rc
在最后添加以下内容:
set from=fromUser@domain.com smtp=smtp.domain.com set smtp-auth-user=username smtp-auth-password=password set smtp-auth=login
说明:
from是发送的邮件地址
smtp是发生的外部smtp服务器的地址
smtp-auth-user是外部smtp服务器认证的用户名
smtp-auth-password是外部smtp服务器认证的用户密码
smtp-auth是邮件认证的方式
接着查看zabbix的脚本目录设置在哪里,也可以自己设置:
vim /etc/zabbix_server.conf
找到其中的AlertScriptsPath和ExternalScripts就是zabbix的脚本目录。
接着进入AlertScriptsPath目录,创建脚本:
# vim mail.sh
内容为:
#!/bin/bash
#weixin.sh#
#zabbix发报警信息到邮箱#
#kenney#
#2015-12-04#


emailaddr=$1
theme=$2
Msg=`echo "$*"|cut -d' ' -f3-`


echo "$Msg" | mail -s "$theme" "$emailaddr"

保存后,修改文件的权限
# chmod +x mail.sh

下面在浏览器里面继续配置邮件告警
创建 mediea types报警媒介类型:
“Administration" -->”Media types",点击右上角“Create Media Type"
中 Description 填"mailbaojing” 或其它自定义名称, Type 选择"Script", Script 填刚创建的脚本名"mail.sh" ,然后点”Save”。
创建 user也可以不创建直接使用admin用户:
“Adimistration” --> “Users”在右上角,选择”Users”,点击”Create User”创建新用户
alias:test1,自定义 name 和 lastname password:123456;group 选择 一个用户组(但该用户组一定要对监控的服务器和模板有读写权限,可在用户组的许可权中配置)。如果直接使用admin用户可略过以上步骤,直接点击Admin用户进行编辑。
选择 media type 示警媒介 ,点 add 添加,类型选择 刚创建的媒介类型mailbaojing,  send to 写要发送邮件的邮箱,点 add, 最后点 save。
创建 action动作:
”configuration配置” --> actions动作,右上角“Create Actions”, Name 自定义,我这里写”mailbaojing”,默认信息填写如下:
/::< /::,@!/:,@! /::< /::< \n
HOST:{HOST.NAME}\n
IP:{HOST.IP}\n
TIME:{EVENT.DATE} {EVENT.TIME}\n\n
Trigger:{TRIGGER.NAME}\n
Status: {TRIGGER.STATUS}\n
Severity: {TRIGGER.SEVERITY}\n
Trigger URL: {TRIGGER.URL}\n
\n
Original event ID: {EVENT.ID}\n
然后把恢复信息的勾也选上,内容跟上面一样。

然后点“Operations 操作”下的“New 新的”按钮, “Operation Type 操作类型”选择“Send message送出信息”, “Send Message to 送到用户组”选择一个或多个要发送消息的用户组, Send to Users 送到用户 选择我们之前新增的 test1, “Send only to 仅送到”选择 mailbaojing , 注意点小的 add,最后点 save
这样就配置好了,可以进行测试。

配置微信报警:
要配置微信报警,首先要到微信公众平台申请企业号,不想认证的可以选择社会团体,具体步骤我就不介绍了,具体百度。
微信报警的步骤跟邮件报警差不多,除了脚本不一样。下面是微信报警的脚本:
#!/bin/bash
#weixin.sh#
#zabbix发报警信息到微信#
#kenney#
#2015-12-04#



CropID='微信公众号的CropID'
Secret='微信公众号的Secret'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=`/usr/bin/curl -s -G $GURL | awk -F'"' '{print $4}'`

PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"



function body(){
        local int AppID=0
        local UserID=$1
        local PartyID=1
        local Msg=`echo "$*"|cut -d' ' -f3-`
        printf '{\n'
        printf '\t"touser": "'"$UserID"'",\n'
        printf '\t"toparty": "'"$PartyID"'",\n'
        printf '\t"msgtype": "text",\n'
        printf '\t"agentid": "'"$AppID"'",\n'
        printf '\t"text": {\n'
        printf '\t\t"content": "'"$Msg"'" \n'
        printf '\t},\n'
        printf '\t"safe":"0"\n'
        printf '}\n'
        }


Str=$(body $*)
curl -d "$Str" "$PURL"



2015-12-20 21:54 举报
已邀请:
0

syk

赞同来自:

使用微信时,创建用户时,sent to写哪里?
0

snake

赞同来自:

学习
0

prospect

赞同来自:

不是很全啊
0

沧海一叶

赞同来自:

Good

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: