1User parameters(用户自定义参数)

1.1配置

描述

详细

备注

简介

1执行zabbix中未预定义的agent check时使用

配置

1)    zabbix agent的配置文件中增加UserParameter参数,并编写接收数据命令行格式如下:UserParameter=<key>,<command>

2)    配置好后重启agent

3)    配置监控项item,item中的key对应UserParameter中的key(用于引用要执行的命令command)

4)    Command命令在agent端执行,在item处理前可返回最大512KB数据,但保存到msyql中最大为64KB

1)说明:key用于区分item(唯一性)

/bin/sh 作为unix操作系统下的解释器

2)简单用户参数样例:

a)UserParameter=ping,echo 1

定义的ping(作为key)返回常量1

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

如果mysql服务器在线则返回1,否则返回0

c)灵活的用户参数

UserParameter=key[*],command

key[*]即key可以为[ ]中的参数,参数在配置item时给出。

zabbix分析item key中[]内的参数,并依次替代命令中$1,…$9部分。

$0替换为原始命令。位置引用将被解释(无论是”还是’引用)。

通过双$标记使用位置引用如’{print $$2}’,其中$$2将在执行命令时自动转为$2。

注意$位置引用仅在flexible user parameters情况下有效,简单用户参数中直接被忽略

灵活用户参数样例:
UserParameter=ping[*],echo $1

可定义任意满足*的key,item中的key可以如ping[0],ping[aaa],并返回常量0,aaa

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

可用于监控mysql性能, item中的key可以如:mysql.ping[zabbix,our_password]

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

可用于统计文件行数,item中的key可以如:wc[/etc/passwd,root]或

wc[/etc/services,zabbix]

命令结果

命令的返回值与标准错误一起按照标准输出。

在标准错误输出的情况下,文本(字符、日志或文本信息类型)监控项将被支持。

1.2扩展zabbix代理

监控mysql实现

步骤

详细

备注

1

编写脚本或命令行检索需要的参数,如

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

查询sql查询总数

2

1)将命令添加到zabbix_agentd.conf

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

mysql.questions 是一个唯一的标识符。Item中的Key对应选择该标识

2)测试参数;

zabbix_agentd -t mysql.questions

即调用mysql.questions对应的脚本命令

本文实际:

UserParameter=mysql.questions,mysql -u
zabbix -p zabbix2018 -h 14.215.130.184 status | cut -f4 -d":" | cut
-f1 -d"S"

不输入密码报错,不输入h无法本地登录(可能未设置本地localhost登录)

3

1)重启zabbix agent,代理将重新加载配置文件

可用zabbix_get测试获取值:

zabbix_get
-s 127.0.0.1 -p 10050 -k mysql.questions

如果zabbix_get未安装,执行命令安装:

yum
install zabbix-get

https://www.zabbix.com/documentation/3.4/zh/manual/concepts/get

本文实际:

zabbix_get -s 14.215.130.184 -p 10050 -k
mysql.questions

4

添加监控项item:

Name: mysql questions num

Key:mysql.questions

Type: zabbix agent(或动态agent)

注意,设置正确的返回值类型,否则zabbix将不接收

2Loadable modules可加载模块

仅针对Unix平台实现可加载模块的支持。

2.1概述

描述

详细

备注

功能

提供了一种关于Zabbix性能扩展的选项

相比其他扩展Zabbix功能方式,如下;
1)user parameters(代理模式下,即上面的用户自定义参数)

2)external checks(无代理模式下)

3) system.run[]  的zabbix agent监控项

3个方法都可以,但存在一个缺点即fork()
(zabbix必须在每次处理用户指标时分配一个新进程,对性能不利)。

可加载模块既能提供扩展zabbix agent/server/proxy的方法,同时不牺牲性能

更最重要的优势是使用和共享Zabbix模块的开发能力。

2.2模块API

Zabbix模块API目前有六个功能,一个为强制,其他5个可选。

描述

详细

备注

强制接口

zbx_module_api_version()

模块API的版本,返回一个常数

可选接口

1) int
zbx_module_init(void)//模块初始化

