0、引言
日誌已經可以收集了,那總不能將所有的日誌都放在一個索引下吧?
那怎麼對日誌進行分類呢?
1、分類思路
我的分類思路主要是兩個層級:日誌類型、日誌內容;
- 日誌類型:即通過不同ES索引存儲不同類型的日誌;
- 日誌內容:對日誌內容,根據指定字段進行分類;
2、日誌類型分類
2.1 系統日誌
Filebeat讀取各個服務的.log文件進行推送;
讀取不同的日誌文件,增加分類字段,logstash最終保存到ES不同的索引中。
比如:nginx訪問日誌,mysql錯誤日誌,mysql慢查詢日誌;
命名方式 :nginx-access-20200101;
2.2 業務日誌
業務日誌也可以分爲兩類 : 行爲日誌、 錯誤日誌;
各個應用將業務日誌輸出到Redis隊列中,logstash最終保存到ES;
因爲考慮的是,不同業務產生的日誌,對應唯一隊列,所以沒有增加分類字段;
3、日誌內容分類
業務日誌內容輸出時,指定日誌格式,指定字段存儲篩選條件
配置logstash過濾規則,將信息拆分,在kibana對應篩選過濾;
比如 :app業務行爲日誌,Redis隊列寫入的內容字符串爲;
“2020-01-01 12:12:12|用戶模塊|登錄操作|joker|日誌描述xxx”
“2020-01-01 12:12:12|訂單模塊|支付操作|joker|日誌描述xxx”
“2020-01-01 12:12:12|商品模塊|瀏覽操作|joker|日誌描述xxx”
4、日誌字段規劃
4.1 業務日誌:行爲日誌
日誌名稱測試 : System_Behavior_Log_Date
例如 App_Behavior_Log_20200101;
日誌內容格式 : xxxx | xxxxx | xxxxx | xxxxx | xxxx
字段 | 描述 |
---|---|
時間 | 日誌創建時間 : 2020-01-01 12:12:12 |
業務 | 系統對應業務 :登錄、、修改信息 |
操作人 | 對應系統業務: APP對應用戶id、平臺對應OA賬號等 |
操作描述 | 本次操作描述:簡短描述操作,方便查看 |
操作參數 | json格式參數:將對應參數以json格式寫入Redis |
4.2 業務日誌:錯誤日誌
日誌名稱測試 : System_Error_Log_Date
例如: App_Error_Log_20200101
日誌內容格式 : xxxx | xxxxx | xxxxx | xxxxx | xxxx
字段 | 描述 |
---|---|
時間 | 日誌創建時間 : 2020-01-01 12:12:12 |
系統 | 日誌產生系統 : APP、門戶平臺等 |
業務 | 系統對應業務 :登錄、綁定學員、修改信息 |
錯誤類型(未確定) | 錯誤類型標識: Notice、Error |
錯誤地址 | 發生錯誤地址:xxx.com/xxx/xxx |
錯誤文件 | 發生錯誤文件:文件名及行數 |
錯誤參數 | 發生錯誤參數:將對應參數以json格式寫入Redis |
錯誤描述 | 本次操作描述:簡短描述操作,方便查看 |