分布式系统监视zabbix讲解二之邮件报警通知--技术流ken
概述
在上一篇博客《分布式系统监视zabbix讲解一技术流ken》中已经详细讲解了如何安装zabbix,本篇博客将详细讲解如何使用zabbix监控另外一台主机,并实现email报警通知机制。
首先我们需要创建一个需要被监控的主机,并设置相应的监控项。当监控项收集了数据后,触发器会根据异常状态触发报警。根据一些报警机制,它也会通知我们一些重要的事件,而不需要我们直接在Zabbix前端进行查看。
这就是通知(Notifications)的功能。E-mail是最常用的异常通知发送方式。我们将会学习如何配置e-mail通知。
新建主机
概要
Zabbix中的主机(Host)是一个你想要监控的网络实体(物理的,或者虚拟的)。Zabbix中,对于主机的定义非常灵活。它可以时一台物理服务器,一个网络交换机,一个虚拟机或者一些应用。
增加主机
Zabbix中,可以通过配置(Configuration) → 主机(Hosts)菜单,查看已配置的主机信息。默认已有一个名为'Zabbix server'的预先定义好的主机。但我们需要学习如何添加另一个。
点击创建主机(Create host)以添加新的主机,这将向我们显示一张主机配置表格。


至少需要填写下列字段:
主机名称(Host name)
- 输入一个主机名称,可以使用字母数字、空格、点”.“、中划线”-“、下划线”_“。
组
- 从右边的选择框中,选择一个或者多个组,然后点击 « 移动它们到'所在组(In groups)'选择框。
IP地址
- 输入主机的IP地址。注意如果这是Zabbix server的IP地址,它必须是Zabbix agent配置文件中‘Server’参数的值。
暂时保持其他选项的默认值。
当完成后,点击添加(Add)。你可以在主机列表中看到你新添加的主机。

新建监控项
概要
监控项是Zabbix中获得数据的基础。没有监控项,就没有数据——因为一个主机中只有监控项定义了单一的指标或者需要获得的数据。
添加监控项
主机包含了所有的监控项。如果需要配置一个监控项的示例,我们需要前往配置(Configuration) → 主机(Hosts) 并找到我们已创建的'新主机(New host)'。
在'新主机(New host)'行中,监控项(Items)的链接旁的数量会显示为'0'。点击这个链接,然后点击创建监控项(Create item),将会显示一个监控项定义表格。
这里就配置刚才我已经创建的主机,直接点击items即可,然后点击左上角的create item


对于监控项的示例,需要输入以下必要的信息:
名称(Name)
- 输入 CPU Load 作为值。在列表中和其他地方,都会显示这个值作为监控项名称。
值(Key)
- 点击select选择你要监控的内容。这是监控项的一个技术上的名称,用于识别获取信息的类型。这个特定值需要是Zabbix Agent预定义值中的一种。我选择监控我10.220.5.137的80 端口。
信息类型(Type of information)
- 在此处选择 Numeric (float)。这个属性定义了想获得数据的格式。
我们暂时保持其他选项的默认值。
当完成后,点击添加(Add)。新的监控项将出现在监控项列表中。点击列表中的详细(Details)以查看具体细节。
查看数据
当一个监控项定义完成后,你可能好奇它具体获得了什么值。前往监控(Monitoring) → 最新数据(Latest data),点击- other -前面的 + ,然后查看你之前定义的监控项和获得的值。如下图,可以看到现在的last value是1,说明我的10.220.5.137的80端口是在线状态

同时,第一次获得的监控项值最多需要60秒才能到达。默认情况下,这是服务器读取变化后的配置文件,获取并执行新的监控项的频率。
如果你在‘变化(Change)’列中没有看到值,可能到目前为止只获得了一次值。等待30秒以获得新的监控项值。
如果你在当前界面中没有看到监控项的信息,请确认:
- 你输入的监控项'值(Key)' 和 '信息类型(Type of information)' 同截图中的一致
- agent和server都在运行状态
- 主机状态为'监控(Monitored)'并且它的可用性图标是绿色的
- 监控项处于启用状态
图表
当监控项运行了一段时间后,可以查看可视化图表。 简单图表 适用于任何被监控的数值型(numeric)监控项,且不需要额外的配置。这些图表会在运行时生成。
前往监控(Monitoring) → 最新数据(Latest data),然后点击监控项后的'图表(Graph)'链接以查看图表。

