首页 > 其他分享 >「从ES到CK 06」clickhouse的数据可视化工具clickvisual

「从ES到CK 06」clickhouse的数据可视化工具clickvisual

时间:2023-12-21 17:02:58浏览次数:37  
标签:CK 06 clickvisual xxx 支持 日志 true ###

导航

在完成将公司日志数据从Elasticsearch(下称ES)转战到Clickhouse后,个人认为有必要将过程记录分享。限于篇幅及便于分类组织,我会以一个系列文章的形式记录:


一、常见的clickhouse数据可视化工具

根据clickhouse官方文档推荐,以下的比较常见的clickhouse数据开源可视化工具:

名称

简述

特点/主要功能

Tabix

ClickHouse Web 界面

  • 浏览器直接连接 ClickHouse,不需要安装其他软件。
  • 高亮语法的编辑器。
  • 自动命令补全。
  • 查询命令执行的图形分析工具。
  • 配色方案选项。

HouseOps

一个交互式 UI/IDE 工具,可以运行在 OSX, Linux and Windows 平台中

  • 查询高亮语法提示,可以以表格或 JSON 格式查看数据。
  • 支持导出 CSV 或 JSON 格式数据。
  • 支持查看查询执行的详情,支持 KILL 查询。
  • 图形化显示,支持显示数据库中所有的表和列的详细信息。
  • 快速查看列占用的空间。
  • 服务配置。

灯塔

ClickHouse的轻量级Web界面

  • 包含过滤和元数据的表列表。
  • 带有过滤和排序的表格预览。
  • 只读查询执行。

DBeaver


通用的桌面数据库客户端

  • 使用语法高亮显示查询开发。
  • 表格预览。
  • 自动完成。

clickvisual

轻量级的开源日志查询、分析、报警的可视化平台

  • 支持分析日志库一键创建
  • 支持日志采集配置管理
  • 支持自定义索引配置
  • 支持报警配置
  • 支持权限粒度到库和表的权限配置


二、什么是clickvisual

ClickVisual 是一个轻量级的开源日志查询、分析、报警的可视化平台,致力于提供一站式应用可靠性的可视化的解决方案。既可以独立部署使用,也可作为插件集成到第三方系统。目前是市面上唯一一款支持 ClickHouse 的类 Kibana 的业务日志查询平台,其具有如下特性:

支持可视化的查询面板,可查询命中条数直方图和原始日志。

支持设置日志索引功能,分析不同索引的占比情况。

支持可视化的 VS Code 风格配置中心,能够便捷地将 logagent 配置同步到 Kubernetes 集群 ConfigMap 中。

支持 GitHub 和 GitLab 授权登录。

支持 Proxy Auth 功能,能被被非常轻松的集成到第三方系统。

支持物理机、Docker、Kubernetes 部署。

支持基于 ClickHouse 日志的实时报警功能

「从ES到CK 06」clickhouse的数据可视化工具clickvisual_日志平台

三、clickvisual安装部署

1、安装基本要求

支持的操作系统

  • Linux:amd64/arm64
  • MacOS: amd64/arm64

支持的数据库

Mysql

资源要求

clickvisual 占用资源较小,在内存和 CPU 的使用上非常轻量级。推荐使用 1核 CPU、128MB 内存来运行

支持的浏览器

  • Chrome/Chromium
  • Firefox
  • Safari
  • Microsoft Edge
  • Internet Explorer 11

2、部署过程

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

四、clickvisual使用效果

· 日志

「从ES到CK 06」clickhouse的数据可视化工具clickvisual_kibana_02

· 告警

「从ES到CK 06」clickhouse的数据可视化工具clickvisual_clickvisual_03


· 分析

「从ES到CK 06」clickhouse的数据可视化工具clickvisual_clickvisual_04


五、参考资料

  • clickvisual

https://clickvisual.net/zh/clickvisual/


下回预告

clickvisual作为功能菜单嵌入kibana,以实现平稳过渡,欢迎关注后续更新的系列文章~

