構建在 ClickHouse 之上的 Loki - cLoki
cLoki 是一個構建在 ClickHouse 之上的比較靈活的 Loki 兼容 LogQL API。
-
內置 Explore UI 和 LogQL CLI 用於查詢和提取數據
-
用於查詢、處理、攝取、跟蹤和報警的原生 Grafana 和 LogQL API
-
強大的管道,可從日誌、事件等進行動態搜索、過濾和提取數據
-
攝取和推送 API 與 LogQL、PromQL、InfluxDB、Elastic 等兼容
-
可與 Promtail、Grafana-Agent、Vector、Logstash、Telegraf 等代理一起使用
-
雲原生、無狀態的設計
Loki API 及其 Grafana 原生集成非常出色、簡單易用 - 但我們更喜歡 ClickHouse。
cLoki 實現了一個完整的 LogQL API,該 API 由位於 ClickHouse 表之上的快速批量 LUR 緩存,並依靠其列式搜索和插入性能以及存儲數據的可靠分佈和集羣功能。就像 Loki 一樣,cLoki 不會解析或索引傳入的日誌,而是使用與 Prometheus 相同的標籤系統對日誌流進行分組。
特性
🔥 支持 LogQL
cLoki 實現了 LogQL 查詢,以提供與 Loki API 的兼容。Grafana Loki 數據源可用於本地查詢日誌和顯示提取的時間序列,不需要額外的插件。
⛽日誌流
cLoki 支持通過使用 JSON 或 Protobuf 的 Push API 輸入,它與 Promtail 和任何其他 Loki 代理兼容。除此之外,cLoki 還可以接受和轉換使用 Influx、Elastic、Tempo 和其他常見的 API 格式的日誌和指標插入。
我們解析和發送日誌流到 cLoki 的首選工具是 paStash
,它具有廣泛的插值能力,可以創建標籤和修剪任何日誌,在處理指標時,建議發送 JSON 格式的日誌。
支持 Tempo
cLoki Pulse 爲 Grafana Tempo API 提供實驗性支持,提供跨度攝取和查詢。
在數據庫層面,Tempo Spans/Traces 被存儲爲標記的日誌,並且可以從 LogQL 和 Tempo APIs 訪問。
安裝
Docker
如果你使用 Docker,只需將我們的容器添加到你的 Stack 發送流量即可,cLoki 實例是無狀態的,對負載平衡器友好。
cloki:
image: qxip/cloki:latest
ports:
- "3100:3100"
environment:
- CLICKHOUSE_SERVER=http://user:pass@clickhouse:8123
手動安裝
在進行手動安裝之前,必須具備以下要求。
-
clickhouse-server
服務必須帶 HTTP+ 認證 -
nodejs
14.x 或 16.x,已安裝npm
然後安裝 cloki
和 pm2
:
sudo npm install -g cloki pm2
使用 pm2
啓動 cloki
,並使用你的 clickhouse-server 實例進行連接:
cd $(dirname $(readlink -f `which cloki`)) \
&& CLICKHOUSE_SERVER="localhost" CLICKHOUSE_AUTH="default:password" CLICKHOUSE_DB="cloki" \
pm2 start cloki --name "cloki"
此外也可以使用 pm2 配置文件來啓動和管理 cloki 實例:
module.exports = {
apps : [{
name : "cloki_custom",
script : "cd $(dirname $(readlink -f `which cloki`)) && ./cloki.js",
env: {
"UUID": "cloki_custom",
"CLICKHOUSE_SERVER": "localhost",
"CLICKHOUSE_PORT": 8123,
"CLICKHOUSE_AUTH": "default:password",
"CLICKHOUSE_DB": "cloki_custom",
"CLOKI_USER": "demo",
"CLOKI_PASSWORD": "demo",
"LABELS_DAYS": 7,
"SAMPLES_DAYS": 7,
"PORT": 3100,
"DEBUG": false
}
}]
}
檢查服務狀態:
pm2 status cloki
如果沒有錯誤,則可以保存你的服務並進行啓動:
pm2 save
pm2 startup
當然同樣你也可以部署到 Kubernetes 中去,關於 cLoki 的更多使用方法可以前往官方文檔 https://github.com/lmangani/cLoki/wiki 頁面瞭解更多相關信息。
Git 倉庫:https://github.com/lmangani/cLoki
Github 愛好者 我們是一羣 Github 愛好者,專注分享有價值、有趣的開源項目和學習資料,包括 Python、Golang、Java、Rust、AI、前端、運維、數據分析、大數據、雲計算、Kubernetes、Service Mesh 等領域資源。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/BOVPgnENmLCNZNCbuG3FAA