zabbix三种常用报警方式:邮件、微信和短信报警

2023-05-16

部署环境:(Zabbix的版本为3.4.10)
Zabbix server:192.168.2.205 Centos 7
Zabbix agent:192.168.2.204 Centos 7
zabbix服务端和客户端的安装部署我就不讲了,可以参考我的另一篇博文https://blog.51cto.com/andyxu/2120362 ,这里我主要讲zabbix的三种报警方式。

一、邮件报警

邮件报警配置有两种方式,一种是web端配置一个可用的邮箱,一种是通过脚本发送报警邮件。
(1)在web端配置一个可用的外部邮箱,通过这个邮箱发送报警邮件。
第1步:添加报警媒介
管理-报警媒介类型-Email,按下图将你的邮箱配置填写上去,选项那里可不用更改。
zabbix三种常用报警方式:邮件、微信和短信报警
第2步:用户配置
管理-用户-Admin,报警媒介那里点击“添加”,收件人那里填写你要接收报警的邮箱地址。
zabbix三种常用报警方式:邮件、微信和短信报警
第3步:创建一个动作
配置-动作-创建动作,按下面图进行配置
zabbix三种常用报警方式:邮件、微信和短信报警
zabbix三种常用报警方式:邮件、微信和短信报警
zabbix三种常用报警方式:邮件、微信和短信报警
点击“操作”,配置邮件内容和操作步骤等
以下是我自己定义的一个报警邮件内容,具体的参数含义可参考官网资料
服务器 {HOST.NAME} 发生 {TRIGGER.NAME} 故障!{TRIGGER.STATUS}
故障主机: {HOST.NAME}
故障时间: {EVENT.DATE} {EVENT.TIME}
故障信息: {TRIGGER.NAME}
故障级别: {TRIGGER.SEVERITY}
事件ID: {EVENT.ID}
{TRIGGER.URL}
zabbix三种常用报警方式:邮件、微信和短信报警
点击“恢复操作”,配置主机恢复正常后发送的邮件内容和操作步骤等
故障恢复邮件内容:
服务器 {HOST.NAME} 发生 {TRIGGER.NAME} 已恢复!{TRIGGER.STATUS}
故障主机: {HOST.NAME}
恢复时间: {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
故障信息: {TRIGGER.NAME}
故障级别: {TRIGGER.SEVERITY}
事件ID: {EVENT.ID}
{TRIGGER.URL}

zabbix三种常用报警方式:邮件、微信和短信报警
确认操作可无需配置,至此就全部配置完成了,可以模拟个故障测试一下吧。
最终收到的报警邮件内容如下图

zabbix三种常用报警方式:邮件、微信和短信报警

(2)通过脚本发送报警邮件

通过脚本发送报警邮件有两种方式:

1、使用linux系统的用户账号发送,例如zabbix的账号邮箱地址为zabbix@<主机名>.localdomain,很多外部邮箱会将其视为垃圾邮件。
2、配置一个外部邮箱地址,发送报警邮件。
由于linux系统的用户邮箱有可能会被视为垃圾邮件,所以我们这里使用一个外部邮箱发送报警。

第1步:如果安装有sendmail或者postfix,需要关闭

systemctl stop sendmail
systemctl disable sendmail
systemctl stop postfix
systemctl disable postfix

第2步:安装mailx工具,通过此工具来发送邮件
yum -y install mailx
第3步:修改/etc/mail.rc,添加一个外部的smtp服务器地址、账号密码等。

cp /etc/mail.rc /etc/mail.rc.bak
vim /etc/mail.rc
set from=xxxx@126.com
set smtp=smtp.126.com
set smtp-auth-user=xxxx@126.com
set smtp-auth-password=xxxxxxxx
set smtp-auth=login

第4步:通过命令发封邮件测试
echo "你好啊,测试啊" | mail -s "title" xxxx@126.com
zabbix三种常用报警方式:邮件、微信和短信报警
能正常收到邮件即可
第5步:编写邮件发送脚本
确认一下zabbix_server.conf配置文件里以下目录是否已开启,如果没有请添加下面这行。
AlertScriptsPath=/data/zabbix/share/zabbix/alertscripts
注:不同安装方式的zabbix此目录的路径会有所不同,我是编译安装的,所以是这个路径,如果是yum安装的话,默认路径为AlertScriptsPath=/usr/lib/zabbix/alertscripts
vim /data/zabbix/share/zabbix/alertscripts/mail.sh

#!/bin/bash
echo "$3" | mail -s "$2" "$1"

更改脚本属主和赋予可执行权限

chown -R zabbix:zabbix /data/zabbix/share/zabbix/alertscripts
chown zabbix:zabbix /data/zabbix/share/zabbix/alertscripts/mail.sh
chmod +x /data/zabbix/share/zabbix/alertscripts/mail.sh

测试脚本是否能正常发送邮件
/data/zabbix/share/zabbix/alertscripts/mail.sh xuad@xxxxxxxxx.com xuad88 xlkllskdk5
zabbix三种常用报警方式:邮件、微信和短信报警
邮件能正常收到,脚本没问题
第6步:添加报警媒介
管理-报警媒介类型-创建媒体类型
{ALERT.SENDTO} # 用户里定义的收件人地址
{ALERT.SUBJECT} # 邮件标题
{ALERT.MESSAGE} # 邮件内容
zabbix三种常用报警方式:邮件、微信和短信报警
第7步:用户配置
管理-用户-Admin-报警媒介
zabbix三种常用报警方式:邮件、微信和短信报警
第8步:创建动作
配置-动作-创建动作,此处前面已经讲过,这里就不再重复了,按下图配置
zabbix三种常用报警方式:邮件、微信和短信报警
zabbix三种常用报警方式:邮件、微信和短信报警
zabbix三种常用报警方式:邮件、微信和短信报警
第9步:模拟故障测试
往192.168.2.204主机的/boot目录下写入一个700M垃圾文件,使其触发警告,发送报警邮件。
dd if=/dev/zero of=/boot/test bs=100M count=7
zabbix三种常用报警方式:邮件、微信和短信报警
此时在仪表板页面我们看到邮件已发送成功
zabbix三种常用报警方式:邮件、微信和短信报警
然后登陆邮箱收下邮件吧,邮件内容如下图
zabbix三种常用报警方式:邮件、微信和短信报警
然后动作日志里应该能看到刚刚发送的报警邮件了,最后别忘记把700M的垃圾邮件删除。

二、企业微信报警

第1步:注册一个企业微信号
浏览器打开https://work.weixin.qq.com/ , 点击企业注册。
zabbix三种常用报警方式:邮件、微信和短信报警
注册成功后会看到企业信息页面,把企业ID先记录下来,后面发送报警脚本里需要配置。
zabbix三种常用报警方式:邮件、微信和短信报警
第2步:创建一个部门,专供发送报警用,并添加需要接收报警的成员。
点击“通讯录”,再点击+号,选择“添加部门”。
zabbix三种常用报警方式:邮件、微信和短信报警
zabbix三种常用报警方式:邮件、微信和短信报警
把部门ID记录下来,后面配置web端用户报警媒介的收件人要用到。
zabbix三种常用报警方式:邮件、微信和短信报警
给刚创建的部门添加成员,可以直接添加成员也可以微信邀请,可以先将管理员微信添加进来。这里可以点击“微信邀请”,用管理员微信扫描二维码添加。
zabbix三种常用报警方式:邮件、微信和短信报警
zabbix三种常用报警方式:邮件、微信和短信报警
第3步:新增一个第三方应用
企业应用-创建应用
zabbix三种常用报警方式:邮件、微信和短信报警
可见范围那里选择刚才添加的那个部门
zabbix三种常用报警方式:邮件、微信和短信报警
将AgentId和Secret记录下来,发送脚本里需要配置。
zabbix三种常用报警方式:邮件、微信和短信报警
第4步:下载微信发送脚本

cd /tmp/
git clone https://github.com/loong576/Wechat-Alert-for-Zabbix.git
cp Wechat-Alert-for-Zabbix/wechat_alert.py /data/zabbix/share/zabbix/alertscripts/
chown zabbix:zabbix /data/zabbix/share/zabbix/alertscripts/wechat_alert.py
chmod +x /data/zabbix/share/zabbix/alertscripts/wechat_alert.py

没有git命令的话,可以用yum安装
yum -y install git
安装requests模块

yum -y install epel-release
yum -y install python-pip
pip install --upgrade pip
pip install requests

第5步:修改wechat_alert.py脚本
修改下面3行内容,就是前面记录的企业ID,AgentId和Secret。

    Corpid = "xxxxxxxxxxxxxxxxxx"  # 企业ID
    Secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    Agentid = "xxxxxxx"

zabbix三种常用报警方式:邮件、微信和短信报警
第6步:创建报警媒介类型
脚本参数这里只需要添加下面两个参数,收件人和报警内容
{ALERT.SENDTO}
{ALERT.MESSAGE}
zabbix三种常用报警方式:邮件、微信和短信报警
第7步:新建用户群组,用于接收微信报警
zabbix三种常用报警方式:邮件、微信和短信报警
zabbix三种常用报警方式:邮件、微信和短信报警
第8步:新建一个接收微信报警的用户,并将其加入到刚刚创建的用户群组
zabbix三种常用报警方式:邮件、微信和短信报警
添加用户报警媒介,将之前记录下来的部门ID填入收件人里。
zabbix三种常用报警方式:邮件、微信和短信报警
第9步:创建报警动作
zabbix三种常用报警方式:邮件、微信和短信报警
zabbix三种常用报警方式:邮件、微信和短信报警
zabbix三种常用报警方式:邮件、微信和短信报警
至此所有配置就都完成了,下面来测试一下吧。
第10步:报警测试
跟前面邮件测试一样,往zabbix server主机的/boot目录下写入一个700M的垃圾邮件,使其触发报警。
dd if=/dev/zero of=/boot/test bs=100M count=7
然后我们用手机打开企业微信,来看一下报警信息吧
zabbix三种常用报警方式:邮件、微信和短信报警
查看微信报警信息有两种方式:1、在企业微信上查看;2、关注企业微信号,在微信上查看。
第11步:关注企业微信号,在微信上查看报警信息
先通过微信扫描通讯录里的二维码或者直接添加成员,将其加入到接收报警的部门里。
zabbix三种常用报警方式:邮件、微信和短信报警
然后进入到连接微信-微工作台,下面有个邀请关注二维码,手机上打开微信扫描此二维码,然后输入自己的手机号通过验证即可。
zabbix三种常用报警方式:邮件、微信和短信报警
zabbix三种常用报警方式:邮件、微信和短信报警
以后就可以直接在微信上接收报警了,在下图中“监控报警”里面查看报警信息。
zabbix三种常用报警方式:邮件、微信和短信报警

三、短信报警

第1步:创建发送短信脚本
由于我们公司是用的语音短信,不需要报警内容,所以脚本无需传任何参数,如果是用的文字短信,请自行修改脚本。其实无论是语音短信还是文字短信,脚本内容大体上是一样的,只是少了报警内容而已,少了往脚本里传个参数而已。
vim /data/zabbix/share/zabbix/alertscripts/sms.pl

#!/usr/bin/perl -w
use strict;
use LWP::Simple;
use URI::Escape;
use Encode;
my $content = 'xxxxxx';  # 语音短信内容编号
my $prdid = 'xxxxxxx';
my @mobile = ('138xxxxxxxx','186xxxxxxxx');  # 接收语音短信的手机号
my $log_control = 1; # a switch of log
my $username = 'xuad'; # your sms service username
my $password = '12345678'; # your sms service password
my $number = 0;
while($number < 2){
    my $result = get "http://<发送短信的URL地址>sname=$username&spwd=$password&scorpid=&sprdid=$prdid&sdst=$mobile[$number]&smsg=$content";
    if($log_control) {
        my $fh;
        open($fh, '>> /data/zabbix/logs/sms.log') or die "can't open log: $!";  # make sure have permission
        print $fh join(' ', time, encode('utf8',$result), "\n");
        close $fh;
    }
    $number = $number + 1;
}

更改脚本属主和赋予可执行权限

chown zabbix:zabbix /data/zabbix/share/zabbix/alertscripts/sms.pl
chmod +x /data/zabbix/share/zabbix/alertscripts/sms.pl

测试脚本是否正常

/data/zabbix/share/zabbix/alertscripts/sms.pl
cat /data/zabbix/logs/sms.log

日志里出现下图内容表示脚本OK
zabbix三种常用报警方式:邮件、微信和短信报警
第2步:创建报警媒介类型
由于是语音短信报警,没有标题和内容,所以只需要传个收件人参数即可。我们公司语音短信内容是固定的,内容大致是“目前有服务器出现故障,请查收邮件或者查看微信”。
zabbix三种常用报警方式:邮件、微信和短信报警
第2步:给用户添加报警媒介
zabbix三种常用报警方式:邮件、微信和短信报警
第3步:创建报警动作
zabbix三种常用报警方式:邮件、微信和短信报警
zabbix三种常用报警方式:邮件、微信和短信报警
由于是短信报警,所以只发故障短信,不发恢复短信,所以无需配置恢复操作。
第4步:报警测试
跟之前测试一样,这里就不重复写了,只要能正常接收到报警短信即可。

转载于:https://blog.51cto.com/andyxu/2145196

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zabbix三种常用报警方式:邮件、微信和短信报警 的相关文章

  • 使用vue时遇到的内存溢出以及处理

    业务场景 vue帮我们处理很多数据到视图 数据到事件的处理 xff0c 其中不乏许多闭包 事件处理 xff0c 因此比较容易忽视内存溢出的处理 前言 几种常见的内存溢出 1 全局变量引起的内存泄漏 2 闭包引起的内存泄漏 3 dom清空或删
  • ios 显示html标签,超链接颜色以及下划线的处理

    有的时候 xff0c 我们的app需要显示html标签的效果 xff0c 这个时候 xff0c 如果需求不是特别复杂的话 xff0c 我们都是可以使用textView来实现的 对冉Label也可以实现 xff0c 但是label很难实现超链
  • 并发用户数、吞吐量、思考时间的计算公式

    二 软件性能的几个主要术语 1 响应时间 xff1a 对请求作出响应所需要的时间 网络传输时间 xff1a N1 43 N2 43 N3 43 N4 应用服务器处理时间 xff1a A1 43 A3 数据库服务器处理时间 xff1a A2
  • 怎么获得MIUI12系统的root权限

    MIUI12系统怎么样拥有ROOT权限 xff1f 大家都知道 xff0c android手机有ROOT权限 xff0c 一旦手机拥有root相关权限 xff0c 能够实现更强的功能 xff0c 打个比方大家部门的营销部门 xff0c 使用
  • iPhone查看WiFi密码(篇章一)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 第一章 xff1a iPhone查看那些 曾经手动连接过 的WiFi密码 1 找到 iCloud xff08 不同系统版本位置不同 xff0c 但都在设置里 xff09 进
  • 深度卷积神经网络TensorFlow GPU实现

    深度卷积神经网络TensorFlow GPU实现 Deep Learning CNN s in Tensorflow with GPUs Taylor Guo 2017年6月11日 本文讲解卷积神经网络架构 xff0c 如何在tensorf
  • 原版XP合集,非BT下载

    原版XP和集 xff0c 非BT下载 都用迅雷下载 xff09 因FTP下载比较稳定 一般不会出现BT丢种的问题 所以这里只发FTP下载连接 如果大家还有更好的 欢迎补充 xff01 联想xp pro SP2 http web qtedu
  • Eclipse快捷键-方便查找

    行注释 销注释 Ctrl 43 块注释 销注释 Ctrl 43 Shift 43 Ctrl 43 Shift 43 查找 查找替换 Ctrl 43 H Ctrl 43 F 查找下一个 往回找 Ctrl 43 K Ctrl 43 Shift
  • OpenGL鼠标点击事件

    include lt windows h gt Windows的头文件 include lt gl gl h gt OpenGL32库的头文件 include lt gl glu h gt GLu32库的头文件 include lt gl
  • debian中文字体美化

    为什么80 的码农都做不了架构师 xff1f gt gt gt 1 安装必要的字体包 Debian 和 Ubuntu 下对中文支持比较好的字体有 xff1a ttf droid ttf wqy zenhei和ttf wqy microhei
  • Kindeditor上传失败问题解决

    xff08 问题关键词 xff1a kindeditor 上传图片失败 kindeditor上传图片成功 xff0c 但是页面上却提示失败 kindeditor得到Json正确 xff0c 确提示失败 xff09 今天又遇到了一个比较无奈的
  • bash ps1变量_学习鸟哥私房菜--linux bash 的环境变量ps1设置

    bash里边的变量ps1是用户平时的提示符 xff0c 系统默认为 username 64 host 工作目录 关于ps1的相关介绍详见 xff1a http www cnblogs com starspace archive 2009 0
  • 人工智能让生活更美好

    人 I 工 I 智 I 能 I到 I来 科 I技 I大 I门 打 I 开 提起人工智能 你会想到什么 阿尔法围棋 浪潮天梭象棋 甚至会想到 大白 吧啦啦啦 史密斯电影 我 机器人 科技一直推动社会的变化 技术的飞速更迭与人类移动网络化的行为
  • 解压命令linux tgz,tar 解压_linux中的“tar命令”怎么解压“.tgz”与“.tar.gz”文件?...

    在LINUX下如何将tar压缩文件解压到指定的目录下 一 解压 tar gz格式到指定的目录下 xff1a 命令格式为 xff1a tar zxvf 压缩包文件名 tar gz C 路径 例如 xff1a tar zxvf japan ta
  • ssh证书登录(实例详解)

    前言 本文基于实际Linux管理工作 xff0c 实例讲解工作中使用ssh证书登录的实际流程 xff0c 讲解ssh证书登录的配置原理 xff0c 基于配置原理 xff0c 解决实际工作中 xff0c windows下使用SecureCRT
  • 常用滤波算法搜集

    一 十一种通用滤波算法 转 1 限幅滤波法 xff08 又称程序判断滤波法 xff09 A 方法 xff1a 根据经验判断 xff0c 确定两次采样允许的最大偏差值 xff08 设为A xff09 每次检测到新值时判断 xff1a 如果本次
  • 静态路由和默认路由的配置实战及其区别--很详细哦

    静态路由和默认路由的配置实战及其区别 一 xff1a 实验拓扑 二 xff1a 实验要求 1 xff1a 实现全网互通 2 xff1a 实现静态路由与动态路由的区别认识 3 xff1a 熟练掌握其配置命令 三 xff1a 实验步骤 第一步
  • MVC3学习:利用mvc3+ajax实现全选和批量删除

    本例数据库操作使用EF code first 先利用mvc自带的模板 xff0c 先生成一个list视图 xff0c 然后再手动添加复选框和删除按钮 lt table gt lt tr gt 64 在标题行添加一个全选按钮 64 lt th
  • 解决FAT32格式U盘安装win10时0x8007000D错误

    问题由来 我一直使用U盘 xff0c UltraISO软碟通和msdn原版镜像来装系统 最近在把Win10 1709升级为1803时遇到了问题 同样也是使用UltraISO刻录镜像到U盘的方法安装的 xff0c 这次从U盘启动安装时 xff
  • error: /lib64/libc.so.6: symbol _dl_starting_up, version GLIBC_PRIVATE not defined in file ld-linux-...

    sudo yum install libnotify Loaded plugins fastestmirror refresh packagekit security Setting up Install Process Repositor

随机推荐