还在使用 ELK 收集日志吗?赶快来试试这个基于 ClickHouse 的方案吧~
ClickVisual 是一个轻量级的开源日志查询、分析、报警的可视化平台,致力于提供一站式应用可靠性的可视化的解决方案。既可以独立部署使用,也可作为插件集成到第三方系统。目前是市面上唯一一款支持 ClickHouse 的类 Kibana 的业务日志查询平台。
ClickVisual 具有如下一些特性:
支持可视化的查询面板,可查询命中条数直方图和原始日志。 支持设置日志索引功能,分析不同索引的占比情况。 支持可视化的 VS Code 风格配置中心,能够便捷地将 logagent 配置同步到 Kubernetes 集群 ConfigMap 中。 支持 GitHub 和 GitLab 授权登录。 支持 Proxy Auth 功能,能被被非常轻松地集成到第三方系统。 支持物理机、Docker、Kubernetes 部署。 支持基于 ClicHouse 日志的实时报警功能。
架构
日志系统主要分为四个部分:日志采集、日志传输、日志存储、日志管理。
日志采集: LogCollector
采用 Daemonset 方式部署,将宿主机日志目录挂载到LogCollector
的容器内,LogCollector
通过挂载的目录能够采集到应用日志、系统日志、K8S 审计日志等日志传输:通过不同 Logstore
映射到 Kafka 中不同的 Topic,将不同数据结构的日志做了分离日志存储:使用 Clickhouse 中的两种引擎数据表和物化视图 日志管理:开源的 ClickVisual 系统,能够查询日志,设置日志索引,设置 LogCollector 配置,设置 Clickhouse 表,设置报警等
安装
我们可以使用二进制、Docker、Kubernetes 等方式进行安装,为了简单这里我们以 Docker 为例进行说明,Kubernetes 安装方式可以参考官方文档 https://clickvisual.gocn.vip/clickvisual/02install/k8s-installation.html。
首先需要提供一个可访问的 MySQL,将配置 https://github.com/clickvisual/clickvisual/tree/master/data/all-in-one/clickvisual/config 中的 [mysql]
改成你本地 MySQL 的配置。
然后可以使用下面的命令来启动 ClickVisual,需要把配置挂载到 docker 容器内:
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
当然你也可以使用 Docker Compose 来启动,同样需要把配置挂载到 docker 容器内:
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' ]
启动后可以通过 http://localhost:19001 进行访问。
由于 ClickVisual 只是一个进行数据展示,并不会进行日志收集,所以可以根据自己的实际情况选择采集工具,比如 fluent-bit,将日志采集后输出到 Kafka 中,然后通过 Kafka 将日志消费到 Clickhouse 中去,关于 fluent-bit 的配置可以参考文档 https://clickvisual.gocn.vip/clickvisual/03funcintro/fluent-bit-configuration-reference.html 了解更多信息。
当 ClickVisual 部署完成后可以在页面中去添加 Clickhouse 数据源。
默认没有配置数据源实例,所以此处为空,点击 +新增实例,增加一个新的 ClickHouse 实例作为数据源。配置好数据源后,就可以在日志查询页面中使用了。
此外还支持日志的实时报警功能。
更多使用细节请参考官方网站了解更多 https://clickvisual.gocn.vip/。
Git 仓库:https://github.com/clickvisual/clickvisual