zabbix监控磁盘IO low-level-discory方式(108)

凉白开 zabbix5253,59231字数 2828阅读9分25秒阅读模式

Linux io监控的方式很多,这次使用zabbix对Linux磁盘IO做一个监控。需要下载三个文件,文章后面我会提供一个下载地址给大家,跟着凉白开的步骤来~

所需文件

IO

zabbix-io-stats-files

  • discover_disk.pl

找出当前系统的分区,例如sda、sdb、xvda等等文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

  • zbx_export_templates.xml

写好的模板,导进去即可文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

  • zbx_parse_iostat_values.sh

定义key需要的文件,用于获取io监控值文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

备注:discover_disk.pl、zbx_parse_iostat_values.sh这两个文件我copy到了/usr/local/zabbix-2.4.4/scripts/目录下(这是我新创建用于存放脚本的目录,大家可自行定义)文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

 文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

导入模板

configuration->templates->import,选择你需要导入的模板文件:zbx_export_templates.xml,如下图:文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

IO

zabbix 磁盘io监控 - 导入模板

Link模板

在host中link模板,configuration->Hosts->点击你的主机->templates->添加磁盘IO监控模板,如下:文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

IO

zabbix磁盘IO监控 - Link模板

配置LLD

① 正则配置文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

因为扫描出的分区比较多,我们监控特定的分区IO,需要使用zabbix正则表达式过滤,Administration->General->右侧下来条选择“Regular expressions”->New regular expression(创建正则)文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

  •  expression:^(xvda|xvdb|sda|sdb)$
  • Expression type:return is True
  • Case sensitive:留空

最后保存即可,如果你想对正则表达式有更进一步了解,请看凉白开以前写的《zabbix正则表达式(86)》文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

IO

zabbix io监控 - 正则表达式

② low-level-discovery配置文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

模板中已经配置,无需配置!文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

 文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

zabbix agent配置

配置zabbix_agentd.conf,在最后加上如下配置:文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

# diskio discovery
UserParameter=discovery.disks.iostats,/usr/local/zabbix-2.4.4/scripts/discover_disk.pl
UserParameter=custom.vfs.dev.iostats.rrqm[*],/usr/local/zabbix-2.4.4/scripts/zbx_parse_iostat_values.sh $1 "rrqm/s"
UserParameter=custom.vfs.dev.iostats.wrqm[*],/usr/local/zabbix-2.4.4/scripts/zbx_parse_iostat_values.sh $1 "wrqm/s"
UserParameter=custom.vfs.dev.iostats.rps[*],/usr/local/zabbix-2.4.4/scripts/zbx_parse_iostat_values.sh $1 "r/s"
UserParameter=custom.vfs.dev.iostats.wps[*],/usr/local/zabbix-2.4.4/scripts/zbx_parse_iostat_values.sh $1 "w/s"
UserParameter=custom.vfs.dev.iostats.rsec[*],/usr/local/zabbix-2.4.4/scripts/zbx_parse_iostat_values.sh $1 "rsec/s"
UserParameter=custom.vfs.dev.iostats.wsec[*],/usr/local/zabbix-2.4.4/scripts/zbx_parse_iostat_values.sh $1 "wsec/s"
UserParameter=custom.vfs.dev.iostats.avgrq[*],/usr/local/zabbix-2.4.4/scripts/zbx_parse_iostat_values.sh $1 "avgrq-sz"
UserParameter=custom.vfs.dev.iostats.avgqu[*],/usr/local/zabbix-2.4.4/scripts/zbx_parse_iostat_values.sh $1 "avgqu-sz"
UserParameter=custom.vfs.dev.iostats.await[*],/usr/local/zabbix-2.4.4/scripts/zbx_parse_iostat_values.sh $1 "await"
UserParameter=custom.vfs.dev.iostats.svctm[*],/usr/local/zabbix-2.4.4/scripts/zbx_parse_iostat_values.sh $1 "svctm"
UserParameter=custom.vfs.dev.iostats.util[*],/usr/local/zabbix-2.4.4/scripts/zbx_parse_iostat_values.sh $1 "%util"

