文章目录

  • 1.数据的搜集目的地维度可以有两个
  • 2. 监控在一个集群内的配置也可以有多个维度
  • 3. 监控的实现方式也有多种
  • 4. kibana配置监控
    • 4.1 监控相关的通用配置
    • 4.2 kibana的monitor-data相关
    • 4.3 极简集群搭建
    • 4.4 开启集群监控功能
      • 4.4.1 通过es开启集群监控
      • 4.4.2 通过kibana开启集群监控
    • 4.5 kibana monitor-data的设置
    • 4.6 简单回顾
  • 5. logstash monitor-data设置
    • 5.1 监控相关的配置
    • 5.2 logstash使用metrict作为监控
  • 6. elasticsearch 的配置
    • 6.1 相关配置概览
    • 6.2 xpack.monitoring.enabled
      • 6.2.1 当前节点为非master节点
      • 6.2.2 当前节点为master节点
    • 6.3 xpack.monitoring.elasticsearch.collection.enabled

这里主要是学习一下es的monitor机制
首先是整个链路的数据都要监控的包括filebeat,logstash,kibana,es,都可以收集到es集群中去。
借用es官方的一个图

1.数据的搜集目的地维度可以有两个

  1. 监控数据放到原来的集群,和存放业务数据的集群是同一个集群
  2. 监控数据放到新的集群,监控数据单独存放

2. 监控在一个集群内的配置也可以有多个维度

  1. 有些配置是针对整个集群的配置
  2. 有些配置只是针对es 或者kibana,或者logstash,或者kibana

3. 监控的实现方式也有多种

  1. 使用export
  2. 使用metricbeat

4. kibana配置监控

因为kibana是用来显示所有的监控数据的,他的监控数据也可以分发到任意的其他集群。
kibana是使用node-server将数据发送到了对应的es当中,不像es,logstash可以使用exporter,metricbeat多种收集方式,

4.1 监控相关的通用配置

xpack.monitoring.enabled: true  打开监控的features,如果设置为false,负责监控的进程的进程就不会启动,
包括产生kibana的监控数据,包括去es中拉取对应的其他的比如es,logstash,filebeat等的监控数据。下面3个配置的是kibana监控数据将发到那个es集群
xpack.monitoring.elasticsearch.hosts
xpack.monitoring.elasticsearch.username
xpack.monitoring.elasticsearch.password

4.2 kibana的monitor-data相关

1. xpack.monitoring.kibana.collection.enabled: true 这个是设置收集kibana monitor data数据到es当中
2. xpack.monitoring.kibana.collection.interval: 监控数据收集的间隔ms

4.3 极简集群搭建

es的配置为

cluster.name: dev-log
node.name: ES01
bootstrap.system_call_filter: false
network.host: 10.76.0.98
http.port: 12200
transport.port: 12300
discovery.seed_hosts: ["10.76.0.98:12300","10.76.3.145:12300","10.76.0.129:12300"]
cluster.initial_master_nodes: ["ES01", "ES02","ES03"]

此时的kibana配置

server.name: ch-dev
server.port: 45601
server.host: 10.76.0.129
elasticsearch.hosts: ["http://10.76.0.98:12200"]

此时可以看到没有任何关于监控的显式设置,监控相关都是使用的默认设置
启动es之后,直接打开kibna,如果打开监控对应的菜单,显示

We checked the cluster defaults settings and found
that xpack.monitoring.collection.enabled is set to false
Would you like to turn it on?

说明默认情况下数据并不能成功的收集到集群当中去。还是需要开启的。

4.4 开启集群监控功能

  通过上面的配置不能进行监控,并不是kibana的设置有问题,而是整个集群的监控功能没有开启,xpack.monitoring.collection.enabled 配置就是针对整个集群的配置,这个配置针对的是es,告诉es是否收集自己的monitor-data,是否接收由kibana,logstash,filebeat等发送过来的监控数据。这个可以直接通过api在集群中进行动态的设置。也可以在每个es节点中进行设置。

4.4.1 通过es开启集群监控

如果在每个es节点中都设置

xpack.monitoring.collection.enabled: true

重启整个集群,kibana就不会有这个提示了,而且可以直接显示出来监控面板
同时还有kibana的监控菜单里面也有kibana的monitor-data

4.4.2 通过kibana开启集群监控

在kibana的提示下开启监控:
这个时候是使用集群的_cluster/setting api进行设置的
点击完kibana的确认按钮之后可以查询接口查询到cluster已经有了这样的设置。

GET _cluster/settings  只能显示动态配置的东西{"persistent" : {"xpack" : {"monitoring" : {"collection" : {"enabled" : "true"}}}},"transient" : { }
}

4.5 kibana monitor-data的设置

如果将

xpack.monitoring.kibana.collection.enabled: false

