zabbix自定义监控项、添加图形、设置触发器、远程执行命令
监控项是在zabbix中手机数据的基础,没有监控项就没有数据,系统自带模板带有大量默认item,自定义item可以定义在模板中,在应用模板即可使用对应item;也可直接在host中定义
目标:自定义监控项检查/tmp/aa文件是否存在,并设置触发器,实现邮件报警
其实zabbix自带监控项vfs.file.exists可以检查文件是否存在,本文主要为了说明怎么自定义监控项,所以不使用自带的。
vfs.file.exists[file] | 检查文件是否存在。返回 0 - 未找到文件;1 - 常规文件或链接(软/硬)存在 |
1. 开启自定义用户参数
# vim /usr/local/zabbix/conf/zabbix_agentd.conf UnsafeUserParameters=1
2. 在配置文件中添加UserParameter
#UserParameter的格式:UserParameter=<key>,<shell command>
UserParameter=file.exist[*],ls /tmp/$1 >/dev/null 2>&1;echo $? #0表示存在,>0表不存在
#带参数UserParameter的格式:<key[*]>,<shell command>,其中*的意思是方括号中可以有任意多的参数,每个参数由逗号隔开,分别是$1、$2、$3、... ...
3. 重启zabbix_agentd,在server端验证UserParameter是否生效
重启:略
#server端验证
[root@zabbix ~]# zabbix_get -s 192.168.119.137 -k "file.exist[aa]"
0
[root@zabbix ~]# zabbix_get -s 192.168.119.137 -k "file.exist[bb]"
2
#以上结果说明在agent端存在/tmp/aa文件,不存在/tmp/bb文件
4. 在主机上创建应用集
5. 创建item
6.添加图形
7. 添加触发器
项目只收集数据。为了自动评估传入数据,我们需要定义触发器。触发器包含一个表达式,该表达式定义数据的可接受级别的阈值。
如果这个水平超过了传入的数据,触发器将“触发”或进入“问题”状态 - 让我们知道发生了某些事情可能需要注意。如果等级再次可接受,则触发器返回到“OK”状态。
触发器表达式格式:
{<server>:<key>.<function>(<parameter>)}<operator><constant>
运算符如下表:
PRIORITY | OPERATOR | DEFINITION | Notes for unknown values |
---|---|---|---|
1 | - | Unary minus | -Unknown → Unknown |
2 | not | Logical NOT | not Unknown → Unknown |
3 | * | Multiplication | 0 * Unknown → Unknown (yes, Unknown, not 0 - to not lose Unknown in arithmetic operations) 1.2 * Unknown → Unknown |
/ | Division | Unknown / 0 → error Unknown / 1.2 → Unknown 0.0 / Unknown → Unknown |
|
4 | + | Arithmetical plus | 1.2 + Unknown → Unknown |
- | Arithmetical minus | 1.2 - Unknown → Unknown | |
5 | < | Less than. The operator is defined as: A<B ⇔ (A<B-0.000001) |
1.2 < Unknown → Unknown |
<= | Less than or equal to. | Unknown <= Unknown → Unknown | |
> | More than. The operator is defined as: A>B ⇔ (A>B+0.000001) |
||
>= | More than or equal to. | ||
6 | = | Is equal. The operator is defined as: A=B ⇔ (A>=B-0.000001) and (A<=B+0.000001) |
|
<> | Not equal. The operator is defined as: A<>B ⇔ (A<B-0.000001) or (A>B+0.000001) |
||
7 | and | Logical AND | 0 and Unknown → 0 1 and Unknown → Unknown Unknown and Unknown → Unknown |
8 | or | Logical OR | 1 or Unknown → 1 0 or Unknown → Unknown Unknown or Unknown → Unknown |
8. 远程执行命令
当检测到/tmp/aa不存在时远程创建该文件
agent端修改配置文件
EnableRemoteCommands = 1
另外,在执行命令时确保你的zabbix用户有执行权限,如果某些命令需要root权限,那么请使用sudo。编辑sudoer文件,zabbix用户便可以执行对应命令了。
在/tmp下创建文件不需要root权限,该步骤可忽略
#以重启nginx服务为例 zabbix ALL=NOPASSWD: ALL zabbix ALL=NOPASSWD: /etc/init.d/nginx stop,/etc/init.d/nginx start