Grafana ES监控指标

安装监控插件
项目地址:https://github.com/justwatchcom/elasticsearch_exporter
插件下载地址:https://github.com/justwatchcom/elasticsearch_exporter/releases/download/v1.0.4rc1/elasticsearch_exporter-1.0.4rc1.linux-amd64.tar.gz
简单介绍下安装:
[xxx@elk-node1 ~]$ tar zxvf elasticsearch_exporter-1.0.4rc1.linux-amd64.tar.gz
[xxx@elk-node1 ~]$ cd elasticsearch_exporter
[xxx@elk-node1 ~]$ cp elasticsearch_exporter  /usr/local/bin
[xxx@elk-node1 ~]$ /usr/local/bin/elasticsearch_exporter --web.listen-address "0.0.0.0:9109"  --es.uri http://elastic:changeme@localhost:9201
[xxx@elk-node1 ~]$ curl localhost:9109/metrics
12345
配置prometheus
- job_name: 'elasticsearch'
  file_sd_configs:
  - refresh_interval: 1m
    files:
    - ./conf.d/es*.json

123456
配置consul自动发现请参考:我的另一篇博客
指标解析
参考:
https://grafana.com/dashboards/2322
https://yq.aliyun.com/articles/548354
https://blog.csdn.net/u013613428/article/details/78179430

 


指标
解析

 


##搜索和索引性能

 

elasticsearch_indices_search_query_total
查询总数             吞吐量


elasticsearch_indices_search_query_time_seconds
查询总时间        性能


elasticsearch_indices_search_fetch_total
提取总数


elasticsearch_indices_search_fetch_time_seconds
花费在提取上的总时间


##索引请求

 

elasticsearch_indices_indexing_index_total
索引的文件总数


elasticsearch_indices_indexing_index_time_seconds_total
索引文档总时间


elasticsearch_indices_indexing_delete_total
索引的文件删除总数


elasticsearch_indices_indexing_delete_time_seconds_total
索引的文件删除总时间


elasticsearch_indices_refresh_total
索引刷新总数


elasticsearch_indices_refresh_time_seconds_total
刷新指数的总时间


elasticsearch_indices_flush_total
索引刷新总数到磁盘


elasticsearch_indices_flush_time_seconds
将索引刷新到磁盘上的总时间 累计flush时间


##JVM内存和垃圾回收

 

elasticsearch_jvm_gc_collection_seconds_sum
GC run time in seconds垃圾回收时间


elasticsearch_jvm_gc_collection_seconds_count
Count of JVM GC runs垃圾搜集数


elasticsearch_jvm_memory_committed_bytes
JVM memory currently committed by area最大使用内存限制


elasticsearch_jvm_memory_max_bytes
配置的最大jvm值


elasticsearch_jvm_memory_pool_max_bytes
JVM内存最大池数


elasticsearch_jvm_memory_pool_peak_max_bytes
最大的JVM内存峰值


elasticsearch_jvm_memory_pool_peak_used_bytes
池使用的JVM内存峰值


elasticsearch_jvm_memory_pool_used_bytes
目前使用的JVM内存池


elasticsearch_jvm_memory_used_bytes
JVM memory currently used by area 内存使用量


##集群健康和节点可用性

 

elasticsearch_cluster_health_status
集群状态,green( 所有的主分片和副本分片都正常运行)、yellow(所有的主分片都正常运行,但不是所有的副本分片都正常运行)red(有主分片没能正常运行)值为1的即为对应状态


elasticsearch_cluster_health_number_of_data_nodes
node节点的数量


elasticsearch_cluster_health_number_of_in_flight_fetch
正在进行的碎片信息请求的数量


elasticsearch_cluster_health_number_of_nodes
集群内所有的节点


elasticsearch_cluster_health_number_of_pending_tasks
尚未执行的集群级别更改


elasticsearch_cluster_health_initializing_shards
正在初始化的分片数


elasticsearch_cluster_health_unassigned_shards
未分配分片数


