Kibana中突然看不到日志ElasticSearch突然采集不到日志问题解决分析

问题原因

  • 起因之前我们项目是采用elk(elasticsearch+logstash+kibana)的方式下部署日志采集系统,今天突然发现Kibana中所有项目日志都没打印,更奇怪的是线上的项目都正常运行,并无异常,这时让人陷入了深思,难道是因为logstash没有收集到日志,去看了logstash日志,都是正常,而且正在以1000/s的行的速度疯狂输出。此时人已经彻底傻掉!
    在这里插入图片描述

问题排查

  1. 首先排查所有服务是否正常,如:elasticsearch logstash kibana 和项目服务

  2. 排查磁盘是否已经打满

  3. 检查当前 elasticsearch 设置的索引数量是多少,7.x默认【1000】在Dev Tools控制台中,执行以下Elasticsearch Cat API命令:

GET /_cluster/settings?include_defaults=true
  1. 检查索引是否已经打满,在Dev Tools控制台中,执行以下Elasticsearch Cat API命令:
GET /_cat/indices?v
  1. 查询得知索引数量已经为1000,发现了问题删掉几月前没用的索引,先恢复日志

修改索引数量

  1. 这里暂时修改10000,大家根据自己的需求修改
  2. 请注意,您使用的是transient关键字,这意味着设置是临时的,将在Elasticsearch重启后丢失。如果您希望设置在重启后仍然生效,应该使用persistent关键字代替transient。
  3. transient 临时修改
PUT /_cluster/settings
{"transient": {"cluster": {"max_shards_per_node": 1000}}
}
  1. persistent 方式修改
PUT /_cluster/settings
{"persistent": {"cluster": {"max_shards_per_node": 1000}}
}

虽然现象问题解决了,但是本质问题依旧存在。

  • 思考几个问题:

  • shard能达到1000,那未来是不是会到达10000,导致出现同样的问题?
    为了避免这样的问题再次出现,那就要控制shard的数量,那么shard的数量和什么有关系?
    如何控制shard的数量?

首先,回答第一个问题,先要搞清楚,什么是shard?

  • 分片是 Elasticsearch 在集群中分发数据的关键。

  • 把分片想象成数据的容器。文档存储在分片中,然后分片分配到集群中的节点上。当集群扩容或缩小,Elasticsearch 将会自动在节点间迁移分片,以使集群保持平衡。
    一个分片(shard)是一个最小级别“工作单元(worker unit)”,它只是保存了索引中所有数据的一部分。

  • 这类似于 MySql 的分库分表,只不过 Mysql 分库分表需要借助第三方组件而 ES 内部自身实现了此功能。

  • 默认情况下,一个索引被分配 5 个主分片

  • 可以看到,分片的数量和索引的数量是成正比的,也就是说索引越多,分片越多;再结合我们ES的实际配置,索引命名方式:环境+日期,环境是固定的,但是日期是每天增加的,那么索引每天都会增加,也就是说分片的数量也会随着时间推移,逐日增加,直到达到最大索引。

  • 所以,针对第一个问题,即使最大分片数是10000,也会出现同样的问题。

那么如何控制shard数量呢?

  • 其实控制shard数量,就是控制索引的数量,控制索引的数量,就是控制保存的log的数量,而log的数量可以通过控制保存的日志有效期天数来决定。

解决方案【修改logstash.conf】

  • 原来的logstash.conf配置文件
# 输入环境配置
input {tcp {mode => "server"host => "0.0.0.0"port => 4560codec => json_lines}
}# 输出环境配置
output {# 输出到控制台stdout {codec => rubydebug}elasticsearch {hosts => "es:9200"user => "elastic"password => "bmallelasticsearch"index => "logstash-%{[spring.application.name]}-%{+YYYY.MM.dd}"}
}
  • 上面这里logstash配置文件中日志是按照【年月日】成索引,我这里根据【月份】成索引。
