赞
踩
在完成将公司日志数据从Elasticsearch(下称ES)转战到Clickhouse后,个人认为有必要将过程记录分享。限于篇幅及便于分类组织,我会以一个系列文章的形式记录:
根据clickhouse官方文档推荐,以下的比较常见的clickhouse数据开源可视化工具:
名称 | 简述 | 特点/主要功能 |
Tabix | ClickHouse Web 界面 |
|
HouseOps | 一个交互式 UI/IDE 工具,可以运行在 OSX, Linux and Windows 平台中 |
|
灯塔 | ClickHouse的轻量级Web界面 |
|
DBeaver | 通用的桌面数据库客户端 |
|
clickvisual | 轻量级的开源日志查询、分析、报警的可视化平台 |
|
ClickVisual 是一个轻量级的开源日志查询、分析、报警的可视化平台,致力于提供一站式应用可靠性的可视化的解决方案。既可以独立部署使用,也可作为插件集成到第三方系统。目前是市面上唯一一款支持 ClickHouse 的类 Kibana 的业务日志查询平台,其具有如下特性:
√ 支持可视化的查询面板,可查询命中条数直方图和原始日志。
√ 支持设置日志索引功能,分析不同索引的占比情况。
√ 支持可视化的 VS Code 风格配置中心,能够便捷地将 logagent 配置同步到 Kubernetes 集群 ConfigMap 中。
√ 支持 GitHub 和 GitLab 授权登录。
√ 支持 Proxy Auth 功能,能被被非常轻松的集成到第三方系统。
√ 支持物理机、Docker、Kubernetes 部署。
√ 支持基于 ClickHouse 日志的实时报警功能
支持的操作系统 |
|
支持的数据库 | Mysql |
资源要求 | clickvisual 占用资源较小,在内存和 CPU 的使用上非常轻量级。推荐使用 1核 CPU、128MB 内存来运行 |
支持的浏览器 |
|
clickvisual支持二进制、docker、k8s部署方式,此处选用二进制部署:
(1) github下载最新版本
- # 获取最新版本
- latest=$(curl -sL https://api.github.com/repos/clickvisual/clickvisual/releases/latest | grep ".tag_name" | sed -E 's/.*"([^"]+)".*/\1/')
-
- # Linux amd64系统
- wget "https://github.com/clickvisual/clickvisual/releases/download/${latest}/clickvisual-${latest}-linux-amd64.tar.gz" -O clickvisual-${latest}.tar.gz
(2)修改配置文件default.toml
- [app]
- isMultiCopy = false ### 集群模式开关 ###
- secretKey = "secretKey"
- rootURL = "http://xxx.xxx.xxx.xxx:xxxx/app/clickvisual/" ### serveFromSubPath为false,该值只允许是ip:port ###
- baseURL = "/api/admin/login/"
- permissionFile = '/usr/local/clickvisual/config/resource.yaml'
- serveFromSubPath = true ### 是否开启url子路径支持,默认为false ###
-
- [casbin.rule]
- path = "/usr/local/clickvisual/config/rbac.conf"
-
- [server.http]
- # HTTP server Host
- host = "0.0.0.0"
- # HTTP server Port
- port = 19001
- embedPath = "dist"
- maxAge = 86400
-
- [server.governor]
- # Governor server host
- host = "0.0.0.0"
- # Governor server port
- port = 19011
-
- [logger]
- # log level, avaliable level: "debug", "info", "warn", "error", "panic", "fatal"
- level = "debug"
- name = "clickvisual.log"
-
- [logger.default]
- level = "info"
-
- ### 集群模式才需要部署redis ###
- [redis]
- debug = true
- addr = "127.0.0.1:16379"
- writeTimeout = "3s"
- password = "xxx"
-
- [mysql]
- debug = true
- # database DSN
- dsn = "xxx:xxx@tcp(xxx.xxx.xxx.xxx:xxxx)/clickvisual?charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&loc=Local&readTimeout=1s&timeout=1s&writeTimeou
- t=3s"
- # log level
- level = "debug"
- # maximum number of connections in the idle connection pool for database
- maxIdleConns = 5
- # maximum number of open connections for database
- maxOpenConns = 10
- # maximum amount of time a connection
- connMaxLifetime = "300s"
-
- [auth]
- mode = "memstore" # redis memstore
- name = "clickvisual_session"
- debug = true
- Keypairs = "secret"
- # if use mode redis
- # redisSize = 10
- # redisNetwork = "tcp"
- # redisAddr = ""
- # redisPassword = ""
-
- [auth.anonymous]
- # enable anonymous access
- enabled = false
-
- [auth.proxy]
- enabled = true ### 开启proxy auth认证模式 ###
- isAutoLogin = true
- headerName = "X-Clickvisual-User" ### 自定义header名称 ###
- headerNickName = "X-CLICKVISUAL-NICKNAME" ### 自定义header名称 ###
- rootTokenKey = "X-CLICKVISUAL-TOKEN" ### 自定义管理员token key名称 ###
- rootTokenValue = "xxxxxxxxx" ### 自定义管理员token key值 ###
-
- [[auth.tps]]
- typ = "github"
- enable = false
- clientId = ""
- clientSecret = ""
- allowSignUp = true
- scopes = ["user:email", "read:org"]
- authUrl = "https://github.com/login/oauth/authorize"
- tokenUrl = "https://github.com/login/oauth/access_token"
- apiUrl = "https://api.github.com/user"
- allowedDomains = []
- teamIds = []
- allowedOrganizations = []
-
- [[auth.tps]]
- typ = "gitlab"
- enable = false
- clientId = ""
- clientSecret = ""
- allowSignUp = true
- scopes = ["api"]
- authUrl = "https://git.bgy.com.cn/oauth/authorize"
- tokenUrl = "https://git.bgy.com.cn/oauth/token"
- apiUrl = "https://git.bgy.com.cn/api/v4"
- allowedDomains = []
- teamIds = []
- allowedOrganizations = []
-
- [prom2click]
- enable = false
-
- [[prom2click.cfgs]]
- host = "127.0.0.1"
- port = 9222
- clickhouseDSN = "tcp://127.0.0.1:9000"
- clickhouseDB = "metrics"
- clickhouseTable = "samples"
(3)启动clickvisual服务,浏览器访问default.toml里rootURL配置的地址
- ## 启动命令 ##
- /usr/local/clickvisual/clickvisual --config /usr/local/clickvisual/config/default.toml
-
- ## 也可以做成系统服务 ##
- [Unit]
- Description=clickvisual
- After=network.target
- [Service]
- Type=working
- User=root
- Group=root
- Restart=on-failure
- RestartSec=10
- ExecStart=/usr/local/clickvisual/clickvisual --config /usr/local/clickvisual/config/default.toml
- ExecStop=ps -ef |grep clickvisual |grep -v grep|awk '{print $2}'|xargs kill -9
- PrivateTmp=true
- LimitNOFILE=102400
-
- [Install]
- WantedBy=multi-user.target
https://clickvisual.net/zh/clickvisual/
kibana自定义插件跳转clickvisual,以实现平稳过渡,欢迎关注后续更新的系列文章~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。