Zabbix监控Oracle 19c数据库完整配置指南
Zabbix监控Oracle 19c数据库完整配置指南
本文将详细介绍如何使用Zabbix配置Oracle 19c数据库监控,包括安装、配置、问题排查等全过程。本指南适合新手独立完成配置。
1. 环境准备
1.1 系统要求
- Oracle 19c数据库服务器
- Zabbix服务器(版本5.0或更高)
- Zabbix Agent 2
1.2 前提条件
- Oracle数据库正常运行
- Zabbix服务器已安装并配置
- 具有Oracle数据库和服务器的管理员权限
2. 安装Zabbix Agent 2
在Oracle数据库服务器上安装Zabbix Agent 2。
# 添加Zabbix仓库
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm# 安装Zabbix Agent 2
yum install zabbix-agent2# 启动服务并设置开机自启
systemctl start zabbix-agent2
systemctl enable zabbix-agent2
3. 配置Zabbix Agent 2
编辑配置文件 /etc/zabbix/zabbix_agent2.conf
:
Server=<Zabbix服务器IP>
Hostname=<本机主机名>
重启Zabbix Agent 2服务:
systemctl restart zabbix-agent2
4. 创建Oracle监控用户
以具有管理员权限的用户(如SYS)登录Oracle数据库,执行以下SQL语句:
-- 创建用户
CREATE USER C##zabbix_mon IDENTIFIED BY zabbix
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users
CONTAINER=ALL;-- 授予基本权限
GRANT CREATE SESSION TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ANY DICTIONARY TO C##zabbix_mon CONTAINER=ALL;-- 授予特定对象的查询权限
GRANT SELECT ON SYS.DBA_TABLESPACE_USAGE_METRICS TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.DBA_TABLESPACES TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.DBA_USERS TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.DBA_DATA_FILES TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.V_$ACTIVE_SESSION_HISTORY TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.V_$ARCHIVE_DEST TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.V_$ASM_DISKGROUP TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.V_$DATABASE TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.V_$DATAFILE TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.V_$INSTANCE TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.V_$LOG TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.V_$OSSTAT TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.V_$PGASTAT TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.V_$PROCESS TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SESSION TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SYSMETRIC TO C##zabbix_mon CONTAINER=ALL;
GRANT SELECT ON SYS.V_$SYSTEM_PARAMETER TO C##zabbix_mon CONTAINER=ALL;
5. 配置Oracle监控
创建文件 /etc/zabbix/zabbix_agent2.d/oracle.conf
:
Plugins.Oracle.Sessions.cdb1.Uri=tcp://localhost:1521
Plugins.Oracle.Sessions.cdb1.User=C##zabbix_mon
Plugins.Oracle.Sessions.cdb1.Password=zabbix
Plugins.Oracle.Sessions.cdb1.Service=cdb1
6. 配置环境变量
编辑 /etc/systemd/system/zabbix-agent2.service
文件,在 [Service]
部分添加:
Environment="ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1"
Environment="LD_LIBRARY_PATH=/u01/app/oracle/product/19.0.0/dbhome_1/lib"
Environment="PATH=$PATH:/u01/app/oracle/product/19.0.0/dbhome_1/bin"
重新加载systemd配置并重启服务:
sudo systemctl daemon-reload
sudo systemctl restart zabbix-agent2
7. 在Zabbix Web界面添加主机
- 登录Zabbix Web界面
- 进入 Configuration -> Hosts
- 点击 “Create host”
- 填写以下信息:
- Host name: <Oracle服务器名称>
- Groups: 选择适当的主机组
- Interfaces: 添加Agent接口,填写IP地址和端口(默认10050)
- 在 “Templates” 中添加 “Template DB Oracle by Zabbix agent 2” 模板
- 在 “Macros” 中添加以下宏:
- {$ORACLE.CONNSTRING} = tcp://localhost:1521
- {$ORACLE.SERVICE} = cdb1
- {$ORACLE.USER} = C##zabbix_mon
- {$ORACLE.PASSWORD} = zabbix
- 点击 “Add” 保存
8. 验证监控
- 进入 Monitoring -> Latest data
- 选择刚添加的Oracle主机
- 查看是否有Oracle相关的监控项开始收集数据
9. 常见问题及解决方法
9.1 Zabbix Agent 2无法连接到Oracle
症状:Zabbix Agent 2日志中出现 “Cannot connect to Oracle” 错误。
解决方法:
- 检查Oracle监听器是否正常运行
- 验证
oracle.conf
中的连接信息是否正确 - 确保防火墙允许Zabbix Agent 2访问Oracle端口(通常是1521)
9.2 ORA-00000: DPI-1047错误
症状:出现 “ORA-00000: DPI-1047: Cannot locate a 64-bit Oracle client library” 错误。
解决方法:
- 确保正确设置了ORACLE_HOME和LD_LIBRARY_PATH环境变量
- 检查Oracle客户端库是否为64位版本
- 重新启动Zabbix Agent 2服务
9.3 权限不足
症状:Zabbix无法收集某些Oracle指标。
解决方法:
- 检查C##zabbix_mon用户是否有足够的权限
- 可能需要额外授予一些系统视图的SELECT权限
9.4 数据收集延迟
症状:Oracle监控数据更新缓慢。
解决方法:
- 检查Zabbix服务器和Agent的性能
- 调整数据收集间隔
- 优化Oracle查询性能
9.5 用户创建失败
症状:创建C##zabbix_mon用户时出错。
解决方法:
- 确保以具有足够权限的用户(如SYS)执行创建用户的SQL语句
- 检查密码是否符合Oracle的密码策略
- 确保在正确的容器中执行命令(如果使用多租户架构)
9.6 表空间问题
症状:用户创建成功但无法使用。
解决方法:
- 确保users和temp表空间存在且有足够空间
- 检查用户的配额设置
10. 结论
通过以上步骤,你应该能够成功配置Zabbix来监控Oracle 19c数据库。记得定期检查监控数据,及时调整配置以满足不断变化的需求。如遇到其他问题,可查阅Zabbix和Oracle的官方文档或寻求社区帮助。
注意事项:
- 确保所有密码符合安全策略。
- 定期审查和更新监控用户的权限。
- 保持Zabbix和Oracle软件的及时更新。
- 根据实际需求调整监控项和触发器。
通过细心配置和及时排障,您可以建立一个可靠的Oracle数据库监控系统,为数据库的稳定运行提供有力支持。
相关文章:
Zabbix监控Oracle 19c数据库完整配置指南
Zabbix监控Oracle 19c数据库完整配置指南 本文将详细介绍如何使用Zabbix配置Oracle 19c数据库监控,包括安装、配置、问题排查等全过程。本指南适合新手独立完成配置。 1. 环境准备 1.1 系统要求 Oracle 19c数据库服务器Zabbix服务器(版本5.0或更高&a…...
解决 Maven 部署中的 Artifact 覆盖问题:实战经验分享20241204
🛠️ 解决 Maven 部署中的 Artifact 覆盖问题:实战经验分享 📌 引言 在软件开发过程中,持续集成和持续部署(CI/CD)是提高开发效率和代码质量的关键手段。Hudson 和 Maven 是两种广泛使用的工具࿰…...
mb108里opengl相关
linux/linuxgdi.cpp里CreateWindowExW的 g_signal_connect(self->m_glArea, "render", G_CALLBACK(onRenderGlTextures), self); 绑定了一个渲染事件回调。 另外有 g_signal_connect(self->m_glArea, "realize", G_CALLBACK(onRealizeGlTextures)…...
使用docker让项目持续开发和部署
大多人选择开发时在本地,部署时文件都在容器里,如果没有容器,那就本地开发,没有映射文件,如果部署环境到容器了,容器内部启动时设置执行命令,再将映射的文件进行编译,这就直接能实现…...
数据结构-查找
数据结构——二叉树先序、中序、后序及层次四种遍历(C语言版)_中序遍历-CSDN博客...
2030. gitLab A仓同步到B仓
文章目录 1 A 仓库备份 到 B 仓库2 B 仓库修改main分支的权限 1 A 仓库备份 到 B 仓库 #!/bin/bash# 定义变量 REPO_DIR"/home/xhome/opt/git_sync/zz_xx_xx" # 替换为你的本地库A的实际路径 REMOTE_ORIGIN"http://192.168.1.66:8181/zzkj_software/zz_xx_xx.…...
Ubuntu防火墙管理(五)——ufw源规则解读与修改
firewalld与nftables 在 /etc/firewalld/firewalld.conf 文件中,FirewallBackend 选项用于指定 Firewalld 使用的防火墙后端实现。具体来说: nftables:这是当前的默认选项,表示 Firewalld 将使用 nftables 作为防火墙后端。nftab…...
Flink+Paimon实时数据湖仓实践分享
随着 Paimon 近两年的推广普及,使用 FlinkPaimon 构建数据湖仓的实践也越来越多。在 Flink 实时数据开发中,对于依赖大量状态 state 的场景,如长周期的累加指标计算、回撤长历史数据并更新等,使用实时数仓作为中间存储来代替 Flin…...
全面解析DApp开发中的智能合约设计
在DApp的开发过程中,智能合约的设计起到了至关重要的作用。智能合约是运行在区块链上的程序,负责处理和执行DApp中的逻辑、交易和数据存储。下面我们将深入探讨智能合约的设计原则、挑战和优化方法,帮助开发者掌握如何设计高效、安全的智能合…...
强化学习新突破:情节记忆与奖励机制引领多智能体协作
简介 本推文介绍了韩国科学技术院发表在人工智能顶会ICLR 2024上的论文《Efficient Episodic Memory Utilization of Cooperative Multi-Agent Reinforcement Learning》。该论文提出创新性高效情节记忆利用(Efficient Episodic Memory Utilization,EMU…...
VUE3学习二
教程视频 【尚硅谷Vue3入门到实战,最新版vue3TypeScript前端开发教程】https://www.bilibili.com/video/BV1Za4y1r7KE?p67&vd_sourcef1bd3b5218c30adf0a002c8c937e0a27 零 环境搭建 学习环境 windows10node 18vue3 创建项目 npm create vuelatest 选项中…...
MySQL Group Replication
参考文档: https://dev.mysql.com/doc/refman/8.4/en/group-replication-configuring-instances.html MySQL版本: mysql> select version(); ----------- | version() | ----------- | 8.4.3 | ----------- 1 row in set (0.00 sec)mysql> …...
设计模式学习思路二
设计模式的学习思路_设计模式必须按顺序进行吗-CSDN博客 以下是一些方法和思路可以帮助你更清晰地识别使用了哪种设计模式。 1. 确定模式时的思考步骤 以下是分析代码时,你可以遵循的一些思路和步骤,帮助你识别可能使用的设计模式: a. 识别…...
MySql 笔记
drop database if exists school; create database school default charset utf8; -- 切换到数据库school use school; -- 创建学生表 drop table if exists tb_student; create table tb_student ( stuid int not null comment 学号, stuname varchar(20) not null comment 姓…...
【Qt】QTableView选中行发生变化时触发的信号
问题 QTableView选中的行发生变化时,使用的信号是QTableView的selectionModel()里的currentChanged信号,界面点击行来回切换,发现怎么也触发不了? 原因 信号槽连接放在了QTableView数据初始化前面,这时候QTableView…...
qt图像合成模式分析
文章目录 定义含义示例分析CompositionMode_ClearCompositionMode_SourceCompositionMode_DestinationCompositionMode_SourceOverCompositionMode_DestinationOverCompositionMode_SourceInCompositionMode_DestinationInCompositionMode_SourceOutCompositionMode_Destinatio…...
http与https的区别
加密方式: 加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密),加密技术的要点是加密算…...
Pyside6 --Qt Designer--Qt设计师--了解+运行ui_demo_1.py
目录 一、打开Qt设计师1.1 Terminal终端1.2 打开env,GUI虚拟环境下的scripts文件1.3 不常用文件介绍(Scripts下面) 二、了解Qt设计师的各个控件作用2.1 点击widget看看效果!2.2 点击Main Window看看效果 三、编写一个简易的UI代码…...
11.17【大数据】Hadoop【DEBUG】
列出hdfs文件系统所有的目录和文件 主节点上 子结点 是一样的 *为什么能登进 slave 02 的主机,但是 master 当中依然显示 slave 02 为 DeadNode?* hadoop坏死节点的重启_hadoop3 子节点重启-CSDN博客 注意hadoop-daemon.sh 实际上位于 Hadoop 的 sbin 目录中,而不…...
MQ:kafka-消费者的三种语义
文章目录 前言(一) 创建topic(二) 生产者(三)消费者1. At-most-once Kafka Consumer2. At-least-once kafka consumer3. 使用subscribe实现Exactly-once4. 使用assign实现Exactly-once 前言 本文主要是以kafka 09的client为例子,详解kafka c…...
QT 线程锁
在 Qt 中,线程锁是用来同步多线程访问共享资源的机制,防止数据竞争和线程安全问题。Qt 提供了几种线程锁和同步工具,主要包括以下几种: 1. QMutex 功能:QMutex 是 Qt 中最常用的互斥锁(mutex)…...
C++中protobuf Message与JSON的互相转换
C中protobuf Message与JSON的互相转换 环境: protobuf: v27.3(2024-08-01) abseil: 20240722.0文章目录 C中protobuf Message与JSON的互相转换前言1. 编写通讯录addressbook.proto2. 编译3. C中测试protobuf与json的转换4. 结果 前言 PB转JSON:Protoc…...
Milvus向量数据库03-搜索理论
Milvus向量数据库03-搜索理论 1-ANN搜索 通过 k-最近邻(kNN)搜索可以找到一个查询向量的 k 个最近向量。kNN 算法将查询向量与向量空间中的每个向量进行比较,直到出现 k 个完全匹配的结果。尽管 kNN 搜索可以确保准确性,但十分耗…...
qt QCryptographicHash详解
1、概述 QCryptographicHash是Qt框架中提供的一个类,用于实现加密散列函数,即哈希函数。哈希函数能够将任意长度的数据转换为固定长度的哈希值,也称为散列值或数据指纹。这个哈希值通常用于数据的完整性校验、密码存储等场景。QCryptographi…...
【论文阅读】具身人工智能(Embodied AI)综述:连接数字与物理世界的桥梁
摘要 具身人工智能(Embodied AI)对于实现通用人工智能(AGI)至关重要,是连接数字世界与物理世界的各类应用的基础。近年来,多模态大模型(MLMs)和世界模型(WMs)…...
使用el-row和el-col混合table设计栅格化,实现表头自适应宽度,表格高度占位
演示效果: 如上图,由于地址信息很长,需要占多个格子,所以需要错开,若想实现这种混合效果,可以这样搭建: 页面效果: 代码分析: 上面使用el-row和el-col搭建表单显示 第一排三个8,第二排8和16 下面混合table实现,并使用border来自适应宽度…...
MQ的基本概念
1 MQ的基本概念 RabbitMQ是一个开源的消息代理和队列服务器,它使用Erlang语言编写并运行在多种操作系统上,如Linux、Windows等。RabbitMQ可以接收、存储和转发消息(也称为“事件”)到连接的客户端。它适用于多种场景,…...
基于协同过滤的图书推荐系统 爬虫分析可视化【源码+文档】
【1】系统介绍 研究背景 随着互联网的普及和电子商务的发展,用户可以在线获取大量的图书资源。然而,面对海量的信息,用户往往难以找到自己真正感兴趣的书籍。同时,对于在线书店或图书馆等提供图书服务的平台来说,如何…...
Kruskal 算法在特定边权重条件下的性能分析及其实现
引言 Kruskal 算法是一种用于求解最小生成树(Minimum Spanning Tree, MST)的经典算法。它通过逐步添加权重最小的边来构建最小生成树,同时确保不会形成环路。在本文中,我们将探讨在特定边权重条件下 Kruskal 算法的性能,并分别给出伪代码和 C 语言实现。特别是,我们将分…...
【Pandas】pandas from_dummies
Pandas2.2 General Data manipulations 方法描述melt(frame[, id_vars, value_vars, var_name, …])将多个列的值转换为行形式pivot(data, *, columns[, index, values])将长格式的数据转化为宽格式pivot_table(data[, values, index, columns, …])用于创建数据透视表&#…...
【信息系统项目管理师】第8章:项目整合管理过程详解
文章目录 一、制定项目章程1、输入2、工具和技术3、输出 二、制订项目管理计划1、输入2、工具和技术3、输出 三、指导与管理项目工作1、输入2、工具和技术3、输出 四、管理项目知识1、输入2、工具和技术3、输出 五、监控项目工作1、输入2、工具和技术3、输出 六、实施整体变更控…...
从变更到通知:使用Python和MongoDB Change Streams实现即时事件监听
MongoDB提供了一种强大的功能,称为Change Streams,它允许应用程序监听数据库中的变更事件,并在数据发生变化时立即做出响应。这在mysql数据库是不具备没有这个功能的。又如:我们在支付环节想一直监听支付回调的状态,就…...
vue3+elementPlus封装的数据过滤区
目录结构 源码 index.vue <template><el-form class"mb-5" :rules"rules" :model"queryForm" ref"queryDOM" label-width"80"><el-row :gutter"20"><slot></slot><el-col cla…...
PHP RabbitMQ连接超时问题
问题背景 Error: The connection timed out after 3 sec while awaiting incoming data 看到这个报错,我不以为意,认为是我设置的超时时间不够导致的,那就设置长一点 Error: The connection timed out after 300 sec while awaiting incom…...
SpringMvc完整知识点二(完结)
SpringMVC获取请求参数 环境准备工作等均省略,可详见快速入门,此处只写非共有部分代码 该部分示例项目SpringMvcThree已上传至Gitee,可自行下载 客户端请求参数的格式为:namevalue&passwordvalue... ... 服务端想要获取请求…...
WebSocket 通信说明与基于 ESP-IDF 的 WebSocket 使用
一、 WebSocket 出现的背景 最开始 客户端(Client) 和 服务器(Server) 通信使用的是 HTTP 协议,HTTP 协议有一个的缺陷为:通信只能由客户端(Client)发起。 在一些场景下࿰…...
UE5 Compile Plugins | Rebuild from Source Manually | Unreal Engine | Tutorial
Step 1 Open Engine Folder H:\UE5\UE_5.3\Engine\Build\BatchFiles Step 2 Hold "Shift""Mouse Right Click"in Empty Area Step 3 Select "Open PowerShell window here .\RunUAT.bat BuildPlugin -plugin"H:\projects\MetaHuman光照2\plu…...
深度解析 Ansible:核心组件、配置、Playbook 全流程与 YAML 奥秘(下)
文章目录 六、playbook运行playbook方式Playbook VS ShellScripts忽略错误 ignore_errorshandlers和notify结合使用触发条件playbook中tags的使用playbook中变量的使用invertory参数模板templates迭代与条件判断迭代:with_items迭代嵌套子变量roles 六、playbook 运…...
langchain chroma 与 chromadb笔记
chromadb可独立使用也可搭配langchain 框架使用。 环境: python 3.9 langchain0.2.16 chromadb0.5.3 chromadb 使用示例 import chromadb from chromadb.config import Settings from chromadb.utils import embedding_functions# 加载embedding模型 en_embeddin…...
04 创建一个属于爬虫的主虚拟环境
文章目录 回顾conda常用指令创建一个爬虫虚拟主环境Win R 调出终端查看当前conda的虚拟环境创建 spider_base 的虚拟环境安装完成查看环境是否存在 为 pycharm 配置创建的爬虫主虚拟环境选一个盘符来存储之后学习所写的爬虫文件用 pycharm 打开创建的文件夹pycharm 配置解释器…...
xcode开发相关英语单词
创建项目: otheraudio unit extension app音频单元扩展应用程序generic kernel extension通用内核扩展installer plug-in安装程序插件instruments package仪器包iokit driveriokit驱动程序presence pane状态窗格screen saver屏幕保护程序...
etcd-v3.5release-(2)-STM
a.b.c表示a文件里的b类的方法c,注意a不一定是包名,因为文件名不一定等于包名 !!!!etcd在put的过程中使用的batchTxBuffered,这个事务是写bbolt数据库使用的事务,是对bbolt.Tx的一个…...
多系统萎缩锻炼如何好起来?
多系统萎缩(Multiple System Atrophy, MSA)是一种复杂的神经系统退行性疾病,影响着患者的自主神经系统、运动系统和平衡功能等多个方面。面对这一挑战,科学、合理的锻炼对于缓解症状、提高生活质量至关重要。本文将详细介绍多系统…...
非对称任意进制转换器(安卓)
除了正常进制转换,还可以输入、输出使用不同的数字符号,达成对数值进行加密的效果 点我下载APK安装包提取码:h4nw 使用unity开发。新建一个c#代码文件,把代码覆盖进去,再把代码文件添加给main camera即可。 using Sy…...
MySQL数据库安全与管理
1、创建两个新用户U_student1和U_student2,密码分别为1234和5678 create user U_student1@localhost identified by 1234, U_student2@localhost identified by 5678; 2、创建两个新用户的详细信息保存在MySQL数据库的user表中 use mysql; select user, host, authentication…...
python使用PyPDF2 和 pdfplumber操作PDF文件
文章目录 一、第三方库介绍二、基本使用1、拆分pdf2、合并pdf3、提取文字内容4、提取表格内容5、PDF加密6、PDF解密 一、第三方库介绍 Python 操作 PDF 会用到两个库,分别是:PyPDF2 和 pdfplumber。 PyPDF2 可以更好的读取、写入、分割、合并PDF文件&a…...
【vue2自定义指令】v-disabled 实现el-switch,el-button等elementUI禁用(disabled)效果
如果你搜过类似的功能,肯定看到过千篇一律的 // 实现按钮禁用el.disabled true// 增加 elementUI 的禁用样式类el.classList.add(is-disabled)但是这个方案明显对el-switch,不起作用,所以我这边直接把方案贴出来,不想了解具体原理…...
从容面对大规模作业:利用PMI提升作业启用和结束效率
1.进程管理瓶颈 随着集群规模的不断扩大和处理器性能的不断提升,高性能计算HPC(High Performance Computing)系统性能已经进入百亿亿次时代,进程管理是高性能计算的一个重要组成部分,传统进程管理已经不能满足海量处理器的管理需求ÿ…...
2024年认证杯SPSSPRO杯数学建模C题(第一阶段)云中的海盐解题全过程文档及程序
2024年认证杯SPSSPRO杯数学建模 C题 云中的海盐 原题再现: 巴黎气候协定提出的目标是:在2100年前,把全球平均气温相对于工业革命以前的气温升幅控制在不超过2摄氏度的水平,并为1.5摄氏度而努力。但事实上,许多之前的…...
burp(6)暴力破解与验证码识别绕过
声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...