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

yizhihongxing

下面是对应的攻略:

准备

  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日

相关文章

  • oracle使用instr或like方法判断是否包含字符串

    下面是Oracle使用inster或like方法判断是否包含字符串的攻略。 使用INSTR函数判断字符串是否包含子串 INSTR函数用来查找子串在字符串中出现的位置,常用于判断一个字符串是否包含某个子串。其语法如下: INSTR(string, substring[, start_position[, nth_appearance]]) 其中,string为…

    database 2023年5月21日
    00
  • Derby和Cassandra的区别

    Derby和Cassandra都是数据库管理系统,但是它们在设计理念、架构和用途方面存在着不同。在本篇攻略中,我们将详细讲解Derby和Cassandra的区别。 Derby Derby是一种关系型数据库管理系统,它是Java平台上的嵌入式数据库。它具有以下特点: 开源、免费 轻量级、嵌入式 关系型、遵循ACID原则 适用于小型的本地应用程序 数据仓库/OL…

    database 2023年3月27日
    00
  • 详解Linux中PostgreSQL和PostGIS的安装和使用

    详解Linux中PostgreSQL和PostGIS的安装和使用 安装 PostgreSQL 更新系统软件包: bash sudo apt-get update sudo apt-get upgrade 安装 PostgreSQL: bash sudo apt-get install postgresql 安装完成后,可以使用下面的命令检查 PostgreS…

    database 2023年5月22日
    00
  • MySQL创建数据库表

    MySQL是一种关系型数据库管理系统,用于管理大量的数据。为了存储和管理数据,MySQL有一个重要的组成部分——数据表。 MySQL数据表是数据组织的逻辑单元,其中数据按行和列组织,类似于电子表格或Excel中的表格。在这个表格中,数据按照特定的格式和范围存储、分类和访问。 以下是MySQL创建数据库表的方法。 创建命令 MySQL的创建表命令结构如下所示:…

    MySQL 2023年3月9日
    00
  • oracle中not exists对外层查询的影响详解

    Oracle中NOT EXISTS对外层查询的影响详解 简介 在Oracle数据库中,当我们使用NOT EXISTS时,有可能会影响到外层查询的结果,本文将详细介绍NOT EXISTS的使用方法以及对外层查询的影响。 NOT EXISTS的使用方法 NOT EXISTS用于在子查询中检测父查询中是否存在记录。如果子查询返回的结果集为空,则NOT EXISTS…

    database 2023年5月22日
    00
  • redis安装、配置、使用和redis php扩展安装教程

    下面就来详细讲解一下“redis安装、配置、使用和redis php扩展安装教程”的完整攻略。 redis安装 下载redis 官网下载地址:https://redis.io/download,我们选择稳定版的最新版本。下载完成后,解压到我们希望的路径下。 安装redis 进入到redis目录,执行make命令进行编译,再执行make install命令将编…

    database 2023年5月18日
    00
  • liunx系统安装Redis详细步骤

    liunx系统安装Redis详细步骤 liunx系统安装Redis详细步骤 官网下载Redis安装包 使用工具将redis安装包拖入liunx系统 创建Redis存放目录 mkdir /usr/local/redis 解压到redis存放目录 tar -zxvf redis-7.0.8.tar.gz -C /usr/local/redis/ 基本环境安装gc…

    Redis 2023年4月11日
    00
  • 调整SQLServer2000运行中数据库结构

    当需要调整SQLServer2000运行中数据库结构时,我们可以采取以下步骤: 1.备份数据库 在进行数据库结构调整之前,我们需要先备份好数据库,以防在操作过程中出现意外情况而导致的数据丢失问题。 在SQLServer2000中,我们可以通过执行以下T-SQL语句来备份数据库: BACKUP DATABASE [数据库名] TO DISK = ‘备份文件路径…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部