基於clickhouse-exporter的ClickHouse監控搭建

本文是想讓快速搭建這一套監控組件,讓大家看到最終效果,所以各個組件均採用docker的方式啓動,其實使用docker-compose會更快,單考慮到熟悉成本,以及個組件的關係,本文分組件一一進行說明並啓動,最後顯示效果。

編譯構建clickhouse-exporter鏡像

clickhouse_exporter組件是Percona-Lab提供的,原理是依賴clickhouse自身完善的指標系統表實現的,本質上就是去查詢了clickhouse的system.metrics等系統表獲取到所需的信息,所以源碼很簡單,一部分是查詢系統表構,另一部分就是構造prometheus數據格式,有興趣可以自行看下源碼。

言歸正傳,首先就是要下載源碼,通過自帶的Dockerfile構建即可,

[root@k8s-master test]# git clone https://github.com/Percona-Lab/clickhouse_exporter.git
[root@k8s-master clickhouse_exporter]# cd clickhouse_exporter
[root@k8s-master clickhouse_exporter]# docker build -t xiedeyantu/clickhouse_exporter .

這裏注意下,如果你的系統centos,可能會由於docker版本比較低出現以下錯誤

[root@k8s-master clickhouse_exporter]# docker build -t xiedeyantu/clickhouse_exporter .
Sending build context to Docker daemon 6.638 MB
Step 1/10 : FROM golang:1.11 AS BUILD
Error parsing reference: "golang:1.11 AS BUILD" is not a valid repository/tag: invalid reference format

具體升級方法參考:docker版本升級

[root@k8s-master clickhouse_exporter]# docker -v
Docker version 19.03.11, build 42e35e61f3

由於go編譯需要依賴一些golang.org的包,所以網絡受限的可以直接使用f1yegor/clickhouse-exporter鏡像

啓動clickhouse-server

docker run -d \
--name clickhouse \
--hostname clickhouse \
-p 8123:8123 \
yandex/clickhouse-server:20.4.4.18

確認clickhouse正常啓動即可

啓動clickhouse-exporter

clickhouse-exporter需要配置clickhouse的ip和port,對應參數爲scrape_uri,使用docker命令查詢

[root@k8s-master clickhouse_exporter]# docker inspect -f='{{.NetworkSettings.IPAddress}} {{.Config.Hostname}}' $(sudo docker ps -a -q)
172.17.0.2 clickhouse

創建clickhouse-exporter docker實例

docker run -d \
--name clickhouse-exporter \
--hostname clickhouse-exporter \
-p 9116:9116 \
f1yegor/clickhouse-exporter \
-scrape_uri=http://172.17.0.2:8123/

查看metrics

curl http://192.168.80.139:9116/metrics

# HELP clickhouse_arena_alloc_bytes_total Number of ArenaAllocBytes total processed
# TYPE clickhouse_arena_alloc_bytes_total counter
clickhouse_arena_alloc_bytes_total 4096
# HELP clickhouse_arena_alloc_chunks_total Number of ArenaAllocChunks total processed
# TYPE clickhouse_arena_alloc_chunks_total counter
clickhouse_arena_alloc_chunks_total 1
# HELP clickhouse_background_buffer_flush_schedule_pool_task Number of BackgroundBufferFlushSchedulePoolTask currently processed
# TYPE clickhouse_background_buffer_flush_schedule_pool_task gauge
......

啓動prometheus

首先要配置prometheus的targets,讓其能知道在哪個target拉取,配置文件如下,其中172.17.0.3是同樣方法取到的clickhouse-exporter的ip

global:
  scrape_interval:     15s
  evaluation_interval: 15s
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'clickhouse_exporter'
    scrape_interval: 5s
    static_configs:
    - targets: ['172.17.0.3:9116']

啓動prometheus docker實例

docker run -d \
  --name prometheus \
  -p 9090:9090 \
  -v /opt/monitor/prometheus.yml:/etc/prometheus/prometheus.yml \
  prom/prometheus

瀏覽器打開http://192.168.80.139:9090/targets

在這裏插入圖片描述

可見clickhouse_exporter可正常拉取到

啓動grafana

docker run -d \
  -p 3000:3000 \
  --name=grafana \
  grafana/grafana

登陸grafana,賬號密碼是admin/admin

配置grafana數據源,查詢prometheus的ip地址(同上)

在這裏插入圖片描述

點擊Data & Test,顯示working即爲成功

在這裏插入圖片描述

添加dashboard,通過import方式,直接使用882模板

在這裏插入圖片描述

選則Prometheus數據源

在這裏插入圖片描述

最後即可看到監控dashboard

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章