暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【Z投稿】Zabbix通过低级别发现(LLD)监控DB2

Zabbix开源社区 2019-07-26
1119

往期投稿Top

田川

CentOS7x64上yum安装Zabbix 3.0,一次全部搞定,100%成功

杨帆

Zabbix性能数据实时对接kafka

作者简介


签名:

时光自有积少成多的力量

王 会 新

Zabbix工程师,精通Zabbix开源监控系统的架构,有较强的Shell开发能力。

擅长领域:Zabbix与Elasticsearch集成、Zabbix+Grafana、kettle等工具展示大屏及优化。

Zabbix通过低级别发现(LLD)监控DB2

一.环境说明

采用Zabbix4.0的server和agent


二、创建脚本

创建路径:

mkdir usr/local/zabbix_agents/scripts

切换路径:

cd /usr/local/zabbix_agents/scripts

编辑脚本:

vim tbDiscovery.sh

#!/bin/bash

getDB2tablespaceInfo(){

        DBNAME=testdb

        DBUSER=db2inst1

        DBPASSWORD=dbserver

        DBCMD=/home/db2inst1/sqllib/bin/db2

        $DBCMD connect to $DBNAME user $DBUSER using $DBPASSWORD &> /dev/null

        $DBCMD "select DBPARTITIONNUM,TBSP_NAME,TBSP_UTILIZATION_PERCENT,TBSP_TOTAL_SIZE_KB,TBSP_USED_SIZE_KB from SYSIBMADM.TBSP_UTILIZATION where TBSP_NAME in (select TBSP_NAME from SYSIBMADM.SNAPTBSP where TBSP_TYPE='DMS') order by DBPARTITIONNUM,TBSP_NAME"  > /tmp/.space.txt

        grep ^' ' /tmp/.space.txt | head -n-1 |awk '{printf "%s %s %s %s\n",$2,$3,$4,$5}' > /tmp/.space.row.txt

}


TBName(){

        num=0

        # var countNum used for whether print the last comma

        countNum=$(wc -l /tmp/.space.row.txt | awk '{print $1}')

        echo -e "{\n\t\"data\":["

        while read line

        do

                record=($line)

                num=$[num+1]

                echo -e "\t{"

                echo -e "\t\t\"{#TBSP_NAME}\":\"${record[0]}\""

                [ "$num" == "$countNum" ] && echo -e "\t}" || echo -e "\t},"

        done < /tmp/.space.row.txt

        echo -e "\t]\n}"

}


TBDetail(){

        case $2 in

        name)

                grep $1 /tmp/.space.row.txt | awk '{print $1}';;

        pused)

                grep $1 /tmp/.space.row.txt | awk '{print $2}';;

        total)

                grep $1 /tmp/.space.row.txt | awk '{print $3}';;

        used)

                grep $1 /tmp/.space.row.txt | awk '{print $4}';;

        esac

}


main(){

        getDB2tablespaceInfo

        [ $# -eq 0 ] && TBName

        [ $# -eq 2 ] && TBDetail $1 $2

        [ -f /tmp/.space.txt ] && rm -f /tmp/.space.txt

        [ -f /tmp/.space.row.txt ] && rm -f /tmp/.space.row.txt

}


main $1 $2


指定用户及所属组:

chown -R zabbix:zabbix /usr/local/zabbix_agents

给脚本执行权限:

chmod+x/usr/local/zabbix_agents/scripts/tbDiscovery.sh


三、添加扩展配置文件

修改zabbix_agent配置文件:

cd /usr/local/zabbix_agents

vim etc/zabbix_agentd.conf

Include=/usr/local/zabbix_agents/etc/zabbix_agentd.conf.d/*.conf

UnsafeUserParameters=1

创建db2_tablespace.conf文件:

vim etc/zabbix_agentd.conf.d/db2_tablespace.conf

UserParameter=db2.tbspname.discovery[*], /usr/local/zabbix_agents/scripts/tbDiscovery.sh

UserParameter=db2.tbspinfo[*], /usr/local/zabbix_agents/scripts/tbDiscovery.sh $1 $2

重启zabbix agent服务:

etc/zabbix_agentd.conf.d/db2_tablespace.conf


四、添加自动发现规则

01

 创建发现规则


选择主机或者模板,创建发现规则,

键值为db2.tbspname.discovery[*],

键值对应脚本输出的是标准格式Jason,否则报错。

点击查看大图

02

创建监控原型

创建发现规则后就可以获取到宏变量{#TBSP_NAME},然后选择倍率是在“进程”选项卡中。

点击查看大图

点击查看大图

点击查看大图


五、查看最新数据

点击查看大图

欢迎投稿

Z投稿专栏为大家提供一个展现自己的平台,作者观点不等同社区观点,欢迎读者在评论区留言讨论

文章内容

与运维、Zabbix相关即可

投稿方式

私信Z小秘

(微信/电话 13817720274)

小福利

点击查看积分


Monitor Anything, Aavailable anywhere


电话:13817720274(微信同号)

邮箱:china@zabbix.com

网站:www.zabbix.com/cn  www.grandage.cn

一键关注

关注公众号

加入社区群

Zabbix社区,因你而更美好


文章转载自Zabbix开源社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论