如何实现对ELK各组件的监控?试试Metricbeat

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 本文主要是以Elastic Stack 7.x版本为例,介绍如何监控ELK自身的各个组件。

封面.jpg

一、前言

开发排查系统问题用得最多的手段就是查看系统日志,ELKElastic 公司开源的实时日志处理与分析解决方案,已经为日志处理方案的主流选择。

而在生产环境中,如何针对 ELK 进行监控,保证各个组件正常运行?如何知道目前的资源是否能承受线上的压力呢?本文主要是以 Elastic Stack 7.x 版本为例,介绍如何监控 ELK 自身的各个组件。

二、总体架构

常见的 Elastic Stack 日志系统架构如下

eblk.png

其中可使用 Metricbeat 组件作为轻量级监视代理,通过HTTP端点收集各个组件的监控信息,并把监控数据落盘到 Elasticsearch 中,最终通过 Kibana 以图形化的方式展示各种监控数据。

监控架构.png

三、部署Metricbeat

建议在每台服务器上都运行 Metricbeat 收集指标,多个Metricbeat实例的指标将在 Elasticsearch 服务器上合并。

下载对应版本的 Metricbeat 地址如下:

https://www.elastic.co/cn/downloads/past-releases#metricbeat

3.1. 收集Elasticsearch信息

Metricbeat 中启用并配置 Elasticsearch x-pack 模块
从安装目录中,运行:

./metricbeat modules enable elasticsearch-xpack

默认情况下,模块从 http://localhost:9200 收集 Elasticsearch 指标。如果本地服务器有不同的地址,请在 modules.d/elasticsearch-xpack.yml 中将其添加到主机设置。

3.2. 收集Kibana信息

Metricbeat 中启用并配置 Kibana x-pack 模块

./metricbeat modules enable kibana-xpack

该模块将默认从 http://localhost:5601 收集 Kibana 监测指标。如果本地 Kibana 实例有不同的地址,则必须通过 modules.d/kibana-xpack.yml 文件中的 hosts 设置进行指定。

3.3. 收集Logstash信息

Metricbeat 中启用并配置 Logstash x-pack 模块

./metricbeat modules enable logstash-xpack

该模块将默认从 http://localhost:9600 收集 Logstash 监测指标。如果本地 Logstash 实例有不同的地址,则必须通过 modules.d/logstash-xpack.yml 文件中的 hosts 设置进行指定。

3.4. 收集Beats信息

所有类型的 Beats 配置都一样

3.4.1. 开启HTTP端点

需要开启 Beats 自己的HTTP端点输出监控数据,例如 Filebeat 修改 filebeat.yml 文件,在最后添加以下配置

http:
  enabled: true
  host: 0.0.0.0
  port: 5066

3.4.2. 启用Beat模块

Metricbeat 中启用并配置 Beat x-pack 模块

./metricbeat modules enable beat-xpack

该模块将默认从 http://localhost:5066 收集 beat 监测指标。如果正在监测的 beat 实例有不同的地址,则必须通过 modules.d/beat-xpack.yml 文件中的 hosts 设置进行指定。

3.5. 数据输出配置

配置 Metricbeat 以发送至监测集群,在 metricbeat.yml 文件中修改以下内容

output.elasticsearch:
  hosts: ["http://localhost:9200"] ## Monitoring cluster

  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"

PS:地址、用户名和密码按实际情况修改

3.6. 启动Metricbeat

./metricbeat -e

四、收集Elasticsearch日志

使用 Filebeat 收集 Elasticsearch 自身的日志数据。

首先需要在 Elasticsearch 所在的服务器中安装 Filebeat 组件。

4.1. 启用es模块

Filebeat 中启用并配置 Elasticsearch 模块,执行以下命令

./filebeat modules enable elasticsearch

4.2. 配置es模块

修改es模块的配置信息,指定日志路径

vim modules.d/elasticsearch.yml

修改为以下内容

