详解 ClickHouse 的监控及备份

一、ClickHouse 监控概述

  • ClickHouse 运行时会将一些个自身的运行状态记录到众多系统表中(system.*)。所以对于 ClickHouse 自身的一些运行指标的监控数据,也主要来自这些系统表。
  • 直接查询这些系统表进行监控会有一些不足之处:
    • 这种方式太过底层,监控结果不够直观,还需要在此之上实现可视化展示
    • 系统表只记录了 ClickHouse 自身的运行指标,有些时候还需要外部系统的指标进行关联分析,例如 ZooKeeper、服务器 CPU、IO 等。
  • 目前市面上 Prometheus + Grafana 的组合进行监控比较流行,安装简单易上手,可以集成很多框架,包括服务器的负载,其中 Prometheus 负责收集各类系统的运行指标,Grafana 负责可视化的部分。
  • ClickHouse 从 v20.1.2.4 开始,内置了对接 Prometheus 的功能,配置的方式也很简单,可以将其作为 Prometheus 的 Endpoint 服务,从而自动的将 metrics 、 events 和 asynchronous_metrics 三张系统的表的数据发送给 Prometheus。

二、Prometheus 和 Grafana 的安装

1. Prometheus 安装

Prometheus 下载地址:https://prometheus.io/download/

  • 将 Prometheus 的安装包 prometheus-2.26.0.linux-amd64.tar.gz 上传到虚拟机节点

  • 解压安装包

    cd /opt/softwaretar -zxvf prometheus-2.26.0.linux-amd64.tar.gz -C /opt/modulecd /opt/modulemv prometheus-2.26.0.linux-amd64 prometheus-2.26.0
    
  • 修改配置文件

    cd /opt/module/prometheus-2.26.0
    vim prometheus.yml#添加 ClickHouse 监控配置(注意缩进)- job_name: 'clickhouse-1'static_configs:- targets: ['hadoop102:9363']#配置说明:
    #1、global 配置块:控制 Prometheus 服务器的全局配置#1.1 scrape_interval:配置拉取数据的时间间隔,默认为 1 分钟。#1.2 evaluation_interval:规则验证(生成 alert)的时间间隔,默认为 1 分钟。
    #2、rule_files 配置块:规则配置文件
    #3、scrape_configs 配置块:配置采集目标相关, prometheus 监视的目标。Prometheus 自身的运行信息可以通过 HTTP 访问,所以 Prometheus 可以监控自己的运行数据。#3.1 job_name:监控作业的名称#3.2 static_configs:表示静态目标配置,就是固定从某个 target 拉取数据#3.3 targets:指定监控的目标,其实就是从哪儿拉取数据。Prometheus 会从http://hadoop1:9090/metrics 上拉取数据。
    #Prometheus 是可以在运行时自动加载配置的。启动时需要添加:--web.enable-lifecycle
    
  • 启动 Prometheus Server

    cd /opt/module/prometheus-2.26.0nohup ./prometheus --config.file=prometheus.yml > ./prometheus.log 2>&1 &
    
  • 登录 web 端查看:http://[host]:9090/,点击 Status,选中 Targets

2. Grafana 安装

Grafana 下载地址:https://grafana.com/grafana/download

  • 将 Grafana 的安装包 grafana-7.5.2.linux-amd64.tar.gz 上传到虚拟机节点

  • 解压安装包

    cd /opt/software
    tar -zxvf grafana-7.5.2.linux-amd64.tar.gz -C /opt/modulecd /opt/modulemv grafana-7.5.2.linux-amd64.tar.gz grafana-7.5.2
    
  • 启动 Grafana

    cd /opt/module/grafana-7.5.2nohup ./bin/grafana-server web > ./grafana.log 2>&1 &
    
  • 登录 web 端查看:http://[host]:3000,默认用户名和密码为 admin

三、ClickHouse 配置

  • 修改 ClickHouse 配置文件

    sudo vim /etc/clickhouse-server/config.xml#打开prometheus注释
    <prometheus><endpoint>/metrics</endpoint><port>9363</port><metrics>true</metrics><events>true</events><asynchronous_metrics>true</asynchronous_metrics><status_info>true</status_info>
    </prometheus>#如果有多个 CH 节点,分发配置
    
  • 启动 ClickHouse 服务

    sudo clickhouse restart
    
  • 访问 web 查看:http://[host]:9363/metrics,看到信息说明 ClickHouse 开启 Metrics 服务成功

四、Grafana 集成 Prometheus

  • 在 Grafana 的 web 页面上添加 Prometheus 数据源
    • 在首页左侧菜单栏点击配置菜单,然后点击 Data Sources 按钮
    • 在 Data Sources 页面点击 Add data source 按钮
    • 在搜索框查找 Prometheus,在展示结果里选择点击 select 按钮
    • 在 Prometheus 设置页面填写名称、url 等相关配置信息,然后点击 save&test 按钮
    • 出现绿色的提示框,表示与 Prometheus 正常联通,点击 back 按钮返回 Data Sources 页面,出现了添加的 Prometheus
  • 添加 ClickHouse 监控看板
    • 通过 https://grafana.com/dashboards 网站,可以找到大量可直接使用的 Dashboard 模板,选择一个下载,下载内容为一个 json 文件
    • 在 Grafana 首页左侧菜单栏点击 + 按钮,然后点击 import 按钮
    • 在导入页面点击 upload json file 按钮,上传下载的 Dashboard 模板
    • 配置关联已经添加的 Prometheus 数据源
    • 查看监控看板内容并保存看板

