Zabbix自定义监控项

背景

zabbix本身提供了很多可选的监控项,可以满足绝大部分的监控需求。有时候由于业务需求,需要自定义监控项。这里介绍一种自定义监控项的方式。

  1. 第一步

首先编写自定义监控脚本,本文以监控httpd进程是否存在为例。

脚本名字:check_httpd.sh

脚本目录(这个目录可以自定义):/usr/local/etc/zabbix_scripts

脚本内容:

#!/bin/bash
result=`ps -ef | grep httpd | grep -v grep`
if [ -n "$result" ]
then
        echo '0'
else
        echo '1'
fi

脚本说明:通过ps检查httpd进程是否存在,如果存在则脚本反馈1,如果不存在则返回0

  1. 第二步

修改zabbix_agentd.conf配置文件。

说明:红色部分为需要我们修改的

第一个:默认为0,此处我们将它改为1,改为1以后,表示用户自定义的脚本中可以包含特殊字符。

第二个:为我们自定义监控项,格式为:UserParameter=<键值>,<命令>。这里我们自定义键值为:check_httpd,要执行的命令为执行check_httpd.sh这个脚本。

说明:添加完成以后,重启zabbix_agentd才会生效。

### Option: UnsafeUserParameters
#       Allow all characters to be passed in arguments to user-defined parameters.
#       The following characters are not allowed:
#       \ ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @
#       Additionally, newline characters are not allowed.
#       0 - do not allow
#       1 - allow
#
# Mandatory: no
# Range: 0-1
# Default:
UnsafeUserParameters=1

### Option: UserParameter
#       User-defined parameter to monitor. There can be several user-defined parameters.
#       Format: UserParameter=,
#       See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
UserParameter=check_httpd,sh /usr/local/etc/zabbix_scripts/check_httpd.sh
  1. 第三步

选择要增加监控项的主机

Zabbix自定义监控项_第1张图片

  1. 第四步

创建监控项

Zabbix自定义监控项_第2张图片
5. 第五步

根据自定义键值填写监控项,自定义的键值只能手动输入,不能通过选择。

Zabbix自定义监控项_第3张图片

  1. 第六步

添加成功后,在最新数据中查看是否获取到数据

Zabbix自定义监控项_第4张图片
7. 第七步

为这个监控项添加触发器,在这里我们定义当check_httpd监控项返回为0的时候告警。即httpd进程不存在

Zabbix自定义监控项_第5张图片
8. 第八步

创建触发器,自定义触发器名称以及严重程度,然后表达式哪里,点击添加

Zabbix自定义监控项_第6张图片

  1. 第九步

添加触发器表达式,监控项选择我们自定义监控项,功能可以根据自己的需求选择,这里我们选择最后一个值是0的时候则告警(即httpd进程不存在)

Zabbix自定义监控项_第7张图片
10. 第十步

至此,自定义监控项和自定义告警已添加完成,如果有其他监控需求,自己写监控脚本即可。

你可能感兴趣的:(运维日常记录,zabbix,linux,运维)