ELK日志解决方案

ELK日志解决方案

ELK套件日志系统应该是Elasticsearch使用最广泛的场景之一了,Elasticsearch支持海量数据的存储和查询,特别适合日志搜索场景。广泛使用的ELK套件(Elasticsearch、Logstash、Kibana)是日志系统最经典的案例,使用Logstash和Beats组件进行日志收集,Elasticsearch存储和查询应用日志,Kibana提供日志的可视化搜索界面。

在这里插入图片描述

安装es和kibana

本文版本为8.5.0

安装es和kibana文档可以参考:

https://blog.csdn.net/weixin_73195042/article/details/135835820

https://blog.csdn.net/weixin_73195042/article/details/135567295

此处es配置密码:elastic/111111

安装Logstash

请注意:Logstash版本必须和es版本一致!这里以8.5.0版本为例。

第一步:拉取镜像

docker pull logstash:8.5.0

第二步:需要提前在linux服务器上环境 /mydata/logstash/logstash.conf,内容如下

mkdir -p /mydata/logstash

input {tcp {mode => "server"host => "0.0.0.0"port => 5044codec => json_lines}
}
filter{}
output {elasticsearch {hosts => "192.168.200.6:9200"index => "project-%{+YYYY.MM.dd}"user => "elastic"password => "111111"}
}

第三步:创建容器

docker run --name docker_logstash -p 5044:5044 \
--restart=always \
--link docker_elasticsearch:es \
-v /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-d logstash:8.5.0

安装Filebeat

第一步:授权

chmod 777 -R /var/log/messages

第二步:启动日志收集器

docker run -d \--name=filebeat \--restart=always \-v filebeat-conf:/usr/share/filebeat \-v /var/log/messages:/var/log/messages \--link 1833f6a65c2a:docker_elasticsearch \elastic/filebeat:7.8.01833f6a65c2a: es容器的ID

第三步:修改配置文件:

进入到目录:
cd /var/lib/docker/volumes/filebeat-conf/_data
修改配置文件
vim filebeat.yml
内容如下
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/messages
filebeat.config:modules:path: ${path.config}/modules.d/*.ymlreload.enabled: falseprocessors:- add_cloud_metadata: ~- add_docker_metadata: ~output.elasticsearch:hosts: '192.168.200.128:9200'indices:- index: "filebeat-%{+yyyy.MM.dd}"

重启filebeat 容器,运行检索模块

效果:以后虚拟机上的所有日志都会收集保存到es中,可以在kibana中进行检索。

Logstash环境问题

  1. 安装Logstash

  2. 通过查看Logstash容器日志,401未授权异常 ES8.0后必须有授权许可

  3. 修改宿主机Logstash配置文件添加授权配置信息即可:/mydata/logstash/logstash.conf。

    此处密码应该与es密码一致

    user => "elastic"
    password => "111111"
    
  4. 重启Logstash容器,再查看一下日志,发现没有报错。

项目中整合

  1. 引入依赖

    <dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>5.1</version>
    </dependency>
    
  2. 日志配置文件logback-spring.xml增加,日志Logstash策略

    <!-- logstash日志 -->
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"><!-- logstash ip和暴露的端口,logback就是通过这个地址把日志发送给logstash --><destination>192.168.200.6:5044</destination><encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender><!-- 开发环境 -->
    <springProfile name="dev"><!-- com.atguigu日志记录器:业务程序INFO级别  --><logger name="com.atguigu" level="INFO" /><!--<logger name="com.alibaba" level="WARN" />--><!-- 根日志记录器:INFO级别  --><root level="INFO"><appender-ref ref="CONSOLE" /><appender-ref ref="LOGSTASH" /></root>
    </springProfile>
    
  3. 启动项目测试Java进程启动会将日志发送到Logstash,Logstash会自动将数据存入ES

  4. 这时候我们启动项目,然后进入es的控制台,输入:

    GET /project-2024.01.26/_search
    {"query": {"term": {"level.keyword": {"value": "WARN"}}}
    }
    

    这样我们就可以得到服务的日志了。

我们还可以通过一些开源组件让日志可视化的直接展示出来,而不需要我们每次在es中查询。例如:

Plumelog: 一个简单易用的java日志系统,解放你的日志查询困难问题,方便快速追踪问题,安装配置简单,性能优秀 演示视频地址:https://v.qq.com/x/page/g3308uxlcnw.html (gitee.com)

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

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

相关文章

CVPR——Latex模版下载

CVPR官网 -> AuthorGuidelines 链接&#xff1a;AuthorGuidelines

怎么把几百M大小的视频做成二维码?扫码播放视频在线教程

怎么把几百M大小的视频做成一个二维码展示呢&#xff1f;通过二维码来作为视频的载体是现在很常用的一种手段&#xff0c;通过这种方式不仅成本比较低&#xff0c;而且传播速度也比较快&#xff0c;通过访问云端数据就可以播放视频。 视频二维码生成的方法一般会通过二维码生成…

微信小程序(二十)Vant组件库的配置

教程很详细&#xff0c;直接上过程 上一篇 官方文档也有&#xff0c;但是因为版本的更新&#xff0c;官方文档并没有跟着改变&#xff0c;这里我写一份最新版能用的教程 &#xff08;口头禅还是不能少的&#x1f923;&#x1f923;&#x1f923;&#xff09; 灵魂拷问&#xf…

【RT-DETR有效改进】反向残差块网络EMO | 一种轻量级的CNN架构(轻量化网络,参数量下降约700W)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本文给大家带来的改进机制是反向残差块网络EMO,其的构成块iRMB在之前我已经发过了,同时进行了二次创新,本文的网络就是由iRMB组成的网络EMO,所以我们二次创新之后的iEMA也可以用于这个网络中,再次形成二次…

Kotlin快速入门5

Kotlin的继承与重写 kotlin的继承 Kotlin中所有类都继承自Any类&#xff0c;Any类是所有类的超类&#xff0c;对于没有超类型声明的类是默认超类&#xff08;Any 不是 java.lang.Object&#xff09;&#xff1a; class LearnKotlin // 默认继承自Any Any类默认提供三个函数…

Android 13.0 SystemUI下拉状态栏定制二 锁屏页面横竖屏时钟都居中功能实现二

1.前言 在13.0的系统rom定制化开发中,在关于systemui的锁屏页面功能定制中,由于在平板横屏锁屏功能中,时钟显示的很大,并且是在左旁边居中显示的, 由于需要和竖屏显示一样,所以就需要用到小时钟显示,然后同样需要居中,所以就来分析下相关的源码,来实现具体的功能 如图…

elementplus Dialog 对话框设置距离页面顶部的距离

默认为 15vh&#xff0c;当弹窗过于高的时候&#xff0c;这个距离其实是不合适的 <el-dialogv-model"dialogVisible"title"Tips"width"30%":before-close"handleClose"top"6vh"><span>This is a message</s…

KMP板子 前缀跳后缀

目录 原理&#xff1a; 板子&#xff1a; 原理&#xff1a; 出现重复【 存在部分前缀等于后缀 &#xff08;自己的前面一部分跟后面一部分一样的&#xff09; 】的时候&#xff0c;可以跳&#xff01; 来源&#xff1a;KMP算法中next数组的理解 - 知乎 (zhihu.com) &#xf…

JVM 笔记

JVM HotSpot Java二进制字节码的运行环境 好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;具有垃圾回收功能数组下标越界检查多态&#xff08;虚方法表&#xff09; JVM组成 类加载子系统&#xff08;Java代码转换为字节码&#xff09;运行时数据…

Qt6入门教程 12:QAbstractButton

目录 一.状态 二.信号 三.使用 1.自定义按钮 2.多选 3.互斥 QAbstractButton类实现了一个抽象按钮&#xff0c;并且让它的子类来指定如何处理用户的动作&#xff0c;并指定如何绘制按钮。QAbstractButton类是所有按钮控件的基类。 QAbstractButton提供…

Python笔记14-实战小游戏飞机大战(上)

文章目录 功能规划安装pygame绘制游戏窗口添加玩家飞机图像屏幕上绘制飞船代码重构驾驶飞船全屏模式射击 本示例源码地址 点击下载 功能规划 玩家控制一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船&#xff0c;还可使用空格键射击。游戏开始时&#xff…

1948-2022年金融许可信息明细数据

1948-2022年金融许可信息明细数据 1、时间&#xff1a;1948-2022年 2、来源&#xff1a;银监会&#xff08;银监会许可证发布系统&#xff09; 3、指标&#xff1a;来源表、机构编码、机构名称、所属银行、机构类型、业务范围、机构住所、地理坐标、行政区划代码、所属区县、…

Leetcode—2942. 查找包含给定字符的单词【简单】

2023每日刷题&#xff08;一零一&#xff09; Leetcode—2942. 查找包含给定字符的单词 实现代码 class Solution { public:vector<int> findWordsContaining(vector<string>& words, char x) {vector<int> ans;for(int i 0; i < words.size(); i)…

【Linux】动态库和静态库——动态库和静态库的打包和使用、gcc编译、拷贝到系统默认的路径、建立软连接

文章目录 动态库和静态库1.静态库和动态库的介绍2.静态库的打包和使用2.1生成静态库2.2使用静态库的三种方式2.2.1gcc编译2.2.2拷贝到系统默认的路径2.2.3建立软连接 3.动态库的打包和使用3.1生成动态库3.2使用动态库3.3解决加载不到动态库的方法 动态库和静态库 1.静态库和动…

linux 下scrcpy 手机投屏到电脑,QT+ffmpeg 获取视频流,处理等等

linux 下scrcpy 手机投屏到电脑,QT+ffmpeg 获取视频流,处理 1 安装 scrcpy 地址 https://github.com/Genymobile/scrcpy 转到 relese 下载 我这里下载的是linux系统 v2.3.1 版本 scrcpy-2.3.1.tar.gz 下载 scrcpy-server v2.3.1 版本 scrcpy-server-v2.3.1 解压scrcpy-2.3…

林浩然的奇幻编程之旅:幽默探索图灵的智慧宇宙

林浩然的奇幻编程之旅&#xff1a;幽默探索图灵的智慧宇宙 Lin Haoran’s Fantastical Coding Journey: Humorous Exploration of Turing’s Intelligent Universe 林浩然&#xff0c;一个对计算机科学怀揣着无尽好奇的探索者&#xff0c;像一只闯入魔法森林的小狐狸&#xff0…

网安培训第二期——sql注入+中间件+工具

文章目录 宽字节注入插入注入二次注入PDO模式(动态靶机&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;)sql注入读取文件sql注入导出文件linux命令 10.12笔记sqlmapsqlmap参数 10.13笔记sqlmap 文件读写前后缀常用tamper及适用场景 10.…

Excel·VBA时间范围筛选及批量删除整行

看到一个帖子《excel吧-筛选开始时间&#xff0c;结束时间范围内的所有记录》&#xff0c;根据条件表中的开始时间和结束时间构成的时间范围&#xff0c;对数据表中的开始时间和结束时间范围内的数据进行筛选 目录 批量删除整行&#xff0c;整体删除批量删除整行&#xff0c;分…

多维时序 | Matlab实现DBO-LSTM蜣螂算法优化长短期记忆神经网络多变量时间序列预测

多维时序 | Matlab实现DBO-LSTM蜣螂算法优化长短期记忆神经网络多变量时间序列预测 目录 多维时序 | Matlab实现DBO-LSTM蜣螂算法优化长短期记忆神经网络多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现DBO-LSTM多变量时间序列预测&#x…

关机恶搞小程序

1. system("shutdown")的介绍 当system函数的参数是"shutdown"时&#xff0c;它将会执行系统的关机命令。 具体来说&#xff0c;system("shutdown")的功能是向操作系统发送一个关机信号&#xff0c;请求关闭计算机。这将触发操作系统执行一系列…