# 输入环境配置
input {tcp {mode => "server"host => "0.0.0.0"port => 4560codec => json_lines}
}# 输出环境配置
output {# 输出到控制台stdout {codec => rubydebug}elasticsearch {hosts => "es:9200"user => "elastic"password => "bmallelasticsearch"index => "logstash-%{[spring.application.name]}-%{+YYYY.MM}"}
}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【运维监控】influxdb 2.0 + grafana 11 监控jmeter 5.6.3 性能指标(1)

运维监控系列文章入口:【运维监控】系列文章汇总索引 文章目录 一、部署influxdb2.0二、部署grafana三、jmeter配置1、下载jmeter插件2、部署jmeter插件3、添加Backend Listener 本示例是通过jmeter的插件暴露jmeter的监控指标,通过插件将监控指标数据写…

基于MaxScale搭建MariaDB读写分离集群的方法【2024年最新版】

1、什么是MaxScale MaxScale是MariaDB数据库的一个中间件,为MariaDB提供代理服务,主要可以实现读写分离和一定的负载均衡功能,其中读写分离可将读操作和写操作分离到不同的数据库服务器上,以提高系统的整体性能和扩展性&#xff…

Oracle 数据库安装和配置指南

目录 1. 什么是Oracle数据库? 2. 安装前的准备工作 2.1 硬件要求 2.2 软件要求 2.3 下载Oracle安装包 3. Oracle数据库的安装步骤 3.1 Windows系统安装步骤 3.2 Linux系统安装步骤 4. 配置Oracle数据库 4.1 设置环境变量(Linux) 4.…

探索GraphRAG:用yfiles-jupyter-graphs将知识库可视化!

yfiles-jupyter-graphs 可视化 GraphRAG 结构 前言 前面我们通过 GraphRag 命令生成了知识库文件 parquet,这节我们看一下如何使用 yfiles-jupyter-graphs 添加 parquet 文件的交互式图形可视化以及如何可视化 graphrag 查询的结果。 yfiles-jupyter-graphs 是一…

微服务拆分技巧

微服务架构整体思路 常见场景实施建议 只有从0开始构建业务系统才需要一步到位,这样长痛不如短痛,其它的都只能逐步落地,因为有包袱 如何按业务拆分微服务 DDD 概要介绍 DDD 告诉你限界上下文是什么,却没有告诉你如何划分 DDD …

鸿蒙​​​​​​保障应用开发安全的技术措施

应用开发安全是指在开发过程中嵌入安全能力,使应用程序从源头上安全可靠。 开发者是应用程序的创作者,合法的开发者是创作出安全、可靠应用的前提条件;为了保证应用开发者身份真实可信,鸿蒙通过开发者证书对应用进行签名,保证应用…

高刷显示器哪个好?540Hz才有资格称高刷

高刷显示器哪个好?说实话,540Hz这些才能成为高刷显示器,什么200,240的,都不够高,什么是从容,有我不用才叫从容。下面我们一起来看看540Hz的高刷显示器都有哪些吧! 1.高刷显示器哪个好 - 蚂蚁电…

Chainlit集成LlamaIndex实现知识库高级检索(BM25全文检索器)

