Oracle 自動化運維-Python監控Oracle告警日誌
Oracle 自動化運維-Python監控Oracle告警日誌
一:paramiko模組的安裝
二:使用paramiko監控Oracle alert日誌
參考:
一:paramiko模組的安裝
paramiko模組的安裝
環境設定
Linux系統為 Centos 6.7
Python環境為 Python 3.6
連線Unix類伺服器模組: paramiko
這裡我們採用pip3命令安裝,會自動下載缺失的模組
[oracle@jumplinux01 bin]$ ./pip3 install paramiko
Collecting paramiko
Downloading (206kB)
100% |████████████████████████████████| 215kB 658kB/s
Collecting bcrypt>=3.1.3 (from paramiko)
Downloading (56kB)
100% |████████████████████████████████| 61kB 821kB/s
Collecting cryptography>=2.5 (from paramiko)
Downloading (2.3MB)
100% |████████████████████████████████| 2.3MB 339kB/s
Collecting pynacl>=1.0.1 (from paramiko)
Downloading (759kB)
100% |████████████████████████████████| 768kB 278kB/s
Collecting six>=1.4.1 (from bcrypt>=3.1.3->paramiko)
Downloading
Collecting cffi>=1.1 (from bcrypt>=3.1.3->paramiko)
Downloading (399kB)
100% |████████████████████████████████| 399kB 194kB/s
Collecting pycparser (from cffi>=1.1->bcrypt>=3.1.3->paramiko)
Downloading (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
[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",共同學習,共同成長!!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2680950/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Zabbix如何監控Oracle的告警日誌Oracle
- Oracle 自動化運維-Python連線OracleOracle運維Python
- 分層運維自動化監控運維
- 一個用python寫的自動監控alert日誌告警資訊的小程式Python
- Oracle之備份和清理監聽日誌、告警日誌指令碼Oracle指令碼
- Telegraf+Influxdb+Grafana自動化運維監控UXGrafana運維
- 運維文件:系統監控及告警配置運維
- SQL Server自動化運維繫列:監控磁碟剩餘空間及SQL Server錯誤日誌SQLServer運維
- Oracle 跟蹤/告警/監聽日誌的清理指令碼Oracle指令碼
- ORACLE OGG運維及日常監控Oracle運維
- 使用zabbix監控oracle的後臺日誌Oracle
- 獲取一週內的告警日誌(python|Oracle)PythonOracle
- Python監控線上異常圖片地址自動告警Python
- Oracle告警日誌ora-04030Oracle
- oracle12告警日誌檔案?Oracle
- 使用外部表管理Oracle 告警日誌Oracle
- Oracle 自動化運維-Python表空間郵件預警Oracle運維Python
- Python監控日誌程式Python
- ORACLE監控系統錯誤日誌過程Oracle
- 【DataGuard】Oracle DataGuard 日誌傳輸狀態監控Oracle
- 運維監控丨16條常用的Kafka看板監控配置與告警規則運維Kafka
- DB2監控及自動化運維產品技術交流DB2運維
- SQL Server自動化運維繫列:監控效能指標指令碼SQLServer運維指標指令碼
- 黑盒監控、日誌監控
- 交換機統一監控和遠端控制:自動發現、自動監控、自動告警、自動修復
- oracle清理監聽日誌Oracle
- IT運維之自動化運維運維
- 日誌監控
- Oracle 11g 中告警日誌的位置Oracle
- ORACLE 告警日誌alert過大的處理Oracle
- EMQX Cloud 更新:日誌分析增加更多引數,監控運維更省心MQCloud運維
- 什麼是自動化運維?為什麼選擇Python做自動化運維?運維Python
- Python自動化運維之IPy模組Python運維
- EM配置Oracle郵件自動告警Oracle
- Oracle 監聽器日誌解析Oracle
- 運維自動化之使用PHP+MYSQL+SHELL打造私有監控系統(七)運維PHPMySql
- 簡易實現Redis監控自動簡訊告警Redis
- oracle dataguard 自動刪除歸檔日誌Oracle