新建触发器
概述
监控项只是用于收集数据。如果需要自动评估收到的数据,我们则需要定义触发器。触发器包含了一个表达式,这个表达式定义了数据的可接受的阈值级别。
如果收到的数据超过了这个定义好的级别,触发器将被“触发”,或者进入“异常(Problem)”状态——从而引起我们的注意,让我们知道有问题发生。如果数据再次恢复到合理的范围,触发器将会到“正常(Ok)”状态。
添加触发器
为监控项配置触发器,前往配置(Configuration) → 主机(Hosts),找到'新增主机(New host)',点击旁边的触发器(Triggers) ,然后点击创建触发器(Create trigger)。这将会向我们展现一个触发器定义表单。


对于触发器,有下列必填项:
名称(Name)
- 输入 check_80_triger 作为值。这个值会作为触发器的名称被现实在列表和其他地方。
表达式(Expression)
- 输入:{ken1:net.tcp.listen[80].last()}=0
值时触发器的表达式。确认这个表达式输入正确,包括所有的符号。这个特定的表达式大致是说如果80端口返回值是0时,那么就触发了问题的阈值。
完成后,点击添加(Add)。新的触发器将会显示在触发器列表中。

显示触发器状态
当一个触发器定义完毕后,你可能想查看它的状态。
前往监控(Monitoring) → 触发器(Triggers)以查看。3分钟后(我们需要等待3分钟以评估这个触发器的3分钟平均值),触发器会在这里显示。应该会有一个绿色的'OK'在'状态(Status)'列中闪烁。

闪烁意味着这个触发器状态最近30分钟内发生过变化。
如果此处出现一个闪烁的红色'PROBLEM',显然,这说明了80端口已经在你在触发器里定义的阈值级别。
邮件报警
概述
当监控项收集了数据后,触发器会根据异常状态触发报警。根据一些报警机制,它也会通知我们一些重要的事件,而不需要我们直接在Zabbix前端进行查看。
这就是通知(Notifications)的功能。E-mail是最常用的异常通知发送方式。我们将会学习如何配置e-mail通知。
E-mail设置
Zabbix中最初内置了一些预定义的通知发送方式,email通知是其中的一种。
前往管理(Administration) → 媒体类型(Media types),点击预定义媒体类型列表中的Email,以配置E-mail。

这将向我们展现e-mail设置定义表单。

根据你的环境,设置SMTP服务器,SMTP helo, SMTP e-mail的值。
一切就绪后,点击 更新(Update)。
现在你已经配置了'Email'作为一种可用的媒体类型。一个媒体类型必须通过发送地址来关联用户。为了建立一个通知,前往配置(Configuration) → 动作(Actions),然后点击创建动作(Create action)。


在这个表单中,输入这个动作的名称。
{TRIGGER.STATUS} 和 {TRIGGER.NAME} 是宏(macros)或者变量,可以在Default subject 和 Default message 区域查看。会以实际的触发器状态和触发器名称的值替代。
在大多数简单的例子中,如果我们不添加更多的指定条件,这个动作会在触发器从 'Ok' 变为 'Problem'是发生。
我们还需要定义这个动作具体做了什么 —— 即在 操作(Operations) 标签页中执行的操作。点击新建(New),将会打开一个操作表单。

这里,在发送给用户(Send to Users)块中点击添加(Add),然后选择我们之前定义的用户('user')。选择'Email'作为Send only to的值。完成后,在操作明细区域中,点击添加(Add)。
这是一个简单的动作配置步骤,即点击动作表单中的添加(Add)。
获得通知
现在,发送通知配置完成,我们看看它如何将通知发送给实际接收人。为了实现这个目的,我们需要关掉80端口,这样我们的触发器才会被触发,我们会收到异常通知。
打开主机的控制台,并运行:
[root@ken local]# pkill httpd
[root@ken local]# ss -tnl | grep
确认80端口已经关掉。
现在,前往监控(Monitoring) → 最新数据(Latest data),查看last value是否已经变成了0。

- 在监控(Monitoring) → 触发器(Triggers)中,你会看到这个触发器的状态呈现一个绿色闪烁的'Problem'
- 你的e-mail中,会收到一个异常通知

