Clickhouse监控方案

Grafana+prometheus 监控

1. 解压prometheus压缩包

# 解压
tar -zxvf prometheus-2.45.4.linux-amd64.tar.gz 

# 改名
 mv prometheus-2.45.4.linux-amd64 prometheus
 mv prometheus /opt/module


 cd /opt/module

2. 修改配置文件

# my global config
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.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
     # 监控作业的名称 

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    # 表示静态目标配置,就是固定从某个 target 拉取数据
    # 默认方案为 HTTP
    static_configs:
      - targets: ["localhost:9019"]



# 添加如下 clickhouse 监控
  - job_name: 'clickhouse'
    static_configs:
    - targets: ['10.10.204.16:9363'] 



1、global 配置块:控制 Prometheus 服务器的全局配置

➢ scrape_interval:配置拉取数据的时间间隔,默认为 1 分钟。

➢ evaluation_interval:规则验证(生成 alert)的时间间隔,默认为 1 分钟。

2、rule_files 配置块:规则配置文件

3、scrape_configs 配置块:配置采集目标相关, prometheus 监视的目标。Prometheus 自身的运行信息可以通过 HTTP 访问,所以 Prometheus 可以监控自己的运行数据

➢ job_name:监控作业的名称

➢ static_configs:表示静态目标配置,就是固定从某个 target 拉取数据

➢ targets :指定监控的目标 ,其实就是从哪儿拉取数据 。

3. 启动prometheus

nohup ./prometheus --config.file=prometheus.yml --web.listen-address="0.0.0.0:9019" > ./prometheus.log 2>&1 &

--web.listen-address="0.0.0.0:9019"这个可以让任何IP都可以访问9019端口

打开web端:http://10.10.204.16:9363/metrics

可以看到以下供Prometheus采集用的数据:

nohup ./prometheus --config.file=prometheus.yml --web.listen-address="0.0.0.0:9019" > ./prometheus.log 2>&1 &

访问 webUI 页面

http://10.10.204.16:9019

在Status-Targets中可以看到配置的采集目标:

4. 安装Grafana

Grafana:https://grafana.com/grafana/download

yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.4.2-1.x86_64.rpm

可执行文件在cd /usr/sbin/目录下,配置文件在/etc/grafana下

  1. To start the service, run the following commands:
systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server


http://10.10.204.16:3000
#打不开网页,换个浏览器就打开了。。kao

5. 添加数据源

PMM监控安装

监控 ClickHouse 集群环境通常包括以下几个步骤:

  1. 安装 PMM Server
  2. 安装 PMM Client
  3. 配置 ClickHouse 以支持监控
  4. 连接 ClickHouse 到 PMM Server
  5. 查看和分析监控数据

1. 安装 PMM Server

Server端

docker pull percona/pmm-server

docker create --volume /docker --name pmm-data percona/pmm-server:latest bash

docker run --detach --restart always --publish 443:443 --volumes-from pmm-data --name pmm-server percona/pmm-server:latest

a. 第一步:创建数据容器

docker create --volume /docker --name pmm-data percona/pmm-server:latest bash

这个命令执行了以下操作:

  • docker create: 创建一个新的 Docker 容器,但不启动它。create 用于设置容器,但需要另外使用 start 命令来运行。
  • --volume /docker: 在容器内创建一个名为 /docker 的卷。这是一个数据卷,用于存储 PMM 服务器的数据,使得数据可以持久化存储,即使容器被删除,数据仍然可以保留。
  • --name pmm-data: 为这个容器设置一个名称 pmm-data,这样你可以轻松地引用它。
  • percona/pmm-server:latest: 指定使用的 Docker 镜像,这里使用的是 Percona 的 PMM 服务器镜像的最新版本。
  • bash: 这是容器启动时要运行的主命令。在这个情况下,命令实际上并不重要,因为这个容器的目的是仅仅用来持久化数据存储,而不是用来运行 PMM 服务。

b. 第二步:运行 PMM 服务器容器

docker run --detach --restart always --publish 443:443 --volumes-from pmm-data --name pmm-server percona/pmm-server:latest

这个命令执行了以下操作:

  • docker run: 创建并启动一个 Docker 容器。
  • --detach: 以分离模式运行容器,这意味着 Docker 会在后台运行这个容器。
  • --restart always: 设置容器的重启策略为总是重启。这确保了即使 Docker 守护进程重启或容器退出,容器会自动重启。
  • --publish 443:443: 将容器的 443 端口映射到宿主机的 443 端口。PMM 服务器使用 HTTPS,这通常使用 443 端口,这个映射允许从宿主机外部访问 PMM 服务器。
  • --volumes-from pmm-data: 这个选项告诉 Docker 从先前创建的 pmm-data 容器中挂载卷。这样,PMM 服务器的所有数据都将存储在 pmm-data 容器指定的卷中,确保数据的持久化。
  • --name pmm-server: 为这个容器设置一个名称 pmm-server。
  • percona/pmm-server:latest: 使用 Percona 的 PMM 服务器镜像的最新版本

