ZABBIX自定义用户KEY与参数USERPARAMETERS监控脚本输出

zabbix在模板中预定义了一些key,但通常情况,并不能满足我们的需求。幸运的是zabbix提供了自定义key的方法,因此我们可以灵活的监控各种我们想要监控的数据。

定义配置文件

通过yum安装的zabbix-agent配置文件路径为/etc/zabbix/zabbix_agentd.conf。
大约在这个文件的255行左右,我们可以发现下面的代码:

1

Include=/etc/zabbix/zabbix_agentd.d/

我们自定义的配置,可以放到这个目录。
我们可以创建一个自定义的文件来定义我们需要的key:

1

vim /etc/zabbix/zabbix_agent.d/userparameter_script.conf

文件里面添加这样的内容:

1

2

3

4

# 这个文件监控自定义脚本输出值

# 格式为UserParameter=<key>,<command>

UserParameter=script.date,date

保存之后重启zabbix-agent。

测试获取自定义key的值

在zabbix-server上使用zabbix_get工具获取自定义值。

1

2

shell> zabbix_get -s 100.10.1.2 -k script.date

Fri Apr 24 14:41:18 CST 2015

获取到了上面例子中执行date的结果,说明配置是成功的。

创建一个脚本

首先新建一个script目录来存放我们的脚本,并将这个脚本命名为kucun.sh,我将使用zabbix来监控数据库中的库存表,使用库存数据画图。

1

2

mkdir -p /etc/zabbix/script/

vim /etc/zabbix/script/kucun.sh

我们定义脚本,输入一个店铺号来查询这个店铺中商品数量小于n的条数。
若手动执行查询,查询方式是这样的:

1

2

shell> /etc/zabbix/script/kucun.sh bj001 30

2

输出2即表示有2个商品数量小于30。
下面是脚本的内容:

1

2

3

4

5

6

7

8

#!/bin/bash

shop_id=$1

number=$2

dbhost="100.10.1.2"

dbuser="monitor"

dbpasswd="21"

sql="SELECT count(*) FROM lsp_cus.menu WHERE shop_no = \"$shop_id\" AND date = UNIX_TIMESTAMP(DATE_FORMAT(NOW(),‘%Y-%m-%d‘)) AND num - sale < \"$number\""

mysql -h$dbhost -u$dbuser -p$dbpasswd -Ne "$sql"

使用脚本查询的结果创建key

重新编辑

1

vim /etc/zabbix/zabbix_agent.d/userparameter_script.conf

文件修改为:

1

2

3

# 这个文件监控自定义脚本输出值

# 格式为UserParameter=<key>,<command>

UserParameter=script.kucun[*],/etc/zabbix/script/kucun.sh $1 $2

通过zabbix-server查询

在zabbix服务器上使用zabbix_get工具查询店铺号001,库存小于30的商品数量。

1

2

shell> zabbix_get -s 100.10.1.2 -k script.kucun[001,30]

18

可以看到成功了。

上面用到方法的一些解释

