Board logo

标题: Zabbix调用Python3脚本监控Linux下的Oracle(一) [打印本页]

作者: admin    时间: 2022-8-12 22:42     标题: Zabbix调用Python3脚本监控Linux下的Oracle(一)

笺注: 被监控主机的Agent的安装可参考 Zabbix使用Agent监控Oracle Linux6 被监控主机的Python3的安装可参考 Python3脚本管理Oracle11gR2 这是在 使用Navicat连接Oracle11gR2 的基础上进行的。 被监控主机的信息: [root@oracle ~]# cat /etc/issue |head -1 Oracle Linux Server release 6.9 [root@oracle ~]# [root@oracle ~]# uname -r 4.1.12-61.1.28.el6uek.x86_64 [root@oracle ~]# [root@oracle ~]# ifconfig eth1 |grep "inet addr" |awk '{print $2}' |cut -d: -f 2 192.168.168.135 [root@oracle ~]# 被监控主机查看自己的zabbix-agent版本: [root@oracle ~]# rpm -qi zabbix-agent Name : zabbix-agent Relocations: (not relocatable) Version : 4.4.5 Vendor: (none) Release : 2.el6 Build Date: Thu 30 Jan 2020 01:04:44 AM CST Install Date: Mon 12 Aug 2019 07:24:17 AM CST Build Host: builds.zabbix.lan Group : Applications/Internet Source RPM: zabbix-4.4.5-2.el6.src.rpm Size : 1773628 License: GPLv2+ Signature : RSA/10, Thu 30 Jan 2020 01:14:39 AM CST, Key ID 082ab56ba14fe591 URL : http://www.zabbix.com/ Summary : Old Zabbix Agent Description : Zabbix agent to be installed on monitored systems. [root@oracle ~]# 被监控主机本地登录Oracle:(Oracle已启动时) [root@oracle ~]# su - oracle [oracle@oracle ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Mon Aug 12 06:49:09 2019 Copyright (c) 1982, 2009, Oracle.  All rights reserved. SQL> conn /as sysdba; Connected. SQL> SQL> show user; USER is "SYS" SQL> 查看Oracle的版本: SQL> SELECT version FROM product_component_version WHERE substr(product, 1, 6) = 'Oracle'; VERSION -------------------------------------------------------------------------------- 11.2.0.1.0 SQL> 切换用户: SQL> connect happy/mima; Connected. SQL> SQL> show user; USER is "HAPPY" SQL> 创建表TABLE_1: SQL> Create table TABLE_1(ID number(3),NAME varchar2(10)); Table created. SQL> 查看当前用户happy所拥有的表: SQL> Select t.table_name from user_tables t; TABLE_NAME ------------------------------------------------------------ TABLE_1 SQL> 查看表TABLE_1的表结构: SQL> desc TABLE_1; Name Null? Type ----------------------------------------- -------- ---------------------------- ID NUMBER(3) NAME VARCHAR2(10) SQL> ############# ############# Windows客户端使用Navicat连接Oracle11gR2: 往表TABLE_1插入一条记录: INSERT into TABLE_1 (ID,NAME) values (1,'Zhuohua'); 图片1.png 输出表TABLE_1中的所有记录: Select * FROM TABLE_1; 图片2.png ############# ############# 被监控主机使用Python3脚本查看本地的Oracle版本: [root@oracle ~]# cat /script/xx.py #coding=utf-8 import cx_Oracle def db_connect(): #本地连接数据库;使用数据库用户happy,数据库实例ORCL db=cx_Oracle.connect('happy/mima@127.0.0.1:1521/ORCL') cursor = db.cursor() Sql_1 = "SELECT version FROM product_component_version WHERE substr(product, 1, 6) = 'Oracle'" cursor.execute(Sql_1) Result_1 = cursor.fetchone() print(Result_1[0]) print("-" * 10) print(f"数据库的版本信息:{Result_1[0]}") db.close() #关闭数据库连接 def func_main(): try: db_connect() except Exception as e: print(f"数据库连接失败,原因: {e}") if __name__ == "__main__": func_main() 脚本运行的结果: [root@oracle ~]# python3 /script/xx.py 11.2.0.1.0 ---------- 数据库的版本信息:11.2.0.1.0 [root@oracle ~]# ############# 被监控主机使用Python3脚本获取SQL语句执行后的返回值: [root@oracle ~]# cat /script/xx.py #coding=utf-8 import cx_Oracle def db_connect(): db=cx_Oracle.connect('happy/mima@127.0.0.1:1521/ORCL') cursor=db.cursor() Sql_1="SELECT ID from TABLE_1 WHERE NAME = 'Zhuohua'" cursor.execute(Sql_1) Results=cursor.fetchone() #print (Results) #(1,) #print (type(Results)) # print (Results[0]) #print (type(Results[0])) # db.close() def main(): try: db_connect() except Exception as e: print(e) if __name__ == "__main__": main() 脚本运行的结果: [root@oracle ~]# python3 /script/xx.py 1 [root@oracle ~]# 设置脚本权限: [root@oracle ~]# chmod a+x /script/xx.py [root@oracle ~]# ll /script/xx.py -rwxr-xr-x 1 root root 479 Aug 12 07:59 /script/xx.py [root@oracle ~]# ############# ############# 修改被监控主机的Agent配置文件: [root@oracle ~]# vi /etc/zabbix/zabbix_agentd.conf # UnsafeUserParameters=0 修改为:(启用该功能) UnsafeUserParameters=1 接着插入: UserParameter=command_1,/usr/bin/python3 /script/xx.py 如下图: 图片3.png 保存好配置文件后,重启zabbix-agent: [root@oracle ~]# service zabbix-agent restart Shutting down Zabbix agent: [ OK ] Starting Zabbix agent: [ OK ] [root@oracle ~]# ###### 在Zabbix服务器测试,验证能否获取被监控主机(192.168.168.135)的key: [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.135 -k command_1 1 [root@centos8 ~]# ##################Zabbix添加被监控主机: 配置》主机》创建主机  (主机名称无需与被监控主机的真实主机名一致;群组可以随便选;IP地址那里要输入被监控主机的IP地址;端口为10050) 图片4.png 注释: 使用agent代理程序的接口。 使用 TCP 10050 端口。 主机添加成功:(主机可以不用模板的) 图片5.png 给“被监控主机使用Python3脚本获取SQL语句执行后的返回值”创建监控项: 自定义名称: Oracle command_1 键值: command_1 信息类型: 数字(无正负) 图片6.png 备注:其他地方保持默认,点击底下的“添加”按键。 ###### 给监控项“Oracle command_1”创建图形“Oracle command_1 image”: 图片7.png 备注:其他地方保持默认,点击底下的“添加”按键。 查看图形“Oracle command_1 image”: 监测》图形: 图片8.png 图片9.png 图片10.png ############# ############# 更改表TABLE_1的字段ID的值: UPDATE TABLE_1 SET ID = 2 WHERE NAME = 'Zhuohua'; SELECT * FROM TABLE_1; 图片11.png 在Zabbix服务器测试,验证能否获取被监控主机(192.168.168.135)的key: [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.135 -k command_1 2 [root@centos8 ~]# 再次查看图形“Oracle command_1 image”: 图片12.png 图片13.png ###### 给监控项“Oracle command_1”创建触发器:(返回值大于5就告警) 自定义名称: ID is bigger than 5 图片14.png 插入表达式:(监控项: Oracle_1: Oracle command_1 图片15.png 自动生成的表达式:(触发器的表达式要用到监控项中的键值) {Oracle_1:command_1.last()}>5 图片16.png 备注:其他地方保持默认,点击底下的“添加”按键。 至此,在图形“Oracle command_1 image”上,理应可以看到新建的触发器“ID is bigger than 5”: 图片17.png ############# ############# 再次更改表TABLE_1的字段ID的值: UPDATE TABLE_1 SET ID = 6 WHERE NAME = 'Zhuohua'; SELECT * FROM TABLE_1; 图片18.png 在Zabbix服务器测试,验证能否获取被监控主机(192.168.168.135)的key: [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.135 -k command_1 6 [root@centos8 ~]# 再次查看图形“Oracle command_1 image”: 图片19.png 图片20.png 监控项“Oracle command_1”的返回值大于5时,仪表板会如下图显示:(显示对应触发器的名称) ID is bigger than 5 图片21.png 图片22.png 相关文章: Zabbix调用Python3脚本监控Linux下的Oracle(二) CentOS8编译安装Zabbix4.4.5 Zabbix调用Python3脚本监控Linux下的MySQL