重启agent

killall zabbix_agentd
/usr/local/zabbix-2.4.4/sbin/zabbix_agentd

或者文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

service zabbix_agentd restart

数据查看

请等待几分钟,查看latest data,或者查看对应主机的item,看看是否出现了io stats的监控项或者监控数据。如果想查看图形数据,可到graph中看。如下:文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

IO

zabbix io 图表

zabbix io监控文件

下载地址:zabbix磁盘监控文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

文章写得比较仓促,如有错误,请大家联系凉白开,更多zabbix监控实例,请看后头~文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/ 文章源自运维生存时间-https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
凉白开
  • 本文由 发表于 06/08/2015 01:00:30
  • 转载请务必保留本文链接:https://www.ttlsa.com/zabbix/zabbix-lld-monitor-disk-io-stats/
  • IO
  • zabbix实例
  • zabbix实战
  • zabbix磁盘
评论  52  访客  52
    • 匿名
      匿名 9

      自动发现已经启用成功,但是没有图形生成

      • 匿名
        匿名 9

        配置zabbix_agentd.conf里的这句要改下
        UserParameter=discovery.disks.iostats,/usr/local/zabbix-2.4.4/scripts/discover_disk.pl
        改成下面
        UserParameter=discovery.disks.iostats,/usr/bin/perl /usr/local/zabbix-2.4.4/scripts/discover_disk.pl
        没有装perl的需要先安装下

        • sshqyq
          sshqyq 0

          zabbix3.2,centos6.8,服务端页面监控,只有应用集,没监控项显示,也没图生成,求解

          • 守護丶伱
            守護丶伱 0

            zabbix3.0.7,centos6.4,zabbix_get数据能获取,但是服务端页面监控,只有应用集,没监控项显示,也没图生成,求解

            • 匿名
              匿名 9

              IO消耗百分比%util,怎么取正确的值,百分百的时候取的值还是0.13。用iostat查看的时候,每次第一次显示都是0.13,后面全部都是100。

              • 匿名
                匿名 9

                为什么我的就不行哪里也没有报错,只是手动运行脚本的时候显示 error: wrong input value (device)或者类型什么的,比较郁闷,就是没有数据,而且也没有图形显示,就是显示有6个图片原型

                  • carlgan
                    carlgan 1

                    @ 匿名 我也一样 导入成功了,但是没有数据

                    • carlgan
                      carlgan 1

                      @ 匿名 我也一样 导入成功了,但是没有数据.
                      命令测试 结果失败: error: “device” or “type” not found (bin,boot)

                    • haha
                      haha 1

                      模板里面每个项目、触发器、图形的中文意思是什么,比如:IO_Stats w/s on {#DMNAME}

                      • 匿名
                        匿名 9

                        监控项显示:不支持的:Received value [error: “device” or “type” not found (sda1,svctm)] is not suitable for value type [Numeric (float)]

                          • 匿名
                            匿名 9

                            @ 匿名 同样的问题啊

                              • ataylorswift
                                ataylorswift 0

                                @ 匿名 你们解决了吗?我也是这个问题,头痛呐!!!

                                  • 匿名
                                    匿名 9

                                    @ ataylorswift #UserParameter=custom.vfs.dev.iostats.rsec[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 “rsec/s”
                                    #UserParameter=custom.vfs.dev.iostats.wsec[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 “wsec/s”
                                    我把这两行注释掉就可以正常显示了

                                      • 匿名
                                        匿名 9

                                        @ 匿名 忘了说了,改成这个两个指标都能正常显示了
                                        UserParameter=custom.vfs.dev.iostats.wps[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 “w/s”
                                        UserParameter=custom.vfs.dev.iostats.rsec[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 “rkB/s”
                                        UserParameter=custom.vfs.dev.iostats.wsec[*],/etc/zabbix/scripts/zbx_parse_iostat_values.sh $1 “wkB/s”

                                  • haha
                                    haha 1

                                    @ 匿名 不知道有没有解决,在物理机上没有这种问题,在kvm虚拟机上部分出现这种问题,求解。

                                  • 仰望着星空
                                    仰望着星空 1

                                    我遇到问题,用get能在服务器端获取到数据,但是在WEB中没有数据出来,最新数据和图形中根本没有这个项,只有正常的项目和模板的。只要是探索的都没有

                                    • sinorain
                                      sinorain 1

                                      zbx_parse_iostat_values.sh:line 20:iostat command not founderror:’device’or”type”not found(sdb,wsec/s
                                      在主机-项目 里 状态显示不支持

                                        • 匿名
                                          匿名 9

                                          @ sinorain 一样的问题

                                        • 黄伟龙
                                          黄伟龙 9

                                          我也是一样 按这个做完了提示Global regular expression “Linux disks for autodiscovery” does not exist

                                            • 匿名
                                              匿名 9

                                              @ 黄伟龙 请问你这个问题解决了么?

                                              • 匿名
                                                匿名 9

                                                @ 黄伟龙 你这个问题解决了么?

                                                • 匿名
                                                  匿名 9

                                                  @ 黄伟龙 相同错误提示,求解!

                                                • jack
                                                  jack 9

                                                  zbx_parse_iostat_values.sh 执行报错 error: wrong input value (device)

                                                    • 运维生存时间网
                                                      运维生存时间网 7

                                                      @ jack 过滤掉一些非磁盘的东西

                                                        • jack
                                                          jack 9

                                                          @ 运维生存时间网 Configuration of discovery rules » Configuration of hosts
                                                          status Not supported

                                                          • jack
                                                            jack 9

                                                            @ 运维生存时间网 Configuration of discovery rules ? Configuration of hosts
                                                            status Not supported

                                                              • 匿名
                                                                匿名 9

                                                                @ jack 不支持的:Received value [error: “device” or “type” not found (sda1,svctm)] is not suitable for value type [Numeric (float)]

                                                            • sinorain
                                                              sinorain 1

                                                              @ jack jack 你好! 我遇到和你一样的问题,不知道你的这个问题有没有解决?

                                                              • 匿名
                                                                匿名 9

                                                                @ jack 同样的问题

                                                              • 褚海礁
                                                                褚海礁 9

                                                                请问如果监控lv的状态,怎么处理?

                                                                • kangliang
                                                                  kangliang 9

                                                                  请教~ 导入模板报错,是因为什么?
                                                                  mb_strlen() expects parameter 1 to be string, array given [conf.import.php:130 → CConfigurationImport->import() → CConfigurationImport->processDiscoveryRules() → CAPIObject->create() → CAPIObject->__call() → czbxrpc::call() → czbxrpc::callAPI() → call_user_func() → CDiscoveryRule->create() → CDiscoveryRule->createReal() → DB::insert() → DB::checkValueTypes() → zbx_strlen() → mb_strlen() in /usr/local/nginx/html/zabbix/include/func.inc.php:955]
                                                                  mysqli_real_escape_string() expects parameter 2 to be string, array given [conf.import.php:130 → CConfigurationImport->import() → CConfigurationImport->processDiscoveryRules() → CAPIObject->create() → CAPIObject->__call() → czbxrpc::call() → czbxrpc::callAPI() → call_user_func() → CDiscoveryRule->create() → CDiscoveryRule->createReal() → DB::insert() → DB::checkValueTypes() → zbx_dbstr() → mysqli_real_escape_string() in /usr/local/nginx/html/zabbix/include/db.inc.php:1298]

                                                                    • 凉白开
                                                                      凉白开 9

                                                                      @ kangliang 你的zabbix版本太低了,不兼容。升级到zabbix2.4+

                                                                    • 连接错误
                                                                      连接错误 9

                                                                      探索那边提示Value should be a JSON object. 是还要改什么么

                                                                        • 运维生存时间
                                                                          运维生存时间 7

                                                                          @ 连接错误 使用zabbix_get获取一下,看下获取到了什么内容,然后决定下一步怎么处理

                                                                          • sinorain
                                                                            sinorain 1

                                                                            @ 连接错误 应该是你的脚本路径不对吧

                                                                          • 运维生存时间网友
                                                                            运维生存时间网友 9

                                                                            导入模板之后items没有东西

                                                                            • 匿名
                                                                              匿名 0

                                                                              导入模板之后items没有东西

                                                                                • 凉白开
                                                                                  凉白开

                                                                                  @ 匿名 在discovery里面

                                                                                    • 小白
                                                                                      小白 0

                                                                                      @ 凉白开 zabbix 监控此案IO low-level-discory方式
                                                                                      zabbix3.0 CentOS6.5
                                                                                      报错信息:
                                                                                      Administration — Regykar exoressuibs Exoressuibs 添加完成后Test测试时报错
                                                                                      EXPRESSION TYPE EXPRESSION RESULT
                                                                                      Result is TRUE ^(xvda|xvdb|sda|sdb)$ FALSE
                                                                                      Combined result FALSE

                                                                                      监控项及图像也不能正常显示。求解。

                                                                                      /opt/zabbix3/bin/zabbix_get -s 192.160.21.9 -p 10050 -k “custom.vfs.dev.iostats.await[hda]”
                                                                                      35.16 却能正常显示数据。

                                                                                        • 匿名
                                                                                          匿名 9

                                                                                          @ 小白 你这个解决了嘛??

                                                                                    • 导入模板出错
                                                                                      导入模板出错 9

                                                                                      错误: 载入失败
                                                                                      已创建: 应用集 “DiskIO Stats” 于 “Template_Linux_Disk_IO_Stats”.
                                                                                      mb_strlen() expects parameter 1 to be string, array given [include/func.inc.php:831]
                                                                                      mysql_real_escape_string() expects parameter 1 to be string, array given [include/db.inc.php:646]
                                                                                      Array to string conversion [include/classes/db/DB.php:408]
                                                                                      Error in query [INSERT INTO items (name,type,snmp_community,snmp_oid,delay,status,snmpv3_securityname,snmpv3_securitylevel,snmpv3_authpassphrase,snmpv3_privpassphrase,delay_flex,params,ipmi_sensor,authtype,username,password,publickey,privatekey,port,filter,lifetime,description,key_,trapper_hosts,hostid,flags,value_type,data_type,interfaceid,itemid) VALUES (‘Linux DiskIO discovery’,’0′,”,”,’300′,’0′,”,’0′,”,”,”,”,”,’0′,”,”,”,”,”,Array,’1′,’自动发现磁盘’,’discovery.disks.iostats’,”,’10089′,’1′,’4′,’0′,NULL,’23647′)] [Unknown column ‘Array’ in ‘field list’]
                                                                                      SQL陈述式执行已失败: “INSERT INTO items (name,type,snmp_community,snmp_oid,delay,status,snmpv3_securityname,snmpv3_securitylevel,snmpv3_authpassphrase,snmpv3_privpassphrase,delay_flex,params,ipmi_sensor,authtype,username,password,publickey,privatekey,port,filter,lifetime,description,key_,trapper_hosts,hostid,flags,value_type,data_type,interfaceid,itemid) VALUES (‘Linux DiskIO discovery’,’0′,”,”,’300′,’0′,”,’0′,”,”,”,”,”,’0′,”,”,”,”,”,Array,’1′,’自动发现磁盘’,’discovery.disks.iostats’,”,’10089′,’1′,’4′,’0′,NULL,’23647′)”.

                                                                                        • 凉白开
                                                                                          凉白开

                                                                                          @ 导入模板出错 你的zabbix版本太低,请升级到zabbix2.4

                                                                                        • 模板导入出错呢
                                                                                          模板导入出错呢 9

                                                                                          错误: 载入失败
                                                                                          已创建: 应用集 “DiskIO Stats” 于 “Template_Linux_Disk_IO_Stats”.
                                                                                          mb_strlen() expects parameter 1 to be string, array given [include/func.inc.php:831]
                                                                                          mysql_real_escape_string() expects parameter 1 to be string, array given [include/db.inc.php:646]
                                                                                          Array to string conversion [include/classes/db/DB.php:408]
                                                                                          Error in query [INSERT INTO items (name,type,snmp_community,snmp_oid,delay,status,snmpv3_securityname,snmpv3_securitylevel,snmpv3_authpassphrase,snmpv3_privpassphrase,delay_flex,params,ipmi_sensor,authtype,username,password,publickey,privatekey,port,filter,lifetime,description,key_,trapper_hosts,hostid,flags,value_type,data_type,interfaceid,itemid) VALUES (‘Linux DiskIO discovery’,’0′,”,”,’300′,’0′,”,’0′,”,”,”,”,”,’0′,”,”,”,”,”,Array,’1′,’自动发现磁盘’,’discovery.disks.iostats’,”,’10089′,’1′,’4′,’0′,NULL,’23647′)] [Unknown column ‘Array’ in ‘field list’]
                                                                                          SQL陈述式执行已失败: “INSERT INTO items (name,type,snmp_community,snmp_oid,delay,status,snmpv3_securityname,snmpv3_securitylevel,snmpv3_authpassphrase,snmpv3_privpassphrase,delay_flex,params,ipmi_sensor,authtype,username,password,publickey,privatekey,port,filter,lifetime,description,key_,trapper_hosts,hostid,flags,value_type,data_type,interfaceid,itemid) VALUES (‘Linux DiskIO discovery’,’0′,”,”,’300′,’0′,”,’0′,”,”,”,”,”,’0′,”,”,”,”,”,Array,’1′,’自动发现磁盘’,’discovery.disks.iostats’,”,’10089′,’1′,’4′,’0′,NULL,’23647′)”.

                                                                                          • 运维生存时间网友
                                                                                            运维生存时间网友 9

                                                                                            按照这个教程做下来,提示Global regular expression “Linux disks for autodiscovery” does not exist

                                                                                            • 匿名
                                                                                              匿名 9

                                                                                              按照这个教程做下来,提示Global regular expression “Linux disks for autodiscovery” does not exist

                                                                                                • 管理员
                                                                                                  管理员 5

                                                                                                  @ 匿名 你没有配置正则表达式

                                                                                                    • 匿名
                                                                                                      匿名 9

                                                                                                      @ 管理员 有配置,完全按照这个操作步骤来的…

                                                                                                        • 匿名
                                                                                                          匿名 9

                                                                                                          @ 匿名 删除过滤器就可以了

                                                                                                    • 运维生存时间网友
                                                                                                      运维生存时间网友 9

                                                                                                      好像导入的模板没有项目?(搞错了,有项目)

                                                                                                      • 匿名
                                                                                                        匿名 9

                                                                                                        好像导入的模板没有项目?(搞错了,有项目)

                                                                                                          • 凉白开
                                                                                                            凉白开

                                                                                                            @ 匿名 在discovery里面!!!!

                                                                                                              • 匿名
                                                                                                                匿名 9

                                                                                                                @ 凉白开 zabbix 监控此案IO low-level-discory方式
                                                                                                                zabbix3.0 CentOS6.5
                                                                                                                报错信息:
                                                                                                                Administration — Regykar exoressuibs Exoressuibs 添加完成后Test测试时报错
                                                                                                                EXPRESSION TYPE EXPRESSION RESULT
                                                                                                                Result is TRUE ^(xvda|xvdb|sda|sdb)$ FALSE
                                                                                                                Combined result FALSE
                                                                                                                监控项及图像也不能正常显示。求解。
                                                                                                                /opt/zabbix3/bin/zabbix_get -s 192.160.21.9 -p 10050 -k “custom.vfs.dev.iostats.await[hda]”
                                                                                                                35.16 却能正常显示数据。

                                                                                                          评论已关闭!