11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

时间:2023-02-24 22:58:17

点击返回:自学Zabbix之路

点击返回:自学Zabbix4.0之路

点击返回:自学zabbix集锦

Zabbix4.4.1系统教你实现sendEmail邮件报警

sendEmail是一个轻量级、命令行的SMTP邮件客户端。如果你需要使用命令行发送邮件,那么sendEmail是非常完美的选择。使用简单并且功能强大.这个被设计用在php、bash、perl和web站点使用。

以上是sendEmail的简单介绍,千万不要和sendmail搞混掉了。

1. 下载安装sendEmail

wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar zxvf sendEmail-v1.56.tar.gz
cd sendEmail-v1.56
mv sendEmail /usr/local/bin/  

确认一下命令的权限:

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

SendEmail使用命令帮助

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

测试一下:

1 /usr/local/bin/sendEmail -f carlos@163.com  -t 4224179@qq.com  -s smtp.163.com -u "testsubject" -o message-content-type=html -o message-charset=utf8 -xu carlos@163.com   -xp xxxxx -m "test"

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

 1 /usr/local/bin/sendEmail    命令主程序
2 -f carlos@163.com 发件人邮箱
3 -t 4224179@qq.com 收件人邮箱
4 -s smtp.163.com 发件人邮箱smtp服务器
5 -u "testsubject" 邮件标题
6 -o message-content-type=html 邮件内容的格式
7 -o message-charset=utf8 邮件内容编码
8 -xu carlos@163.com 发件人邮箱用户名
9 -xp xxxxxx 发件人邮箱密码
10 -m "test" 邮件具体内容
11 </span>

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

2. 自定义脚本

通过脚本报警是非常灵活的,因为我们可以通过脚本发送邮件,发送短信,发送微信等,脚本内部具体通过哪种方式报警,取决于我们怎样编写脚本。

2.1 创建目录

mkdir  -p /usr/lib/zabbix/alertscripts/sendEmail.sh    # 创建目录
vi /usr/lib/zabbix/alertscripts/sendEmail.sh  # 创建脚本

2.2  编写脚本

在配置脚本类型的"报警媒介"之前,我们需要先编写好对应的脚本,并且将脚本放置到对应的目录中,以便zabbix能够找到对应的脚本。那么此处,我们来动手编写一个能够发送邮件信息的脚本,这个脚本很简单,此处我们直接使用sendEmail命令发送邮件,脚本内容如下:

#!/bin/bash
to=$1 #第一个参数代表邮件发送给哪个邮箱
subject=$2 #第二个参数代表邮件主题
message=$3 #第三个参数代表邮件内容
#url=$4
ech0 -e "$context" | mail -s "$subject""$to"
/usr/local/bin/sendEmail -f carlos@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu carlos@163.com -xp xxxxx -m "$message"

从脚本内容可以看出,我们在脚本中接收了3个参数,既然定义了参数,那么zabbix在调用此脚本的时候,必然需要传入对应的参数。
我们向脚本中传入了3个参数,我们可以通过"脚本参数"设定需要传入的参数,当zabbix调用对应脚本时,会自动把"脚本参数"中对应的值按照顺序传入对应的脚本中。如下图,我们添加了三个参数。

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

其实,这种由大括号括起,并且由大写字母组成的字符串在zabbix中被称作"宏",我们可以理解为zabbix内置的变量,当不同的警告发生时,上述的三个"宏"的值会自动发生变化。

那么,除了上述的三个"宏",zabbix还有那些"宏"呢?其他"宏"都代表了什么含义呢?我们可以查看zabbix的官方在线帮助手册,点击查看

注意:
在zabbix3.0之前,上图中的三个参数是默认传入对应脚本的,不用再手动进行定义,但是从zabbix3.0开始,如果想要向对应的脚本传入上述三个参数,则需要按照上图进行定义。

2.3 编辑完成后,给脚本权限:

chmod +x sendEmail.sh
chown zabbix.zabbix sendEmail.sh

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

测一下:  (手动执行一次脚本,后面的参数分别对应接收人,主题,内容)

./sendEmail.sh 422417945@qq.com test 123

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

为什么测试不成功? 显示“无主题” ,本次测试问题就是“subject”写成了“subjext” 。往往不成功就是因为参数问题。 

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

2.4  编辑zabbix_server.conf文件,修改AlertScriptsPath参数,该参数用于指定外部脚本的绝对路径。

vi /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

3  配置报警媒介

3.1   Administration –> Media types –> Create media type     media types选择Script

Name:触发器名称
Type:介质类型
Script name:脚本名称(需要先定义AlertScriptsPath,sendEmail.sh放在这个目录下,写绝对路径没用)
Script parameters:脚本参数
Description:脚本描述
Enabled:状态

zabbix支持的报警媒介如下:

Email:邮件,这是最常用也是最传统的一种报警媒介,邮件报警,zabbix通过配置好的SMTP邮件服务器向用户发送对应的报警信息。
Script:脚本,当zabbix中的某些监控项出现异常时,也可以调用自定义的脚本进行报警,脚本的使用就比较灵活,具体怎样报警全看你的脚本怎么写。
SMS:短信,如果想要使用短信报警,则需要依赖短信网关(貌似需要北美的运行商)。
Jabber:即时通讯服务。
E Texting:商业的,收费的短信服务(北美运营商提供服务)。
Webhooks:api概念,是微服务api的使用范式之一。