图片附件: 图片1.png (2022-8-12 22:38, 46.39 KB) / 下载次数 59
http://blog.zhuohua.store/attachment.php?aid=20177&k=d85b92409a8187d3bf01a4653581ffbf&t=1714688058&sid=Ooojwi



图片附件: 图片2.png (2022-8-12 22:38, 24.31 KB) / 下载次数 67
http://blog.zhuohua.store/attachment.php?aid=20178&k=0e271459b572c9eb97d8f060a9ad5106&t=1714688058&sid=Ooojwi



图片附件: 图片3.png (2022-8-12 22:40, 34.3 KB) / 下载次数 61
http://blog.zhuohua.store/attachment.php?aid=20179&k=ee443f8adccf1429722f39a170f6fdd0&t=1714688058&sid=Ooojwi



图片附件: 图片4.png (2022-8-12 22:41, 32.62 KB) / 下载次数 65
http://blog.zhuohua.store/attachment.php?aid=20180&k=2a2c509ad9a6e42ee1cbfe138004a68c&t=1714688058&sid=Ooojwi



图片附件: 图片5.png (2022-8-12 22:42, 21.5 KB) / 下载次数 67
http://blog.zhuohua.store/attachment.php?aid=20181&k=ff50df502794a56f6bbacdf687731a65&t=1714688058&sid=Ooojwi