五、备份及恢复

官网:https://clickhouse.tech/docs/en/operations/backup/

1. 手动恢复及备份

  • 创建备份路径

    sudo mkdir -p /var/lib/clickhouse/shadow/sudo chown clickhouse:clickhouse /var/lib/clickhouse/shadow/
    #如果目录存在,先清空目录下的数据
    
  • 执行备份命令

    echo -n 'alter table t_order_mt freeze' | clickhouse-client
    
  • 将备份数据保存到其他路径

    #创建备份存储路径
    sudo mkdir -p /var/lib/clickhouse/backup/
    sudo chown clickhouse:clickhouse /var/lib/clickhouse/backup/#拷贝数据到备份路径
    sudo cp -r /var/lib/clickhouse/shadow/ /var/lib/clickhouse/backup/my-backup-name#为下次备份准备,删除 shadow 下的数据
    sudo rm -rf /var/lib/clickhouse/shadow/*
    
  • 恢复数据

    #拷贝t_order_mt的建表语句到 events.sql 文件#模拟删除备份过的表
    echo 'drop table t_order_mt' | clickhouse-client#重新创建表
    cat events.sql | clickhouse-client#将之前备份的表分区目录复制到新创建表的 detached 目录
    sudo cp -rl /var/lib/clickhouse/backup/my-backup-name/1/store/cb1/cb176503-cd88-4ea8-8b17-6503cd888ea8/* /var/lib/clickhouse/data/default/t_order_mt/detached/#执行 attach
    echo 'alter table t_order_mt attach partition 20200601' | clickhouse-client#在 clickhouse 中查看数据
    select * from t_order_mt;
    

2. 使用 clickhouse-backup 自动备份及恢复

工具地址:https://github.com/AlexAkulov/clickhouse-backup/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/35554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win10修改远程桌面端口,Windows 10下修改远程桌面端口及服务器关闭445端口的操作指南

Windows 10下修改远程桌面端口及服务器关闭445端口的操作指南 一、修改Windows 10远程桌面端口 在Windows 10系统中&#xff0c;远程桌面连接默认使用3389端口。为了安全起见&#xff0c;建议修改此端口以减少潜在的安全风险。以下是修改远程桌面端口的步骤&#xff1a; 1. 打…

IMX6ULL SD卡启动uboot+kernel+rootfs

目录 1. 背景说明 2.SD卡启动 2.1准备条件 2.2 对SD卡分区格式化 2.3 制作sd卡镜像 3.效果测试 1. 背景说明 网络上绝大数教程&#xff0c;教大家把uboot烧录到SD卡&#xff0c;然后uboot启动后&#xff0c;通过TFTP下载kernel和设备树&#xff0c;然后通过nfs挂载文件系…

油猴脚本入门

如何支持jquery 首先要在头部引入外部资源 require https://cdn.bootcss.com/jquery/2.2.1/jquery.js编辑开始前添加一个注释 /* globals $ */完整代码 // UserScript // name study_jquery // namespace http://tampermonkey.net/ // version 1.0 // …

ultralytics官方更新 | 添加YOLOv10到ultralytics

&#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a;《YOLOv8改进有效涨点》专栏介绍 & 专栏目录 | 目前已有40篇内容&#xff0c;内含各种Head检测头、损失函数Loss、…

【C++】类和对象(六)

文章目录 二、static成员概念面试题一个题目 三、友元友元函数说明 友元类 四、内部类(了解)概念&#xff1a;注意&#xff1a;特性&#xff1a; 五、匿名对象 书接上回&#xff1a; 【C】类和对象&#xff08;五&#xff09;隐式类型转换 二、static成员 01_31 03 12 01 概…

Xcode 手动添加模拟器

在Xcode中下载iOS模拟器很慢&#xff0c;且经常出现下载失败&#xff0c;需重新从头开始下载的问题。现了解Xcode 15 和运行环境是分离的&#xff0c;故阐述一下手动添加模拟器的步骤&#xff1a; 官网下载所需模拟器&#xff1a;https://developer.apple.com/download/all/?…

idea项目推送gitee/github

选择需要的项目创建本地Git仓库 添加到暂存区 第一次提交 或者点击这里 写备注并commit 推送远程仓库 填写地址 解决上图警告 右键打开项目&#xff0c;输入 git pull origin master –allow-unrelated-historiesgit push -u origin master -f推送成功 idea项目推送github及克…

怎么用韩语说帮忙更合体,柯桥零基础韩语培训

