首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用zabbix监控oracle中的表数据

使用zabbix监控oracle中的表数据

有时候需要对表中的数据进行监控,比如笔者的这种场景: 微服务自己实现了定时任务,定时任务的执行结果会记录到某张日志表中,如果定时任务执行失败将会对业务产生影响,而微服务又没有自己的告警机制进行通知,故笔者用zabbix+python进行了监控,当任务失败时 进行告警。而这些业务的定时任务又是动态的,会增加新任务也会删除旧任务,所以对于这些任务要动态发现。下面是效果图。

1 原理

python查询job配置表,将表的数据组织成zabbix自动发现的要求的json格式,自动发现监控项后,利用zabbix-sender批量将所有job的数据发送给zabbix-server。

Tips: 使用zabbix-sender批量提交性能更高

使用到的技术组件主要有:

zabbix-sender

cx-oracle

zabbix自动发现

2 表介绍

首先来看下我们需要监控的job日志表,每个job的执行结果都会记录在日志表中,只需要采集job最近执行的一行数据即可,下图中的status字段就是job的执行状态。

但笔者希望告警的时候能带上job的名字,所以需要结合下面这张job_config 配置表来联合查询,并且自动发现也是基于这张配置表,这样自动发现出来的监控项就都有名字了。

3 实现

python脚本去查询job配置表,组织成zabbix要求的自动发现数据格式。首先,需要安装python 模块

自动发现和数据采集脚本,传入check时将返回自动发现需要的数据,传入get_job_status将返回job的执行记录数据app_job.py

因为要传入oracle的环境变量等,所以笔者将环境变量写在了一个shell脚本中,并通过shell脚本来调用app_job.pyapp_job.sh

zabbix自定义监控项配置文件userparameter_apps.conf

添加自定义配置项后需要重启zabbix-agent

好了,脚本和配置都已经做好了,使用zabbix-get 测试下自动发现

新建一个模板,并配置上自动发现的监控项

至此,模板制作完成,只需要将此模板关联到要监控的主机即可。过一段时间后,就能看到采集的数据,如下:

至此,监控配置结束!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230612A09RIT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券