环境准备
首选,你需要一个kubernetes环境。
然后,在kubernetes环境上搭建prometheus和grafana。
详情见如下三篇文章
部署depolement
depolement.yaml
1 | apiVersion: apps/v1 |
如果你有多个ch,那么每个ch需要对应一个exporter,文件中的name需要修改。
如下:
1 | apiVersion: apps/v1 |
暴露服务
service.yaml
1 |
|
主要是通过clusterIp的方式暴露服务,当时可以选择nodePort,弊端是
- 安全组不允许
- 需要为每个服务另外开启一个端口,不方便
因此采用ClusterIp的方式暴露,因为prometheus也是部署在同一个kubernetes环境,可以通过FQDN的形式访问。
注意,服务的selector需要与deployment中的对应。
如果需要对用的是clickhouse-exporter-2,service需要改为
service.yaml
1 |
|
那么FQDN的方式是通过clickhouse-exporter-1.clickhouse-exporter.svc.cluster.local:9116的方式访问。
service name.name space.svc.cluster.local:port
prometheus的配置增加target
1 | - job_name: 'ch-live' |
配置grafana
1 | { |