一、操作场景
注意:说明:
注意:如果需要监控的 ElasticSearch 是腾讯云 ElasticSearch Service,推荐使用集成中心 云监控集成,支持一键采集云产品指标。
二、前提条件
Prometheus 实例所在私有网络 VPC 与 ElasticSearch 网络相通。
三、操作步骤
1. 登录 Prometheus 监控服务控制台。
2. 在实例列表中,选择并进入对应的 Prometheus 实例。
3. 在实例详情页,选择数据采集 > 集成中心。
4. 在集成中心找到并单击 ElasticSearch,即会弹出一个安装窗口,在安装页面填写指标采集名称和地址等信息,并单击保存即可。
四、配置说明
| 参数 | 说明 |
| 名称 | 集成名称,命名规范如下:名称具有唯一性。名称需要符合下面的正则:'^a-z0-9?(\\.a-z0-9?)*$'。 |
| 用户名 | ElasticSearch 的用户名称。 |
| 密码 | ElasticSearch 的密码。 |
| 地址 | ElasticSearch 的连接地址。 |
| 标签 | 给指标添加自定义 Label。 |
| Exporter 配置 | 所有节点:勾选表示查询集群中所有节点的统计信息;不勾选表示仅查询连接的节点的统计信息。索引状态:勾选表示查询集群中所有索引的统计信息。索引配置:勾选表示查询集群中所有索引配置的统计信息。分片:勾选表示查询集群中所有索引的统计信息,包括分片级别的统计信息(相当于勾选了索引状态)。快照:勾选表示查询集群快照的统计信息。集群配置:勾选表示查询集群配置的统计信息。 |
五、方式二:自定义安装
注意:说明:
注意:为了方便安装管理 Exporter,推荐使用腾讯云 容器服务 进行统一管理。
六、前提条件
在你执行操作前,请确认已满足以下条件:
·在 Prometheus 实例对应地域及私有网络 VPC 下,创建 腾讯云容器服务,并为集群创建 命名空间。
·在 Prometheus 监控服务控制台,选择并进入对应的 Prometheus 实例,在数据采集 > 集成容器服务中找到对应容器集群完成关联集群操作。详情可参见指引 关联集群。
七、操作步骤
步骤1:部署 ElasticSearch Exporter
1. 登录 容器服务控制台。
2. 在左侧菜单栏中选择集群。
3. 单击需要获取集群访问凭证的集群 ID/名称,进入该集群的管理页面。
4. 使用 Secret 管理 ElasticSearch 连接串。
注意:说明:
注意:ElasticSearch 连接串的格式为 <proto>://<user>:<password>@<host>:<port>,例如 http://admin:pass@localhost:9200。
4.1 选择工作负载 > Deployment,进入 Deployment 页面。
4.2 在页面右上角单击 YAML 创建,创建 YAML 配置,配置说明如下:
使用 Kubernetes 的 Secret 来管理密码并对密码进行加密处理,在启动 ElasticSearch Exporter 的时候直接使用 Secret Key,需要调整对应的 URI,YAML 配置示例如下:
apiVersion: v1kind: Secretmetadata: name: es-secret-test namespace: es-demo type: OpaquestringData: esURI: you-guess #对应 ElasticSearch 的 URI
5. 部署 ElasticSearch Exporter。
在 Deployment 管理页面,单击新建,选择对应的命名空间来进行部署服务。可以通过控制台的方式创建,如下以 YAML 的方式部署 Exporter,YAML 配置示例如下:
apiVersion: apps/v1kind: Deploymentmetadata: labels: k8s-app: es-exporter # 根据业务需要调整成对应的名称 name: es-exporter # 根据业务需要调整成对应的名称 namespace: es-demospec: replicas: 1 selector: matchLabels: k8s-app: es-exporter # 根据业务需要调整成对应的名称 template: metadata: labels: k8s-app: es-exporter # 根据业务需要调整成对应的名称 spec: containers: – env: – name: ES_URI valueFrom: secretKeyRef: name: es-secret-test # 对应上一步中的 Secret 的名称 key: esURI # 对应上一步中的 Secret Key – name: ES_ALL value: "true" image: ccr.ccs.tencentyun.com/rig-agent/es-exporter:1.1.0 imagePullPolicy: IfNotPresent name: es-exporter ports: – containerPort: 9114 name: metric-port securityContext: privileged: false terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst imagePullSecrets: – name: qcloudregistrykey restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30
注意:上述示例通过 ES_ALL 采集了所有 ElasticSearch 的监控项,可以通过对应的参数进行调整,Exporter 更多详细的参数请参见 elasticsearch_exporter。
6. 验证。
6.1 在 Deployment 页面单击上述步骤创建的 Deployment,进入 Deployment 管理页面。
6.2 单击日志页签,可以查看到 Exporter 成功启动并暴露对应的访问地址:
6.3 单击 Pod 管理页签进入 Pod 页面。
6.4 在右侧的操作项下单击远程登录,登录 Pod,在命令行窗口中执行以下 curl 命令对应 Exporter 暴露的地址,可以正常得到对应的 ElasticSearch 指标。如发现未能得到对应的数据,请检查连接串是否正确,具体如下:
curl localhost:9114/metrics
执行结果如下:
步骤2:添加采集任务
1. 登录 Prometheus 监控服务控制台,选择对应 Prometheus 实例进入管理页面。
2. 在数据采集 > 集成容器服务页面选择已经关联的集群,通过数据采集配置 > 新建自定义监控 > YAML 编辑来添加采集配置。
3. 通过服务发现添加 PodMonitors 来定义 Prometheus 抓取任务,YAML 配置示例如下:
apiVersion: monitoring.coreos.com/v1kind: PodMonitormetadata: name: es-exporter # 填写一个唯一名称 namespace: cm-prometheus # 按量实例: 集群的 namespace; 包年包月实例(已停止售卖): namespace 固定,不要修改spec: namespaceSelector: matchNames: – es-demo podMetricsEndpoints: – interval: 30s path: /metrics port: metric-port selector: matchLabels: k8s-app: es-exporter
八、前提条件
Prometheus 实例已绑定 Grafana 实例。
九、操作步骤
1. 登录 Prometheus 监控服务控制台,选择对应 Prometheus 实例进入管理页面。
2. 选择数据采集 > 集成中心,进入集成中心页面。找到 ElasticSearch 监控,选择 Dashboard > Dashboard 操作 > Dashboard 安装/升级,单击安装/升级,安装对应的 Grafana Dashboard。
3. 选择查看已集成,在已集成列表中单击 Grafana 图标即可自动打开 ElasticSearch 监控大盘,查看实例相关的监控数据:
十、配置告警
1. 登录 Prometheus 监控服务控制台,选择对应 Prometheus 实例进入管理页面。
2. 在告警管理 > 告警配置 > 告警策略页面,可以添加相应的告警策略,详情请参见 新建告警策略。