成功返回ZBX_MODULE_OK,否则返回ZBX_MODULE_FAIL,且zabbix不会启动

2) ZBX_METRIC
int zbx_module_item_list(void)//模块支持的监控项列表, 每个监控项都是在ZBX_METRIC结构中定义,列表由ZBX_METRIC终止,”key”字段为NULL

3) int
zbx_module_item_timeout(int timeout)//超时时间

4) ZBX_HISTORY_WRITE_CBS
zbx_module_history_write_cbs(void)

//历史数据导出函数,回调函数作为ZBX_HISTORY_WRITE_CBS结构的字段提供,如果不感兴趣可字段可为NULL

5) int
zbx_module_uninit(void) //反初始化释放资源,卸载时使用

2.2.1定义监控项

描述

详细

备注

每个监控项都在ZBX_METRIC结构中定义

typedef struct

{

char          *key;

unsigned flags;

int             (*function)();

char          *test_param;

}

ZBX_METRIC;

key为监控项key(如” dummy.random”), 标志是CF_HAVEPARAMS或0(取决于监控项是否接受参数),function是实现该项目的C函数(例如,“zbx_module_dummy_random” ),test_param是使用“-p”标志启动Zabbix代理时使用的参数列表(例如,“1,1000”,可以为NULL)。

实例

1)示例定义如下所示:

static
ZBX_METRIC keys[] =

{

{ "dummy.random",
CF_HAVEPARAMS, zbx_module_dummy_random, "1,1000" },

{ NULL }

}

2)实现一个监控项的每个函数应该接受两个指针参数,第一个是AGENT_REQUEST类型,第二个是AGENT_RESULT类型的参数:

intzbx_module_dummy_random(AGENT_REQUEST
*request, AGENT_RESULT *result)

{

...

SET_UI64_RESULT(result, from + rand()
% (to - from + 1));

return SYSINFO_RET_OK;

}

如果监控项的值成功获取,这些函数应返回SYSINFO_RET_OK。否则,它们应该返回SYSINFO_RET_FAIL。有关如何从AGENT_REQUEST获取信息以及如何在AGENT_RESULT中设置信息的详细信息,请参阅下面的示例“dummy”模块。

2.2.2提供历史记录导出回调(暂未使用)

描述

详细

备注

可以指定按类型导出历史数据的函数:Numeric(float),Numeric(unsigned),Character,Text和Log:

typedef struct

{

void (*history_float_cb)(const
ZBX_HISTORY_FLOAT *history, int history_num);

void (*history_integer_cb)(const
ZBX_HISTORY_INTEGER *history, int history_num);

void (*history_string_cb)(const ZBX_HISTORY_STRING
*history, int history_num);

void (*history_text_cb)(const ZBX_HISTORY_TEXT
*history, int history_num);

void (*history_log_cb)(const ZBX_HISTORY_LOG
*history, int history_num);

}

ZBX_HISTORY_WRITE_CBS;

https://www.zabbix.com/documentation/3.4/zh/manual/config/items/loadablemodules

实例

1)示例定义如下所示:

static
ZBX_METRIC keys[] =

{

{ "dummy.random",
CF_HAVEPARAMS, zbx_module_dummy_random, "1,1000" },

{ NULL }

}

2)实现一个监控项的每个函数应该接受两个指针参数,第一个是AGENT_REQUEST类型,第二个是AGENT_RESULT类型的参数:

intzbx_module_dummy_random(AGENT_REQUEST
*request, AGENT_RESULT *result)

{

...

SET_UI64_RESULT(result, from + rand()
% (to - from + 1));

return SYSINFO_RET_OK;

}

如果监控项的值成功获取,这些函数应返回SYSINFO_RET_OK。否则,它们应该返回SYSINFO_RET_FAIL。有关如何从AGENT_REQUEST获取信息以及如何在AGENT_RESULT中设置信息的详细信息,请参阅下面的示例“dummy”模块。

3Mass update

批量更新

步骤

详细

步骤

1

在item列表中,勾选第一行的勾选框(为全选)。

或勾选要修改的item项

https://www.zabbix.com/documentation/3.4/zh/manual/config/items/itemupdate

2

点击列表下面的Mass update

