签名:
时光自有积少成多的力量
王 会 新
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},然后选择倍率是在“进程”选项卡中。
点击查看大图
点击查看大图
点击查看大图
五、查看最新数据
点击查看大图