Beats:通过 Metricbeat 实现外部对 Elastic Stack 的监控

article/2025/10/8 0:59:24

自 Elastic 7.5 发布开始,通过外部监控 Elastic Stack 已经全面实施。 可以通过 Metricbeat 模块监视 Elasticsearch,Kibana,Logstash,APM 服务器和 Beats。

使用外部收集,用户现在可以收集和发送其 Elastic Stack 的监视数据,而不必依赖于受监视服务的运行状况。 此版本大大提高了用于监视 Elastic Stack 可靠性和选则的灵活性。 对于 Elastic Stack 监视的所有用户,建议使用外部数据收集。

一点背景

以前,Elastic Stack 中的服务收集并传送了自己的监视数据,该进程称为内部收集进程(internal collection)。

通过引入外部收集,用户可以与各种受监视的服务(例如 Elasticsearch)一起运行 Metricbeat,以收集有关其运行状况和性能的监视数据并将其直接传送到监视集群。

过去,Stack Monitoring 要求先将所有监视数据发送到生产集群,然后再将其转发到监视集群。 这种的设计不是我们所期望的,比如当我们的生产机器收到胁迫时,监视功能也有可能不能正常工作。

                                                                  过去的设置要求通过生产集群路由监视数据

通过引入 Metricbeat 作为收集和运输监视数据的代理,不再需要通过生产集群路由监视数据。 现在可以由独立的轻量级监视代理程序收集监视数据,并将其直接发送到监视集群。

                               使用 Metricbeat 进行监视,可将所有数据直接路由到监视群集,而完全无需接触生产群集

动手实践

安装 Elasticsearch 及 Kibana

在今天的练习中,我们将使用两个不同的集群来完成我们的练习:

我们把两个集群都部署在我们的同一个机器上,但是它们都分别位于不同的目录中。如果你还没有安装好自己的集群,那么请参阅我之前的文章 “Elastic:开发者上手指南​​​​​​​” 来进行安装。请注意:我们通过解压安装包的办法来进行安装,并分别在两个不同的目录中进行安装。我们需要按照我上面的配置要求分别配置在 Elasticsearch 中的 config/elasticsearch.yml 及 Kibana 中的 config/kibana.yml 文件。另外为了能够满足监控的要求,我们必须对这两个集群分别配置安全账号。请参阅文章 “Elasticsearch:设置 Elastic 账户安全”。

通过这样的配置后,我们可以得到两个集群:

如果你能看到上面的两个 Kibana 的界面,则表明我们的配置已经成功。

在上面的配置中,端口为 9200 的集群是我们的生产集群。为了能对它的数据进行监控,我们必须对它进行配置。我们打开端口为 5601 的 Kibana:

PUT _cluster/settings
{"persistent": {"xpack.monitoring.collection.enabled": true}
}

上面的指令启用监视数据收集。

我们可以通过如下的指令来检查修改后的结果:

GET _cluster/settings

我们也同时禁用生产集群默认的 Elasticsearch 指标监控:

PUT _cluster/settings
{"persistent": {"xpack.monitoring.elasticsearch.collection.enabled": false}
}

经过上面的修改,我们的配置结果是:

安装 Metricbeat

为了能够实现对 Elasticsearch 的外部监控,我们必须安装 Metricbeat。我们打开上面的任何一个 Kibana 界面:

点击 Add metric data 按钮:

点击上面的 System metrics:

我们选择我们电脑相匹配的操作系统。在上面我们可以看到相应安装 Metricbeat 的指令。通过这样的方法,我们可以安装好和我们的 Elasticsearch 相匹配的 Metricbeat 的版本。我们可以先不要按照上面的指令来启动 system 模块,尽管 system 模块在默认的情况下已经被启动。我们可以通过如下的指令来查看所有已经启动的模块:

./metricbeat modules list

在上面我们可以看到 elasticsearch-xpack 模块已经被成功地启动了。我们可以通过如下的指令来启动:

./metricbeat modules enable elasticsearch-xpack

如果你的 system 模块已经被启动,你可以通过如下的方式来禁止这个模块:

./metricbeat modules disable system

为了能够使得我们监控生产集群(127.0.0.1:9200),我们必须把数据数据采集并发送到监控集群(127.0.0.1:9201),我们必须配置位于 modules.d 目录下的 elasticsearch-xpack.yml 文件

$ pwd
/Users/liuxg/elastic8/metricbeat-7.6.0-darwin-x86_64
liuxg:metricbeat-7.6.0-darwin-x86_64 liuxg$ ls modules.d/elasticsearch-xpack.yml 
modules.d/elasticsearch-xpack.yml

