fatal.log微信
error.log架構
info.logapp
debug.log框架
…運維
daojia.log.2018012800ssh
daojia.log.2018012801工具
…大數據
daojia.log.2018012823ui
[daojia_main]編碼
ip.list : ip1, ip2, ip3
log.path : /home/work/log/daojia_main/
owner.list : shenjian, zhangsan
[daojia_user]
ip.list : ip4, ip5, ip6
log.path : /home/work/log/daojia_user/
owner.list : shenjian
[shenjian]
email : XX@XX.com
phone :15912345678
[zhangsan]
email : YY@YY.com
phone :18611220099
[log.monitor.item]
cluster.name : daojia_main
# error日誌監控,每分鐘超過此閾值就告警
error.log. threshold : 10
# 異常關鍵字監控,日誌出現這些關鍵字就告警
bad.key : exeption | timeout | coredump
# 正常關鍵字監控,日誌每分鐘不出現這些關鍵字就告警
good.key : login | user | click
[log.monitor.item]
cluster.name : daojia_user
error.log.threshold : 10
Array[log-monitor] A1= Parse(log.monitor.config);
Array[cluster-info] A2= Parse(cluster.info.config);
Array[owner-info] A3= Parse(owner.info.config);
// 遍歷全部監控項
for(each item in A1){
//取出監控項的集羣名,閾值,異常/正常關鍵詞
clusterName= item.clusterName;
threshold= item.threshold;
badKey= item.badkey;
goodKey= item.goodkey;
//由集羣名,獲取集羣信息
clusterInfo= A2[clusterName];
//獲取日誌目錄,集羣ip列表,集羣負責人列表
logPath= clusterInfo.path;
List<String>ips = clusterInfo.ip;
List<String>owners = clusterinfo.owner;
//集羣內的每個ip實例,都須要日誌監控
for(each ip in ips){
//登陸到這一臺機器
ssh $ip
//跳到相關的目錄下
cd $logPath
//查看近一分鐘error日誌數量
$count= `grep $time error.log | wc -l`
//查看badkey與goodkey
$boolBad= `grep $badkey *`
$boolGood= `grep $goodkey *`
if($count< threshold &&
$boolBad==NO &&
$boolGood==YES){
//正常,繼續監控
continue;
}
// 不然,對全部集羣負責人發送告警
for(each owner in owners){
// 略…
}
}
}
架構師之路-分享技術思路
思路比結論更重要,但願你們有收穫。
本文分享自微信公衆號 - 架構師之路(road5858)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。