3

勾选要更新的属性的复选框:

4

输入新的属性值,点击update

注意:

1)     
Replace applications 将从任何现有应用程序中删除该监控项,并将其替换为该字段中指定的监控项(勾选选择)。

2)     
Add new or existing
applications 允许从现有的应用程序中指定其它应用程序,或者为监控项输入全新的应用程序。

4Value mapping(值映射)

描述

详细

备注·

值映射

以人更容易理解的方式去显示结果。

如一个监控项的返回结果为0(表示不可用)或1(表示可用)

对应的映射如下:

‘0’à’not available’

‘1’à’available’

即当结果返回0时,实际展示的结果为not available

值映射可用于numeric和charater类型的监控项信息

配置

Administrationàgeneralàselect”value mapping” (即右边的下拉选项)àcreate value map(新建)à输入名称(唯一)和mappingà点击Add

使用

1) 配置监控项item时,列表中有show value下拉选项,可选择适合的值映射项

2) 选择后,可在monitoringàlatest data查看显示结果

如zabbix agent的 agent ping监控项,无值映射显示为1,有值映射显示为up(1)即上线

5application(应用)

实际没太大作用,只是将监控项展示在一个组下

描述

详细

备注·

应用术语

1)用于逻辑群组的监控项分组

如mysql 服务器可拥有关于mysql 服务器的所有监控项(mysql可用性,硬盘空间,处理负载等)

2) 用于分组web场景

如将监控项Total memory配置为mysql应用,则其监控项在latest data中显示在mysql名称列表下

配置

1) 创建新的应用,

Configurationàhostsà靠近主机旁的applicationà点击create applicationà输入名称nameàadd

2)配置item监控项时,可勾选该Item配置列表中的applications选项,或直接在配置列表项中的new
application直接输入名称,提交后会自动创建新的application

6Queue(队列)

描述

详细

备注·

术语

队列显示等待更新的监控项(,只是数据的逻辑显示,实际上zabbix中并没有队列机制。

只有刷新次数的监控才会显示在队列中

配置

无需配置,zabbix运行后直接在web页面可见

Administratoràqueueà右边下拉选择项选择”overview”

列表说明

1)     
绿色代表正常

2)     
如果发现有不正常情况(非0),可切换右侧下拉选项à选择detailsà列表显示有问题的监控项

3)     
如果有大量延迟,可能agent挂掉

队列监控项

特殊的内部监控项zabbix[queue,<from>,<to>]可监控队列状况,返回延迟的items数目

更多信息参考:https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/internal

7value cache(值缓存)

描述

详细

备注·

术语

1) 为使触发器表达式、计算/统计监控项、宏定义的计算更快速,引入了值缓存

2) 这种内存缓存可用于访问历史数据而不是通过sql访问数据库获取。仅当历史数据不存在时才从数据库查询并更新缓存。

3) 通过在zabbix_server.conf文件中配置ValueCacheSize参数开启值缓存

监控项zabbix[vcache,buffer,<mode>]
和 zabbix[vcache,cache,<parameter>]

可以监控值缓存,更多信息参考

https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/internal