添加到kibana的配置当中,那么kibana的数据就从监控面板中消失了,但是es的数据还是有的

如果再添加一个设置

xpack.monitoring.enabled: false

kibana服务还可以访问,但是监控的菜单直接消失了,就是所有的监控相关的功能都不再提供了,不会去es中拉取相关的数据了。
所以xpack.monitoring.enabled 控制的是kibana中提供监控展示等服务模块是否还工作。

4.6 简单回顾

在进一步学习之前,通过对kibana的监控配置简单做一个回顾
集群做了很多的默认配置,使监控变得更加简单,但是默认情况下是无法进行监控的,需要通过

xpack.monitoring.collection.enabled: true

来开启集群的设置,然后kibana通过开启

xpack.monitoring.enabled: true  打开监控的features,如果设置为false,负责监控的进程的进程就不会启动,包括产生kibana的监控数据,包括去es中拉取对应的其他的比如es,logstash,filebeat等的监控数据。xpack.monitoring.elasticsearch.hosts  默认使用kibana连接的集群,可以单独配置
xpack.monitoring.elasticsearch.username  在集群开启security配置的时候才需要这个
xpack.monitoring.elasticsearch.password  同上
xpack.monitoring.kibana.collection.enabled: true 这个是设置收集kibana monitor-data数据到es当中,
xpack.monitoring.kibana.collection.interval: 10000  (10s)

5. logstash monitor-data设置

logstash相对于es和kibana需要设置的东西更少,因为在整个监控链路中,es不仅作为被监控对象,同时作为监控数据的存储库,kibana不仅作为被监控对象,而且是监控数据的展示终端,需要有专门的进程去对监控数据做聚合等查询,而logstash则仅仅是作为被监控对象存在。

5.1 监控相关的配置

  1. 首先要要保证集群的监控功能开启了,即
xpack.monitoring.collection.enabled: true

在es节点或者_cluster/setting当中进行设置了

  1. logstash自身的配置
    在config/logstash.yml中配置
xpack.monitoring.enabled: true # 默认配置
xpack.monitoring.elasticsearch.hosts: ["http://es-prod-node-1:9200", "http://es-prod-node-2:9200"]
xpack.monitoring.elasticsearch.username: "logstash_system"
xpack.monitoring.elasticsearch.password: "changeme"
xpack.monitoring.collection.interval: 10000

可以看到,直接通过xpack.monitoring.enabled控制了是否收集logstash的数据。
不像kibana中单独使用了xpack.monitoring.kibana.collection.enabled来进行kibana数据是否搜集的配置,同样在es中也有一个类似的这样的配置

5.2 logstash使用metrict作为监控

在5.1中logstash使用的监控默认的是internal的collection收集方式
可以使用metricbeat来进行收集,应为使用metricbeat是单独部署的方式,后面再看

6. elasticsearch 的配置

es身兼的角色比较多,所以相关的配置也更多。

6.1 相关配置概览

首先,集群级别的配置

xpack.monitoring.collection.enabled: true

可以通过cluster-setting api进行设置,也可以通过在es的配置文件中进行设置

接下来是es的三个相关设置

xpack.monitoring.enabled: true 开启当前node的monitor设置
xpack.monitoring.elasticsearch.collection.enabled: true 这个设置了是否收集es相关的data
xpack.monitoring.collection.interval: 10000

xpack.monitoring.collection.enabled: true的作用自不必多说,下面主要说一下其他两个的作用

6.2 xpack.monitoring.enabled

当我在es的节点上设置

xpack.monitoring.enabled: false

出现了下面两种情况

6.2.1 当前节点为非master节点

只要这个节点不是master节点话,kibana上的监控都比较正常,有kibana的数据,也有es的数据,但是对应的那个设置为false的es节点的数据没有了。
这个也很自然,这个配置理论上至少可以达到禁止当前节点的monitor的效果。

6.2.2 当前节点为master节点

如果master节点设置了

xpack.monitoring.enabled: false

打开kibana的监控菜单,会看到这样的信息

You need to make some adjustments
To run monitoring please perform the following stepsWe checked the nodeId: ADi2c-NmTnWhTmb2dDlCeA settings and found that xpack.monitoring.enabled is set to false set, which disables monitoring. Removing the xpack.monitoring.enabled: false setting from your configuration will put the default into effect and enable Monitoring.


也就是说这个应该是以master的为主,在es集群内生效,可能会导致kibana拿不到数据。

6.3 xpack.monitoring.elasticsearch.collection.enabled

这个配置的含义是比较直观的,经过测试,确实是这样,他的作用类似

xpack.monitoring.kibana.collection.enabled: true 这个是设置收集kibana monitor-data数据到es当中,