elasticsearch_cluster_health_active_primary_shards
活跃的主分片总数


elasticsearch_cluster_health_active_shards
活跃的分片总数(包括复制分片)


elasticsearch_cluster_health_relocating_shards
当前节点正在迁移到其他节点的分片数量,通常为0,集群中有节点新加入或者退出时该值会增加


##资源饱和度

 

elasticsearch_thread_pool_completed_count
线程池操作完成(bulk、index、search、force_merge)


elasticsearch_thread_pool_active_count
线程池线程活动(bulk、index、search、force_merge)


elasticsearch_thread_pool_largest_count
线程池最大线程数(bulk、index、search、force_merge)


elasticsearch_thread_pool_queue_count
线程池中的排队线程数(bulk、index、search、force_merge)


elasticsearch_thread_pool_rejected_count
线程池的被拒绝线程数(bulk、index、search、force_merge)


elasticsearch_indices_fielddata_memory_size_bytes
fielddata缓存的大小(字节)


elasticsearch_indices_fielddata_evictions
来自fielddata缓存的驱逐次数


elasticsearch_indices_filter_cache_evictions
来自过滤器缓存的驱逐次数(仅版本2.x)


elasticsearch_indices_filter_cache_memory_size_bytes
过滤器高速缓存的大小(字节)(仅版本2.x)


elasticsearch_cluster_health_number_of_pending_tasks
待处理任务数


elasticsearch_indices_get_time_seconds

 

elasticsearch_indices_get_missing_total
丢失的文件的GET请求总数


elasticsearch_indices_get_missing_time_seconds
花费在文档丢失的GET请求上的总时间


elasticsearch_indices_get_exists_time_seconds

 

elasticsearch_indices_get_exists_total

 

elasticsearch_indices_get_total

 

#主机级别的系统和网络指标

 

elasticsearch_process_cpu_percent
Percent CPU used by process CPU使用率


elasticsearch_filesystem_data_free_bytes
Free space on block device in bytes 磁盘可用空间


elasticsearch_process_open_files_count
Open file descriptors ES进程打开的文件描述符


elasticsearch_transport_rx_packets_total
Count of packets receivedES节点之间网络入流量


elasticsearch_transport_tx_packets_total
Count of packets sentES节点之间网络出流量