zabbix系列之七——安装后配置二Userparameters的更多相关文章

  1. zabbix系列之六——安装后配置二Items

    https://www.zabbix.com/documentation/3.4/manual/config/items/itemtypes/snmp 1Items 1.1creating items ...

  2. zabbix系列之八——安装后配置三Triggers

    1Triggers(触发器) 描述 详细 备注 术语描述 1)触发器是评估监控项采集的数据的逻辑表达式,代表了当前系统状态. 2)触发器可定义一个什么数据是可接受的阈值,因此,如果接收的数据超过了可接 ...

  3. zabbix系列之五——安装后配置一

    https://www.zabbix.com/documentation/3.4/manual/appliance Configuration 1Hosts and host groups Overv ...

  4. FreeBSD从零开始---安装后配置(一)

    一.安装后配置   上次我们说到FreeBSD的安装,这次我们说FreeBSD安装后的配置和简单优化方法.   安装完BSD只是服务器提供服务这条万里长征路的开始,还需要一些基本的设定和优化.不过实际 ...

  5. FreeBSD从零开始---安装后配置(二)

    系统优化及安全设置   上次说了FreeBSD基本的软件安装和配置,接下来会说系统的详细配置和安全性设置   一.系统优化设置   1.网络相关设置   网卡和IP地址设置: 如果在安装时没有设置IP ...

  6. 【zabbix系列】安装与加入host

    測试环境 Ubuntu 14.04.1 LTS [服务端安装] 关于安装官方提供了非常具体的安装方法,包含各平台的源代码及包安装.关于其它版本号Linux请參考 https://www.zabbix. ...

  7. 软件安装配置笔记(三)——ArcGIS系列产品安装与配置(补档)(附数据库连接及数据导入)

    在前两篇安装配置笔记之后,就忘记把其他安装配置笔记迁移过来了,真是失误失误!趁现在其他文档需要赶紧补上. 目录: 一.ArcMap 二.ArcMap连接数据库并导入数据 三.Arcgis Pro 四. ...

  8. CentOS7安装后配置MariaDB

    安装后,优先推荐先对安全设置进行配置,键入命令 sudo mysql_secure_installation 键入当前密码,当前没有,直接回车,之后跟随提示会问几个问题:设置 root 密码? / 移 ...

  9. Centos 7最小化安装后配置

    关闭SELINUX vi /etc/sysconfig/selinux SELINUX=disabled :wq 配置网卡(最小化安装后ifconfig无法使用),该配置的前提是采用 NAT模式 vi ...

随机推荐

  1. 【Ubuntu】使用记录

    Vim 设置自动折行 :set wrap Maven 安装 去官网下载maven安装包 解压maven, 在主目录下的.bashrc中添加 export PATH="$PATH:{your_ ...

  2. Spring Security构建Rest服务-1203-Spring Security OAuth开发APP认证框架之短信验证码登录

    浏览器模式下验证码存储策略 浏览器模式下,生成的短信验证码或者图形验证码是存在session里的,用户接收到验证码后携带过来做校验. APP模式下验证码存储策略 在app场景下里是没有cookie信息 ...

  3. Linux 系统计算文件夹下文件数量数目

    查看某目录下文件的个数(未包括子目录) ls -l |grep "^-"|wc -l 或 find ./company -type f | wc -l 查看某目录下文件的个数,包括 ...

  4. Linux top命令用法

    统计信息区前五行是系统整体的统计信息.第一行是任务队列信息,同 uptime 命令的执行结果.其内容如下: :: 当前时间 up : 系统运行时间,格式为时:分 user 当前登录用户数 load a ...

  5. Self-Attention与Transformer

    直观理解与模型整体结构 先来看一个翻译的例子“I arrived at the bank after crossing the river” 这里面的bank指的是银行还是河岸呢,这就需要我们联系上下 ...

  6. 玩转mongodb(五):mongodb 3.0+ 查询性能分析

    mongodb性能分析方法:explain() 为了演示的效果,我们先来创建一个有200万个文档的记录.(我自己的电脑耗了15分钟左右插入完成.如果你想插更多的文档也没问题,只要有耐心等就可以了.) ...

  7. Oracle 12c 操作 CDB PDB

    CREATE TRIGGER open_all_pdbs AFTER STARTUP ON DATABASE BEGIN EXECUTE IMMEDIATE 'alter pluggable data ...

  8. PHP初级篇

    PHP初级篇 PHP环境搭建: 企业中常用到的环境是:Linux+Apache+MySQL+PHP 学习环境是:Windows+Apache+MySQL+PHP 工具 Apache 2.4.4 MyS ...

  9. Centos系统下卸载、安装MySQL及用户的创建、授权和使用(详细。。。。)

    由于经常使用linux系统,并且大数据环境搭建中经常会使用到mysql,不像windows系统下的安装,今天有点空写一篇,下面我给大家演示一遍. 主要有三部分内容: 1.MySQL的卸载 2.MySQ ...

  10. commons-fileupload-1.4使用及问题

    文件上传 使用commons-fileupload-1.4控件及依赖的commons-io-2.6控件 jsp页面中内容 <form action="../servlet/FileUp ...