zabbix一创建自定义items

本文详细介绍Zabbix监控系统的配置方法,包括主机与组、监控项、触发器、事件、可视化配置等内容,并通过实例演示如何创建自定义监控项。

一、介绍

1.zabbix配置介绍

1、主机与组(hosts,hosts_groups)
    不用多数,顾名思义,他是添加主机配置与组配置。
2、监控项(items)
    需要监控的项目,例如服务器负载可以使一个监控项。系统自带大部分监控项,一些特定的监控项我们可以自定义,自定义监控项的方法也会在《zabbix监控项》这节谈到。
3、触发器(triggers)
    什么情况下出发什么事情,称之为触发器。例如:定义如果系统负载大于10那么报警,这个东西可以称之为触发器。
4、事件(events)
    触发器状态变更、Discovery事件等
5、可视化配置(graphs)
    图表配置,讲监控的数据绘制成曲线图。或者在一个屏幕中可以看到某台主机所有监控图表。
6、模板配置(template)
    自定义监控模板。例如Template OS Linux
7、报警配置(acctoins)
    配置报警介质:邮箱、sms以及什么情况下发送报警通知。
8、宏变量
    用户自定义变量,很有用的一个功能。
9、用户与组管理

2.zabbix结构流程图(来自网络)

这里写图片描述

3.items参数详解

  • 名称:

    这是项目的命名方式。
    可以使用以下宏:
    $ 1,$ 2 …$ 9 - 引用项键的第一个,第二个…第九个参数
    例如:$ 1上的可用磁盘空间
    如果项键是“vfs.fs.size [/,free] “,描述将自动更改为”可用磁盘空间/“


  • 类型:

    常见agent、SNMP、agent(active)等


  • 键值:

    key,点击select可以看到系统很多自带的key,也可以看到用户自定义的key


  • 主机接口:

    例如agent、SNMP、impi等


  • 信息类型:

    执行转换后存储在数据库中的数据类型(如果有)。
    数字(无符号) - 64位无符号整数
    数字(浮点) - 浮点数
    可以存储负值。
    允许范围:-999999999999.9999至999999999999.9999。
    从Zabbix 2.2开始,还支持以科学计数法接收值。例如1e + 7,1e-4。
    字符 - 短文本数据
    日志 - 具有可选日志相关属性的长文本数据(时间戳,源,严重性,logeventid)
    文本 - 长文本数据文本数据的


  • 数据类型:

    与信息类型对应,只有信息类型选择了“数字无正负”才需要填,有:布尔,八、十、十六进制


  • 单位:

    默认情况下,如果原始值超过1000,那么他会先除以1000并且显示出来例如,设置了单位为bps并且收到的值为11102,将会显示为11.1Kbps
    如果单位被指定为 B (byte), Bps (bytes per second) ,那么它会除以1024然后再显示数据。所以大家在监控流量和文件大小的时候不要用错单位,否则会出现数据不一致的情况。
    如下为时间单位:
    unixtime – 转为 “yyyy.mm.dd hh:mm:ss”. 只能使用正数。
    uptime – 转为“hh:mm:ss” 或者“N days, hh:mm:ss”
    例如,收到的值为881764秒,他将会显示为“10 days, 04:56:04”
    s – 转为“yyy mmm ddd hhh mmm sss ms”;
    例如,收到的值为881764(单位秒),他将会被显示为10d 4h 56m”,只会显示3个单元。有时候只会显示2个单元,例如”1m 5h”(不包含分,秒,毫秒),如果返回的值小于0.001,他只会显示”<1 ms”禁用单位:ms、rpm、RPM、%


  • 数据更新间隔(秒):

    每N秒检索此项目的新值。允许的最大更新间隔为86400秒(1天)。从Zabbix 3.4.0开始支持时间后缀,例如30s,1m,2h,1d。自Zabbix 3.4.0起支持


  • 自定义间隔:

    灵活 - 为更新间隔创建例外(具有不同频率的间隔)
    计划 - 创建自定义轮询计划。
    灵活类型可以创建例外的更新间隔,例如:
    间隔:10,期间:1-5,10:00-19:00,表示周一到周五的早上10点到晚上19点每十秒更新一次数据。其余时间使用默认值。这边最多只能设置7个灵活更新间隔.如果设置的多个灵活时间间隔有冲突,那么他会使用最小的时间间隔。
    两个注意点:如果时间间隔被设置为0,那么数据永久不会更新。它不能用在zabbix主动方式的item


  • 历史数据保留时长(单位天):

    历史记录可以在数据库中保存多久,过期的历史数据将会被删除.
    趋势数据存储周期(单位天):
    趋势数据(以小时为单位的min,max,avg,count的数据)在数据库中保留时常,过期数据将会被删除。


  • 存储值:

    As is – 数据不作处理
    Delta (speed per second) –
    计算值公式为 (value-prev_value)/(time-prev_time)
    value – 获取到得原始值
    value_prev – 上次接收到的值
    time – 当前时间
    prev_time – 上次接收数据的时间一般用于数据增长的类型,例如:
    网卡流量,每次获取到得都是当前网卡总流量。比如第一次给的值是0字节(UNIX时间为1),第二获取到得是3000字节(UNIX时间为31),那么套用公式(3000-0)/(31-30),可以得出数据是100字节/秒
    备注:如果当前获取到的值比上一个值更小,那么zabbix会忽略这个值,等待下一次的值
    Delta (simple change) –计算公式为 (value-prev_value),value – 当前值value_prev – 上次获取到得值


  • 查看值:

    值映射,需要配置数字映射到字符的映射表。例如:
    1=>ttlsa.com访问正常。如果key返回的数据为1,那么监控页面不会显示1,而是显示ttlsa.com访问正常。key返回的数据只能为整数,并且不做任何修改保存到数据库中。只有在显示的时候才会根据映射表来展示相应的内容。


  • 新的应用集:

    创建新的应用集,不创建新的则使用,应用集列表有的

