clickhouse+prometheus+grafana监控部署(docker版本)

859 阅读2分钟

1. 部署docker网络环境

宿主机上新建一个容器网络桥接器,clickhouse 服务、prometheus服务和gragana服务部署在3个独立的容器中并挂在到网络桥接器下面,宿主机上通过web UI访问监控的信息。

image-20220207115629492

新建容器网络桥接器

#新建网络桥接器
docker network create --driver=bridge clickhouse_monitor_test

# 查看本机容器环境的所有网络
docker network ls

#查看桥接器下面有哪些容器
docker network inspect clickhouse_monitor_test

2.准备各容器服务

2.1 clickhouse容器

# 下载clichouse镜像
docker pull yandex/clickhouse-server:latest

#启动容器挂在到网络桥接器下面
docker run -itd --network clickhouse_monitor_test -h "ch01_monitor_test" --name "ch01_monitor_test"  yandex/clickhouse-server:latest /bin/bash

#进入clickhouse容器,安装ping和vim命令
apt-get update
apt-get install -y inetutils-ping
apt install -y vim
apt install -y curl

打开prometheus配置,config.xml文件中 去掉prometheus注释

image-20220207140645804

允许远程连接访问clickhouse服务

image-20220207140915992

重启clickhouse 服务

#重启clickhouse服务
clickhouse restart

# 测试监控指标
curl http://ch01_monitor_test:9363/metrics

看到类似如下的返回

......
# TYPE ClickHouseAsyncMetrics_BlockActiveTime_nbd14 gauge
ClickHouseAsyncMetrics_BlockActiveTime_nbd14 0
# TYPE ClickHouseAsyncMetrics_BlockInFlightOps_nbd2 gauge
ClickHouseAsyncMetrics_BlockInFlightOps_nbd2 0
# TYPE ClickHouseAsyncMetrics_OSThreadsTotal gauge
ClickHouseAsyncMetrics_OSThreadsTotal 680
# TYPE ClickHouseAsyncMetrics_OSGuestTimeCPU0 gauge
ClickHouseAsyncMetrics_OSGuestTimeCPU0 0
# TYPE ClickHouseAsyncMetrics_BlockReadBytes_ram5 gauge
ClickHouseAsyncMetrics_BlockReadBytes_ram5 0
# TYPE ClickHouseAsyncMetrics_OSNiceTime gauge
ClickHouseAsyncMetrics_OSNiceTime 0
# TYPE ClickHouseAsyncMetrics_NetworkSendErrors_ip6tnl0 gauge
ClickHouseAsyncMetrics_NetworkSendErrors_ip6tnl0 0
# TYPE ClickHouseAsyncMetrics_BlockQueueTime_ram13 gauge
ClickHouseAsyncMetrics_BlockQueueTime_ram13 0
# TYPE ClickHouseAsyncMetrics_BlockReadMerges_ram0 gauge
ClickHouseAsyncMetrics_BlockReadMerges_ram0 0
# TYPE ClickHouseAsyncMetrics_jemalloc_retained gauge
ClickHouseAsyncMetrics_jemalloc_retained 46600192
# TYPE ClickHouseAsyncMetrics_Jitter gauge
ClickHouseAsyncMetrics_Jitter 0.001755
# HELP ClickHouseStatusInfo_DictionaryStatus "Dictionary Status."
# TYPE ClickHouseStatusInfo_DictionaryStatus gauge

2.2 Prometheus server容器

新建配置文件prometheus.yml,配置文件中指定clichouse服务地址

touch  prometheus.yml
global:
  scrape_interval:     15s
  evaluation_interval: 15s
 
scrape_configs:
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['localhost:9090']
    
  - job_name: 'clickhouse01'
    static_configs:
    - targets: ['ch01_monitor_test:9363']

Prometheus server 容器挂在到网络桥接器下面

# 启动容器,挂在到clickhouse_monitor_test网络桥接器下面
docker run --name prometheus  -d --network clickhouse_monitor_test   -p  127.0.0.1:9090:9090 -v /Users/sh53014ml/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml  prom/prometheus

打开web 访问 127.0.0.1:9090,找到target界面,可看到配置的监控主机

image-20220207150430434

endpoint为容器的地址和端口,host主机不可以直接访问

2.3 grafana容器

#下载容器镜像
docker pull grafana/grafana

chmod -R  777 /Users/sh53014ml/docker/grafana/
# 挂在到容器网络桥接器下面
docker run -d --network clickhouse_monitor_test  -p 3000:3000 --name=grafana -v /Users/sh53014ml/docker/grafana:/var/lib/grafana grafana/grafana:7.5.3

之后就可以在宿主机浏览器中访问 grafana了 ,默认用户和密码admin

image-20220207151534675

3. 配置grafana中监控的指标

  • 配置prometheus数据源

    prometheus为容器部署方式,和grafana一起挂载在同一容器网络桥接器下面,因此要查看prometheus容器的IP,可以使用如下命令

    #查看桥接器下面有哪些容器
    docker network inspect clickhouse_monitor_test
    

配置参数,主要是URL,看到Data source is working表示连接成功

image-20220207152912805
  • import 配置指标文件(来自第三方开源配置)

    配置来源地址

    grafana.com/grafana/das…

  • 配置完成后的效果

    image-20220207164224940