[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  通过之前的文章,我们已搭建好zabbix server、agent和mail客户端,现在万事俱备,只差在server的界面中进行相应配置,即可快速搭建一个报警系统。总的来说,快速搭建一个报警系统的顺序如下:

  1. 配置Host groups。在生产环境中,可能会有多个不同的业务,每个业务下又有自己的服务器。因此,通过定义Host group可以进行业务分组。
  2. 配置Template。顾名思义模板的意思,假设我们有多台Mysql服务器或应用服务器,他们的机器配置、开放端口都基本相同,那么我们没有必要一台台机器进行监控配置,只需要定义一个模板,便可以适用于所有类似的机器。而Host group和Template的对应关系可理解为多对多关系:一个Host group可以拥有多个Template,比如该Host group下所有windows机器可用windows Template,所有Linux机器可用Linux Template;而一个Template可以被多个Host group复用。
  3. 配置Host。即被监控的机器,指定该Host属于哪些Host group,并可适用于哪些模板。Host与Host group 及Template也是多对多的关系,不过实际环境中,某台主机应是可以确定属于哪个业务,应用哪个模板的,这样简单明了。
  4. 配置Media Types。即设计报警类型,默认的类型有email、SMS、script、Jabber等,我们采用自定义脚本类型,并指明调报警时调用哪个脚本。
  5. 配置Users。首先要创建用户组,才能创建用户。创建的用户组需要指明Permission,即该用户组可以对哪些Host group进行读、写或拒绝的权限操作,那么该用户组下所有用户都能继承该用户组的权限。
  6. 配置User。指明创建的用户属于哪个用户组,更为重要的一点是设置Media,也就是该用户可以使用哪些Media Type,当报警发生时,发送给哪些收件人,在什么时间段发送,指明发送的报警级别。
  7. 配置Action。在此可以指定报警的触发条件,报警后的标题和内容,恢复后的标题和内容,报警时发送频率、发送给哪些用户组或用户、用什么样的Media进行发送。

  以上配置完成后,即完成了一个报警系统。当有报警发生时,比如web服务器挂了,那我们除了收邮件或短信外,在server的界面中如何看到呢?可以在两个地方看到。

  一个是Trigger,在此可以看到每条报警的具体信息,如报警名称、级别、状态、哪台主机报警的、是否已有人处理了;

  另一个是Events,在此除了可以看到上述报警信息外,最重要一点是可以看到是否触发了action,也就是报警信息是否成功处理,就在此查看。

  zabbix支持中文界面,可以在右上角的Profile->User->Language中进行设置。不过中文支持的还是有不足之处,最典型的例子当属你设置的主机visiable name 为中文时,当看图形统计时,可能会显示成乱码。

  下面的内容将按照上述配置过程一一明细出来,

配置Host groups

  从Configuration->Host groups,即可看到Host groups列表,默认zabbix已创建了些分组。我们可以创建一个属于自己的分组。

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  简单取个名称即可

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

配置Template

  很多人可能对zabbix提供的众多监控项感到不知所措,如何设置监控项才是最正确的呢?其实zabbix早已想到了这些问题,在它提供的模板列表中就有适合于不同场景的模板供你参考选择。即使你不知道某些监控项为什么这样做,但参照模板给的配置那是绝对错不了的。下面我们来看看如何快速搭建一个自定义的模板。

  先从Configuration->Templates查看下既有的模板列表:

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  对于生产环境而言,windows服务器和linux服务器应算是最多的了,我们可以以他们为基础快速创建自定义模板。每个Template都进行了进一步的细分:

  • Application:自定义的分类名,可以使每个item都有相应分类。
  • Items:监控项,如监控端口、内存、CPU、磁盘使用情况、网卡项。
  • Triggers:触发器,在此设定一个阀值,当item的值达到这个阀值时,触发器将生效报警。
  • Graphs:设置某些item的图形化界面,如磁盘空间的分布、内存使用情况、CPU变化情况等。
  • Screens:将多个Graph整合在一个界面中。
  • Discovery:自动发现条目,最典型的两个应用,一个是磁盘分区的自动发现,你无须告诉zabbix这台机器有多少个分区,只需要进行Discovery配置,zabbix可以自动把某台机器的所有分区都找出来,若是后加的分区,zabbix也能找出来;另一个应用是网卡的自动发现,若网卡数量有变化,zabbix也能感知。

  本文不会对上述项的内容进行详述,感兴趣的同学可以自行查看官网相关文档。

  在此我们会快速地基于默认模板创建自定义模板,默认模板中的item内容很全面,但实际中我们可能仅需要其中一部分即可。我们以windows机器为例,看看如何做。

  首先创建一个自定义的模板

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  简单取名,指定所属Host group即可

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  建立完自己的模板后,我们可以手动建立自己的Application分类

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  再次进入Template OS Windows的item分类中,我们筛选感兴趣的内容,并拷贝至我们创建的模板中。

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  如法炮制,我们将Triggers、Graphs等感兴趣项拷贝进模板中,对于无法拷贝的Screens和Discovery rules,可以手动复制即可。zabbix还提供了import和export功能,方便你定义的模板在其他机器上导入。

配置Host

  接下来要定义被监控的机器,进入Configuration->Hosts->Create Host,创建一个Host

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  设置该Host对应的模板

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  配置好后,agent可以重启后与该Host进行通信。

配置Media Type

  从Administration->Media Types->Create media type,创建一个script的media type,还记得上一篇提到的script路径吗?对,这个脚本需要放在/usr/local/zabbix/share/zabbix/alertscripts目录下。

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

配置Users

  从Administration->Users->Create user group,创建一个新的用户组

[原创] zabbix学习之旅五:如何快速搭建一个报警系统  

  设置该用户组可以拥有的host group权限

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

配置User

  选择某用户组后,点击Create user按钮,创建一个新用户

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  设置该用户的媒介类型

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

配置Action

  从Configuration->Actions->Create action,创建一个action。

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  可保持默认条件不变

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  设置相关动作

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  至此,配置完成。若想试试报警是否成功,可以尝试将被监控机网络断开,server的ping命令会在一定时间内发现被监控机断开,就会触发报警。

  邮件内容大致如下:

[原创] zabbix学习之旅五:如何快速搭建一个报警系统

  

上一篇:如何在Windows下开发Python:在cmd下运行Python脚本+如何使用Python Shell(command line模式和GUI模式)+如何使用Python IDE


下一篇:ADB——命令大全