说明:shell
zabbix自带的默认模版里包括了不少监控项,有时候为了知足业务需求,须要根据本身的监控项目自定义监控项,这里介绍一种自定义监控项的方式。bash
1,首先编写自定义监控脚本,本文以监控httpd进程是否存在为例。spa
脚本名字:check_httpd.sh3d
脚本目录(这个目录能够自定义):/usr/local/etc/zabbix_scriptscode
脚本内容:orm
#!/bin/bash result=`ps -ef | grep httpd | grep -v grep` if [ -n "$result" ] then echo '0' else echo '1' fi
脚本说明:经过ps检查httpd进程是否存在,若是存在则脚本反馈1,若是不存在则返回0blog
2,修改zabbix_agentd.conf配置文件。进程
说明:红色部分为须要咱们修改的ip
第一个:默认为0,此处咱们将它改成1,改成1之后,表示用户自定义的脚本中能够包含特殊字符。it
第二个:为咱们自定义监控项,格式为: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=<key>,<shell command> # See 'zabbix_agentd' directory for examples. # # Mandatory: no # Default: UserParameter=check_httpd,sh /usr/local/etc/zabbix_scripts/check_httpd.sh
3,选择要增长监控项的主机
4,建立监控项
5,根据自定义键值填写监控项,自定义的键值只能手动输入,不能经过选择。
6,添加成功后,在最新数据中查看是否获取到数据
7,为这个监控项添加触发器,在这里咱们定义当check_httpd监控项返回为0的时候告警。即httpd进程不存在
8,建立触发器,自定义触发器名称以及严重程度,而后表达式哪里,点击添加
9,添加触发器表达式,监控项选择咱们自定义监控项,功能能够根据本身的需求选择,这里咱们选择最后一个值是0的时候则告警(即httpd进程不存在)
10,至此,自定义监控项和自定义告警已添加完成,若是有其余监控需求,本身写监控脚本便可。