helm部署metricbeat

背景

在Elastic Stack 7.5版本之前,系统默认采用内置服务进行监控数据采集(称为内部收集机制),这种设计存在显著局限性:

  1. 当ES集群崩溃时自带的节点监控也会随之崩溃,直到集群恢复前,崩溃期间的监控指标将丢失。

  2. 对于生产集群,需要为自带的节点监控提供额外的资源,会给集群带来一定压力。

为解决这些问题,Metricbeat作为独立轻量级数据采集器应运而生——它可直接部署于服务器节点,通过外部进程持续采集操作系统及Elasticsearch等服务的运行时指标(如健康状态、性能参数),并绕过生产集群直接将数据推送至专用监控集群。这种架构革新实现了监控体系与业务系统的物理解耦:既消除了监控功能对生产环境资源的挤占,又通过独立数据管道保障了监控数据的完整性与传输可靠性,即使主集群完全宕机,仍能持续记录关键故障日志,为事后诊断提供完整数据支撑。

本篇情景:已搭建好es集群和kibana面板,再部署metricbeat对每个es进行监控,设置参数进行钉钉告警。

准备工作

kibana左侧菜单栏倒数第3个为Dev Tools:

在部署前,需要开启es的xpack,自动收集监控数据,在kibana的Dev Tools中输入以下指令进行更改:

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

禁用生产集群默认的 Elasticsearch 指标监控:

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

检查:

GET _cluster/settings

使用helm包部署metric

部署的配置文件

#values.yaml# 这里把 daemonset 类型注释掉,下面有 deployment 类型的
daemonset:enabled: false
# 以下的内容,都是在 deployment 层下面修改的
deployment:
# 这里要注意 es 用户名密码的 secret 名字是不是集群有的extraEnvs:- name: "ELASTICSEARCH_USERNAME"valueFrom:secretKeyRef:name: elastic-credentialskey: username- name: "ELASTICSEARCH_PASSWORD"valueFrom:secretKeyRef:name: elastic-credentialskey: password# 挂载存放 HTTPS 证书的 Secret(这里使用 elastic-certificates,若证书在 elastic-certificate-pem 中请相应修改 secretName)extraVolumeMounts: []extraVolumes: []
# metricbeat 配置文件的处理metricbeatConfig:metricbeat.yml: |metricbeat.modules:# es 采集配置- module: elasticsearch      # 采集指标,一定要注意格式,缩进!!!                    metricsets:- ccr- cluster_stats- enrich- index- index_recovery- index_summary- ml_job- node_stats- shard# 启用xpackxpack.enabled: trueperiod: 10s# ES节点地址,这里我们采集当前的监控集群,集群有多个es节点,将IP全加入hosts: ["http://xx.xx.xx.xxx:9200", "http://xx.xx.xx.xxx:9200", "http://xx.xx.xx.xxx:9200", "http://xx.xx.xx.xxx:9200", "http://xx.xx.xx.xxx:9200",  "http://xx.xx.xx.xxx:9200", "http://xx.xx.xx.xxx:9200", "http://xx.xx.xx.xxx:9200",]username: "${ELASTICSEARCH_USERNAME}"password: "${ELASTICSEARCH_PASSWORD}"# 集群模式scope: cluster# 定义 metricbeat 采集的指标推送到哪个 es# 这里是推送到监控集群output.elasticsearch:hosts: ["http://xx.xx.xx.xxx:9200", "http://xx.xx.xx.xxx:9200", "http://xx.xx.xx.xxx:9200", "http://xx.xx.xx.xxx:9200", "http://xx.xx.xx.xxx:9200", "http://xx.xx.xx.xxx:9200", "http://xx.xx.xx.xxx:9200", "http://xx.xx.xx.xxx:9200"]username: "${ELASTICSEARCH_USERNAME}"password: "${ELASTICSEARCH_PASSWORD}"_source.enabled: true#preset: balanced#protocol: "http"#ssl.enabled: false#ssl.certificate_authorities: ["/etc/metricbeat/certs/ca.crt"]# 增加自定义的标签信息processors:- add_host_metadata: ~- add_docker_metadata: ~- add_kubernetes_metadata: ~# 配置日志记录等级,error 错误才需要记录logging.level: errormonitoring.enabled: true# 这里的 uuid 是 metricbeat.modules 里面的 es 集群的 uuid## 可以通过 kibana 或者 curl 使用 GET /_cluster/state 来获取monitoring.cluster_uuid: "Jxxxxg"# 启用 http,便于健康检查http.enabled: truehttp.host: 0.0.0.0http.port: 5066setup:template.enabled: falseilm.enabled: false#template.settings:# index.number_of_shards: 1#index.codec: best_compression
# 我不是 https 的集群,不需要证书,这里直接注释掉,记得在 secretMounts 后面加上 []secretMounts: []#- name: elasticsearch-master-certs# secretName: elastic-certificates#path: /usr/share/metricbeat/certs/
# 配置资源限制,根据自己情况选择改不改resources:requests:cpu: "100m"memory: "100Mi"limits:cpu: "1000m"memory: "1Gi"
# 修改镜像 tag 注意,此处的版本一定一定一定要和es的版本匹配!!我这里使用的是es7.7.1,metricbeat版本也为7.7.1
imageTag: "7.7.1"
# 不安装 kube_state_metrics,因为不监控 k8s 集群,若没用加这段参数,将默认开启对k8s集群的监控,需要拉取k8s监控镜像k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.4.1
kube_state_metrics:enabled: false

