前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >使用elasticsearch_exporter的一些注意事项

使用elasticsearch_exporter的一些注意事项

原创
作者头像
保持热爱奔赴山海
发布2024-11-25 15:00:54
发布2024-11-25 15:00:54
1680
举报
文章被收录于专栏:DevOpsDevOps

最近遇到的一个case,记录下来:

假设有1套ES集群,包括3个节点

192.168.31.181:9200

192.168.31.182:9200

192.168.31.183:9200

如果使用的的监控方法是连接elasticsearch_exporter到单个es节点,采集全部节点的指标 :

即如下写法:

代码语言:txt
复制
./elasticsearch_exporter --es.uri="http://192.168.31.181:9200" --web.listen-address=:9944 --es.timeout=5s --es.all

这种情况下,可能会遇到下面这种情况:

1、192.168.31.181:9200 这个ES的负载太高或者宕机了,elasticsearch_exporter采集到的数据会很少,从 elasticsearch_node_stats_up 这个值是否等于0判断出当前被采集的节点是否异常

2、非192.168.31.181:9200 的其余的ES节点宕机了,从监控指标看不一定能反映出来(例如这个节点上没有任何索引,因此节点宕机也可能不会触发reblance,也就是不会出现集群变黄的情况)

这种情况下,有2个建议的方案:

方案1:给每个es节点都配一个elasticsearch_exporter

代码语言:txt
复制
./elasticsearch_exporter --es.uri="http://192.168.31.181:9200" --web.listen-address=:9944 --es.timeout=5s --es.node="_local"
./elasticsearch_exporter --es.uri="http://192.168.31.182:9200" --web.listen-address=:9945 --es.timeout=5s --es.node="_local"
./elasticsearch_exporter --es.uri="http://192.168.31.183:9200" --web.listen-address=:9946 --es.timeout=5s --es.node="_local"

然后,加一个告警规则: elasticsearch_node_stats_up{} != 1 就触发告警 (具体告警表达式的过滤规则根据实际情况调整)

方案2: 使用blackbox_exporter的tcp_connect探测去监控每个es节点的9200端口

然后,加一个告警规则: probe_success{} == 0 就触发告警 (具体告警表达式的过滤规则根据实际情况调整)

下面简单介绍下方案2的配置方法:

代码语言:txt
复制
假设prometheus和blackbox_exporter等相关的监控组件都部署在 192.168.31.110 上

1 启动blackbox_exporter:
./blackbox_exporter --web.listen-address :19094


2、添加prometheus采集target
# cat prometheus.yml
  - job_name: 'elasticsearch_port'
    scrape_interval: 15s
    scrape_timeout: 5s
    metrics_path: /probe
    params:
      module: [tcp_connect]
    static_configs:
      - targets: ['192.168.31.181:9200','192.168.31.182:9200','192.168.31.183:9200']
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 192.168.31.110:19094
		
	
3、添加告警规则
# cat rules/tcp_port.yml 
groups:
- name: probe_success
  rules:
  - alert: probe_success
    expr: probe_success == 0
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "接口/主机/端口 {{ $labels.instance }}  无法联通"
      description: "请尽快检测"

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档