如何将opensearch prometheus exporter集成至Kubernetes/helm
Kubernetes环境集成方案
这个OpenSearch Prometheus监控导出插件完全可以在Kubernetes集群中落地,目前有两种成熟的集成路径可选:
- 内置插件模式
如果你不想额外部署独立组件,可以直接把插件安装到现有OpenSearch集群的每个节点上:要么在构建OpenSearch业务镜像时提前把对应版本的插件打包进去,要么在StatefulSet的容器启动命令中加入插件安装指令。插件安装完成后会直接在OpenSearch服务的_prometheus/metrics路径暴露所有监控指标,你只需要给OpenSearch对应的Service/Pod添加Prometheus抓取注解,或者在使用Prometheus Operator的场景下创建对应的ServiceMonitor资源,就能完成指标采集。这种方案没有额外的资源开销,是生产环境最常用的部署方式。
需要注意插件版本必须和运行的OpenSearch版本严格匹配,否则会出现插件加载失败、节点启动报错的问题。 - 独立部署模式
如果你不想侵入现有OpenSearch的运行配置,可以把exporter作为独立工作负载部署:要么作为Sidecar容器和OpenSearch节点运行在同一个Pod中,要么单独创建Deployment部署一组exporter实例,配置exporter连接到OpenSearch集群的内部服务地址即可。这种方案升级插件时不需要重启OpenSearch进程,对现有业务的影响更小。
Helm部署支持说明
这个插件本身没有单独发布官方Helm Chart,但完全可以通过Helm实现自动化部署,不需要手动编写全量K8s资源:
- 对接现有OpenSearch Helm Chart配置
不管是官方维护的OpenSearch Helm Chart,还是社区广泛使用的第三方OpenSearch Chart,都原生支持自定义插件安装列表、开启监控采集配置。你只需要在Helm的values.yaml中添加对应配置,执行helm upgrade命令即可一键完成插件安装和监控配置,不需要改动其他业务参数。
核心配置参考示例:plugins: installList: - "opensearch-prometheus-exporter" # 替换为匹配集群版本的插件包标识 metrics: enabled: true serviceMonitor: enabled: true # 部署了Prometheus Operator时开启即可自动配置采集规则 scrapeInterval: 30s - 自定义轻量Chart部署独立实例
如果选择独立部署exporter的模式,你只需要编写极简的自定义Helm模板,包含Deployment、Service、ServiceMonitor三类核心资源即可,总配置代码量不超过50行,配置好OpenSearch连接地址、认证凭据(集群开启安全插件时需要)就能正常运行。
注意事项:如果你的OpenSearch集群开启了安全认证,需要给exporter配置拥有集群状态查询、索引统计读取权限的账号,否则会出现部分监控指标缺失的问题。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

