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

2021-02-03 11:36:22 浏览数 (1)

作者简介

签名:

时光自有积少成多的力量

王 会 新

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 %sn",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 "{nt"data":["

while read line

do

record=($line)

num=$[num 1]

echo -e "t{"

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

[ "

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

[ -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},然后选择倍率是在“进程”选项卡中。

点击查看大图

点击查看大图

点击查看大图

五、查看最新数据

点击查看大图

0 人点赞