就是设置了当前node的数据是否收集到es当中
在实际测试中当master节点设置了false的话,kibana的显示也是不正常的,监控菜单打不开,

但是这个时候kibana的数据实际上是能够进入es的,因为在调整为true后发现es对应节点在过去的一段时间里面是没有数据的,但是kibana的数据是有的,所以是展示有一些问题,但是功能上和描述相差不大。

01. elastcsearch-monitor (es 监控)相关推荐

  1. 利用vSAN Performance Monitor可视化监控vSAN性能指标

    利用vSAN Performance Monitor可视化监控vSAN性能指标 https://blog.51cto.com/4674157/2608479 说明: vSAN Performance ...

  2. Chrome Console 小技巧之 01 如何启动XHR监控网络请求

    01 如何启动XHR监控网络请求 打开控制台设置并启用Log XMLHttpRequests以在发生时将所有请求记录到控制台XMLHttpRequest.

  3. (01)OpenGL es中只在指定区域渲染view

    效果 图1 右侧显示view的内容 主要代码 (1)main_activity.java的内容 import androidx.appcompat.app.AppCompatActivity; imp ...

  4. refog employee monitor 员工监控软件,求高手为民除害

    refog employee monitor http://www.refog.com/cn/employee-computer-monitoring-software.html

  5. 自动驾驶 Apollo 源码分析系列,系统监控篇(二):Monitor模块如何监控硬件

    前面的文章有分析,Monitor 模块监控的内容分为 Hardware 和 Software 两位. 本篇分析硬件监控部分. 首先,可以观察一下 Apollo 官方文档给出的硬件连接图. 跟自动驾驶本 ...

  6. Apollo 应用与源码分析:Monitor监控 - 基本概念与入口分析

    Monitor 系统监控 目录 基本概念 代码结构分析 整体逻辑分析 基本概念 整体分类 该模块包含用于检查硬件状态和监视系统运行状况的代码等系统级软件. 在Apollo 5.5中,监视模块现在执行以 ...

  7. Redis05:Redis的高级特性:expire 生存时间、pipeline 管道、info命令、Redis的持久化、Redis 的安全策略、Redis监控命令-monitor

    一.expire 生存时间 Redis中可以使用expire命令设置一个键的生存时间,到时间后Redis会自动删除它. 它的一个典型应用场景是:手机验证码 我们平时在登录或者注册的时候,手机会接收到一 ...

  8. (四) prometheus + grafana + alertmanager 配置Kafka监控

    安装请看https://blog.51cto.com/liuqs/2027365 ,最好是对应的版本组件,否则可能会有差别. (一)prometheus + grafana + alertmanage ...

  9. UAVStack的慢SQL数据库监控功能及其实现

    作者:王林林 转载自:UAVStack智能运维 来源:宜信技术学院 技术沙龙001期|AI中台:一种敏捷的智能业务支持方案|宜信技术沙龙 3月28日晚8点线上直播,点击报名 UAVStack是一个全维 ...

最新文章

  1. rsyslog+analyzer
  2. CMakeList下打印log
  3. 使用Hot Chocolate创建ASP.NET Core GraphQL服务
  4. ios 点生成线路 百度地图_iOS SDK | 百度地图API SDK
  5. hdu4521 小明系列的问题——小明序列(LIS变种 (段树+单点更新解决方案))
  6. linux shell 退出_dialog命令在linux系统中使用方法
  7. 数据分析之Pandas VS SQL!
  8. 计算机控制实验2,计算机控制系统实验报告 (2)
  9. MiniProfiler工具介绍
  10. 【error】 in ./api/axios.js Module parse failed: Unexpected token
  11. 论文公式编号MATHTYPE
  12. Vue3 学习笔记 —— transition、transition-group
  13. 并发控制五(封锁的粒度)
  14. Perfetto for linux-使用 Perfetto 分析调度问题
  15. 蓝牙芯片----BK3431开发笔记------RW stack中添加自定义服务教程(4)
  16. 通信频段详解(5G)
  17. mybatisplus批量操作
  18. 00-为什么要做骑象人--解锁Hadoop高薪之路
  19. NC外部统一流程管理平台方案
  20. 用photoshop制作电子版签名图片

热门文章

  1. SQL SERVER中强制类型转换cast和convert的区别
  2. 深入浅出聊聊 Rust WebAssembly(一)
  3. C语言程序设计 | 操作符介绍与使用方法
  4. Linux中的文件搜索 locate,find,grep ,whereis和which命令的使用
  5. MyBatis(二)MyBatis基本流程源码分析
  6. LeetCode解题的常见模式套路
  7. 如何快速过滤出一次请求的所有日志?
  8. N个Java开发常用规范技巧总结
  9. ​5G+AI时代的高效视频处理
  10. 赵加雨:追求极致的习惯让我受益匪浅