部署

helm install metricbeat elastic/metricbeat -n devops -f values.yaml

当看到jkibana的stackmonitoring页面节点详情如下时,则部署成功。

Metricbeat监控配置避坑指南

  1. 版本兼容性控制        必须确保Metricbeat与Elasticsearch、Kibana版本严格对齐(如均采用7.7.1版本)。版本差异可能导致监控指标丢失、数据格式不兼容等问题,极端情况下甚至引发模块初始化失败。

  2. 注意缩进格式,尤其是在metricbeatConfig.metricbeat.yml.module.metricsets部分,因为直接使用helm安装只能看打印的日志报错,如:ERROR instance/beat.go:932 Exiting: The elasticsearch module with xpack.enabled: true must have metricsets: [ccr enrich cluster_stats index index_recovery index_summary ml_job node_stats shard]。没有配置上metricsets,但按理来说如果将这整段去掉会使用自带的默认配置,但是并没有,所以还是得手动配上,如果没注意换行,报错只会一直这样提示你没有这段,让人很puzzle。

  3. 这里没有设置专门的es节点用于监控,所以output.elasticsearch.hosts 这里配置为被监控的节点地址即可,如output.elasticsearch: hosts: ["http://xx.xx.xx.xx:9200"],由于Elasticsearch 集群机制,即使你只配置了一个节点,Elasticsearch 集群内部会自动将数据同步到其他节点。因此,从集群的角度来看,数据仍然是分布式的,如果不放心,也可以将所有节点全部写入,如上面的yaml。

  4. 关于安全证书,一开始我以为es可以通过https访问有ssl安全证书则metricbeat就也要配置ssl,但其实不然,metricbeat监控是针对es集群所在的节点进行监控,所以只要是配置在相同的网段下通过ip+port能访问就行,而用k8s部署是在同一个namespace下,环境也都一样,就不存在网络不同的情况,所以ssl证书问题不用考虑,直接将ip配上即可(都是内网),metricbeat也是将数据再发回es。配证书的话更麻烦。

  5. 关于登录es的配置,这里是直接使用K8s的secret统一管理,也可以直接配置为:hosts: ["http://xx.xx.xx.xx:9200"]username: "username"password: "pwd",看场景选择。

参考链接:

k8s 部署 metribeat 实现 kibana 可视化 es 多集群监控指标-CSDN博客

使用metricbeat 监控多ES集群-CSDN博客

metricbeat收集elasticsearch、kibana监控数据_kibana metricbeat监测-CSDN博客

metricbeat. elasticsearch-xpack module failed to start. · Issue #14984 · elastic/beats · GitHub

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35322.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于 Python 爬取 TikTok 搜索数据 Tiktok爬虫(2025.3.17)

1. 前言 在数据分析和网络爬虫的应用场景中,我们经常需要获取社交媒体平台的数据,例如 TikTok。本篇文章介绍如何使用 Python 爬取 TikTok 用户搜索数据,并解析其返回的数据。 结果截图 2. 项目环境准备 在正式运行代码之前,我…

阿里云、腾讯云云主机如何提升远程桌面安全(VNC登录)

远程桌面连接(RDP)是管理主机的常用方式,但同时也带来了安全风险。黑客会对远程桌面进行暴力破解攻击和撞库攻击。作为云主机,在远程桌面方面有天然的安全优势:可以关闭远程桌面服务或端口,限制只能通过网页…

【etcd】

一、ETCD 简介 etcd是一个由CoreOS团队开发的开源项目,旨在提供一个高可用的、分布式的、一致的键值存储,用于配置共享和服务发现。尽管它看起来像一个键值存储,但etcd的设计目标远远超出了传统数据库的功能范围。 etcd的核心特性包括&…

深圳南柯电子|医疗设备EMC检测测试整改:保障患者安全的第一步

在医疗设备领域,电磁兼容性(EMC)是确保设备安全、有效运行的关键指标。随着医疗技术的飞速发展,医疗设备日益复杂,其电磁环境也愈发复杂多变。EMC检测测试及整改因此成为医疗设备研发、生产、销售过程中不可或缺的一环…

项目实战系列:基于瑞萨RA6M5构建多节点OTA升级-系统设计<一>

项目背景 原嵌入式控制系统采用分布式模块化架构,由12个功能板卡(通信控制、信号采集、驱动执行等)组成。系统维护阶段存在以下痛点: 低效的本地烧录机制:各板卡固件升级需通过JTAG接口逐一手动连接JLINK仿真器&#x…

五大方向全面对比 IoTDB 与 OpenTSDB

对比系列第三弹,详解 IoTDB VS OpenTSDB! 之前,我们已经深入探讨了时序数据库 Apache IoTDB 与 InfluxDB、Apache HBase 在架构设计、性能和功能方面等多个维度的区别。还没看过的小伙伴可以点击阅读: Apache IoTDB vs InfluxDB 开…