根据我们的要求,我做了如下的配置:

# Module: elasticsearch
# Docs: https://www.elastic.co/guide/en/beats/metricbeat/7.6/metricbeat-module-elasticsearch.html- module: elasticsearchmetricsets:- ccr- cluster_stats- enrich- index- index_recovery- index_summary- ml_job- node_stats- shardperiod: 10shosts: ["http://localhost:9200"]username: "elastic"password: "123456"xpack.enabled: true

在上面的配置中,它每隔10秒收集位于http://localhost:9200 的集群的数据。在上面,我采用了elastic 这个超级用户,同时你也需要根据自己的密码进行修改。

为了能把数据传入到 http://localhost:9201,我们也需要对 metricbeat.yml 进行配置:

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:# Array of hosts to connect to.hosts: ["localhost:9201"]# Protocol - either `http` (default) or `https`.#protocol: "https"# Authentication credentials - either API key or username/password.#api_key: "id:api_key"username: "elastic"password: "123456"

在上面我们把 hosts 配置为 localhost:9201,也就是收集的数据需要传入到这个集群里去。我们也需要根据我们自己的配置,修改上面的用户名及密码。

经过上面的配置后,我们的 Metricbeat 的配置已经完成,我们可以通过如下的命令来启动 Metricbeat:

./metricbeat -e

监控 Elasticsearch

接下来,我们打开监控集群的 Kibana 界面 http://localhost:5602:

我们打开 Stack Monitoring 应用。在上面我们可以看到被监控的生产环境的端口地址为 9200 的集群。在上面显示有一个 nodes 及8个索引。点击上面的 Overview:

点击上面的 nodes:

它显示我们当前的生产集群的 node 的总览情况。点击上面的 liuxg 超链接:

我们可以看到这个 node 的内存,IO,CPU 等统计情况。点击上面的 Advanced:

点击应用入口的 Indices:

我们可以看到所有的索引的状态。

总结

在今天的文章中,我们展示了如何使用 Metricbeat 来对 Elasticsearch 进行外部的监控。我们可以使用同样的方法来对其它的 Elastic Stack 进行监控:

  • Metricbeat logstash-xpack 模块监控 Logstash

  • Metricbeat beat-xpack 模块监控 beats

  • Metricbeat kibana-xpack 模块监控 Kibana

剩下的练习就留给你们来研究了。

参考:

【1】External collection for Elastic Stack Monitoring is now available via Metricbeat | Elastic Blog

【2】Collecting Elasticsearch monitoring data with Metricbeat | Elasticsearch Guide [7.6] | Elastic


http://chatgpt.dhexx.cn/article/Y65dMGwC.shtml

相关文章

Metricbeat 的使用

目标 统计并展示系统的信息 cpu, 内存等 (当然metricbeat能收集的信息种类还很多) 前提 版本: 5.x已经安装了ELK (elasticsearch, logstash (可选), kibana)安装了x-pack (配置了对应的security)(可选&a…

Metricbeat 8.4.0 linux 安装(Metricbeat-part1)

Metricbeat是一款轻量型指标采集器,用于从系统和服务收集指标。Metricbeat 能够以一种轻量型的方式,输送各种系统和服务统计数据,从 CPU 到内存,从 Redis 到 Nginx,不一而足。将 Metricbeat 部署到您的所有 Linux、Win…

Metricbeat部署指南

官网下载metricbeat,https://www.elastic.co/downloads/beats/metricbeat。 解压tar包,tar -zxvf metricbeat-7.0.0-linux-x86_64.tar.gz。 进入目录,cd metricbeat-7.0.0-linux-x86_64。 编辑metricbeat配置文件metricbeat.yml&#xff1…

metricbeat的基本使用

文章目录 概述metricbeat安装metricbeat启动案例举例1:收集系统运行的指标数据至es举例2:收集es运行的指标数据至es 概述 定期收集操作系统或应用服务的指标数据存储到Elasticsearch中,进行实时分析 metricbeat安装 去下载页下载&#xff…

Metricbeat安装与初级使用

metricbeat作用: 将 Metricbeat 部署到您所有的 Linux、Windows 和 Mac 主机,并将它连接到 Elasticsearch 就大功告成啦:您可以获取系统级的 CPU 使用率、内存、文件系统、磁盘 IO 和网络 IO 统计数据,以及获得如同系统上 top 命令…

Metricbeat和Filebeat的安装及配置

Beats的安装及配置 一、Metricbeat的安装配置 环境准备 下载与es同版本的metricbeat,这里为 metricbeat-7.11.1-linux-x86_64.tar.gz 这里使用root用户进行配置及启动metricbeat 已启动对应的ES服务及Kibana服务 metricbeat的安装 这里在/路径下建立beats文件…

windows安装wget

1、下载地址:http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-setup.exe 2、双击下载的exe,同意协议,更改安装安装目录。 其余默认安装,继续下一步,安装完成 3、设置系统环境变量 添加path变量:…

手动编译源代码安装wget

从wget的源代码入手,来完成wget在Ubuntu上的安装,如果你的机器上已经默认安装了wget,请采用apt-get remove命令先卸载掉。 解决configure: error: –with-ssl was given, but GNUTLS/SSL is not available.;解决error: ./stdio.h…

win10安装wget,从此可以更快的下载文件 and windows10 下 zip命令行参数详解

1.win10安装wget 1.1安装下载 GNU Wget 1.21.3 for Windows 依次如下: 2、将下载好的wget.exe放到 C:/windows/system32文件夹下 也可以自行放置文件,添加到系统路径即可 第三步:配置系统环境变量(如下)电脑-属性…

Mac安装wget流程及异常解决

目录 1.终端输入wget检查自己是否已经安装过wget,没有安装如下图 2. 安装brew 1)点击brew官网:官网网址 2)将命令粘贴到终端,回车执行 3)输入sudo密码。 4)系统开始自动安装brew,等待晚装完成&#xf…

