Zabbix建立自定义key值

Zabbix本身已经带有很多的监控项(items),而且这些监控项之间还可以数值加减乘除,这样的结果已经更加灵活丰富。但是毕竟zabbix的自带items还是有限,而我们在实际生产中也有一些额外需要的监控项目,比如说商品套餐价格、网站点击量、开发人员殴打产品经理次数(囧~)这样的数字或者文本也带进监控范围里,所以说,“自定义key值”就显得很重要了,不过zabbix在这一段做的是很不错的。

举个例子,还是看门狗。由于本公司广大模块服务器是只有内网权限没有外网权限的,所以想直接走服务器内的python邮件脚本发邮件已经不可能了,于是乎,我们罪恶的主管要求要通过zabbix来实现这个功能。但是zabbix如何能判断出来这个程序是经历重启的呢?只能从pid号码的变换这一条证据来实现,而zabbix本身不会直接监控pid这个数字,所以我们就要写一下这个简单的命令。

假设这里有一台运行着pms程序的服务器,我们要得到pms的pid值,这很简单。#ps -ef|grep pms|grep -v grep|awk ‘{print $2}‘

可以看出现在的进程号是10634,然后我们登陆这台被监控机的agentd.conf文件里去修改一些东西。

这里插上一句话,agent.conf是用超级服务(xinetd)的方式来启动的,而agentd.conf是以独立进程的方式来启动的。这是他俩的一个区别点。

好,我们现在来到了这台pms-002的agentd.conf里,做了如下的修改:

这里我们先开启了UnsafeUserParameters,这是因为在下面的语句里我们用到了特殊符号$。

其次就是我们看到UserParameter的格式是“<key值>,<远程命令〉”的格式。其中远程命令可以是一句话也可以是一个脚本,我下面写的memfree就是一个脚本,这个脚本要注意权限,可以是无脑777。修改完毕之后,保存退出。

重启zabbix_agentd客户端。

这个时候我们可以先来zabbix_server去get一下这个key,看一下能否得到这个值。

如期得到10634这个值,实验成功!

剩下的就是在zabbix web界面添加对应的item了,这个就不多赘述了。trigger这里多说一句,既然是pid值发生了变化,那么对应的expression应该这么写:{js-online-pms-002:pid.diff(0)}>0。

时间: 2024-08-11 20:42:15

Zabbix建立自定义key值的相关文章

zabbix agent 自定义KEY执行报错

zabbix agent 自定义KEY时,报错"Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all" 环境:Centos 6.4 X64 ,zabbix agent 2.4.2,YUM方式安装 在zabbix_agentd.conf里添加了一条监控项,用于统计系统当前各类TCP的连接数 UserPa

Zabbix 之自定义Key

1.监控进程/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k "net.tcp.service[http]" 2.监控端口/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k "net.tcp.port[,80]" 结果:1存在,0不存在: 3.进程数量/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k "proc.nu

zabbix 之自定义key(10)

自定义key 在zabbix agent端的配置文件由用户通过userparameter指令定义用户自定义参数 userparameter=<key>,<command> userparameter=<key[*]>,<command> $1...$9 实例1(不带参数) [[email protected] ~]# vim /etc/zabbix/zabbix_agentd.conf UserParameter=system.memory.free,awk

zabbix 自定义key值监控

1.zabbix一般监控使用zabbix即可,如果自定义的监控的话也是可以的,现看下zabbix.agentd.conf里面的介绍 UnsafeUserParameters 默认参数是0,0表示不启用UserParameter,1表示启用. 2. UserParameter=<key>,<shell command> 这个就是自定义监控的命令,key加上监控的选项,如下监控http的连接数 3.改完配置以后一定要重启下,之后再服务端测试下 这里可以看到有输出的,但是没访问所以很少

zabbix 执行自定义key脚本超时

报错如下: [[email protected] scripts]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k web.site.code[www.baidu.com] timeout while executing a shell script 解决: vim zabbix_server.conf 中调整如下超时时间即可(再重启server) ### Option: Timeout #   Specifies how long we wa

监控服务器Zabbix之二 自定义键值及模板

一.添加主机 打开zabbix的web界面 http://192.168.212.2/zabbix 1.Configuration---Hosts---Createhost Host name:这个应该是agent 配置文件定义的Hostname,我们这是192.168.3.3. Visible name:这个就是显示名称,自定义即可. Group:将主机归类到哪个组中. 以下根据你选的监控方式来定义下面参数. Agent interfaces:就是主机上安装的agent,默认即可不用修改. S

zabbix自定义KEY监控服务状态[不需要端口]

zabbix监控Windows下的服务并实现告警和重启服务 首先 创建获取服务状态的脚本 一.Windows脚本 @echo off set srvname=%1 for /f "skip=3 tokens=4" %%i in ('sc query %srvname%') do set "zt=%%i" &goto :next :next if /i "%zt%"=="RUNNING" ( :服务运行正常,返回1. e

zabbix开源监控系列三(自定义key监控nginx_status)

需求场景 lnmp环境 3台nginx 每台nginx服务上有几个虚拟主机,分别跑了不同的域名,准备对主站做nginx status 状态做监控,监控每一台nginx的活动链接数,和总的连接数. 解决方案1 每台nginx server的主配置文件 都配置status模块  代码端如下 location /ngst{   stub_status on;   access_log off;   allow 127.0.0.1;   allow xxx.xxx.xxx.xxx;   deny all

自定义key解决zabbix端口监听取值不准确的问题

今天有一个朋友问到我一个关于zabbix监控tcp端口的问题,明明端口在监听,但是通过net.tcp,listen取值取到的却是0. 经过简单的goole发现这已经是一个历史悠久的问题: 问题的根本原因是zabbix的这个key(net.tcp,listen)是通过读取 /proc/net/tcp这个文件来进行数据采集的,而/proc/下的文件并不是线程安全的,因此会出现取值不准确的问题. 另外这种机制还存在另外一个隐患:当/proc/net/tcp文件的条目非常多的话,就会造成取值慢的情况,因