如何做好Clickhouse集群的监控覆盖?
前言
常言道,兵马未至,粮草先行。在clickhouse上生产环境之前,我们就得制定好相关的监控方案,包括指标采集、报警策略、图形化监控大盘。有了全面有效的监控,我们就仿佛拥有了千里眼顺风耳,对于线上任何风吹草动都能做到及时感知,在必要的情况下提前介入以避免线上故障。
clickhouse监控采集方案
业界做法
业界常用的监控方案一般是基于clickhouse-exporter(node-exporter) + prometheus + grafana组成的监控方案。
以上为监控方案示意图,其中各组件负责功能如下
clickhouse-server中有4个系统表会记录进程内部的指标,分别是system.metrics,system.asynchronous_metrics, system.events,system.parts 配置文件默认开启
clickhuse-exporter是一个用于采集clickhouse指标的开源组件(https://github.com/ClickHouse/clickhouse_exporter),它会定时查询clickhouse-server中的系统表,转化成监控指标,并通过HTTP接口暴露给prometheus. 由统一采集中心替代
node-exporter是一个用于采集硬件和操作系统相关指标的开源组件(https://github.com/prometheus/node_exporter)。 由zabbix监控替代
prometheus定时抓取clickhouse-exporter暴露的指标,并判断报警条件是否被触发,是则推送到alert manager 由自研监控系统替代
hubble监控clickhouse采集方案设计
如下图,利用采集中心采集clickhouse系统指标,就可以实现将clickhouse-server端监控接入hubble现有监控系统,后续如果需要监控其他集群,添加采集即可
clickhouse监控指标详细说明
1 server端
概况说明
server端指的是clickhouse所在集群,监控包括server所在的机器情况和server本身的运行情况,机器情况目前通过zabbix就可以实现监控和报警,而server本身的运行情况目前是通过granfana直连查询server端的系统日志表实现的监控。目前是通过采集中心进行指标采集上报并接入hubble监控系统
指标列表
核心指标
分布式表、zk相关指标
server运行状态指标(用于问题排查分析定位)
一些用于问题排查的指标和工具
查询来源以及查询热点排查:下图用于排查突增的查询请求的数据source和请求来源IP,便于问题定位
慢查询、大查询情况:下面是按source统计出的慢查询和大查询情况,以及正在执行的慢查询语句情况,方便问题排查
一些有助于排查问题的查询sql:
列出正在执行的慢查询
各数据库扫描行数大于1亿的查询数量
各数据库大于3s的查询数量
各数据库查询次数及来源ip
各数据库磁盘占用大小及压缩比
集群机器大盘页(cpu、内存、io、磁盘容量等信息)(zabbix)
存活监控
通过HTTP API监视服务器可用性。将HTTP GET请求发送到/ping。如果服务器可用,它将以 200 OK 响应。
对于复制表集群,还需额外监控副本是否:请求/replicas_status,如果副本可用,并且不延迟在其他副本之后,则返回200 OK。如果副本滞后,请求将返回503 HTTP_SERVICE_UNAVAILABLE,包括滞后信息
2 client端(包括操作clickhouse进行查询和写入的模块)
概况说明
这一部分主要是我们将client端与clickhouse端的交互情况进行埋点上报,配置相关大盘页,并对相关指标配置报警策略实现的。
核心指标监控大盘
写情况:
各集群写次数,写耗时,写失败数,内存队列堆积情况,kafka堆积情况,失败回跑数量
读情况:
hubble各模块查询请求数、失败数、平均耗时、p99耗时
后续TODO
探活检测的同时实现节点故障的自动切换和恢复
参考文章
clickhouse集群监控:https://zhuanlan.zhihu.com/p/353594919
官方监控建议:https://clickhouse.tech/docs/en/operations/monitoring/
如何做好Clickhouse集群的监控覆盖?相关推荐
- 查看grafana版本_使用 Prometheus 与 Grafana 为 Kubernetes 集群建立监控与警报机制
作者 | Gregoire DAYET 策划 | 田晓旭 IT 团队已经明确意识到对基础设施进行监控的必要性.目前市面上存在着大量适用于传统基础设施且历史悠久的解决方案:Nagios.Zabbix 等 ...
- k8s集群资源监控-监控指标和方案---K8S_Google工作笔记0052
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 我们接下来要实现集群的监控,那么我们要监控什么? 比如节点资源利用率,有多少节点在用,多少节点在空 ...
- 备份k8s_树莓派k8s集群安装kafka集群及监控
安装准备 树莓派k8s集群 root@pi4-master01:~# kubectl get nodes -o wideNAME STATUS ROLES AGE VERSION INTERNAL-I ...
- clickhouse集群容器化搭建
本文将记录使用clickhouse镜像,分别在两种场景下搭建6节点集群(3分片2副本):1.在一台机器上使用容器方式安装clickhouse集群:2.在六台机器上使用容器方式安装clickhouse集 ...
- clickhouse集群搭建
clickhouse集群搭建 https://clickhouse.tech/ 单机安装 1.从源安装 https://clickhouse.tech/docs/zh/getting-started/ ...
- 大数据运维 | 集群_监控_CDH_Docker_K8S_两项目_云服务器
说明:大数据时代,传统运维向大数据运维升级换代很常见,也是个不错的机会.如果想系统学习大数据运维,个人比较推荐通信巨头运维大咖的分享课程,主要是实战强.含金量高.专注度高,有6个专题+2个大型项目+腾 ...
- K8s 集群资源监控、高可用搭建、部署java项目 (下)
目录 集群资源监控 监控指标和搭建方案 搭建监控平台(k8s部署) 部署守护进程 部署prometheus 部署Grafana 高可用k8s集群 系统初始化 master节点部署keepalived ...
- dockerer-compose搭建单机clickhouse集群,工作中最新亲测能用,超详细
作为一名菜鸟Java工程师,公司这几天让我搭建clickhouse集群,对于搭建过的人来说十分简单,对zookeeper不太熟悉的人来说还是有一定难度的,这一周我在公司的角色更像是运维人员搭建集群和服 ...
- Docker搭建Clickhouse集群
Docker搭建Clickhouse集群 环境说明 2C 2G 30G hostname IP 操作系统 服务 localhost 192.168.88.171 CentOs 7.8 clickhou ...
最新文章
- CKEditor的安装与基本使用
- 30个 Web 设计者 必备的免费 PSD UI 工具包
- mysql @@version_MySQL数据库安装Version5.5
- hihocoder#1041 : 国庆出游(DFS)
- 无招胜有招之Java进阶JVM(三)内存模型
- WPF 分页控件应用
- python语言精通_Python语言基础从入门到精通
- 根据一个属性,剔除 Json 中重复元素(删除 JSON 中重复的部分)
- 天猫好房和易居,1+1=1?
- 常用排序算法及其实现
- 【 D3.js 入门系列 --- 7 】 理解 update, enter, exit 的使用
- 【PostgreSQL-9.6.8】序列
- 泸州市的电子计算机学校名称,泸州电子计算机机械学校2020年招生简介
- 网络篇-NSURLSession介绍
- 在Flask程序中实现GitHub登录和GitHub资源交互
- java小球碰撞界面设计_JavaScript实现小球碰撞特效
- Jetson Nano 系列之:25FPS性能优化之路
- qt 飞扬青云_Qt编写图片及视频TCP/UDP网络传输
- TOPcoder准备
- dos下masm的out of memory 怎么解决,求大佬指教
热门文章
- 操作系统真像还原 - MBR主引导程序初体验
- 为何农历10月1号要祭祖上坟?原来有这么多讲究,你知道吗?
- win10忘记密码_电脑忘记密码没关系,这招教你简单轻松改密码
- 华为发布新一代CloudLink视讯解决方案
- 国空三区三线思考之:Arcgis自上而下从左到右进行编号
- [Luogu5042/UOJ #100][国家集训队互测2015]丢失的题面/ydc的题面
- 乐观中谨慎 招聘调薪现贫富差距
- CSS开发中所有基本属性的使用技巧
- “天鹅”类谜解大全!(转载)
- 如何使用JS实现banner图滚动