二、创建自定义items

0.环境:

zabbix(server)
zabbix-01(agent)

1.创建自定义key

1.1创建文件(用作监控测试)

[root@zabbix-01 ~]# dd if=/dev/zero of=/opt/test.file bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.109824 s, 95.5 MB/s
[root@zabbix-01 ~]# du -h /opt/test.file 
10M     /opt/test.file

1.2创建监控文件大小的key(如:/opt/test.file)

[root@zabbix-01 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix-01 zabbix_agentd.d]# cat -n monitoring_file_size.conf 
     1  UserParameter=monitoring_file_size,stat -c %s /opt/test.file
[root@zabbix-01 zabbix_agentd.d]# systemctl restart zabbix-agent
[root@zabbix-01 zabbix_agentd.d]#  netstat -lntup|grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      6649/zabbix_agentd  
tcp6       0      0 :::10050                :::*                    LISTEN      6649/zabbix_agentd 

##########
monitoring_file_size.conf:自定义key的文件名,可随意书写
UserParameter:固定
monitorinf_file_size:key的名称,不能重复。
stat -c %s /opt/test.file:统计文件大小的命令
##########

1.3测试是否生效

[root@zabbix ~]# zabbix_get -s 10.0.0.7 -k "monitoring_file_size"         
670293

1.4 zabbix-web界面操作

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

1.5向/opt/test.filex写入内容

[root@zabbix-01 zabbix_agentd.d]# du -h /etc/services 
656K    /etc/services
[root@zabbix-01 zabbix_agentd.d]# cat /etc/services >>/opt/test.file 

1.6zabbix web查看
这里写图片描述

2.使用系统自带的key创建items

2.1安装httpd,启动

[root@zabbix-01 ~]# yum install httpd -y
[root@zabbix-01 ~]# systemctl start httpd
[root@zabbix-01 ~]# netstat -lntup|grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      7491/httpd   

2.2zabbix-web界面操作

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

2.3关闭httpd

[root@zabbix-01 ~]# systemctl stop httpd

这里写图片描述