检索原理 BM25Retriever类是一个基于BM25算法设计的检索器,它主要用于从一组文档或节点中检索出与查询最相关的文档或节点。这个类的设计目的是为了提高文本检索的效率和准确性,尤其是在处理大量文本数据时。 BM25(Best Matching 25&#x…

如何使用ssm实现新媒体视域下的中国古诗词展演+vue

TOC ssm678新媒体视域下的中国古诗词展演vue 绪论 课题背景 身处网络时代,随着网络系统体系发展的不断成熟和完善,人们的生活也随之发生了很大的变化。目前,人们在追求较高物质生活的同时,也在想着如何使自身的精神内涵得到提…

物联网助力智慧交通:优势与前景

智慧交通是当今城市发展的必然趋势,而物联网技术在交通运输领域的应用正是为实现智慧交通建设提供了前所未有的机遇和优势。物联网作为连接和控制物理世界的重要技术手段,在交通领域的应用极大地改善了交通系统的效率、安全性和环保性。 首先&#xff0c…

智能算法躲避拥堵,高德企业用车上线“动态选路服务”为出行提效

近日,高德企业用车正式上线了一项全新服务——“动态选路服务”,旨在基于智能算法,动态规避突发拥堵路线,为企业用车用户提供更便捷、智能的出行方案。 以技术着眼细节,高德企业用车在帮助企业用车用户节约出行时间和…

大部分基础排序复习C++(归并、快排、堆)

归并排序(稳定) 时间复杂度: O(N * logN ) 。空间复杂度 O(N) 归并排序主要是分治的思想: 将一段数组以中间点mid划分成两半,让它们各自去下一层递归,继续对半划分,直到这个数组只有一个元素…

MySQL(学习笔记)(02)(进阶篇)

P1 存储引擎 MySQL的体系结构 存储引擎简介 存储引擎的选择 P2 索引(重要) 索引概述 索引结构 二叉树 B树(多路平衡查找) B树 hash 总结 索引分类 思考题 索引语法 SOL性能分析 索引使用 索引设计原则 P3 SQL优化 P4 视图/存储过…

redis常用五种数据类型的常用指令

本文为初识redis记录的基本知识,如有不正确之处还请指出 一、redis五种类型简介 string:存储结构为简单动态字符串(SDS) hash:存储结构可以是哈希表(O(1))、压缩列表&am…

动手学深度学习(李沐)PyTorch 第 3 章 线性神经网络

3.1 线性回归 线性回归是对n维输入的加权,外加偏差 线性回归可以看作是单层神经网络 回归问题中最常用的损失函数是平方误差函数。 平方误差可以定义为以下公式: 常数1/2不会带来本质的差别,但这样在形式上稍微简单一些 (因为当…

一篇讲完CSS的核心内容

目录 一 、引言 1.1CSS概念 二、 CSS简介 2.1 什么是CSS 2.2 CSS能干什么 2.3 CSS书写规范 2.4 基础语法 三、 CSS导入方式 3.1 内嵌方式(内联方式) 3.2 内部方式 3.3 外部方式 四、 CSS选择器 4.1 基本选择器 [重点] 4.2 属性选择器 五、 CSS属性 5.1 文字属性…

Excel的基本应用__1

1. 模拟运算 1.1 单变量求解 1.1.1 步骤 1.1.1 效果 1.2 模拟运算表 1.2.1 步骤 1.2.2 效果 2.选择性粘贴--转至 3. Excel中如何使用和定义名称 使用 相当于全局变量,可以在不同表中调用 3.1名称中使用常量 3.2名称中使用函数 调用 可以在不同的表中调用 3.…

C语言 | Leetcode C语言题解之第433题最小基因变化

题目&#xff1a; 题解&#xff1a; int minMutation(char * start, char * end, char ** bank, int bankSize) {int m strlen(start);int **adj (int **)malloc(sizeof(int *) * bankSize);int endIndex -1;for (int i 0; i < bankSize; i) {adj[i] (int *)malloc(si…

Dynamic Connected Networks for Chinese Spelling Check(ACL2021)

Dynamic Connected Networks for Chinese Spelling Check(ACL2021) 一&#xff0e;概述 文中认为基于bert的非自回归语言模型依赖于输出独立性假设。不适当的独立性假设阻碍了基于bert的模型学习目标token之间的依赖关系&#xff0c;从而导致了不连贯的问题。为些&#xff0c…

CORS解决浏览器跨域请求(同源策略)限制原理、后端springboot CROS跨域解决方案

文章目录 1 浏览器的同源策略1.1 什么是源&#xff08;origin&#xff09;&#xff1f;1.2 跨域请求&#xff1f;1.3 同源策略&#xff08;跨域限制&#xff09;是什么&#xff1f;1.3.1 同源策略的具体限制&#xff1f;1.3.2 浏览器CORS校验 2 CORS解决Ajax跨域问题2.1 CORS概…