被监控节点

wget https://downloads.percona.com/downloads/pmm2/2.41.0/binary/tarball/pmm2-client-2.41.0.tar.gz

2. 安装 PMM Client

a. 二进制安装

tar -xvf pmm2-client-2.41.0.tar.gz -C /usr/local/

cd /usr/local/pmm2-client-2.41.0

编译安装

export PMM_DIR=/usr/local/percona/pmm2

echo $PMM_DIR

./install_tarball

过程:

[root@localhost pmm2-client-2.41.0]# export PMM_DIR=/usr/local/percona/pmm2
[root@localhost pmm2-client-2.41.0]# echo $PMM_DIR
/usr/local/percona/pmm2
[root@localhost pmm2-client-2.41.0]# ./install_tarball 
Installing into /usr/local/percona/pmm2...
[root@localhost pmm2-client-2.41.0]# 

PMM Client的安装路径在/usr/local/percona/pmm2,目录结构如下:

[root@localhost pmm2-client-2.41.0]# cd /usr/local/percona/pmm2/
[root@localhost pmm2]# ll
total 0
drwxr-xr-x 2 root root 68 Apr 24 10:39 bin
drwxr-xr-x 4 root root 54 Apr 24 10:39 collectors
drwxr-xr-x 2 root root 28 Apr 24 10:39 config
drwxr-xr-x 2 root root 208 Apr 24 10:39 exporters
drwxr-xr-x 2 root root 95 Apr 24 10:39 tools
[root@localhost pmm2]# 

#添加环境变量
[root@localhost pmm2]# vi /etc/profile
export PMM_DIR=/usr/local/percona/pmm2
export PATH=$PATH:$PMM_DIR/bin
[root@localhost pmm2]# source /etc/profile
[root@localhost pmm2]# 
[Unit]
Description=pmm-agent
After=time-sync.target network.target

[Service]
Type=simple
ExecStart=/usr/local/percona/pmm2/bin/pmm-agent --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml
Restart=always
RestartSec=2s
StandardError=file:/var/log/pmm-agent.log

[Install]
WantedBy=multi-user.target



##
[root@localhost ~]# cd /usr/lib/systemd/system
[root@localhost system]# vi pmm-agent.service
[root@localhost system]# cat pmm-agent.service 
[Unit]
Description=pmm-agent
After=time-sync.target network.target

[Service]
Type=simple
ExecStart=/usr/local/percona/pmm2/bin/pmm-agent --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml
Restart=always
RestartSec=2s
StandardError=file:/var/log/pmm-agent.log

