zabbix 告警小试

zabbix 告警小试


1. 实验内容简述

本次实验,旨在通过zabbix监控,实现对告警信息的实时通知,主要用到了zabbix中的item、trigger、action、user、user group、media等内容,通过item监控特定的对象,当item返回值满足一定条件的时候,触发触发器的action动作,通知相关的用户。实现的功能有以下几点:

  • 监控的内容是什么
  • 在什么样的情况下属于异常,需要通知
  • 以什么样的方式通知用户,怎么通知
  • 通知用户的内容是什么

2. 实验步骤

2.1 创建触发器

在之前创建的item上,直接创建一个触发器,使用的item是nginx.active,当该item获取的最后的值,大于1时,就产生trigger,所以条件就是大于1或者是大于等于2.

在这里选择的是configuration-template-trigger,直接在模板里面创建触发器,关联该模板的所有主机就都会有这个触发器了。输入触发器的名称、该触发器触发之后的服务级别(未定义、information、warnning、average、high、disater),输入触发器的表达式,可以直接通过表达式向导编写,选择所需要的item,然后获取该item的指定规则的值,条件是该值大于1即可。生成的结果就是:

{Template Nginx Status:nginx.status[8080,active].last()}>=2

添加完成后就可以开始添加action了。

2.2 创建告警介质media

默认的告警介质有Email、jabber和SMS,实际上还可以通过脚本的形式,生成告警介质,在这里为了模拟介质,我们选择将告警内容输入到一个文本文件中,假装是通过短信接口发送出去了。首先是要找到zabbix-server上关于告警脚本的配置路径,也就是alertscripts的路径,在zabbix-server的配置文件中:

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

所以我们需要将编写的发送脚本,放在该目录下,而且还是能有可执行权限的shell脚本,这里我们写的很简单,对于发送短信,一般都是有三个参数,收件人、收件主题和收件内容。所以我们这里面模拟的时候也是需要三个参数,然后将内容写入到一个临时文件中。具体脚本如下:

#/bin/bash

ALERT_TO=$1
ALERT_TITLE=$2
ALERT_MESSAGE_BODY=$3

echo "-------A NEW MESSAGE-------">> /tmp/sms.log
echo "$ALERT_TO" >> /tmp/sms.log
echo "$ALERT_TITLE" >> /tmp/sms.log
echo "$ALERT_MESSAGE_BODY" >> /tmp/sms.log

在这脚本中,先获取三个变量参数值,然后将对应的内容写入到临时文件中。在这个地方有个小坑,就是message字段是换行的多个字段,如果直接用变量写入文件,只写入了最后一行,其他的内容内容都丢了,这是shell脚本应该注意的地方。其中这三个参数分别代表着收件人联系方式、收件主题和收件内容。

脚本编写完成之后,要添加可执行权限,一会是zabbix用户去调用该脚本写入,所以这涉及到权限问题,如果是先执行了脚本,生成了/tmp/sms.log文件,则当出现告警的时候,zabbix用户是无法写入的,因为该文件的属主是root,其他用户无法写入,需要重新修改权限。所以建议是删除该文件,由zabbix用户去创建。

脚本编写完成之后,就需要去web页面上进行配置了,主要是配置告警媒介media,在administration-media type中,我们选择新建,然后选择scripts,输入不带路径的脚本名称,因为脚本就存放在默认路径下。在这里,升级改版之后,需要输入参数,因为我们的脚本有三个参数,所以我们在这里也需要输入三个参数,分别是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESSAGE}.这三个参数,分别对应的内容是这样的:

{ALERT.SENDTO}:对应的是在user中用户的联系方式,可以是电话号码、Email-address等
{ALERT.SUBJECT}:对应的是在action中的subject主题
{ALERT.MESSAGE}:对应的是在action中的message信息,包含operation和recovery operation

2.3 创建用户和用户组

用户和用户组,是用来接收告警信息的,所以需要创建,在trigger触发器中,可以选择将告警信息内容,发送给用户组或单独用户,比较关键的一点时,对于主机或主机组的权限,只能授权给用户组,不能单独授权给某一个用户,所以需要创建用户组。在这里我们创建的用户组是test,用户是zhangsan。在用户的media配置中,可以选择刚刚创建的sms媒介media。然后就完成用户和用户组的创建了。

2.4 创建action

创建action,就是将之前创建的触发器,和用户关联起来,并设置通知用户的内容,配置路径在configuration-action,选择新建action。

创建action的时候,需要选定条件,也就是触发器的名称。这里我们选择的是刚才创建的触发器,Template Nginx Status: Nginx Active link overload

创建了action之后,需要在operation中进行操作了,编写告警内容信息,以及发送对象。对于告警信息,默认给了一个模板,如果技术比较好,完全可以自己写,这里我就完全是照搬了。选择operation的操作内容,选择操作方式和发送方式,send message。

配置完成之后,就可以通过来模拟触发器告警,来收信息了。

2.5 模拟告警

在这里,通过对nginx的多次访问,就能触发告警,在出发告警之后,在monitor中的problem,就能直接看到告警的概要,包含告警内容、操作action方式,是否发送成功等,点击前面的时间,可以看到详细的事件信息。

