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

news2024/11/15 4:33:27

问题原因

  • 起因之前我们项目是采用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 => 4560
    codec => 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 => 4560
    codec => json_lines
  }
}

# 输出环境配置
output {
  # 输出到控制台
  stdout {
    codec => rubydebug
  }
  elasticsearch {
    hosts => "es:9200"
    user => "elastic"
    password => "bmallelasticsearch"
    index => "logstash-%{[spring.application.name]}-%{+YYYY.MM}"
  }
}

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

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

相关文章

电商新纪元:37即拼模式如何重塑市场格局

在电商领域的浩瀚星海中,拼团模式犹如一颗璀璨的星辰,历经近十年的洗礼,依旧熠熠生辉,不断吸引着商家与消费者的目光。近期,一家电商平台凭借其独树一帜的“37即拼”模式,仅在一周内便狂揽5万订单&#xff…

移动硬盘未格式化:深度解析、恢复策略与预防措施

现象解读:移动硬盘的“未格式化”迷局 在数字信息爆炸的时代,移动硬盘作为数据存储与传输的重要工具,扮演着不可或缺的角色。然而,当用户试图访问移动硬盘时,却可能遭遇一个令人困惑的提示——“未格式化”。这一现象…

一大堆的图片怎么批量重命名从1到50?这个方法你必须知道

一大堆的图片怎么批量重命名从1到50?这个方法你必须知道。有许多的人因为工作的问题,经常需要用到给一些图片,文件,文档等重命名的事情。很多人都不知道有快速处理的办法,只能一个个右键重命名,或者批量选择…

Three.js 3D人物漫游项目(下)

本文目录 前言最终效果1、效果回顾2、编写人物模型动画执行类并调用2.1 代码2.2 代码解读2.3 实例化动画类并调用2.4 效果2.4.1 休息动画2.4.2 跑步动画2.4.3 走路动画2.4.4 舞蹈1动画2.4.5 舞蹈2动画3、键盘控制动画3.1 站立休息、走、跑、舞蹈1、舞蹈2代码3.1.1 效果3.2 跳跃…

1000Km弹射巡飞器技术详解

随着现代战争形态的演变及科技水平的飞速提升,远程侦察、打击与持久监视能力成为各国军事力量建设的重要方向。1000Km弹射巡飞器作为一种新型无人机系统,凭借其超远的航程、长时间的续航以及高度的灵活性,成为近年来军事技术领域的研究热点。…

开源ids snort (windows版)

Snort-IPS-on-Windows-main资源-CSDN文库 GitHub - eldoktor1/Snort-IPS-on-Windows: A comprehensive guide to installing and configuring Snort IPS on Windows, ensuring robust network security 手动打造Snortbarnyard2BASE可视化告警平台 - FreeBuf网络安全行业门户 …

记录|项目管理软件PingCode使用【待更新】

目录 前言一、项目的创建二、需求2.1 需求页面认识 2.2 添加需求更新时间 前言 参考视频: 快速上手PingCode:创建Scrum、看板、瀑布项目 这个主要用于细化自己和队友、团队之间的任务,进一步管理整个的软件开发的进度。【如下图】 一、项目的…

Python可迭代对象(2)

目录 3。字典 字典的构造 字典的添加和修改 字典推导式的使用 以上全部代码编译结果展示 字典复习 4。集合(set) 集合的创建 集合的运算 集合的添加和删除元素 以上全部代码的编译结果 序列解包(Sequence unpacking) 3。字典 字典的构造 #字…

ChatGLM-6B 部署与使用——打造你的专属GLM

ChatGLM-6B 部署与使用指南 ChatGLM-6B 是清华大学与智谱 AI 开源的一款对话语言模型,基于 General Language Model (GLM) 架构,参数达到 62 亿,因其卓越的语言理解与生成能力,受到广泛关注。 一、在 DAMODEL 上部署 ChatGLM-6B…

AD层次化设计中的常见错误

Duplicate Net Names Wire 仔细检查是不是网络标签没有标上 网络标签是否一致 Nets Wire has multiple names 上面的步骤也要检查 然后设置如下:

基于丹摩智算平台-手把手拿下经典目标检测模型 Faster-Rcnn

文章目录 1. 前言1. 1 丹摩智算平台1.2 经典目标检测模型 Faster-Rcnn 2. 前置准备2.1 WindTerm(远程连接服务器)2.2 项目源码 3. 服务器平台配置3.1 创建实例3.2 远程链接 4. Faster-rcnn 的环境配置4.1 上传文件,解压4.2 安装所需环境 5. 数…

在Windows系统上安装的 zstd C++ 库

在Windows系统上安装的 zstd C 库 项目地址:安装步骤步骤一步骤二 效果 项目地址: https://github.com/facebook/zstd 经过观察发现,这个项目没有CMakeLists.txt,只有Makefile,但是Makefile在windows系统下没有什么用, 所以说,常规的方式安装不可取了 安装步骤 步骤一 往下…

idea上使用tomcat运行web项目

idea上使用tomcat运行web项目 首先需要安装tomcat,可以查看我上一篇文章 如果你已经配置tomcat,这里不需要改动。如果未配置,需要在这里选择你tomcat目录 修改下面的上下文,也就是网页上访问时http://localhost:8080/后面拼…

算数运算之短路

c语言的表达式是从左往右求值的,我们在面对&&(按位与)和||(按位或)我们要根据与还有或的特性在判断是否能够使句子能够运行下去,就举个简单的例子 if(month 12 || month1 || month 2) { printf…

LeetCode 2374.边积分最高的节点:模拟

【LetMeFly】2374.边积分最高的节点:模拟 力扣题目链接:https://leetcode.cn/problems/node-with-highest-edge-score/ 给你一个有向图,图中有 n 个节点,节点编号从 0 到 n - 1 ,其中每个节点都 恰有一条 出边。 图…

英伟达开源 NVLM 1.0 引领多模态 AI 变革

新闻 NVLM 1.0 是由英伟达(Nvidia)最新推出的一系列前沿级别的多模态大型语言模型(MLLM),这些模型在视觉-语言任务上取得了与领先专有模型(例如 GPT-4o)和开放访问模型(例如 Llama 3…

[干货] [非基础警告] Unity 发布-订阅模式下的事件中心设计

本文师承于唐老师,但是修改了一些代码,采用更加方便理解的方式设计 1.什么是事件中心 2.可以比喻成冒险者工会的任务板子 任务板子上面有发布任务和任务完成两种基础情况 2.1 发布任务 来个冒险者发布一个任务,就执行Pulishtask方法 这…

【软件工程】状态转换图 其他图形工具

状态转换图 一、定义 二、符号表示 其他图形工具 一、层次方框图 二、Warmer图 三、IPO图 例题 选择题

【k8s】:DevOps 模式详解

1.什么是DevOps模式? DevOps 是当下非常火爆的一个概念,受到了很多互联网巨头的推崇。那么什么是 DevOps?它的全称是:集成开发与运维。至于它到底是干什么用的,为什么现在这么火爆,还得从源头说起。 1.1 …

无线感知会议系列【4】【基于WiFi和4G/5G的非接触无线感知:挑战、理论和应用-2】

前言: 本篇重点分享一下该论文 《Human Respiration Detection with Commodity Wifi Devices: Do User Location and Body Orientation Matter》 接 2020年北京智源大会 张大庆老师的一个报告 参考: https://blog.csdn.net/chengxf2/article/detai…