网站首页 > 技术文章 正文
前言
最新zabbix5.0监控oracle,可以用odbc的方式,也可以用agent2方式,官网也详细介绍。我这里就用odbc方式。
https://www.zabbix.com/cn/integrations/oracle#tab:official2
如果通过odbc方式来监控oracle,等有空再来写吧。
模版Template DB Oracle by ODBC没有自动发现oracle用户这个,实际在生产环境中,oracle 11g启用了180天的密码策略,定期必须修改密码的策略,user也可能被锁定之类的。这个模版没有体现这个,仅仅只检查了zabbix这个新建用户的密码有效天数。
下面我们就自己来创建oracle的用户自动发现。
一、创建自动发现规则,获得所有帐号名称。
在模版自动发现规则里边,创建发现规则。
类型:数据库监控
键值:db.odbc.discovery[dbuserlist,"{$ORACLE.DSN}"] #{$ORACLE.DSN}调用宏里边的设定,dbuserlist这个随便写的,似乎没作用。
用户名称:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:SELECT username as dbuser FROM dba_users where username in ('SAPSR3','SYSTEM','SYS','ZABBIX'); #这里是把数据库中的用户列出来,我这里限制了下,只显示这么四个,如果想要所有的用户,就不要加where。 dbuser这个后边会用到吧。
点下测试
输入宏具体的值,点Get value and test
这里会显示结果,格式如下:
[{"{#DBUSER}":"SAPSR3"},{"{#DBUSER}":"ZABBIX"},{"{#DBUSER}":"SYS"},{"{#DBUSER}":"SYSTEM"}]
二、创建监控项,获得Oracle所有帐号信息。
我们再到模版的监控项里边创建item
键值:db.odbc.get[dbuser_status,"{$ORACLE.DSN}"]
用户:{$ORACLE.USER}
密码:{$ORACLE.PASSWORD}
SQL查询:SELECT username as dbuser, ACCOUNTSTATUS as status, ROUND(DECODE(SIGN(NVL(u.expirydate, SYSDATE + 999) - SYSDATE),-1, 0, NVL(u.expirydate, SYSDATE + 999) - SYSDATE)) exppasswddaysbefore
FROM dba_users u;
点下测试
**
**
返回结果:
[{"DBUSER":"SAPSR3","STATUS":"OPEN","EXPPASSWDDAYSBEFORE":"999"},{"DBUSER":"APPQOSSYS","STATUS":"EXPIRED & LOCKED","EXPPASSWDDAYSBEFORE":"0"},{"DBUSER":"DBSNMP","STATUS":"EXPIRED & LOCKED","EXPPASSWDDAYSBEFORE":"0"},{"DBUSER":"OPS$SAPSERVICEPRD","STATUS":"OPEN","EXPPASSWDDAYSBEFORE":"999"},{"DBUSER":"OPS$ORAQAS","STATUS":"OPEN","EXPPASSWDDAYSBEFORE":"999"},{"DBUSER":"OPS$PRDADM","STATUS":"OPEN","EXPPASSWDDAYSBEFORE":"999"},{"DBUSER":"ZABBIX","STATUS":"OPEN","EXPPASSWDDAYSBEFORE":"999"},{"DBUSER":"OPS$ORAPRD","STATUS":"OPEN","EXPPASSWDDAYSBEFORE":"999"},{"DBUSER":"OPS$QASADM","STATUS":"OPEN","EXPPASSWDDAYSBEFORE":"999"},{"DBUSER":"SYS","STATUS":"OPEN","EXPPASSWDDAYSBEFORE":"999"},{"DBUSER":"SYSTEM","STATUS":"OPEN","EXPPASSWDDAYSBEFORE":"999"},{"DBUSER":"OUTLN","STATUS":"LOCKED","EXPPASSWDDAYSBEFORE":"999"},{"DBUSER":"ORACLEOCM","STATUS":"EXPIRED & LOCKED","EXPPASSWDDAYSBEFORE":"0"},{"DBUSER":"DIP","STATUS":"EXPIRED & LOCKED","EXPPASSWDDAYS_BEFORE":"0"}]
三、自动发现规则中创建监控项原型。
我们再去自动发现规则里边,添加监控项原型。
名称:Oracle User '{#DBUSER}': Open status
键值:oracle.user_status["{#DBUSER}"]
主要项:一定要选模版创建的那个item
应用集原型:是为了分类,好看。
进程
选JSONPatch
参数:$[?(@.DBUSER=='{#DBUSER}')].STATUS.first() #这里的DBUSER就是前面sql的设定,STATUS也是SQL里边的
这里也可以点击测试的
把前面的sql结果粘贴进来,输入user名称
显示结果
另外一个就是监控密码有效天数
名称:Oracle User '{#DBUSER}': Expired Password Days Before
类型:相关项目
键值:oracle.exppassworddays_before["{#DBUSER}"]
信息类型:浮点数 #这里要选对哦
单位:days
参数:$[?(@.DBUSER=='{#DBUSER}')].EXPPASSWDDAYS_BEFORE.first()
测试结果:
四、自动发现清单里边创建触发器。
在自动发现里边创建触发器
检查用户状态,如果不是OPEN 则报警
名称:Oracle User :{#DBUSER} stutas is not OPEN
表达式:{Template DB Oracle by ODBC:oracle.user_status["{#DBUSER}"].last()}<>"OPEN"
检查密码有效天数
名称:Oracle User :{#DBUSER} password will be expired after 15 days
表达式:{Template DB Oracle by ODBC:oracle.exppassworddaysbefore["{#DBUSER}"].last()}<15 and {Template DB Oracle by ODBC:oracle.exppassworddaysbefore["{#DBUSER}"].last()}>0 #小于15天,大于0天。大于0是因为有些已经是0了
五、最新数据展示。
我们再去看看最新数据
猜你喜欢
- 2024-10-25 Oracle817 export 时ORA-06553和ORA-00904处理
- 2024-10-25 MySQL进行整库数据备份「表(结构+数据)、视图、函数、事件」
你 发表评论:
欢迎- 627℃几个Oracle空值处理函数 oracle处理null值的函数
- 621℃Oracle分析函数之Lag和Lead()使用
- 610℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 604℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 601℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 593℃【数据统计分析】详解Oracle分组函数之CUBE
- 584℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 567℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- oracle 19cOCM认证有哪些内容(oracle认证ocm月薪)
- Oracle新出AI课程认证,转型要持续学习
- oracle 表的查询join顺序,可能会影响查询效率
- Oracle DatabaseAmazon Web Services正式可用,Oracle数据库上云更容易了
- Oracle 19.28 RU 升级最佳实践指南
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
- 如何主导设计一个亿级高并发系统架构-数据存储架构(三)
- Java 后端开发必看!工厂设计模式轻松拿捏
- ORA-00600 「25027」 「x」报错(抱错孩子电视剧 爸爸是武术 另一个爸爸是画家)
- 新项目终于用上了jdk24(jdk新建项目)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)