- 再次验证e-mail设置和动作设置已经被正确配置
- 确认你创建的用户对生成事件的主机至少拥有读(read)权限。正如添加用户步骤中提到的,'Zabbix administrators'用户组中的用户必须对'Linux servers'主机组(该主机所属组)至少拥有读(read)权限。
- 另外,你可以在报告(Reports) → 动作日志(Action log)中检查动作日志。
分布式系统监视zabbix讲解二之邮件报警通知--技术流ken的更多相关文章
- 分布式系统监视zabbix讲解二之邮件报警通知
概述 在上一篇博客<分布式系统监视zabbix讲解一技术流ken>中已经详细讲解了如何安装zabbix,本篇博客将详细讲解如何使用zabbix监控另外一台主机,并实现email报警通知机制 ...
- 分布式系统监视zabbix讲解三之用户和用户组--技术流ken
概述 Zabbix 中的所有用户都通过 Web 前端去访问 Zabbix 应用程序.并为每个用户分配唯一的登陆名和密码. 所有用户的密码都被加密并储存于 Zabbix 数据库中.用户不能使用其用户名和 ...
- 分布式系统监视zabbix讲解六之自定义监控项--技术流ken
宏 概述 Zabbix支持许多在多种情况下使用宏.宏是一个变量,由如下特殊语法标识: {MACRO} 根据在上下文中, 宏解析为一个特殊的值. 有效地使用宏可以节省时间,并使Zabbix变地更加高效. ...
- zabbix实现QQ邮件报警通知--技术流ken
前言 前几天搜了下网上使用zabbix邮件报警通知的文章,大多数还是使用mailx的方法,过程配置起来比较冗余繁琐,这几天想着把自己平时用到的qq邮件报警的方法分享出来供大家参考,以此减少不必要的步骤 ...
- 分布式系统监视zabbix讲解七之分布式监控--技术流ken
分布式监控 概述 Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控 代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器. Pro ...
- 分布式系统监视zabbix讲解七之分布式监控
分布式监控 概述 Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控 代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器. Pro ...
- zabbix实现百台服务器的自动化监控--技术流ken
前言 最近有小伙伴通过Q联系到我说:公司现在有百多台服务器,想要部署zabbix进行监控,怎么实现自动化全网监控? 本篇博客将讲解一个我工作时做的一个实际项目,现在写出来供大家以后参考使用. 实现自动 ...
- 分布式系统监视zabbix讲解一之zabbix安装--技术流ken
zabbix概述 Zabbix是什么 Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持. Zabbix 是一个企业级的分布式开源监控方案. Zabbi ...
- 分布式系统监视zabbix讲解三之用户和用户组
概述 Zabbix 中的所有用户都通过 Web 前端去访问 Zabbix 应用程序.并为每个用户分配唯一的登陆名和密码. 所有用户的密码都被加密并储存于 Zabbix 数据库中.用户不能使用其用户名和 ...
随机推荐
- 摘录<奇特的一生>1~4——[苏]格拉宁
一 只有在不实事求是的时候,事实才会叫人感兴趣. 虚构的人物任人摆布,并且纤毫毕露--他的一切想法意图,他的过去和未来,作者都一清二楚. 我还有一个任务:向读者灌输一些有用的知识,介绍些材料. 是一个 ...
- 【慕课网实战】五、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
提交Spark Application到环境中运行spark-submit \--name SQLContextApp \--class com.imooc.spark.SQLContextApp \ ...
- Python if __name__ == '__main__':
python属于脚本语言,只能逐行运行, if __name__ == '__main__':这句相当于main(),即首先执行这条语句.
- Springfox与swagger的整合使用
一.前言 让我们先理一下springfox与swagger的关系. swagger是一个流行的API开发框架,这个框架以“开放API声明”(OpenAPI Specification,OAS)为基础, ...
- leetcode第一天-merge two binary trees
有段时间没有写代码了,脑子都生锈了,今后争取笔耕不辍(立flag,以后打脸) 随机一道Leecode题, Merge Two Binary Trees,题目基本描述如下: Given two bina ...
- Linux下MySQL数据库的安装
记录详细过程以备使用 1.创建群组及用户 obd:~ # groupadd mysql obd:~ # useradd -g mysql mysql 2.创建相关目录 obd:~ # mkdir -p ...
- 「HNOI2016」数据结构大毒瘤
真是 \(6\) 道数据结构毒瘤... 开始口胡各种做法... 「HNOI2016」网络 整体二分+树状数组. 开始想了一个大常数 \(O(n\log^2 n)\) 做法,然后就被卡掉了... 发现直 ...
- 爱上python之盲注探测脚本
本文转自:i春秋论坛 前言: 最近在学python,做了个盲注的简单的跑用户的脚本,仅做个记录. sqmap也有不灵的时候,有时需要根据情况自写脚本探测 正文: 本地用大表姐给的sql和p ...
- 跟繁琐的命令行说拜拜!Gerapy分布式爬虫管理框架来袭!
背景 用 Python 做过爬虫的小伙伴可能接触过 Scrapy,GitHub:https://github.com/scrapy/scrapy.Scrapy 的确是一个非常强大的爬虫框架,爬取效率高 ...
- redis5.0新特性
1. redis5.0新特性 1.1. 新的Stream类型 1.1.1. 什么是Stream数据类型 抽象数据日志 数据流 1.2. 新的Redis模块API:Timers and Cluster ...