UserParameter=key[*],command
key为唯一值,[*]表示参数。
command为要执行的命令或脚本,key的[*]里面的参数一一对应$1到$9,一共9个参数。$0表示脚本命令。返回结果数据最大为512KB。
参数禁止使用下列字符:\ ‘ ” ` * ? [ ] { } ~ $ ! & ; ( ) <> | # @

脚本的命令行参数可以通过搜索引擎搜索相关文章。

转自 http://www.qiansw.com/zabbix-user-parameters-key-script.html

一些坑------

有问题首先查看 /var/log/zabbix 看看怎么说

权限问题 配置

$vi /etc/zabbix/zabbix_agentd.conf  AllowRoot属性

修改后启动失败  $setenforce 0 关闭 selinux

$/etc/selinux/config SELINUX=disabled

时间: 2024-12-26 21:08:29

ZABBIX自定义用户KEY与参数USERPARAMETERS监控脚本输出的相关文章

zabbix学习笔记5-自定义用户key与参数Userparameters

有时候我们想让被监控端执行一个zabbix没有预顶一个检测,zabbix的用户自定义参数功能提供了这个方法,我们可以在客户配置文件zabbix_agentd.conf里面配置UserParameter UserParameter=key,command 用户自定义参数包括一个key和一个命令,key必须是整个系统唯一,配置好之后,重启客户端. 然后配置item,在key的位置填上我们自定义的key即可.用户自定义参数指定的脚本由zabbix agent来执行,最大可以返回512kb的数据 用户自

Zabbix监控——Zabbix自定义用户参数制作监控项

很多情况下,我们使用zabbix内建的监控项不足以监控企业的具体业务,这时就需要使用zabbix提供的自定义参数扩展接口,自己根据业务监控需求,开发相应的脚本作为数据获取途径,自定义参数又存在两种方式,一种是直接把脚本内容写在自定义参数配置文件里面,另一种是写成独立的脚本文件,自定义参数配置文件里面直接调用脚本. 接下来给大家展示一下使用自定义脚本方式(脚本内容直接写在配置文件里面)添加监控项第一步:确认zabbix_agent开启了扩展参数配置(客户端的操作)vim /etc/zabbix/z

解决Zabbix自定义用户参数无法获取到数据的问题

今天在一台被监控的主机上写了一个用户参数(UserParameter),用于监控这台主机上的一个pid,还有一些别的用户参数,其他的用户参数都正确获得了,唯独这个后加的pid始终没有获得到数据,服务和日志都重启查看了,没有任何报错,也试过将pid的这个值设置成text和number,但都始终无法获取到这个pid的数据.我也是着了急,就请教了一下资深的Zabbix专家邓工(他的博客地址是:http://dl528888.blog.51cto.com/). 我详细的提供了如下相关信息: 自定义的参数

Zabbix自定义参数监控和awk命令

awk 命令 awk是一种处理文本文件的语言,是一个强大的文本分析公具.awk处理文本和数据的方式:逐行读入文本,寻找匹配特定模式的行,然后进行操作. 输出文件匹配行的特定字段 功能很强大,所以有很多用处.这里我主要关注下面这样的场景:逐行读入文本,按规则匹配特定的行,以空格为默认分隔符将每行切片,输出其中特定的某个切片(切开的部分可以进行各种分析处理,这里就是要输出其中以段): $ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain

zabbix专题:第九章 自定义key(案例:监控内存,监控nginx状态)

第九章 自定义key 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 为什么要自定义KEY 有时候我们想让被监控端执行一个zabbix没有预定义的检测,zabbix的用户自定义参数功能提供了这个方法.我们可以在客户端配置文件zabbix_angentd.conf里面配置UserParameter. 语法如下: UserParameter=key,command 用户自定义参数包含一个key和一个命令,ke

Zabbix自定义key监控docker

一.需求场景在某些docker容器中运行着java,容器提供API供监控调用.需要监控服务运行是否正常和容器内JVM使用情况. 二.想法编写监控脚本,使用自定义key的方式添加到Zabbix中. 三.实践1.编写服务监控脚本 #!/bin/bash interval_time=600 service_port_file=/script/tmp/service_port.txt #Gener_service_port tee > ${service_port_file} << EOF ap

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值

说明: zabbix自带的默认模版里包括了很多监控项,有时候为了满足业务需求,需要根据自己的监控项目自定义监控项,这里介绍一种自定义监控项的方式. 1,首先编写自定义监控脚本,本文以监控httpd进程是否存在为例. 脚本名字:check_httpd.sh 脚本目录(这个目录可以自定义):/usr/local/etc/zabbix_scripts 脚本内容: #!/bin/bash result=`ps -ef | grep httpd | grep -v grep`if [ -n "$resul

Zabbix 自定义 key 监控 apache

一.环境 Ubuntu14.04 LTS  zabbix 2.4.5  Apache/2.4.7 二.配置apache监控 1. 开启apache的server-status 添加下面的内容到apache的配置文件中 sudo vim /etc/apache2/apache2.conf <Location /server-status> SetHandler server-status Allow from 127.0.0.1 Order deny,allow Deny from all &l