Zabbix6通过ODBC方式监控Oracle 19C的详细过程

下面是对应的攻略:

准备

  1. 安装ODBC驱动

在Zabbix Server上安装ODBC驱动,例如UnixODBC驱动:yum install unixODBC unixODBC-devel

  1. 安装Oracle Instant Client

在Zabbix Server上安装 Oracle Instant Client,以供ODBC连接访问Oracle数据库:下载地址

  1. 配置ODBC数据源

在Zabbix Server上编辑ODBC配置文件/etc/odbc.ini,添加以下内容:

ini
[dsnname]
Driver=OracleInClient
ServerName=<ip or hostname>:<port>/<service_name>
UserID=<username>
Password=<password>

其中driver、ServerName、UserID、Password为必填项,dsnname可自定义名称。

Zabbix Server配置

  1. 安装Zabbix Server

根据官网安装手册进行安装

  1. 添加Zabbix Server ODBC监控项

a. 确认客户端中ODBC驱动已安装并配置好ODBC数据源

b. 在Zabbix Server中进入Configuration -> Templates -> Create template,创建模板

c. 添加ODBC监控项。在模板内部添加ODBC Items,例如:

``` ini
// item配置示例:zabbix_agentd.conf中以UserParameter定义的东西
UserParameter={#ODBC_NAME},echo 'SELECT count() from {#TABLE_NAME} where status="OPEN";'| /usr/local/unixODBC/bin/isql {#ODBC_NAME} -b -v | awk '$1== "count()" {print $2}'

// example:
UserParameter=oracle_active:xargs -0 echo < /oracle12c/app/oracle/product/12.1.0.2/dbhome_1/bin/sqlplus -S / as sysdba <<! \n select * from v$session where status='ACTIVE';\n!|grep '^ *1 '|awk '{print $9}'\n
``{#ODBC_NAME}`: odbc数据源名称,与/etc/odbc.ini中[dsnname]相同
{#TABLE_NAME}: 在oracle数据库中查询的表名,以实际需求而定。

  1. 添加Zabbix Server ODBC触发器

在模板内部添加相应的触发器,例如:

ini
// oracle_active
{Template_ODBC:oracle_active.last()}>"10"

其中{Template_ODBC:oracle_active.last()}为上面对应的监控项键值,"10"是对应的阈值。

  1. 应用模板至Oracle主机

监控项和触发器已创建完成,将模板应用到需要监控的Oracle主机上即可。

示例

假设我们有一个名为my_oracle_datasource的ODBC数据源,可以按照以下方式创建一个监控项:

UserParameter=oracle_active:xargs -0 echo < /oracle12c/app/oracle/product/12.1.0.2/dbhome_1/bin/sqlplus -S / as sysdba <<! \n select * from v$session where status='ACTIVE';\n!|grep '^ *1 '|awk '{print $9}'\n

对应的触发器可以设置为:

{Template_ODBC:oracle_active.last()}>"10"

其含义为,如果Oracle里有超过10个会话状态为"ACTIVE",就触发警报。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Zabbix6通过ODBC方式监控Oracle 19C的详细过程 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 如何在Python中使用Flask SQLAlchemy操作数据库?

    如何在Python中使用Flask SQLAlchemy操作数据库? Flask SQLAlchemy是一个基于Flask的Python ORM(对象关系映射)库,它提供了一种简单的方式来操作关系型数据库。使用Flask SQLAlchemy,我们可以使用Python代码来创建、读取、更新删除关系型数据库中的数据。以下是如何在Python中使用Flask S…

    python 2023年5月12日
    00
  • redis(14)主从复制

    Redis主从复制 主机数据更新后根据配置和策略, 自动同步到备机的 master/slaver 机制,Master 以写为主,Slave 以读为主,主从复制节点间数据是全量的。 作用: 读写分离,性能扩展 容灾快速恢复 上图将主服务器复制了3份从服务器,主服务器进行写操作,从服务器进行读操作,读写分离,减少压力  复制原理 Slave 启动成功连接到 ma…

    Redis 2023年4月10日
    00
  • Derby 和 SQLite 的区别

    Derby和SQLite是两种流行的轻量级关系数据库管理系统,它们都被广泛用于小规模应用程序的开发中。那么,这两种数据库系统有哪些区别呢?下面是详细的分析。 1. 数据库系统的背景 Derby和SQLite都是关系数据库管理系统。 Derby最初作为IBM Cloudscape数据库系统的一部分,后来成为Apache软件基金会的一个开源项目,并被称为Apac…

    database 2023年3月27日
    00
  • php简单的分页程序第5/5页

    下面我将为您详细讲解“PHP简单的分页程序第5/5页”的完整攻略,包括分页程序的原理、实现步骤以及具体的代码示例。 分页程序原理 分页程序的原理很简单,就是将数据分为多个页面显示,让用户可以方便的查看和跳转。具体来说,分页程序需要以下几个步骤: 获取总记录数 在使用分页程序之前,需要先获取总的记录数,这样才能确定要分成多少页。通常可以使用SQL语句如下: S…

    database 2023年5月21日
    00
  • Node.js动手撸一个静态资源服务器的方法

    以下是Node.js动手撸一个静态资源服务器的完整攻略: 什么是静态资源服务器 静态资源服务器是一个可以将静态文件(如 HTML,CSS,JavaScript,图片等)通过 HTTP 服务器向客户端提供这些文件的服务器。这种服务器通常是非常简单的,只是通过 HTTP 将文件发送给客户端,而不做任何处理。 构建静态资源服务器 要构建一个静态资源服务器,需要完成…

    database 2023年5月22日
    00
  • Oracle PL/SQL入门案例实践

    Oracle PL/SQL是Oracle数据库中的一种编程语言,用于开发存储过程、触发器、函数等数据库程序。以下是Oracle PL/SQL入门案例实践的攻略,包含了学习PL/SQL的基本步骤和两条实例说明。 学习PL/SQL基本步骤 步骤1:安装Oracle数据库 Oracle官网提供了Oracle数据库的免费试用版,我们可以通过下载和安装Oracle D…

    database 2023年5月21日
    00
  • Golang Redigo连接Redis 简单使用

    func newPool(host string, db int) *redis.Pool { return &redis.Pool { MaxIdle: 50, MaxActive: 100, Dial: func() (redis.Conn, error) { options := redis.DialDatabase(db) c, err :=…

    Redis 2023年4月13日
    00
  • Redis知识网络

    作者:运维君莫笑链接:https://www.zhihu.com/question/470465324/answer/2006650219 Redis为什么这么快? 根据官方数据。官方的基准程序测试,Redis 的 QPS 可以达到约 100000(每秒请求数) 基于内存实现 。Redis 是基于内存的数据库,不论读写操作都是在内存上完成的,跟磁盘数据库相比…

    Redis 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部