使用外部表儲存巡檢日誌
今天接到一個需求,希望將伺服器的日常巡檢指標給儲存在資料庫中,這樣可以方便查詢歷史記錄以及巡檢報表的輸出。這裡我打算使用外部表來實現,以下簡要記錄實現過程:
1.編寫巡檢指令碼
#!/bin/bash
echo `/sbin/ifconfig|grep "inet addr:10.10"|cut -f 2 -d ":"|cut -f 1 -d " "`,`date '+%m/%d %H:%M'`,`uptime|sed -r 's/(.*)(average: )(.*)/\3/'|sed 's/ //g'`,`vmstat -S m 3 1|tail -1|awk '{print $1","$2","$4","$7","$8","$13","$14","$15","$16}'` >>/LOG_REPORT/sysstat.txt
說明一下每部分命令代表的含義
#獲取伺服器IP
/sbin/ifconfig|grep "inet addr:10.10"|cut -f 2 -d ":"|cut -f 1 -d " "
#時間
date '+%F %T'
#CPU負載(1,5,15分鐘負載)
uptime|sed -r 's/(.*)(average: )(.*)/\3/'|sed 's/ //g'
#程式佇列
vmstat -S m 3 1|tail -1|awk '{print $1","$2}'
#可用記憶體
vmstat -S m 3 1|tail -1|awk '{print $4}'
#swap換頁
vmstat -S m 3 1|tail -1|awk '{print $7","$8}'
#CPU使用率
vmstat -S m 3 1|tail -1|awk '{print $13","$14","$15","$16}'
2.在資料庫中建立監控使用者
sqlplus / as sysdba
create user monitor identified by oracle;
grant dba to monitor;
3.建立外部表
CREATE TABLE sysstat
(
ip varchar2(40),
create_time varchar2(40),
load_1 number(5,2),
load_5 number(5,2),
load_15 number(5,2),
run_p number(5),
block_p number(5),
freemem number(10),
swap_in number(5),
swap_out number(5),
cpu_usr number(3),
cpu_sys number(3),
cpu_idle number(3),
cpu_wait number(3)
)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY log_dir
ACCESS PARAMETERS
(
records delimited by newline
badfile log_dir:'sysstat%a_%p.bad'
logfile log_dir:'sysstat%a_%p.log'
fields terminated by ','
missing field values are null
( ip,create_time,
load_1, load_5, load_15,run_p,block_p,
freemem, swap_in, swap_out, cpu_usr, cpu_sys, cpu_idle, cpu_wait
)
)
LOCATION ('sysstat.txt')
)
REJECT LIMIT UNLIMITED;
4.展示一下查詢結果
select * from sysstat order by 1,2;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20801486/viewspace-1161995/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用外部表檢視ORACLE報警日誌薦Oracle
- 使用外部表讀日誌檔案
- 使用外部表管理Oracle 告警日誌Oracle
- 用外部表實現Alert日誌的檢視
- 使用外部表訪問監聽日誌
- 使用外部表訪問警告日誌檔案
- 使用Oracle的外部表查詢警告日誌Oracle
- Oracle之外部表警告日誌Oracle
- Laravel 使用 Elasticsearch 作為日誌儲存LaravelElasticsearch
- Oracle之外部表監聽日誌Oracle
- 在Oracle中使用自治事務儲存日誌表條目(轉)Oracle
- 使用Oracle的外部表查詢警告日誌檔案Oracle
- 【儲存管理】日誌管理
- Laravel 5.6+ 使用 MongoDB 儲存框架日誌LaravelMongoDB框架
- 使用 Easysearch,日誌儲存少一半
- lumen cli日誌和普通日誌分開儲存
- 外部儲存器
- 利用外部表讀取告警日誌檔案
- 使用外部表管理Oracle 告警日誌(ALAERT_$SID.LOG)Oracle
- python日誌怎麼儲存Python
- 使用外部表儲存查詢結果
- Android 外部儲存Android
- 檢查儲存結構-控制、REDO日誌、表空間使用情況、資料檔案等資訊指令碼--HTML指令碼HTML
- PG wal 日誌的物理儲存分析
- CQRS 儲存事件與日誌記錄事件
- Android-內部儲存和外部儲存Android
- 使用 dd 檢查儲存效能
- Android內部儲存和外部儲存,以及讀取Android讀取RAM,ROM內部儲存和外部儲存卡容量Android
- Laravel 5.8 自定義位置日誌按天儲存Laravel
- 超酷演算法:日誌結構化儲存演算法
- SYS使用者的表無法建立物化檢視日誌
- Oracle 使用logmnr檢視日誌Oracle
- 表中資料的更改量儲存檢視
- 2.9.3 安全的外部密碼儲存密碼
- Android進階:一、日誌列印和儲存策略Android
- 分散式日誌儲存架構程式碼實踐分散式架構
- 在 R2 上儲存您的 Cloudflare 日誌Cloud
- mysql 資料儲存檔案及6類日誌MySql