Clickhouse 集群监控(Prometheus+Grafana)

Posted 羲凡丞相

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Clickhouse 集群监控(Prometheus+Grafana)相关的知识,希望对你有一定的参考价值。

@羲凡——只为了更好的活着

Clickhouse 集群监控(Prometheus+Grafana)

ClickHouse 从 v20.1.2.4 开始,内置了对接 Prometheus 的功能,可以将其作为 Prometheus 的 Endpoint 服务,从而自动的将 metrics、events 和 asynchronous_metrics 三张系统的表的数据发送给 Prometheus。

前期准备

选4台机器安装Clickhouse集群
另选一台机器作为监控机器,先安装Docker

一、修改Clickhouse集群的config.xml,将注释去掉即可,然后重启集群

# 每台机器都操作
vim /etc/clickhouse-server/config.xml
   <prometheus>
        <endpoint>/metrics</endpoint>
        <port>9363</port>

        <metrics>true</metrics>
        <events>true</events>
        <asynchronous_metrics>true</asynchronous_metrics>
        <status_info>true</status_info>
    </prometheus>
# 每台机器都操作
systemctl stop clickhouse-server
systemctl start clickhouse-server
# 下面的换成自己ck集群中的任何一台机器都可以查看,如果能连接说明没问题
curl http://ip2:9363/metrics

二、在监控机器上安装 Prometheus (Docker)

1.docker 拉取镜像
# 拉取最新版本,我用的是这种方式
docker pull prom/prometheus
###### 或者 ####### https://hub.docker.com 自己找一下哈
# 拉取指定版本
docker pull prom/prometheus:v2.24.1
2.创建 prometheus.yml
mkdir -p /opt/modules/prometheus/
vim /opt/modules/prometheus/prometheus.yml
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.

alerting:
  alertmanagers:
  - static_configs:
    - targets:

rule_files:
   - "first_rules.yml"
   - "second_rules.yml"

scrape_configs:
  - job_name: 'clickhouse_9363'

    static_configs:
    - targets: ['ip1:9363','ip2:9363','ip3:9363','ip4:9363']
3.启动 Prometheus
cd /opt/modules/prometheus

docker run -d -p 9090:9090 \\
-v $PWD/prometheus.yml:/etc/prometheus/prometheus.yml \\
-v $PWD/prometheus-data:/prometheus \\
--user "root" --name prometheus prom/prometheus
4.浏览器查看启动结果
http://monitor-ip:9090/targets

三、在监控机器上安装 Grafana (Docker)

1.docker 拉取镜像
# 拉取最新版本,我用的是这种方式
docker pull grafana/grafana
###### 或者 ####### https://hub.docker.com 自己找一下哈
# 拉取指定版本
docker pull grafana/grafana:7.3.7
2.启动 Grafana
cd /opt/modules/

docker run -d -p 3000:3000 \\
-v $PWD/grafana:/var/lib/grafana \\
--user "root" --name=grafana  grafana/grafana
3.浏览器查看启动结果
// 初始用户名和密码都是 admin,首次登陆会修改密码
http://monitor-ip:3000

四、配置邮件报警Alerting

1.安装插件
# 拉取最新版本,我用的是这种方式
docker pull grafana/grafana-image-renderer:latest
###### 或者 ####### https://hub.docker.com 自己找一下哈
# 拉取指定版本
docker pull grafana/grafana-image-renderer:2.0.1
# 起个容器,名为 renderer
docker run -d -p 8081:8081 --user "root" --name=renderer grafana/grafana-image-renderer
2.修改grafana配置文件
# 进入docker
docker exec -it grafana_CONTAINER_ID /bin/bash
# 修改配置文件——完成后退出容器
vi conf/defaults.ini

[smtp]
enabled = true
host = Email_server_address:port
user = your_email_address.com
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password = your_password
skip_verify = true
from_address = your_email_address.com
from_name = Grafana

[rendering]
# 下面的ip换成你renderer容器内部的IP
server_url = http://172.17.0.4:8081/render
# 下面的ip换成你grafana容器内部的IP
callback_url = http://172.17.0.3:3000
# render最大请求数
concurrent_render_request_limit = 30
# 重启容器
docker stop grafana_CONTAINER_ID 
docker start grafana_CONTAINER_ID 
3.测试
3.1 检查grafana-image-renderer 是否安装成功:点击任何一个Dashboard 的 Panel title,选择 Share,点击 Direct link rendered image 看看能否生成图片,若能则安装成功.
3.2 在页面添加邮件分组并测试

五、使用 Grafana (简述)

1.添加 Data Sources

特别提醒:因为我们是docker安装的grafana,所以添加 Data Sources 的 IP 要写容器里的IP

2.新建 Dashboard

|
|
|

====================================================================

@羲凡——只为了更好的活着

若对博客中有任何问题,欢迎留言交流

以上是关于Clickhouse 集群监控(Prometheus+Grafana)的主要内容,如果未能解决你的问题,请参考以下文章

Clickhouse 集群监控(Prometheus+Grafana)

Prometheus监控clickhouse服务

#yyds干货盘点#Prometheus 之 Kubernetes 监控

20210810-基于CentOS7/Linux Grafana 集成 Prometheus并实现对ClickHouse监控

使用 Prometheus Operator 监控自定义 kubernetes pod 指标

用于 k8s 多集群的 Prometheus