但是目前zabbix4.4.0版本里面只保留以下四种:

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

 3.2 添加参数+脚本名称

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

进一步测试邮件:   4.4.0 有一个"Test"测试按键。

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

3.3  创建一个用户Administration –> Users –> Create user

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

为新创建的user指定media:Administration –> Users –> Create user –> Media

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

3.4  创建action实现邮件报警Configuration –> Actions –> Create action

 11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警

 

11 一步一步Zabbix4.4.0系统教你实现sendEmail邮件报警的更多相关文章

  1. 12 Zabbix4&period;4&period;0系统sendEmail邮件报警优化

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 12 Zabbix4.4.0系统sendEmail邮件报警优化 接上一章节  Zabbix4.4. ...

  2. 一步一步了解Cocos2dx 3&period;0 正式版本开发环境搭建(Win32&sol;Android)

    cocos2d-x 3.0发布有一段时间了,作为一个初学者,我一直觉得cocos2d-x很坑.每个比较大的版本变动,都会有不一样的项目创建方式,每次的跨度都挺大…… 但是凭心而论,3.0RC版本开始 ...

  3. &lbrack;转&rsqb;三步完成Source Insight 4&period;0 破解安装

    下载地址有更新,之前有朋友因潜在的版权问题封禁没下到,现在更新后可正常使用了. 文末有完全清除上次安装残留的方法,需要的人可以参考. —— 更新于 2018.1.21 第一步:安装    安装sour ...

  4. 一步一步学Silverlight 2系列(11):数据绑定

    概念 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  5. 三步完成Source Insight 4&period;0 破解安装(转)

    转自:https://blog.csdn.net/biubiuibiu/article/details/78044232 三步完成Source Insight 4.0 破解安装   下载地址有更新,之 ...

  6. 【新手出发】从搭虚拟机开始,一步一步在CentOS上跑起来&period;Net Core程序

    文章背景 微软6月26号发布core 1.0版本后,园子里关于这方面的文章就更加火爆了,不管是从文章数量还是大家互动的热情来看,绝对是最热门的技术NO.1.我从去年底开始接触.net core到现在也 ...

  7. 一步一步跟我学DeviceOne开发 - 仿微信应用&lpar;一,二,三&rpar;

    这是一个系列的文档,长期目标是利用DeviceOne开发一些目前使用广泛的优质手机应用,我们会最大化的实现这些应用的每一个功能和细节,不只停留在简单的UI模仿和Demo阶段,而是一个基本可以使用的实际 ...

  8. 一步一步来做WebQQ机器人-&lpar;二&rpar;&lpar;第一次登陆&rpar;

    // 预计会有这些步骤,当然某些步骤可能会合并: 验证码 第一次登陆 第二次登陆 保持在线和接收消息 获取好友和群列表 发送消息 变成智能的(*゚∀゚*) webqq的登陆,分为2步,本文主要讲第一次 ...

  9. 使用Python一步一步地来进行数据分析总结

    原文链接:Step by step approach to perform data analysis using Python译文链接:使用Python一步一步地来进行数据分析--By Michae ...

随机推荐

  1. poj 3414 Pots bfs&plus;模拟

    #include<iostream> #include<cstring> #define fillA 1 #define pourAB 2 #define dropA 3 #d ...

  2. zmq-ios framwork

    1.附件见zeromq-ios.framework百度网盘/iOS/zmq 2.zeromq-ios.framework解压拖进工程文件 3.objc-zmq见百度网盘/iOS/zmq 4.objc- ...

  3. 人工智能范畴及深度学习主流框架,IBM Watson认知计算领域IntelligentBehavior介绍

    人工智能范畴及深度学习主流框架,IBM Watson认知计算领域IntelligentBehavior介绍 工业机器人,家用机器人这些只是人工智能的一个细分应用而已.图像识别,语音识别,推荐算法,NL ...

  4. Spring中&commat;Transactional事务回滚实例及源码

    一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除 ...

  5. Fedora下载地址

    http://fedoraproject.org/zh_CN/get-fedora-all

  6. 了解一下 - Base64

    Base64编码是最常见的编码方式(使用64个字符表示任意8bit字节序列),是一种基于64个可打印字符来表示任意二进制数据的方法,是从二进制转换到可见字符的过程. 使用场景 数据加密后通过Base6 ...

  7. Echarts 在动态HTML报告中的应用

    # 参考官网 http://echarts.baidu.com/examples/ <scripts> <!--- echarts examples ---> </scr ...

  8. extjs&lowbar;10&lowbar;自己定义combotree组件

    1.项目截图 2.treedata.json { text : "root", expanded : true, expandable : true, children : [{ ...

  9. 【react】---context的基本使用---【巷子】

    一.context的理解 很多优秀的React组件都通过Context来完成自己的功能,比如react-redux的<Provider />,就是通过Context提供一个全局态的stor ...

  10. Hotspot参数分析

    -XX:+HeapDumpOnOutOfMemoryError 让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照以便事后进行分析 -Xmx与-Xms 虚拟机堆参数 -Xoss 设置本地方法栈 ...