[Install]
WantedBy=multi-user.target
[root@localhost system]# 
[root@localhost system]# 
[root@localhost system]# 
[root@localhost system]# 
[root@localhost system]#  systemctl daemon-reload
[root@localhost system]# 
[root@localhost system]# 
[root@localhost system]# 
[root@localhost system]# systemctl start pmm-agent
[root@localhost system]# systemctl status pmm-agent
● pmm-agent.service - pmm-agent
   Loaded: loaded (/usr/lib/systemd/system/pmm-agent.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2024-04-24 13:47:50 CST; 6s ago
 Main PID: 2606302 (pmm-agent)
    Tasks: 8 (limit: 75239)
   Memory: 39.1M
   CGroup: /system.slice/pmm-agent.service
           └─2606302 /usr/local/percona/pmm2/bin/pmm-agent --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml

Apr 24 13:47:50 localhost.localdomain systemd[1]: Started pmm-agent.
[root@localhost system]# 
[root@localhost system]# 

至此,PMM Client安装完毕。

b. rpm包安装

[root@ceelake01 soft]# rpm -ivh pmm2-client-2.41.0-6.el8.x86_64.rpm
warning: pmm2-client-2.41.0-6.el8.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:pmm2-client-2.41.0-6.el8         ################################# [100%]
[root@ceelake01 soft]# systemctl status pmm-agent
● pmm-agent.service - pmm-agent
   Loaded: loaded (/usr/lib/systemd/system/pmm-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2024-04-26 09:30:42 EET; 1min 15s ago
 Main PID: 184845 (pmm-agent)
   CGroup: /system.slice/pmm-agent.service
           └─184845 /usr/sbin/pmm-agent --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml

Apr 26 09:30:42 ceelake01 pmm-agent[184845]: time="2024-04-26T09:30:42.657+02:00" level=info msg="Using /usr/local/percona/p...t=main
Apr 26 09:30:42 ceelake01 pmm-agent[184845]: time="2024-04-26T09:30:42.657+02:00" level=info msg="Using /usr/local/percona/p...t=main
Apr 26 09:30:42 ceelake01 pmm-agent[184845]: time="2024-04-26T09:30:42.657+02:00" level=info msg="Using /usr/local/percona/p...t=main
Apr 26 09:30:42 ceelake01 pmm-agent[184845]: time="2024-04-26T09:30:42.657+02:00" level=info msg="Using /usr/local/percona/p...t=main
Apr 26 09:30:42 ceelake01 pmm-agent[184845]: time="2024-04-26T09:30:42.657+02:00" level=info msg="Runner capacity set to 32....runner
Apr 26 09:30:42 ceelake01 pmm-agent[184845]: time="2024-04-26T09:30:42.657+02:00" level=info msg="Window check connection ti...ur(s)"
Apr 26 09:30:42 ceelake01 pmm-agent[184845]: time="2024-04-26T09:30:42.657+02:00" level=info msg=Starting... component=client
Apr 26 09:30:42 ceelake01 pmm-agent[184845]: time="2024-04-26T09:30:42.657+02:00" level=error msg="PMM Server address is not...client
Apr 26 09:30:42 ceelake01 pmm-agent[184845]: time="2024-04-26T09:30:42.658+02:00" level=info msg="Starting local API server ...r/JSON
Apr 26 09:30:42 ceelake01 pmm-agent[184845]: time="2024-04-26T09:30:42.659+02:00" level=info msg=Started. component=local-server/JSON
Hint: Some lines were ellipsized, use -l to show in full.
[root@ceelake01 soft]#
[root@ceelake01 soft]#

完成PMM Client安装后,需要做的事情有:

  1. 向PMM服务器注册节点;
  2. 根据类型配置和添加业务。

3. 配置 ClickHouse 以支持监控

9363端口开启

4. 连接 ClickHouse 到 PMM Server

a. 数据源1:ClickHouse-metrics对接PMM

ⅰ. 配置 PMM 客户端以连接到 PMM 服务器

pmm-admin config --server-insecure-tls --server-url=https://admin:admin@172.16.171.31:443

被监控机执行,此处URL是PMM服务端

###结果##
[root@localhost system]# pmm-admin config --server-insecure-tls --server-url=https://admin:admin@172.16.171.31:443
Checking local pmm-agent status...
pmm-agent is running.
Registering pmm-agent on PMM Server...
Registered.
Configuration file /usr/local/percona/pmm2/config/pmm-agent.yaml updated.
Reloading pmm-agent configuration...
Configuration reloaded.
Checking local pmm-agent status...
pmm-agent is running.
[root@localhost system]# 
[root@localhost system]# pmm-admin status
Agent ID : /agent_id/da142ba5-31df-4c30-a753-7e5abae7709d
Node ID  : /node_id/d6c3e869-991d-4770-9e3a-c341b5ba21b8
Node name: localhost.localdomain

PMM Server:
        URL    : https://172.16.171.31:443/
        Version: 2.41.2

PMM Client:
        Connected        : true
        Time drift       : 140.753µs
        Latency          : 341.281µs
        Connection uptime: 100
        pmm-admin version: 2.41.0
        pmm-agent version: 2.41.0
Agents:
        /agent_id/ca0923f9-7b82-4387-9ab1-404f9abf2d96 vmagent Running 42000
        /agent_id/db011717-dbd7-436e-9559-df0a49a60ebd node_exporter Running 42001

ⅱ. 添加外部无服务器监控

一个是数据库的,一个是代理chproxy的

节点1: 

pmm-admin add external-serverless --external-name=clickhouse-172-16-171-35 --host=172.16.171.35 --listen-port=9363 --metrics-path=/metrics --scheme=http

pmm-admin add external-serverless --external-name=chproxy-172-16-171-35 --host=172.16.171.35 --listen-port=9090 --metrics-path=/metrics --scheme=http

(删除 pmm-admin remove external choproxy-172-16-171-36)

节点2: 

pmm-admin add external-serverless --external-name=clickhouse-172-16-171-35 --host=172.16.171.35 --listen-port=9363 --metrics-path=/metrics --scheme=http

pmm-admin add external-serverless --external-name=chproxy-172-16-171-36 --host=172.16.171.36 --listen-port=9090 --metrics-path=/metrics --scheme=http


[root@ceelake01 soft]# pmm-admin add external-serverless --external-name=chproxy-172-16-171-35 --host=172.16.171.35 --listen-port=9090 --metrics-path=/metrics  --scheme=http
External Service added.
Service ID  : /service_id/b79973f3-78f6-42d4-9495-49423ab2eb79
Service name: chproxy-172-16-171-35
Group       : external

https://172.16.171.31/prometheus/targets? (服务端IP) 就可以看到上面接入的数据源

b. ClickHouse作为数据源对接PMM

PMM界面操作:PMM 可以直接通过配置(native|http)接口直接访问ClickHouse作为数据源

界面元素 Data sources→Add data source→ClickHouse配置数据源名称访问地址和用户名密码

端口9000

设置好数据源之后可以看到自带的三个关于clickhouse的dashboard ,直接import就行了。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值