写点什么

Docker 部署 ClickHouse 监控平台

用户头像
wjchenge
关注
发布于: 2021 年 03 月 06 日
Docker部署ClickHouse监控平台

CentOS安装Docker运行环境

Docker 部署 ClickHouse exporter


Prometheus 官方的 exporter 地址: https://prometheus.io/docs/instrumenting/exporters



详情访问 ClickHouse exporter GitHub 主页地址(按照官方文档并没有配置成功)


去 Docker 镜像库搜索 clickhouse-exporter 相关镜像如下:


下载量最多的镜像显示如下,两年前的镜像


目测该镜像为官方镜像



根据 GitHub 上的代码提交记录一直再更新维护,2 年前的镜像并不能保证系统的稳定性。



我选择的是最新的镜像:


拉取社区用户公开最新版本的镜像


docker pull ekbfh/clickhouse-exporter
复制代码


启动容器


ClickHouse 服务未设置认证信息

docker run -d -p 9116:9116 ekbfh/clickhouse-exporter -scrape_uri=http://clickhouse.service.consul:clickhouse.service.port
复制代码


ClickHouse 服务设置了认证信息

docker run -d -p 9116:9116 -e CLICKHOUSE_USER=clickhouse.service.user -e CLICKHOUSE_PASSWORD=clickhouse.service.password ekbfh/clickhouse-exporter -scrape_uri=http://clickhouse.service.consul:clickhouse.service.port
复制代码


启动容器参数说明:


clickhouse.service.consul : ClickHouse 服务 ip

clickhouse.service.port : ClickHouse 服务端口号

clickhouse.service.user : ClickHouse 访问用户名

clickhouse.service.password : ClickHouse 访问密码


检查服务状态

访问 clickhouse-exporter 容器所在服务的 9116 端口,出现以下界面说明项目启动正常


Docker 部署 Prometheus


Prometheus 官网:https://prometheus.io


官方镜像地址:https://hub.docker.com/r/prom/prometheus

拉取官方的最新版本的镜像

docker pull prom/prometheus
复制代码

获取当前镜像默认的 prometheus.yml 配置文件


启动容器

docker run -d prom/prometheus
复制代码


查看容器是否启动成功

docker ps
复制代码



从容器中复制文件到本地

docker cp e8580b7e074f:/etc/prometheus/prometheus.yml prometheus.yml
复制代码

配置 clickhouse-exporter


clickhouse_exporter 官方 prometheus.yml 配置 demo:

https://github.com/ClickHouse/clickhouse_exporter/blob/master/docker/prometheus/prometheus.yml

global:  scrape_interval:     1s  evaluation_interval: 1s
scrape_configs: - job_name: prometheus static_configs: - targets: ['127.0.0.1:9090']
- job_name: clickhouse static_configs: - targets: ['127.0.0.1:9116']
复制代码


可以直接使用以上的 prometheus.yml 文件或者只需要将 10-12 行的内容粘贴到我们自己的 prometheus.yml 文件中,并修改 targets 的 ip 为 clickhouse_exporter 服务所在的 ip 地址。

重新配置启动容器参数


查询容器 id

docker ps
复制代码

停止容器并删除容器

docker stop 容器iddocker rm 容器id
复制代码

创建 Prometheus 容器的挂载目录

mkdir -p prometheus/data
复制代码

将 prometheus.yml 移动到新创建的 prometheus 目录下,然后在 prometheus 目录的父级目录下执行容器启动命令:

docker run -d -p 9090:9090 -v $PWD/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v $PWD/prometheus/data:/prometheus prom/prometheus
复制代码


查看容器是否启动成功

docker ps
复制代码


容器启动失败



执行以下命令查询全部容器(包括未启动的容器)id

docker ps -a
复制代码


根据容器 id 查询容器启动日志

docker logs 容器id
复制代码



关键信息如下:

level=error ts=2021-03-05T07:23:03.767Z caller=query_logger.go:87 component=activeQueryTracker msg="Error opening query log file" file=/prometheus/queries.active err="open /prometheus/queries.active: permission denied"panic: Unable to create mmap-ed active query log
复制代码


使用 -u 命令指定容器的用户


docker rm 失败容器id
复制代码


docker run -d -p 9090:9090 -v $PWD/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v $PWD/prometheus/data:/prometheus  -u root prom/prometheus
复制代码


启动成功,访问 Prometheus 服务所在 9090 端口查看服务启动和配置情况


通过 status ->targets 和 service-discovery 这两个功能页面可以看到 exporter 的配置情况。

Docker 部署 Grafana


官方教程:https://grafana.com/docs/grafana/latest/installation/docker/

拉取官方的最新版本的镜像

docker pull grafana/grafana
复制代码


启动容器

docker run -d -p 3000:3000 grafana/grafana
复制代码


查看容器是否启动成功

docker ps
复制代码


访问 Grafana 容器所在服务的 3000 端口,出现登录页面说明项目启动正常。


默认账号密码:admin / admin,第一次登录系统强制重置密码按照提示输入新密码即可正常使用。


Grafana 配置 Prometheus 数据源






url 填写 Prometheus 服务的 http 页面访问地址,格式 http://ip:port, 点击 Save & Test 按钮出现 Data source is working 提示信息说明配置成功。


Grafana 配置 clickhouse-exporter 可视化仪表盘


使用官方推荐模板 882




填入仪表盘模板编号 882,点击 load 按钮



可以编辑 name 属性,选择配置的 Prometheus 数据源,点击 Import 按钮。



之后自动跳转到新配置的仪表板页面,效果如下:



用户头像

wjchenge

关注

还未添加个人签名 2018.07.27 加入

还未添加个人简介

评论

发布
暂无评论
Docker部署ClickHouse监控平台