主要内容:
Zabbix报警机制(创建触发器、设置邮箱、执行动作),Zabbix进阶操作(主动发现、主被动监控模式、拓扑图、聚合图形)、监控案例(监控Nginx服务状态、监控TCP连接状态)
一、Zabbix报警机制概念
- 自定义的监控项默认不会自动报警,首页也不显示报警错误提示,需要配置触发器与报警动作才可实现自动报警,如图所示:
1)触发器(Trigger)
创建触发器时,需要定义表达式(Expression)
当触发条件发生后,会导致一个触发事件,触发事件会执行某个动作;(例如:内存不足300M、用户超过30个等)
触发器表达式格式:
{<server>:<key>.<function>(<parameter>)}<operator><constant>
解释:{主机: key.函数(参数)}常数
Expression表达式示例:
① {web1:system.cpu.load[all,avg1].last(0)}>5 //0为最新数据
解释:如果web1主机最新的CPU平均负载值大于5,则触发器状态Problem
② {vfs.fs.size[/,free].max(5m)}
解释:根分区,最近5分钟的最大容量小于10G,则状态进入Problem
③ {vfs.file.cksum[/etc/passwd].diff(0)}>0 //0为最新数据
解释:最新一次校验/etc/passwd如果与上一次有变化,则状态进入Problem
补充:大多数函数使用秒作为参数,可以使用#来表示其他含义
avg, count, last, min and max 等函数支持额外的第二个参数time_shift(时间偏移量),这个参数允许从过去一段时间内引用数据;
2)动作(Action)
触发器的条件被触发后的行为(执行动作)(例如:发送邮件、重启某个服务等)
案例1:实现Zabbix报警功能
案例要求:沿用前面的Zabbix练习环境,使用Zabbix实现报警功能,实现以下目标:
- 1)监控Linux服务器系统账户数量
- 2)创建Media,设置邮件服务器及收件人邮箱
- 3)当系统账户数量超过21人时发送报警邮件
整体思路:
- 1)创建触发器并定义表达式
- 2)设置Media报警媒介-邮箱(发件人,收件人)
- 3)创建并设置Action动作
步骤1:创建触发器规则
1)创建触发器(当系统账户数量超过21人,发送报警)
注意:创建触发器时,建议使用英文语言环境;
通过【Configuration配置】—>【Templates模板】,找到创建的<count.line.passwd模板>,点击模板后面的<triggers触发器>,打开触发器的页面
点击<Create triggers创建触发器>按钮,创建触发器;
2)触发器表达式
填写【name触发器名称】(可任意),定义【serverity触发器报警级别】;
- 触发器名称:passwd_line-gt-21
- 触发器报警级别:Warning
触发器报警级别:
- ① 未分类Not classified
- ② 一般信息Information
- ③ 一般告警Warning
- ④ 危险告警Average
- ⑤ 高危告警High
- ⑥ 灾难告警Disaster
定义【表达式Expression】,表达式是触发异常的条件,点击<add添加>自动定义表达式(填写表达式:监控项、功能、账户数量大于21),当自定义完成后,点击<iburst插入>;
- item监控项:count_line_passwd_item //监控项
- Function功能:Last (most recent) T value is > N //最新数据>N
- N:21 //N为21
生成表达式:{count.line.passwd:count.line.passwd.last()}>21
解释:当系统的用户数量(监控项)的最新数据大于21,则触发条件;执行Action动作;
步骤2:设置邮件
1)创建Media报警媒介(设置发件人信息)
通过【Administration管理】—>【Media Type报警媒体类型】—>【选择Email邮件】
设置邮件服务器信息,设置邮件服务器及发件人邮件账户信息;
- SMTP服务器:localhost //Localhost指192.168.2.5
- SMTP电邮:root@localhost //以什么身份发送邮件
在Zabbis服务器检查postfix发邮件服务,保证postfix服务安装并开启(端口25)
[root@zabbixserver ~]# yum -y install postfix
[root@zabbixserver ~]# systemctl enable postfix --now
[root@zabbixserver ~]# ss -nlptu | grep :25
tcp LISTEN 0 100 127.0.0.1:25 *:* users:(("master",pid=12643,fd=13))
2)为用户添加Media报警媒介(设置收件人信息)
在【Administration管理】—>【Users用户】中找到并选择【Admin】账户
在弹出的界面中选择【Media报警媒介】—>点击【Add添加】报警媒介
点击【Add添加】后,在【Meida Type类型】中填写报警媒介类型,收件人,时间等信息
- 类型:Email
- 收件人:root@localhost //实验中收件人为本机的root
- 当启时间:1-7,00:00-24:00 //周一至周日的0小时-24小时
- 如果存在严重性则使用:全部勾选 //针对哪些警告进行邮件通知