告警是一种非常重要的功能,例如当内存、CPU使用率、硬盘空间、服务器状态等信息出现比较危急的状态时,这将会威胁到服务的正常运行。此时我们需要对这种状态进行告警。关于告警的方式有很多方式:邮箱报警、微信报警等方式。
如何监控数据并且进行报警?
1.当我们数据达到阈值,需要让触发器进行监听。
2.触发器就是一种事件监听器,当达到一定状态的时候,触发器就会产生一个事件进行响应。
3.事件的响应应该分为两个部分:
(1)首先要把数据的状态告知管理员;
(2)然后在必要的情况下如果能够让脚本进行自动化的修复,这样可以极大的提高服务的稳定性。
整个告警的流程如下图所示:
图
zabbix告警的配置步骤如下:
(1)设置Trigger(触发器);
(2)配置用户;
(3)配置告警介质;
(4)设置Action;
接下来我们在zabbix 上进行trigger的配置
1.Trigger有两个状态:
OK 正常状态
PROBLEM 有事件发生
Trigger的状态是由每次所采集到的items的值和阈值进行判断而决定的。
Trigger是items的一个非必须的设定,item的数据并不是需要全部进行告警的,我们只需要对关键的数据进行告警,并且一个item可以设置多个触发器(针对不同的告警级别)。
Trigger的配置通过点击“Confuguration”—>“Host/template”—>“Trigger”—>“Create trigger”
单击add进行添加:
设置好之后可以在agent.example.com主机状态下查看到对应的trigger信息:
在命令行远程连接到agent.example.com查看该节点上拥有的进程数量:
可以看到数量已经大于了预设的90这个阈值,并且我们在全局的trigger中可以看到已经产生了告警信息,状态也由OK状态修改为了PROBLEM:
当trigger发出了告警的信息,此时我们需要让trigger去触发一个事件(Action),此时我们需要创建Action和对应的trigger进行连接:
点击“Configuration”—>“Actions”—>“Create action”:
对action的每一项进行设定,可以看到书写信息的时候采用了大量宏的定义:
然后我们指定了action进行响应的条件,我们这里设定了主机的名称、触发器(Trigger)的名称以及触发器的状态,必须这几者同时满足条件,Action才会进行响应。
紧接着设定Operations的功能,这里可以采用执行命令或者通知警告信息的方式,我们这里测试对告警agent执行远程ssh命令的操作(将当前的进程数量统计后放入/mnt/process_num文件中)。
*如果想要远程命令能够执行,需要在zabbix-agent的节点上开启支持远程命令的参数EnableRemoteCommands = 1
[root@server5 mnt]# vim /etc/zabbix/zabbix_agentd.conf
当进程的数量达到规定的阈值90之后,在对应的agent节点上生成了我们指定的日志文件:
本节讲解了如何告警的基本原理,触发器的设置(Triggers)以及对应的处理方案的处理(Actions)。但是这样的告警方案还是太过粗糙,所以我们在下面的章节中将会介绍zabbix的邮件告警以及微信告警方案。敬请期待!