Orabbix是一款基于Zabbix监控平台开发的 Oracle 监控插件,旨在为 Oracle 数据库提供高效可靠的监控解决方案。
它通过 Zabbix Agent 监控 Oracle 的进程、内存、磁盘使用情况、网络状况、连接负载等多个方面,并将收集的数据通过 Zabbix Server 分析、汇总、展示,让管理员及时了解数据库的运行状况,做出适当的维护和优化。
下面我们以实际操作为例,介绍 Orabbix 的基本使用方法。
1. 安装 Orabbix 插件
# 克隆项目代码到任意目录
git clone https://github.com/smartmarmot/Orabbix.git
# 将 orabbix.conf.sample 复制为 orabbix.conf
cp orabbix/orabbix.conf.sample orabbix/orabbix.conf
# 编辑 orabbix/orabbix.conf 文件,配置 Oracle 数据库连接参数
vi orabbix/orabbix.conf
# 复制 orabbix/OrabbixPlugin.jar 到 Zabbix Agent 的 plugins 目录(例:/usr/local/zabbix-agent/plugins)
cp orabbix/OrabbixPlugin.jar /usr/local/zabbix-agent/plugins
# 重启 Zabbix Agent
systemctl restart zabbix-agent
2. 在 Zabbix Server 增加一个主机并启用模板
在 Zabbix Server 上,增加一个主机,并启用 "Template Oracle by SmartMarmot" 模板。此处我们不详细展开,具体请参见 Zabbix 官方文档。
3. 查看监控数据
过一段时间后,打开 Zabbix Server 的 "监控" ->"最近数据",可以看到类似下面的监控项:
·oracle.connection.[SID].current=10// 当前连接数
·oracle.disk.[SID].[filesystem].usedp=88.73// 磁盘使用率
·oracle.lock.[SID].[tablespace].[username_ind].count=19// 表锁数
·oracle.memory.[SID].[memtype].used=1043883136// 内存使用量(Byte)
·oracle.session.[SID].[status].count=89// 会话数
·oracle.tablespace.[SID].[tablespace].free=1980511.449// 表空间剩余量(Byte)
·oracle.transaction.[SID].count=1434// 事务数
·oracle.wait.[SID].[event].time=7// 等待事件平均时间(ms)
4. 自定义监控项
Orabbix 提供了丰富的监控项,但如果需求不符合标准,也可以自定义一些监控项执行,例如执行以下查询:
select open_mode from v$database;
以此来监控数据库是否为只读模式。步骤如下:
- 编辑 orabbix/orabbix.conf 文件,增加以下参数:
- 重启 Zabbix Agent
- 在 Zabbix Server 上创建 "KeyNA.open_mode" 监控项,并启用。
KeyNA.open_mode.enabled=true
KeyNA.open_mode.mbean.name=oracle.dba:type=Database
KeyNA.open_mode.variable=open_mode
KeyNA.open_mode.sql.query=select open_mode from v$database
以下是自定义监控项的监控数据(only read)
·oracle.KeyNA.open_mode=READ ONLY
总结
Orabbix 是一个强大的 Oracle 监控插件,它可以帮助管理员们快速掌握数据库的运行状况,并及时处理问题。
在其基础上,我们还可以自定义一些监控项,使监控更加贴近实际需求。