Loki 使用 Ruler's Record Data 處理大量日誌統計

Loki 環境說明 Loki 版本 2.9.2 Loki 使用 3台 Monolithic mode 的 cluster ring kvstore 使用 memberlist Storage 在 AWS S3 情境說明 目前使用 Loki 記錄 nginx 的訪問日誌, 日誌有點份量之後,Loki 原生的統計函數變得相當吃緊,查詢請求動不動就跑到 CPU 100% 然後 timeout。 嘗試過將機器規格提升到兩台 32 core 的機器,雖然可以感覺到查詢速度有變快,但效果還是非常不理想。 沒人查詢時基本上 CPU 也是整個空閒,相當的浪費資源。 官方文件上有看到 record data 的做法。 基本上是利用 ruler 模組,定期執行統計,記錄到 prometheus 或其它支援的 storage,不用每次都跑一堆計算,可以改拉 prometheus 預算好的資料。 下圖取自 record data 後拉取的資料 (24小時有 272M筆訪問記錄,284GB) Ruler 單機的 Loki 你可以將 rule 規則存放在 Disk 中,直接編輯, 如果是 cluster 可以啟用 rule api 來管理規則,將規則存放到類似 S3 的 storage 供每個節點存取。...

October 31, 2023