Oracle 自动化运维-Python监控Oracle告警日志

来源:这里教程网 时间:2026-03-03 15:17:30 作者:

Oracle 自动化运维-Python监控Oracle告警日志

一:paramiko模块的安装 二:使用paramiko监控Oracle alert日志

参考:http://www.zhaibibei.cn/python1/3.1/ 一:paramiko模块的安装 paramiko模块的安装 环境设置 Linux系统为 Centos 6.7 Python环境为 Python 3.6 连接Unix类服务器模块: paramiko 这里我们采用pip3命令安装,会自动下载缺失的模块 [oracle@jumplinux01 bin]$ ./pip3 install paramiko Collecting paramiko   Downloading https://files.pythonhosted.org/packages/06/1e/1e08baaaf6c3d3df1459fd85f0e7d2d6aa916f33958f151ee1ecc9800971/paramiko-2.7.1-py2.py3-none-any.whl (206kB)     100% |████████████████████████████████| 215kB 658kB/s  Collecting bcrypt>=3.1.3 (from paramiko)   Downloading https://files.pythonhosted.org/packages/8b/1d/82826443777dd4a624e38a08957b975e75df859b381ae302cfd7a30783ed/bcrypt-3.1.7-cp34-abi3-manylinux1_x86_64.whl (56kB)     100% |████████████████████████████████| 61kB 821kB/s  Collecting cryptography>=2.5 (from paramiko)   Downloading https://files.pythonhosted.org/packages/45/73/d18a8884de8bffdcda475728008b5b13be7fbef40a2acc81a0d5d524175d/cryptography-2.8-cp34-abi3-manylinux1_x86_64.whl (2.3MB)     100% |████████████████████████████████| 2.3MB 339kB/s  Collecting pynacl>=1.0.1 (from paramiko)   Downloading https://files.pythonhosted.org/packages/27/15/2cd0a203f318c2240b42cd9dd13c931ddd61067809fee3479f44f086103e/PyNaCl-1.3.0-cp34-abi3-manylinux1_x86_64.whl (759kB)     100% |████████████████████████████████| 768kB 278kB/s  Collecting six>=1.4.1 (from bcrypt>=3.1.3->paramiko)   Downloading https://files.pythonhosted.org/packages/65/eb/1f97cb97bfc2390a276969c6fae16075da282f5058082d4cb10c6c5c1dba/six-1.14.0-py2.py3-none-any.whl Collecting cffi>=1.1 (from bcrypt>=3.1.3->paramiko)   Downloading https://files.pythonhosted.org/packages/f1/c7/72abda280893609e1ddfff90f8064568bd8bcb2c1770a9d5bb5edb2d1fea/cffi-1.14.0-cp36-cp36m-manylinux1_x86_64.whl (399kB)     100% |████████████████████████████████| 399kB 194kB/s  Collecting pycparser (from cffi>=1.1->bcrypt>=3.1.3->paramiko)   Downloading https://files.pythonhosted.org/packages/ae/e7/d9c3a176ca4b02024debf82342dab36efadfc5776f9c8db077e8f6e71821/pycparser-2.20-py2.py3-none-any.whl (112kB)     100% |████████████████████████████████| 112kB 151kB/s  Installing collected packages: six, pycparser, cffi, bcrypt, cryptography, pynacl, paramiko Successfully installed bcrypt-3.1.7 cffi-1.14.0 cryptography-2.8 paramiko-2.7.1 pycparser-2.20 pynacl-1.3.0 six-1.14.0 问题:在linux环境下,安装完python3.6.2后,如果发现并没有pip3,需要手动安装 [root@jumplinux01 ~]# wget https://files.pythonhosted.org/packages/69/81/52b68d0a4de760a2f1979b0931ba7889202f302072cc7a0d614211bc7579/pip-18.0.tar.gz [root@jumplinux01 ~]# ll -rth pip-18.0.tar.gz  -rw-r--r-- 1 root root 1.2M Jul 22  2018 pip-18.0.tar.gz [root@jumplinux01 ~]# cp pip-18.0.tar.gz /home/oracle/softwore/ [root@jumplinux01 ~]# chown oracle.oracle /home/oracle/softwore -R [root@jumplinux01 ~]# su - oracle [oracle@jumplinux01 ~]$ cd softwore/ [oracle@jumplinux01 softwore]$ tar -xvf pip-18.0.tar.gz  [oracle@jumplinux01 softwore]$ cd pip-18.0 [oracle@jumplinux01 pip-18.0]$ python setup.py install ...... Installed /usr/local/python36/lib/python3.6/site-packages/pip-18.0-py3.6.egg Processing dependencies for pip==18.0 Finished processing dependencies for pip==18.0 验证安装 import paramiko 无报错说明安装导入成功 [oracle@jumplinux01 bin]$ python Python 3.6.1 (default, Mar 16 2020, 21:33:03)  [GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import paramiko >>>  二:使用paramiko监控Oracle alert日志 环境设置 Linux系统为 Centos 6.7 Python环境为 Python 3.6 连接Unix类服务器模块: paramiko 使用的命令 我们使用grep命令来判断alert日志中是否有ORA Error及Checkpoint报警 监控alert日志程序 如下程序使用paramiko连接linux/Unix服务器后查看alert日志查看报警关键字,当发现错误时输入结果 程序名称为:checkoraclelog.py [oracle@jumplinux01 script]$ vim checkoraclelog.py #!/usr/bin/python #coding=utf8 import paramiko def oraclelog(ssh,path):         alert_log=[]         command='grep  -E \'ORA-|Checkpoint|Error\' '+path         stdin,stdout,stderr=ssh.exec_command(command)         err=stderr.readlines()         if len(err) != 0:             print (err)             return False         else:             stdout_content=stdout.readlines()         if len(stdout_content)!=0:             result='\n'.join(stdout_content)             result= 'Oralce log on '+hostname+ ' have errors\n'+'The log path is '+path+'\n'+result             alert_log.append(result)             return alert_log         else:             return 'noerror' if __name__ == '__main__':     hostname='192.168.2.222'     username='root'     password='******'     try:         #使用SSHClient方法定义ssh变量         ssh = paramiko.SSHClient()         ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())         #连接目标服务器         ssh.connect(hostname=hostname,port=22,username=username,password=password)         path='/u01/app/oracle19/diag/rdbms/cjcdb01/cjcdb01/trace/alert_cjcdb01.log'         alert_log=oraclelog(ssh,path)         ssh.close()         if alert_log:             if alert_log !='noerror':                 for i in alert_log:                     print (i)             else:                 print ('There is no ORA- error on '+hostname)     except Exception as e:         print (hostname+' '+str(e)) 运行效果: [oracle@jumplinux01 script]$ python checkoraclelog.py  Oralce log on 192.168.2.222 have errors The log path is /u01/app/oracle19/diag/rdbms/cjcdb01/cjcdb01/trace/alert_cjcdb01.log Error attempting to elevate VKTM's priority: no further priority changes will be attempted for this process ORA-65221 signalled during: alter pluggable database application APP$CDB$CATALOG begin install '18.0.0.0.0'... ORA-65214 signalled during: alter pluggable database application APP$CDB$CATALOG end install '18.0.0.0.0'... ORA-65213 signalled during: alter pluggable database application APP$CDB$SYSTEM begin install '1.0'... ORA-65214 signalled during: alter pluggable database application APP$CDB$SYSTEM end   install '1.0'... ORA-65209 signalled during: create lockdown profile PRIVATE_DBAAS... ORA-65209 signalled during: create lockdown profile SAAS... ORA-65209 signalled during: create lockdown profile PUBLIC_DBAAS... Checkpoint not complete 欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

相关推荐