### 如何在 Zabbix 中设置和开启自定义监控项 #### 配置 Zabbix Agent 自定义监控项 为了在 Zabbix 中配置自定义监控项,需要修改 `zabbix_agentd.conf` 文件以支持自定义脚本或命令。以下步骤展示了如何完成这过程: 1. **编辑 Zabbix Agent 配置文件** 打开 Zabbix Agent 的配置文件 `zabbix_agentd.conf`,并取消注释以下行,以便包含自定义配置目录中的文件: ```bash Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf ``` 这行允许 Zabbix Agent 从指定目录加载额外的配置文件[^1]。 2. **创建自定义配置文件** 在上述目录中创建个新的配置文件(例如 `custom_items.conf`),并在其中定义自定义监控项。例如: ```bash UserParameter=mysql.uptime[*],/usr/local/zabbix/get_mysql_status.sh $1 $2 uptime UserParameter=mysql.threads[*],/usr/local/zabbix/get_mysql_status.sh $1 $2 threads ``` 上述配置定义了两个自定义监控项:`mysql.uptime` 和 `mysql.threads`,分别调用脚本来获取 MySQL 的运行时间和线程数[^3]。 3. **重启 Zabbix Agent** 修改配置后,重启 Zabbix Agent 服务以使更改生效: ```bash systemctl restart zabbix-agent ``` #### 测试自定义监控项 在配置完成后,可以通过 Zabbix Server 或 Proxy 使用 `zabbix_get` 命令测试自定义监控项是否正常工作。例如: ```bash zabbix_get -s 192.168.19.128 -k mysql.uptime[user,password] ``` 上述命令将尝试从目标主机获取 MySQL 的运行时间,并返回结果[^2]。 #### 在 Zabbix Web 界面中添加自定义监控项 1. **登录 Zabbix Web 界面** 登录到 Zabbix 的管理界面,并导航到“配置” -> “主机”。 2. **选择目标主机** 找到需要添加自定义监控项的目标主机,点击进入其详细配置页面。 3. **添加新监控项** 在“监控项”选项卡中点击“创建监控项”,填写以下信息: - **名称**:为监控项命名,例如 `MySQL Uptime`。 - **类型**:选择 `Zabbix agent`。 - **键值**:输入自定义监控项的键值,例如 `mysql.uptime[user,password]`。 - **更新间隔**:设置数据采集的时间间隔(如 60 秒)。 - **类型信息**:根据返回值类型选择(如整数、浮点数等)。 4. **保存配置** 完成配置后点击“添加”,监控项将被激活并开始采集数据。 #### 示例脚本 以下是用于监控 MySQL 状态的示例脚本,存放在 `/usr/local/zabbix/get_mysql_status.sh`: ```bash #!/bin/bash case $3 in uptime) mysqladmin -u$1 -p$2 status 2>/dev/null | awk '{print $2}' ;; threads) mysqladmin -u$1 -p$2 status 2>/dev/null | awk '{print $4}' ;; question) mysqladmin -u$1 -p$2 status 2>/dev/null | awk '{print $6}' ;; sq) mysqladmin -u$1 -p$2 status 2>/dev/null | awk '{print $9}' ;; opens) mysqladmin -u$1 -p$2 status 2>/dev/null | awk '{print $11}' ;; ftable) mysqladmin -u$1 -p$2 status 2>/dev/null | awk '{print $14}' ;; opent) mysqladmin -u$1 -p$2 status 2>/dev/null | awk '{print $17}' ;; qps) mysqladmin -u$1 -p$2 status 2>/dev/null | awk '{print $22}' ;; esac ``` 确保脚本具有可执行权限: ```bash chmod +x /usr/local/zabbix/get_mysql_status.sh ``` ### 注意事项 - 确保 Zabbix Server 或 Proxy 能够通过网络访问目标主机上的 Zabbix Agent。 - 自定义脚本应具备高可靠性,避免因脚本错误导致监控失败。 - 根据实际需求调整监控项的更新频率,以平衡性能与数据采集精度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值