dubbox服務監控與日誌採集
阿新 • • 發佈:2019-02-14
繼上一篇dubbox2.8.4的配置和使用後,我們要進一步考慮dubbox服務的部署和監控。
dubbox日誌的採集方案
dubbox服務部署
logstash日誌採集
其中,logstash就是用來收集執行的服務的日誌,採用的是2.3.1版本,通過配置對應的解析檔案來監控,我的解析檔案如下
input {
file {
path => "F:\log.txt" ## 填寫檔案的絕對路徑
start_position => "beginning" ## 從頭開始進行收集
codec => multiline { ## 通過配置識別日誌開頭,來保證多行可以被合併
pattern => "^[\d{2}:\d{2}:\d{2}.\d+]" ## 正則匹配以什麼作為日誌開頭標誌
negate => true
what => "previous"
}
}
}
filter {
grok {## 常用的filter之一,用於對文字日誌記錄進行json格式化
match => {
"message" => [ ## 多個正則格式資料
"(?<time>\d{2}:\d{2}:\d{2}.\d+)\s(?<thread>\[[^]]*\]{1})\s(?<level>\w+)\s\s(?<class>[\w|.]*)\s-{1}\s+(?<dubbo>\[[\w|\d|\-]*\]{1})\s(?<date>\[\d+-\d+-\d+\s\d+:\d+:\d+\])\s(?<customer>\d+.\d+.\d+.\d+):\d+\s-\>\s(?<producer>\d +.\d+.\d+.\d+:\d+)\s-\s(?<content>[\s|\S]*)",
"(?<time>\d{2}:\d{2}:\d{2}.\d+)\s(?<thread>\[[^]]*\]{1})\s(?<level>\w+)\s(?<content>[\s|\S]*)"
]
}
remove_field => ["message"]
}
date { ## 日期配置
match => [ "timestamp" , "HH:mm:ss Z" ]
}
}
output {
if[level]=="ERROR"{ ## 輸出配置,如果當前日誌標誌為ERROR,則進行下方輸出
stdout { ## 輸出到控制端
codec => rubydebug
}
file { ## 輸出到檔案
path => "/diskb/bi_error_log/bi_error.log"
}
}
if[level]=="ERROR" or [level]=="INFO" and "monitor" not in [content]{
elasticsearch { ## 輸出到es
hosts => ["localhost:9200"] ## es地址和埠
flush_size => 5000
index => "ebs-%{+YYYY.MM.dd}" ## kibana的檢索index
idle_flush_time => 10
}
}
}
Kibana日誌檢視
通過Kibana上來檢視和統計服務的日誌狀態
日誌詳細內容
對日誌進行統計實時檢視
dubbox服務監控方案
利用HeartBeat心跳檢測rest介面
利用dubbo-monitor來檢視服務健康度
服務排程統計
服務響應統計