预警rules
groups:
- name: elasticsearchStatsAlert
  rules:
  - alert: Elastic_Cluster_Health_RED
    expr: elasticsearch_cluster_health_status{color="red"}==1
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "Instance {{ $labels.instance }}: not all primary and replica shards are allocated in elasticsearch cluster {{ $labels.cluster }}"
      description: "Instance {{ $labels.instance }}: not all primary and replica shards are allocated in elasticsearch cluster {{ $labels.cluster }}."
  - alert: Elastic_Cluster_Health_Yellow
    expr: elasticsearch_cluster_health_status{color="yellow"}==1
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: " Instance {{ $labels.instance }}: not all primary and replica shards are allocated in elasticsearch cluster {{ $labels.cluster }}"
      description: "Instance {{ $labels.instance }}: not all primary and replica shards are allocated in elasticsearch cluster {{ $labels.cluster }}."
  - alert: Elasticsearch_JVM_Heap_Too_High
    expr: elasticsearch_jvm_memory_used_bytes{area="heap"} / elasticsearch_jvm_memory_max_bytes{area="heap"} > 0.8
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "ElasticSearch node {{ $labels.instance }} heap usage is high "
      description: "The heap in {{ $labels.instance }} is over 80% for 15m."
  - alert: Elasticsearch_health_up
    expr: elasticsearch_cluster_health_up !=1
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: " ElasticSearch node: {{ $labels.instance }} last scrape of the ElasticSearch cluster health failed"                               
      description: "ElasticSearch node: {{ $labels.instance }} last scrape of the ElasticSearch cluster health failed"
  - alert: Elasticsearch_Too_Few_Nodes_Running
    expr: elasticsearch_cluster_health_number_of_nodes < 12
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "There are only {{$value}} < 12 ElasticSearch nodes running "                               
      description: "lasticSearch running on less than 12 nodes(total 14)"
  - alert: Elasticsearch_Count_of_JVM_GC_Runs
    expr: rate(elasticsearch_jvm_gc_collection_seconds_count{}[5m])>5
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "ElasticSearch node {{ $labels.instance }}: Count of JVM GC runs > 5 per sec and has a value of {{ $value }} "
      description: "ElasticSearch node {{ $labels.instance }}: Count of JVM GC runs > 5 per sec and has a value of {{ $value }}"
  - alert: Elasticsearch_GC_Run_Time
    expr: rate(elasticsearch_jvm_gc_collection_seconds_sum[5m])>0.3
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: " ElasticSearch node {{ $labels.instance }}: GC run time in seconds > 0.3 sec and has a value of {{ $value }}"
      description: "ElasticSearch node {{ $labels.instance }}: GC run time in seconds > 0.3 sec and has a value of {{ $value }}"
  - alert: Elasticsearch_json_parse_failures
    expr: elasticsearch_cluster_health_json_parse_failures>0
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: " ElasticSearch node {{ $labels.instance }}: json parse failures > 0 and has a value of {{ $value }}"
      description: "ElasticSearch node {{ $labels.instance }}: json parse failures > 0 and has a value of {{ $value }}"
  - alert: Elasticsearch_breakers_tripped
    expr: rate(elasticsearch_breakers_tripped{}[5m])>0
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: " ElasticSearch node {{ $labels.instance }}: breakers tripped > 0 and has a value of {{ $value }}"
      description: "ElasticSearch node {{ $labels.instance }}: breakers tripped > 0 and has a value of {{ $value }}"
  - alert: Elasticsearch_health_timed_out
    expr: elasticsearch_cluster_health_timed_out>0
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: " ElasticSearch node {{ $labels.instance }}: Number of cluster health checks timed out > 0 and has a value of {{ $value }}"
      description: "ElasticSearch node {{ $labels.instance }}: Number of cluster health checks timed out > 0 and has a value of {{ $value }}"
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
prometheus 配置:
rule_files:
  - /usr/local/prometheus/rules/es*.rules
12
Grafana 画图
模版:链接:https://pan.baidu.com/s/1mAtVhko18gD4LxdSkuCGEg  密码:3mtd

如对你有所帮助 记得点赞呦 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要在Grafana中配置数据源,以便连接到你的监控指标数据。常见的数据源包括Prometheus、InfluxDB、Elasticsearch等。 以下是一般的配置步骤: 1. 登录到Grafana面板,并导航到"Configuration"(配置)选项。 2. 在左侧导航栏中,找到并点击"Data Sources"(数据源)选项。 3. 点击"Add data source"(添加数据源)按钮。 4. 在弹出的窗口中,选择你所使用的数据源类型。比如,如果你使用Prometheus,则选择"Prometheus"。 5. 配置数据源的详细信息,包括名称、URL、访问方式、身份验证等。这些信息将根据你所选择的数据源类型而有所不同。 6. 点击"Save & Test"(保存并测试)按钮以验证数据源的连接。 配置好数据源后,你可以开始创建仪表盘并添加监控指标。以下是一般的创建步骤: 1. 导航到"Create"(创建)选项,并选择"Dashboard"(仪表盘)。 2. 在仪表盘编辑界面中,点击"Add panel"(添加面板)按钮。 3. 选择你所需的图表类型,比如折线图、柱状图、表格等。 4. 在面板的配置选项中,选择你的数据源,并指定要显示的监控指标。 5. 根据需要,设置图表的时间范围、样式、过滤器等。 6. 点击"Apply"(应用)按钮以保存配置。 通过重复上述步骤,你可以创建多个仪表盘和面板来显示不同的监控指标Grafana还提供了丰富的可视化和配置选项,你可以根据自己的需求进行定制和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值