同时,通过查看记录文件,可以发现,已经有了告警通知消息。

以上就完成了告警的简单配置。

原文地址:https://www.cnblogs.com/bobo137950263/p/10662326.html

时间: 2024-11-14 19:04:28

zabbix 告警小试的相关文章

zabbix告警模板表格化

为了更好的用户体验,我们需要尽量美化我们的输出内容,尽量做到整齐划一,让人看了会有很舒服的感觉, 这个好像和苹果的产品一样,给人一种美感让人感觉非常享受. 一般我们的zabbix告警邮件就是纯文字,建议发送邮件的时候采用html的信体方式发送,并且表格化.颜色化输出. 下面是我的模板代码,可以根据自己的需求做调整: 1 <table border="1" bordercolor="black" cellspacing="0px" cellp

CMDB机柜平台结合zabbix告警展示

最近看了刘天斯老师的机柜展示平台,非常绚丽,而且有大屏显示的话也是能够体现运维价值的,这里就说下我最近在做的CMDB平台的一些数据: CMDB数据: 机房,机柜,机柜电源,机柜位置,机房合同,合同到期时间,机房联系人. 服务器,CPU,硬盘,是否虚拟化,宿主机,raid类型,内存. 资产ID,上架日期,下架记录,服务器代理商,代理商联系方式,服务器到保日期. IP地址,MAC地址,业务线,产品线,操作系统. 通信这块主要技术json-rpc,然后提供Api接口给程序调用,按照固定格式导入即可:硬

Zabbix告警发送性能图

前言: 实现zabbix告警发送性能图主要实现思路: zabbix告警传入item.ky参数 -> 利用item.key获取当前的性能图 -> 保存到本地 -> 在发送邮件的时候构建邮件文本内容 首先先讲一下zabbix的性能图: http://127.0.0.1/zabbix/chart.php?period=864000&stime=20180317191110&itemids%5B0%5D=25464&type=0&updateProfile=1&a

zabbix告警通知

之前使用邮件和短信发送zabbix告警信息,但告警信息无法实时查看或者无法发送,故障无法及时通知运维人员. 后来使用第三方微信接口发送信息,愉快地用了一年多,突然收费了. zabbix告警一直是我的痛点,近期发现一个基于个人微信号的信息发送工具-lykchat. lykchat信息发送系统是Python3开发的,通过模拟微信网页端,基于个人微信号,为系统管理人员提供信息发送工具. 实现的功能有用户登录管理.微信登陆管理和微信信息发送功能. 代码地址:https://github.com/lyko

一个简单好用的zabbix告警信息发送工具

之前使用邮件和短信发送zabbix告警信息,但告警信息无法实时查看或者无法发送,故障无法及时通知运维人员. 后来使用第三方微信接口发送信息,愉快地用了一年多,突然收费了. zabbix告警一直是我的痛点,近期发现一个基于个人微信号的信息发送工具-lykchat. 引用:http://blog.csdn.net/liyingke112/article/details/68955298 lykchat信息发送系统是Python3开发的,通过模拟微信网页端,基于个人微信号,为系统管理人员提供信息发送工

微信企业号升级企业微信后zabbix告警发不出去

微信企业号升级企业微信后便没有zabbix告警发出,单独运行脚本报错: 进入接口调试页面http://qydev.weixin.qq.com/debug,输入CorpID和Secret,得到access_token: 之前的格式是: 于是修改告警脚本,之前获取access_token的语句是: 由于现在格式变了(由第四列变成了第10列),于是将$4改为$10,再次运行脚本还有错误: 提示"Invalid input",单独运行输出格式: 发现唯一有异常的地方是agentid列有空格,试

zabbix 告警自定义发件人

查看zabbix 告警脚本位置 [[email protected] alertscripts]# grep "^AlertScriptsPath" /etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts 编写告警邮件脚本 #cd /usr/lib/zabbix/alertscripts #vim alert.sh #!/bin/bash #author firxiao #date 201

zabbix告警配置

告警概述 告警是监控的重要职能,是指将达到某一阈值时间的消息发给用户,让用户在事件发生的 时候即可知道监控项处于不正常状态,从而让用户来觉得是否采取相关措施. 在zabbix中,告警是由一系列的流程组成的,首先是触发器达到阈值,接下来是Action对 事件信息进行处理,其中包括两部分:第一部分是发送消息,即将告警信息发给用户:第 二部分是执行命令,即将事件用命令进行处理,达到时间故障自动尝试回复的效果. zabbix的告警流程如下: Host group(设备组) →Hosts(设备)→ App

Zabbix告警升级机制图文详解

Zabbix告警升级机制图文详解 配置目的 随着监控项目的增多,有一些警告性质的报警可能不许要让领导收到,如果监控项长时间处于一个反复报警的状态时,可能是没有人去解决 也可能是他们无法去解决的时候,再去向上级发送告警 那么zabbix就可以通过它的告警机制去实现 它可以通过自定义时间段,发送消息.命令 从而形成一个梯度的报警机制.通过下图解释梯度报警的设置方法. 简单的配置第个,剩下的配置类似,重点不在于如何配置这个,重点在于如何配置"告警升级"和发送时间的理解 配置图解 步骤持续时间