Flunted + Elasticsearch + Kibana的方案,發現有幾個缺點:
不能處理多行日誌,比如Mysql慢查詢,Tomcat/Jetty應用的Java異常打印
不能保留原始日誌,只能把原始日誌分字段保存,這樣搜索日誌結果是一堆Json格式文本,無法閱讀。
不符合正則表達式匹配的日誌行,被全部丟棄。
本着解決以上3個缺點的原則,再次尋找替代方案。
首先找到了商業日誌工具Splunk,號稱日誌界的Google,意思是全文搜索日誌的能力,不光能解決以上3個缺點,還提供搜索單詞高亮顯示,不同錯誤級別日誌標色等吸引人的特性,但是免費版有500M限制,付費版據說要3萬美刀,只能放棄,繼續尋找。
最後找到了Graylog,第一眼看到Graylog,只是系統日誌syslog的採集工具,一點也沒吸引到我。但後來深入瞭解後,才發現Graylog簡直就是開源版的Splunk。
我自己總結的Graylog吸引人的地方:
一體化方案,安裝方便,不像ELK有3個獨立系統間的集成問題。
採集原始日誌,並可以事後再添加字段,比如http_status_code,response_time等等。
自己開發採集日誌的腳本,並用curl/nc發送到Graylog Server,發送格式是自定義的GELF,Flunted和Logstash都有相應的輸出GELF消息的插件。自己開發帶來很大的自由度。實際上只需要用inotifywait監控日誌的modify事件,並把日誌的新增行用curl/netcat發送到Graylog Server就可。
搜索結果高亮顯示,就像google一樣。
搜索語法簡單,比如:
source:mongo AND reponse_time_ms:>5000
,避免直接輸入elasticsearch搜索json語法搜索條件可以導出爲elasticsearch的搜索json文本,方便直接開發調用elasticsearch rest api的搜索腳本。
本初自出https://testerhome.com/topics/3026?locale=zh-cn
centos7 Graylog3 最新版安裝部署與使用詳解
參考鏈接https://blog.csdn.net/weixin_41004350/article/details/87253316