使用rpm 安装wget

步骤: 下载wget的rpm包:http://mirrors.163.com/centos/7/os/x86_64/Packages/ 使用浏览器搜索功能查找关键字 ,这个网站搜索wget 运行: rpm -ivh wget-1.14-15.el7_4.1.x86_64.rpm

centos7离线安装wget

gcc安装 CentOS下离线安装gcc环境,图文详细,方法全面_lgx211的技术博客_51CTO博客 m4安装 下载: http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz 拷贝到centos系统上,并解压: tar -xzvf m4-1.4.13.tar.gz到解…

mac 如何安装 wget

1.安装 Homebrew 在安装 wget 之前需要安装一个适用于 mac 的包管理器 Homebrew,打开 mac 终端执行如下命令进行安装: /usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)"安装成功后的界面如下所…

CentOS8下安装wget、wget2

目录 一、yum 安装二、下载包安装 wget1.安装 gmp(1)下载(2)解压(3)编译安装 2.安装 nettle(1)下载(2)解压(3)编译安装 3.安装 gnutls…

cygwin安装wget

1. 安装make 下载make包https://gnu-make.soft32.com/free-download/ 将make解压放到 E:\cygwin64\home\Administrator 2. 在cygwin中进入/home/Administrator/make-3.81路径 依次执行以下命令: ./configure ./build.sh 在make-3.81下就会生成make.exe文件 3.…

yum安装wget命令

wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的TCP/IP下载,并可以使用 HTTP 代理。"wget" 这个名称来源于 “World Wide Web” 与 “get” 的结合。 今天在虚拟机中准备安装一个软件,使用wge…

Centos7安装wget

官网 https://www.gnu.org/software/wget/ 环境 CentOS7 yum 安装 sudo yum install wget 这个报错,查资料是说,网络不通 ping 了下,返回 Name or service not known ,从错误看应该是没有配置DNS 配置DNS参考https://www.cnblogs…

Centos 7 安装 wget

文章目录 1. wget命令详解:2.查看帮助手册3.使用 wget 下载单个文件4.使用 wget -O 下载并以不同的文件名保存5.使用 wget -c 断点续传6.使用 wget -b 后台下载 1. wget命令详解: wget是Linux中的一个下载文件的工具,wget是在Linux下开发的开放源代码的软件&#x…

win10安装wget

安装下载 点击下载 依次如下: 1. 2、将下载好的wget.exe放到 C:/windows/system32文件夹下 3.3、在cmd中输入wget --version 如下则成功: 测试下载图片 wget http://q1.xiongmaoya.com/2021/08/09/26045/1.jpg

Linux安装wget

1.第一步登录wget官网下载地址,下载最新的wget的rpm安装包到本地 官网地址:http://mirrors.163.com/centos/7/os/x86_64/Packages/ 2.将下载好的wget的rpm安装包通过Xftp工具上传到Linux服务器对应目录下。 3.cd命令进入到这个wget目录下,再…