环境准备
首选,你需要一个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  | {  |