zabbix添加自定义监控项,如何用zabbix创建自定义监控项?

本教程提供了有关如何使用用户自定义参数扩展Zabbix代理功能的分步说明。

第一步

写一个脚本或命令行以检测所需的参数。

举个例子,我们编辑了下面的命令以获取 MySQL Server 执行的查询总数:

mysqladmin -uroot status | cut -f4 -d":" | cut -f1 -d"S"

当这个命令被执行,将恢复返回 SQL 查询的总数。

第二步

添加命令到 zabbix_agentd.conf:

UserParameter=mysql.questions,mysqladmin -uroot status | cut -f4 -d":" | cut -f1 -d"S"

mysql.questions 作为key需要是唯一标识符。可以是任何有效的字符,比如 queries。

通过使用带有 ‘-t’ 标识的 zabbix_agentd命令测试此用户自定义参数的执行。(如果是以root用户运行,请注意agent守护进程的执行者的权限):

zabbix_agentd -t mysql.questions

第三步

重启Zabbix Agent。

Agent会重载配置文件。

使用 zabbix_get 实用程序测试该用户自定义参数。

第四步

在被监控主机中添加使用key值为 ‘mysql.questions’ 的新监控项。监控项类型必须使用 Zabbix Agent 或 Zabbix Agent(Active)。

注意在 Zabbix Server 上。必须设置正确的返回值类型,否则Zabbix将不会接受它们。

zabbix添加自定义监控项,如何用zabbix创建自定义监控项?

zabbix如何自定义键值和监控项?

用户自定义参数

用户定义参数可以用来帮助用户实现通过Zabbix agent执行非Zabbix原生的 agent check。

你可以编写一个命令来检索所需的数据,并将其包含在用户自定义参数agent 配置文件中 ('UserParameter' 参数配置)。

一条用户自定义参数配置应当使用以下语法:

UserParameter=,

如你所见,一条用户自定义参数除了命令部分,还包括一个key。这个key将在配置监控项时使用。输入你选择的易于引用的key(key在一台主机中必须是唯一的)。重启agent。

接下来,在配置配置监控项时,输入要执行的来自用户自定义参数中的,引用命令的key。

用户自定义参数是由Zabbix agent来执行命令的。在监控项预处理步骤前,最多可以返回512KB的数据。但是,请注意,最终可以存储在数据库中的文本值,在MySQL上的限制为64KB(其他数据库的信息请参阅数据表)。

/bin/sh 在UNIX操作系统中,作为命令行解释器使用。用户自定义参数参照agent check超时;如果超时时间到了,那么执行用户自定义参数的子进程将会被中止。

参见:

  • 分布教程 配置用户自定参数 parameters
  • 命令执行

用户自定义参数用例

一个简单的命令:

UserParameter=ping,echo 1

agent 将始终为使用“ping”为key的监控项返回“1”。

一个复杂一些的例子:

UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive

如果Mysql服务器是活动状态,agent将返回“1”,否则会返回“0”。

灵活的用户自定义参数

灵活的用户自定义参数可以从key中接受参数。这是一种使用一个用户自定义参数创建多个监控项的方式。

灵活的用户自定义参数有以下语法:

UserParameter=key[*],command Parameter参数Description描述 Key 唯一的监控项key。 [*] 用于定义该key接受括号内的参数。参数需在配置监控项时给出 Command 命令在执行时,引用key中指定的值只对灵活的用户参数有效:你可以在命令中使用位置引用$1 … $9来引用监控项Key中的相应参数。Zabbix解析监控项Key的[]中包含的参数,并相应地替换$1,…,$9。$0会替换为完整的原始命令(在对$0,…,$9执行替换之前的命令)运行。不管位置参数($0,…,$9)是用双引号( “ )还是单引号( ' )括起来,都会解析位置引用。 要使用位置引用解析,请指定双美元符号($) - 例如, 。 在这种情况下,执行命令时, 实际上会变成 。 仅对灵活的用户自定义参数进行搜索具有 符号的位置引用并由Zabbix agent解析替换。 对于简单的用户自定义参数,跳过此类参考处理,因此不需要任何$符号引用。默认情况下,不允许用户在用户自定义参数中使用某些特殊符号。详情请移步 UnsafeUserParameters ,查询相关的符号列表

示例一

先来一个简单的:

UserParameter=ping[*],echo $1

我们可以定义无数个监控项来监控所有形如ping[something]格式的东西。

  • ping[0] - 将总是返回 ‘ 0 ’
  • ping[aaa] - 将总是返回 ‘aaa’

示例二

让我们更进一步!

UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive

这个用户自定义参数可以用来监控 MySQL 数据库的状态。可以想下面的样式传入用户名和密码:

mysql.ping[zabbix,our_password]

示例三

一个文件中有多少行匹配正则表达式?

UserParameter=wc[*],grep -c "$2" $1

这个用户自定义参数能用来计算一个文件中有多少行匹配相应的表达式。就像下面一样:

wc[/etc/passwd,root] wc[/etc/services,zabbix]

命令结果

命令的返回值是标准输出和标准错误。

标准错误情况下,不支持文本(字符、日志或是文本类型的信息)的监控项

返回文本的用户自定义参数(字符,日志,文本信息类型)可以返回空格。如果结果不可用,那么这个监控项会变为不支持状态。

zabbix监控数据库的sql执行频率如何调整?

zabbix添加自定义监控项,如何用zabbix创建自定义监控项?zabbix添加自定义监控项,如何用zabbix创建自定义监控项?

创建监控项目的时候,有个update interval 这个项目里改更新频率

要在Zabbix管理页面创建一个监控项,请执行以下操作:

  • 进入到: 配置 → 主机
  • 在主机所在的行单击 监控项
  • 点击屏幕右上角的创建监控项
  • 输入表单中监控项的参数

你也可以通过打开一个监控项,按克隆 按钮,然后以不同的名称保存。

每N秒钟检索一次这个项目的新值。允许的最大更新间隔为86400秒(1天)。支持时间后缀,例如 30s,1m,2h,1d。支持用户宏。注意:如果设置为“0”,则不会轮询该项。 但是,如果自定义间隔(灵活/调度)也存在非零值,则会在自定义间隔持续时间期间轮询该项。 注意 可以通过按立即检查按钮立即轮询现有被动监控项的值。

配置

监控项 选项卡包含了常规监控项属性:

zabbix添加自定义监控项,如何用zabbix创建自定义监控项?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 xxx@163.com 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论