1. **详细解释&#xff1a;** - **标准写法与音译&#xff1a;** - **돕다**&#xff08;读作 dop-da&#xff09;&#xff1a;动词“帮助”。 - **도와주다**&#xff08;读作 do-wa-ju-da&#xff09;&#xff1a;动词“帮忙”&#xff0c;字面意思是“给予帮助”。 - **도움…

PMP证书在国内已经泛滥了,大家怎么看?

目前&#xff0c;越来越多的人获得了PMP证书。自1999年PMP引入中国以来&#xff0c;全国累计PMP考试人数接近60万人次&#xff0c;通过PMP认证的人数约为42万人。虽然这个数据看起来很大&#xff0c;但绝对不能说是过多。 首先&#xff0c;PMP在中国并不普遍。根据美国项目管理…

【源码+文档+调试讲解】灾害应急救援平台

摘 要 灾害应急救援平台的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品&#xff0c;体验高科技时代带给人们的方便&#xff0c;同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓&#xff0c;iOS相比较起来&…

linux好用的分屏器byobu

什么是byobu byobu是linux下分屏器工具tmux或screen的包装器。 安装 sudo apt-get install byobu 启动 emaubuntu:~$ byobu配置通知栏 按F9进入Byobu配置菜单导航到切换状态通知选项&#xff0c;然后按ENTER键可以在选中和不选中之间切换选择要启用的状态通知后&#xff…

深度学习项目实例(一)—— 实时AI换脸项目

一、前言 人工智能&#xff08;AI&#xff09;技术的快速发展为各个领域带来了革命性的变化&#xff0c;其中之一就是人脸识别与图像处理技术。在这之中&#xff0c;AI换脸技术尤其引人注目。这种技术不仅在娱乐行业中得到广泛应用&#xff0c;如电影制作、视频特效等&#xf…

static在C/C++中的作用

C语言中 static 的作用&#xff1a; 文件作用域的全局变量&#xff1a; 当static修饰一个全局变量时&#xff0c;这个变量只在定义它的文件内部可见&#xff0c;不会被其他文件访问。 静态局部变量&#xff1a; 在函数内部&#xff0c;static关键字确保局部变量的生命周期贯穿整…

目前公认最好用充电宝!四款高性价比充电宝推荐,一文看懂!

当我们在旅行途中&#xff0c;手机和相机等设备必不可少。长时间使用这些设备&#xff0c;电量很容易耗尽。此时&#xff0c;充电宝就能派上用场&#xff0c;让我们在欣赏美景、记录美好时光的同时&#xff0c;不再担心电量不足。特别在假期出游的时候在我们玩的特别尽兴的时候…

力扣2815.数组中的最大数对和

力扣2815.数组中的最大数对和 遍历每个元素 并求其中最大的数字 将每个数字对应的最大元素存在数组中每遍历到一个新的元素 &#xff0c;将其存在对应的数组位置中 class Solution {public:int maxSum(vector<int>& nums) {vector<int> cnt(10,INT_MIN);int…

【C++】关于虚函数的理解

深入探索C虚函数&#xff1a;原理、应用与实例分析 一、虚函数的原理二、虚函数的应用三、代码实例分析四、总结 在C面向对象编程的世界里&#xff0c;虚函数&#xff08;Virtual Function&#xff09;扮演着至关重要的角色。它不仅实现了多态性这一核心特性&#xff0c;还使得…

查看linux服务器cpu,硬盘,内存

lscpu 查看cpu 释义 Architecture: x86_64 // 指定系统架构&#xff0c;这里是 x86_64&#xff0c;表示一个64位系统。 CPU op-mode(s): 32-bit, 64-bit // 指示支持的 CPU 操作模式&#xff0c;显示了32位和64位两种模式。 Byte Order: Little…

红酒与珠宝:璀璨与醇香的奢华交响,双重诱惑难挡

在璀璨的灯光下&#xff0c;红酒与珠宝各自闪耀着迷人的光芒&#xff0c;它们如同夜空中的繁星&#xff0c;交相辉映&#xff0c;共同演绎着奢华的双重诱惑。今天&#xff0c;就让我们一起走进这个充满魅力的世界&#xff0c;感受红酒与珠宝带来的无尽魅力。 首先&#xff0c;让…

java中自定义线程池最佳实践

java中自定义线程池最佳实践 在现代应用程序中&#xff0c;线程池是一种常用的技术&#xff0c;可以有效管理和复用线程资源&#xff0c;从而提升系统的并发性能和稳定性。本文将详细介绍自定义线程池的最佳实践&#xff0c;涵盖从线程池大小配置、队列选择到拒绝策略、任务设…

基于STM32+ESP8266打造智能家居温湿度监控系统(附源码接线图)

摘要: 本文将介绍如何使用STM32单片机、ESP8266 Wi-Fi模块和Python Flask框架构建一个完整的物联网系统&#xff0c;实现传感器数据采集、无线传输、云端存储及Web可视化展示。 关键词: STM32, ESP8266, 传感器, Flask, 物联网, 云平台, 数据可视化 1. 系统概述 本系统以STM…