RAGFlow部署与使用(开源本地知识库管理系统,包括kibana配置)

一、RAGFlow 简介 戳我访问RAGFlow RAGFlow 是一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎。它可以给我们搭建本地知识库,将用户的知识文档上传到RAGFlow后,通过文档切分、向量入库,在…

HTB 学习笔记 【中/英】《Web 应用 - 布局》P2

📌 这篇文章讲了什么? 介绍了 Web 应用的架构和布局,包括不同的基础设施、组件、架构模式等。讲解了 常见的 Web 应用部署方式(单服务器、多服务器等),并分析了它们的安全性。介绍了 微服务架构&#xff0…

蓝牙系统的核心组成解析

一、硬件层:看得见的物理载体 1. 射频模块(Radio Frequency Module) 专业描述:工作在2.4GHz ISM频段,支持GFSK/π/4 DQPSK/8DPSK调制方式 功能类比:相当于人的"嘴巴"和"耳朵" 发射端…

LeRobot源码剖析——对机器人各个动作策略的统一封装:包含ALOHA ACT、Diffusion Policy、VLA模型π0

前言 过去2年多的深入超过此前7年,全靠夜以继日的勤奋,一天当两天用,抠论文 抠代码 和大模型及具身同事讨论,是目前日常 而具身库里,idp3、π0、lerobot值得反复研究,故,近期我一直在抠π0及l…

ISP--Gamma Correction

文章目录 现象Gamma产生的原因CRT属性导致人眼的亮度特性 gamma校正LUT法线性插值法模拟gamma法 现象 从上往下看左侧黑色块黑得越来越严重,对比度也在逐渐加深。此时灰阶的高亮区获得的数据位变少,暗区获得的数据位变多,暗区细节会更多。但是…

光谱相机识别瓶子材质的技术原理和应用案例

一、技术原理 ‌光谱特征差异识别‌ 不同材质的塑料(如PET、PP、PE等)因化学结构差异,在近红外或可见光波段会呈现独特的光谱反射曲线。例如,高光谱相机通过分析数百个窄波段的光谱数据,可生成每种材质的“光谱指纹”…

某快餐店用户市场数据挖掘与可视化

1、必要库的载入 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns2、加载并清洗数据 # 2.1 加载数据 df pd.read_csv(/home/mw/input/survey6263/mcdonalds.csv)# 2.2 数据清洗 # 2.2.1 检查缺失值 print(缺失值情况:) print(df.isn…

MySQL 衍生表(Derived Tables)

在SQL的查询语句select …. from …中,跟在from子句后面的通常是一张拥有定义的实体表,而有的时候我们会用子查询来扮演实体表的角色,这个在from子句中的子查询会返回一个结果集,这个结果集可以像普通的实体表一样查询、连接&…

Electron使用WebAssembly实现CRC-16 MAXIM校验

Electron使用WebAssembly实现CRC-16 MAXIM校验 将C/C语言代码,经由WebAssembly编译为库函数,可以在JS语言环境进行调用。这里介绍在Electron工具环境使用WebAssembly调用CRC-16 MAXIM格式校验的方式。 CRC-16 MAXIM校验函数WebAssembly源文件 C语言实…

HTB 学习笔记 【中/英】《前端 vs. 后端》P3

📌 这篇文章讲了什么? 介绍了 前端(客户端) 和 后端(服务器端) 的区别。解释了 全栈开发(Full Stack Development),即前端后端开发。介绍了 前端和后端常用的技术。讨论…

SpringBoot集成ElasticSearch实现支持错别字检索和关键字高亮的模糊查询

文章目录 一、背景二、环境准备1.es8集群2.Kibana3.Canal 三、集成到SpringBoot1.新增依赖2.es配置类3.建立索引4.修改查询方法 四、修改前端 一、背景 我们在开发项目的搜索引擎的时候,如果当数据量庞大、同时又需要支持全文检索模糊查询,甚至你想做到…

麒麟系统使用-安装 SQL Developer

文章目录 前言一、基础准备1.基本环境2.相关包下载 二、进行相关配置1.配置JAVA2.配置SQL Developer 总结 前言 作为我国自主研发的操作系统,麒麟系统在使用时需要考虑安装相应的app。尽管麒麟系统是基于linux开发,可由于版本的一些差异,麒麟…

PrimeTime:timing_report_unconstrained_paths变量

相关阅读 PrimeTimehttps://blog.csdn.net/weixin_45791458/category_12900271.html?spm1001.2014.3001.5482 PrimeTime自Q-2019.12版本起引入了timing_report_unconstrained_paths变量(默认值为false),该变量控制是否在使用report_timing命…

洛谷 P1115 最大子段和(前缀和详解)c++

题目链接:P1115 最大子段和 - 洛谷 1.题目分析 2.算法原理 解法:利用前缀和 思考:如何求出以a[i]为结尾的所有子区间中最大的子段和 假设 i 等于5,以 a[ i ] 为结尾的区间一共是五段(黑色线条部分)&#…