- module: elasticsearch
  server:
    enabled: true
    var.paths:
      - /app/elk/elasticsearch/logs/*_server.json

  gc:
    enabled: true
    var.paths:
      - /app/elk/elasticsearch/logs/gc.log.[0-9]*
      - /app/elk/elasticsearch/logs/gc.log

  audit:
    enabled: true
    var.paths:
      - /app/elk/elasticsearch/logs/*_audit.json

  slowlog:
    enabled: true
    var.paths:
      - /app/elk/elasticsearch/logs/*_index_search_slowlog.json
      - /app/elk/elasticsearch/logs/*_index_indexing_slowlog.json

  deprecation:
    enabled: true
    var.paths:
      - /app/elk/elasticsearch/logs/*_deprecation.json

PS:日志路径按实际情况修改

4.3. 配置输出

修改 filebeat.yml 文件,配置es相关信息

output.elasticsearch:
  hosts: ["localhost:9200"]
  
  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"

PS:地址、用户名和密码按实际情况修改

4.4. 启动Filebeat

./filebeat -c filebeat.yml -e

五、查看监控界面

进入 Kibana 的控制台界面,进入 堆栈监测 菜单
堆栈监测.png

即可查看各个组件的监控信息
监控界面.png

监控界面2.png

扫码关注有惊喜!

陶陶技术笔记公众号二维码.png

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
3月前
|
存储 Prometheus 监控
Prometheus vs. ELK Stack:容器监控与日志管理工具的较量
随着容器化技术的广泛应用,容器监控与日志管理成为了关键任务。本文将对两种常用工具进行比较与选择,分别是Prometheus和ELK Stack。Prometheus是一款开源的监控系统,专注于时序数据的收集和告警。而ELK Stack则是一套完整的日志管理解决方案,由Elasticsearch、Logstash和Kibana三个组件组成。通过比较它们的特点、优势和适用场景,读者可以更好地了解如何选择适合自己需求的工具。
|
5月前
|
存储 JSON 监控
日志记录和分析:ELK堆栈在内部局域网监控软件中的应用
在现代信息技术领域,监控和分析内部局域网的性能和运行状况对于确保系统的可靠性和高效性至关重要。为了实现这一目标,开发了一种基于ELK堆栈的解决方案,它利用强大的日志记录和分析工具,帮助监控人员实时追踪和解决问题。本文将介绍ELK堆栈的应用,以及如何自动提交监控到的数据到指定网站。
181 1
|
消息中间件 数据采集 监控
ELK搭建(四):监控mysql慢查询、错误日志日志
因为mysql免费、稳定以及还不错的性能,是当前市面上多数公司的数据库选择。在实际的生产环境中我们更需要及时知道数据库中的报错日志、慢日志等信息,来帮助我们进行排错和优化。 普通的到服务器上去查看日志的方式并不方便,特别是涉及到分布式部署时,因此我们需要一个统一的监控平台来实时、方便的查看这些日志数据。
744 0
ELK搭建(四):监控mysql慢查询、错误日志日志
|
运维 监控 数据可视化
ELK日志监控分析系统的探索与实践(二):利用Metricbeat监控服务器系统指标
在ELK日志监控分析系统的探索与实践(一)中,我们介绍了如何利用ELK+Filebeat监控Springboot项目的日志,本篇则是重点介绍如何利用ELk+Metricbeat监控服务器系统CPU、内存、磁盘等系统指标。
ELK日志监控分析系统的探索与实践(二):利用Metricbeat监控服务器系统指标
|
2月前
|
存储 监控 关系型数据库
ELK架构监控MySQL慢日志
ELK架构监控MySQL慢日志
|
3月前
|
Prometheus 监控 Cloud Native
Prometheus VS ELK Stack:容器监控与日志管理工具的比较与选择
在容器化时代,有效的容器监控与日志管理工具对于确保应用程序的可靠性和可维护性至关重要。本文将比较两个主流工具,Prometheus和ELK Stack,探讨它们在容器监控和日志管理方面的特点、优势和适用场景,帮助读者做出明智的选择。
|
存储 运维 监控
ELK搭建(十一):搭建MongoDB运行情况监控平台
mongoDB作为基于磁盘的非关系型数据库,JSON格式数据存储方式,具有优秀的查询效率。越来越多的场景使用到了MongoDB。在生产运维中,更需要我们能够实时的掌握mongo的运行情况,以方便我们数据库运行问题做出及时的调整和补救。
268 0
ELK搭建(十一):搭建MongoDB运行情况监控平台
|
消息中间件 缓存 弹性计算
ELK搭建(十):搭建redis运行指标监控平台
Redis作为基于内存的非关系型数据库,常常被应用于热点数据缓存,它很大程度上为我们关系性数据库提供了性能补充。保证redis的高可用,对应整个应用程序的运行至关重要,一个直观的监控redis运行情况的数据看板可以为我们实时了解redis运行情况提供极大的便利。
172 0
ELK搭建(十):搭建redis运行指标监控平台
|
消息中间件 监控 NoSQL
ELK搭建(九):搭建Docker容器指标监控平台
Docker是一款轻量级的应用容器引擎,可以帮助我们快速部署各类软件,自动化构建系列生产环境。因此,我们也需要一个统一的监控页面,来让我们实时了解docker中各个容器的运行情况
240 0
ELK搭建(九):搭建Docker容器指标监控平台
|
消息中间件 缓存 监控
ELK搭建(八):搭建PostgreSQL性能、运行效率监控平台
PostgreSQL作为一款免费、开源、企业级的关系数据库,被越来越多的企业所青睐,上一章我们讲解了如何搭建一个实时监控PostgreSQL慢日志、错误日志的平台,但是针对PostgreSQL的运行性能还无法监控,生产环境中,特别是构建了数据库集群后,我们常常需要了解到各个数据库的运行情况、性能效率等, 这样才能为我们数据库优化、性能优化提供更有力的保障
380 0
ELK搭建(八):搭建PostgreSQL性能、运行效率监控平台