图片附件: 图片6.png (2022-8-12 22:42, 24.75 KB) / 下载次数 66
http://blog.zhuohua.store/attachment.php?aid=20182&k=c8496e5b90a2ed083834d0bcb8c95ec8&t=1714688058&sid=Ooojwi



图片附件: 图片7.png (2022-8-12 22:43, 73.42 KB) / 下载次数 68
http://blog.zhuohua.store/attachment.php?aid=20183&k=62b924923fe5000cbaa8e87f7484f284&t=1714688058&sid=Ooojwi



图片附件: 图片8.png (2022-8-12 22:44, 74.72 KB) / 下载次数 67
http://blog.zhuohua.store/attachment.php?aid=20184&k=32fd86dc9e702a34c129bcac2526d379&t=1714688058&sid=Ooojwi



图片附件: 图片9.png (2022-8-12 22:44, 81.73 KB) / 下载次数 75
http://blog.zhuohua.store/attachment.php?aid=20185&k=41ed7f3a10ab604f3166f37e6253a8b7&t=1714688058&sid=Ooojwi



图片附件: 图片10.png (2022-8-12 22:44, 35.92 KB) / 下载次数 65
http://blog.zhuohua.store/attachment.php?aid=20186&k=ea01275f6a6667abc90be2e8f747c431&t=1714688058&sid=Ooojwi



图片附件: 图片11.png (2022-8-12 22:45, 50.9 KB) / 下载次数 51
http://blog.zhuohua.store/attachment.php?aid=20187&k=5742644b92d0ba374272bb605c63eb32&t=1714688058&sid=Ooojwi



图片附件: 图片12.png (2022-8-12 22:46, 73.91 KB) / 下载次数 61
http://blog.zhuohua.store/attachment.php?aid=20188&k=f91c0e938170b06dc9f1eebb8787fc97&t=1714688058&sid=Ooojwi



图片附件: 图片13.png (2022-8-12 22:46, 30.99 KB) / 下载次数 60
http://blog.zhuohua.store/attachment.php?aid=20189&k=032f3fe96d00e8722d15b3b9ca1103a6&t=1714688058&sid=Ooojwi



图片附件: 图片14.png (2022-8-12 22:46, 37.49 KB) / 下载次数 56
http://blog.zhuohua.store/attachment.php?aid=20190&k=6c850749a05a7a87088e78b1d55f4ac4&t=1714688058&sid=Ooojwi



图片附件: 图片15.png (2022-8-12 22:46, 26.15 KB) / 下载次数 64
http://blog.zhuohua.store/attachment.php?aid=20191&k=4fc08605231e7116b9c672d829dbe934&t=1714688058&sid=Ooojwi



图片附件: 图片16.png (2022-8-12 22:47, 22.98 KB) / 下载次数 55
http://blog.zhuohua.store/attachment.php?aid=20192&k=ebfb039110f191aff9b88b39c38bf689&t=1714688058&sid=Ooojwi



图片附件: 图片17.png (2022-8-12 22:47, 40.78 KB) / 下载次数 65
http://blog.zhuohua.store/attachment.php?aid=20193&k=d05abc41781bf8a81a988e1c428384ac&t=1714688058&sid=Ooojwi



图片附件: 图片18.png (2022-8-12 22:48, 51.44 KB) / 下载次数 60
http://blog.zhuohua.store/attachment.php?aid=20194&k=c7ad55cba7d590602d4d04d3e16e2233&t=1714688058&sid=Ooojwi



图片附件: 图片19.png (2022-8-12 22:49, 84.8 KB) / 下载次数 72
http://blog.zhuohua.store/attachment.php?aid=20195&k=cdef0d0d158a29ea905b5c0459aebd41&t=1714688058&sid=Ooojwi



图片附件: 图片20.png (2022-8-12 22:49, 37.47 KB) / 下载次数 73
http://blog.zhuohua.store/attachment.php?aid=20196&k=1f63902d4d518c132385c6d66cb3c554&t=1714688058&sid=Ooojwi



图片附件: 图片21.png (2022-8-12 22:49, 54.55 KB) / 下载次数 67
http://blog.zhuohua.store/attachment.php?aid=20197&k=081a89ed6f5100dcae7a35dc705a8b26&t=1714688058&sid=Ooojwi



图片附件: 图片22.png (2022-8-12 22:49, 7.56 KB) / 下载次数 69
http://blog.zhuohua.store/attachment.php?aid=20198&k=02b816a524b0f9907d127a4f0494bff9&t=1714688058&sid=Ooojwi






欢迎光临 blog.zhuohua.store (http://blog.zhuohua.store/) Powered by Discuz! 7.2