标签:CK,06,clickvisual,xxx,支持,日志,true,###
From: https://blog.51cto.com/u_15104381/8925278

相关文章

  • Windows10 卸载WSL Ubuntu (解决Docker Desktop 报错问题)
    首先在“程序”里面卸载“WindowsSubsystemforLinuxUpdate”然后使用命令行卸载已安装的子系统1、查看当前环境安装的wslwsl--list2、注销(卸载)当前安装的Linux的Windows子系统wsl--unregisterUbuntu3、卸载成功,查看当前安装的Linux的Windows子系统wsl--list4......
  • ​CentOS7一键脚本安装docker并创建ES集群(docker版本)
    CentOS7一键脚本安装docker并创建ES集群(docker版本)说明:1、脚本中修改了默认的docker的存储路径为/data/docker2、脚本中修改了docker默认的网段为10.112.0.1/243、脚本中拉取镜像并安装portainer容器Web管理工具#!/bin/bashsed-i's/enforcing/disabled/g'/etc/selinux/confi......
  • NX2306 工程图-大概流程(汇总版)
    【写在每个笔记前面:个人学习记录,如有错误,烦请指正,不胜感激。】 重新理一下整体思路,如果做一个工程图从零开始的话,我需要做什么?Beingcontinuouslyupdated.......(要掌握的内容:制图模版、部件转换、工程图图框制作、参数设计、零件图/装配图的连接.......要素还是蛮多的)☆Ct......
  • docker初步入门学习安装redis和mysql
    dockerrun--namemyredis-p6379:6379-dredisredis-server--appendonlyyesdockerrun--namemysql-eMYSQL_ROOT_PASSWORD=123456-d-p3306:3306mysql:5.7.27dockerpullmysql:5.7.27dockerrun-d--hostnamemy-rabbit--namemyra......
  • 记录一次openpyx使用rich_text报错AttributeError: 'TextBlock' object has no attrib
    先说解决办法:pipinstalllxml报错截图:当时在两个环境中分别使用相同版本openpyxl,相同的代码,一个环境中能成功,另外一个一直报错。排查结果如下:根据报错找到文件:File"\openpyxl\worksheet_writer.py",line147,inwrite_row在155行到158行看到如下代码:ifLXML:......
  • 实时统计信息收集导致row cache lock
    数据库版本:19.3操作系统版本:redhat7.6 周末下午六点多接到业务反馈,大量业务调用失败,请求排查数据库状态,登录数据库后发现数据库问题时间段出现大量的rowcachelock事件--问题点截图信息如下 通过上述事件,查看p1对应的信息是什么,通过v$event_name发现对应的为cache_id......
  • Jackson给给指定类设置序列化规则
    背景业务中需要对返回给APP端的数据进行特殊处理,包括:null值转换成空字符串日期(LocalDateTime)类型转换成时间戳金额根据用户Locale做格式化需要保证不影响内部其他服务的互相调用,因此让所有返回给APP的VO对象实现自定义的Vo接口,然后指定对Vo接口的类进行对应的转换。实现co......
  • class006 二分搜索【算法】
    class006二分搜索【算法】算法讲解006【入门】二分搜索code1有序数组中是否存在一个数字//有序数组中是否存在一个数字packageclass006;importjava.util.Arrays;//有序数组中是否存在一个数字publicclassCode01_FindNumber{ //为了验证 publicstaticvoidmain(......
  • class068 更多的动态规划【算法】
    class068更多的动态规划【算法】算法讲解068【必备】见识更多二维动态规划题目code1115.不同的子序列//不同的子序列//给你两个字符串s和t,统计并返回在s的子序列中t出现的个数//测试链接:https://leetcode.cn/problems/distinct-subsequences/dp[i][j]:s[前i个]......
  • class069 从递归入手三维动态规划【算法】
    class069从递归入手三维动态规划code1474.一和零//一和零(多维费用背包)//给你一个二进制字符串数组strs和两个整数m和n//请你找出并返回strs的最大子集的长度//该子集中最多有m个0和n个1//如果x的所有元素也是y的元素,集合x是集合y的子集//......