1、自定义监控项
- 当zabbix自带的监控项已经不满足我们需要的时候,我们就需要自己定义监控项来满足我们的需求了。比如我们需要监控关于httpd的进程数。
- 我们找到/etc/zabbix/zabbix_agent.conf配置文件中找到UserParameter的配置项,配置内容如下:
- 配置完我们重启zabbix-agent。
service zabbix-agent restart
- 重启之后,我们可用zabbix-get去检测我们获取的监控项的值是否是正确的。
安装zabbix-get:
yum install zabbix-get
zabbix_get -s 172.24.5.149 -k check_httpds
当然我们也可以在/etc/zabbix/zabbix_agentd.d目录下自定义.conf结尾的文件。如下图所示:
注意:
我在其他服务器上安装了zookeeper,这时候发现两者的值不一样。
我们查看一下zookeeper进程的全名称。
然后在配置文件中设置了
UserParameter=check_zookeeper, ps -ef|grep "org.apache.zookeeper.server.quorum.QuorumPeerMain" |grep -v grep | wc -l
这时候再zabbix_get一下就会发现和我们想要的值是一样的了。
2、配置item,trigger.
- 现在我们就可以去配置监控项,和报警机制。
- 前面模板中配置的就是用的自定义监控项。可以去参考。
3、UserParameter配置详解
- 参数格式,如果多个command则用逗号分开,不过前面最好没有返回值,只在最后一个command返回一个值.
UserParameter=<key>,<command>
- 一般agent上的key是不重名的,并且command获取到的数据量不能超过512k 也就是不能返回太大的值。
- 可以自定义文件,在/etc/zabbix/zabbix_agentd.d目录下自定义以.conf的文件, 也可以修改主配置文件(上面介绍过)。
zabbix_get 获取值:
另外UserParameter也可以传递参数UserParameter=
<key>[*],<command>
在参数[*]中可以$1
代表第一个参数,$2
表示第二个参数。
那么就会出现{print $2}
和上面的表示第二个参数的$2
会冲突。
我们可以在{print $$2}
多添加一个$以示区别。
- zabbix_get获取值
4、配置好自定义的UserParameter,我们就可以去创建item。(和之前有些不一样)
- UserParameter不加参数的之前在配置模板博客中介绍了httpd数量的item。
- UserParameter传参数的item创建
箭头所指的就是传的参数。
- 接下来我们去看看这样的一个监控项是否能够监控到数据,创建graph,然后去查看:由于刚添加所以采集到数据比较少。