基于 ClickHouse 的輕量級(jí)日志可視化分析平臺(tái) - ClickVisual
ClickVisual 是一個(gè)輕量級(jí)的開(kāi)源日志查詢、分析、報(bào)警的可視化平臺(tái),致力于提供一站式應(yīng)用可靠性的可視化的解決方案。既可以獨(dú)立部署使用,也可作為插件集成到第三方系統(tǒng)。目前是市面上唯一一款支持 ClickHouse 的類(lèi) Kibana 的業(yè)務(wù)日志查詢平臺(tái)。
ClickVisual 具有如下一些特性:
- 支持可視化的查詢面板,可查詢命中條數(shù)直方圖和原始日志。
- 支持設(shè)置日志索引功能,分析不同索引的占比情況。
- 支持可視化的 VS Code 風(fēng)格配置中心,能夠便捷地將 logagent 配置同步到 Kubernetes 集群 ConfigMap 中。
- 支持 GitHub 和 GitLab 授權(quán)登錄。
- 支持 Proxy Auth 功能,能被非常輕松地集成到第三方系統(tǒng)。
- 支持物理機(jī)、Docker、Kubernetes 部署。
- 支持基于 ClicHouse 日志的實(shí)時(shí)報(bào)警功能。
架構(gòu)
日志系統(tǒng)主要分為四個(gè)部分:日志采集、日志傳輸、日志存儲(chǔ)、日志管理。
- 日志采集:LogCollector 采用 Daemonset 方式部署,將宿主機(jī)日志目錄掛載到 LogCollector 的容器內(nèi),LogCollector 通過(guò)掛載的目錄能夠采集到應(yīng)用日志、系統(tǒng)日志、K8S 審計(jì)日志等。
- 日志傳輸:通過(guò)不同 Logstore 映射到 Kafka 中不同的 Topic,將不同數(shù)據(jù)結(jié)構(gòu)的日志做了分離。
- 日志存儲(chǔ):使用 Clickhouse 中的兩種引擎數(shù)據(jù)表和物化視圖。
- 日志管理:開(kāi)源的 ClickVisual 系統(tǒng),能夠查詢?nèi)罩荆O(shè)置日志索引,設(shè)置 LogCollector 配置,設(shè)置 Clickhouse 表,設(shè)置報(bào)警等。
安裝
我們可以使用二進(jìn)制、Docker、Kubernetes 等方式進(jìn)行安裝,為了簡(jiǎn)單這里我們以 Docker 為例進(jìn)行說(shuō)明,Kubernetes 安裝方式可以參考官方文檔 https://clickvisual.gocn.vip/clickvisual/02install/k8s-installation.html。
首先需要提供一個(gè)可訪問(wèn)的 MySQL,將配置 https://github.com/clickvisual/clickvisual/tree/master/data/all-in-one/clickvisual/config 中的 [mysql] 改成你本地 MySQL 的配置。
然后可以使用下面的命令來(lái)啟動(dòng) ClickVisual,需要把配置掛載到 docker 容器內(nèi):
docker run --name ClickVisual -e EGO_CONFIG_PATH=/ClickVisual/config/docker.toml -e EGO_LOG_WRITER=stderr -p 19001:19001 -d sevennt/ClickVisual:master -v ./config:/ClickVisual/config
當(dāng)然你也可以使用 Docker Compose 來(lái)啟動(dòng),同樣需要把配置掛載到 docker 容器內(nèi):
version: "3"
services:
ClickVisual:
image: sevennt/ClickVisual:master
container_name: ClickVisual
environment:
EGO_CONFIG_PATH: /ClickVisual/config/docker.toml
EGO_LOG_WRITER: stderr
ports:
- "19001:19001"
restart: always
volumes:
- ./config:/ClickVisual/config
command: [ '/bin/sh', '-c', './bin/ClickVisual' ]
啟動(dòng)后可以通過(guò) http://localhost:19001 進(jìn)行訪問(wèn)。
由于 ClickVisual 只是一個(gè)進(jìn)行數(shù)據(jù)展示,并不會(huì)進(jìn)行日志收集,所以可以根據(jù)自己的實(shí)際情況選擇采集工具,比如 fluent-bit,將日志采集后輸出到 Kafka 中,然后通過(guò) Kafka 將日志消費(fèi)到 Clickhouse 中去,關(guān)于 fluent-bit 的配置可以參考文檔 https://clickvisual.gocn.vip/clickvisual/03funcintro/fluent-bit-configuration-reference.html 了解更多信息。
當(dāng) ClickVisual 部署完成后可以在頁(yè)面中去添加 Clickhouse 數(shù)據(jù)源。
默認(rèn)沒(méi)有配置數(shù)據(jù)源實(shí)例,所以此處為空,點(diǎn)擊 +新增實(shí)例,增加一個(gè)新的 ClickHouse 實(shí)例作為數(shù)據(jù)源。配置好數(shù)據(jù)源后,就可以在日志查詢頁(yè)面中使用了。
此外還支持日志的實(shí)時(shí)報(bào)警功能。
更多使用細(xì)節(jié)請(qǐng)參考官方網(wǎng)站了解更多 https://clickvisual.gocn.vip/。