使用 ELK 收集日志

article/2025/11/3 23:04:13

        在当前分布式、微服务架构下,各个应用都部署在不同的服务器上,每个应用都在记录着自己重要或者不重要的日志信息。当我们要通过日志信息来排查错误时,可以根据出错应用在对应的机器上找报错相关的日志信息。但是,可能我们不具有相应服务器的访问权限,也可能相同的应用部署在多台服务器上,导致根本不知道在哪台服务器上找日志。遇到类似这样的尴尬,想要通过日志来排查错误就搞得很麻烦。在这种情况下,ELK 为我们提供了统一的日志管理解决方案,它能很好的支持 Logback 等日志框架,使得我们可以集中的管理不同应用输出的日志信息。

        ELK 是 ElasticSearch、Logstash 和 Kibana 的简写。ElasticSearch 主要用来存储日志信息,并提供检索功能;Logstash 用于收集应用发送的日志信息,并写入到 ElasticSearch 当中;Kibana 是一个可视化的日志查看、分析工具。

        ELK 架构大体如下:

        在上图中应用日志框架直接将日志发送给 Logstash,然后 Logstash 将接收的日志写入 ElasticSearch 中,开发人员通过可视化的 Kibana 可以进行日志的查询和分析。

        在上图中,Logstash、ElasticSearch 都可以是多个,而不是一个。

ELK 的下载

        ELK 都可以通过它们的官网进行下载,最好将它们的版本进行统一。我这里下载的是 7.17.6 的版本,即 ElasticSearch、Logstash 和 Kibana 都是 7.17.6 版本的。

        它们的下载地址分别如下:

- elasticsearch下载地址:
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-17-6
- logstash下载地址:
https://www.elastic.co/cn/downloads/past-releases/logstash-7-17-6
- kibana下载地址:
https://www.elastic.co/cn/downloads/past-releases/kibana-7-17-6

        ELK 下载后只需要解压缩后进行配置即可使用,还是很方便的。

 

ELK 的配置与启动

        我这里使用的是 Windows 系统进行演示,在将 ELK 配置好后直接使用命令行进行启动,并没有将其注册为服务。

ElasticSearch 的配置与启动

        在 ES 的安装目录下有个 config 目录,打开该目录下的 elasticsearch.yml 文件,然后取消掉两行配置的注释符号,并进行简单的修改,配置如下:

network.host: 0.0.0.0
discovery.seed_hosts: ["127.0.0.1", "[::1]"]

        在 ES 的安装目录下打开命令行执行以下命令,来启动 ES:

.\bin\elasticsearch.bat

Logstash 的配置与启动

        在 Logstash 的安装目录下同样有一个 config 目录,复制 logstash-sample.conf 配置文件,并命名为 log_to_es.conf,文件名可以自己定,启动时写对即可。

        修改配置如下:

input {beats {port => 5044}tcp {host => "0.0.0.0"port => 8082mode => "server"tags => ["bsjiot"]codec => json_lines}
}output {elasticsearch {hosts => ["http://localhost:9200"]}
}

        其中 input 是用于收集日志信息的配置,output 是用于将收集的信息推送到 ES 中。通过命令行来启动 Logstash,命令如下:

.\bin\logstash.bat -f .\config\log_to_es.conf

Kibana 的配置与启动

        在 Kibana 的安装目录下也同样有一个 config 目录,修改该目录下的 kibana.yml 文件,配置如下:

elasticsearch.hosts: ["http://localhost:9200"]
server.host: "127.0.0.1"

        通过在命令行如下命令启动 Kibana,命令如下:

.\bin\kibana.bat

通过 Logback 输出日志到 ELK

        上面配置完 ELK 并启动后,通过 SpringBoot 来进行测试。

        首先引入两个依赖,引入依赖如下:

<dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>7.2</version>
</dependency>
<dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId>
</dependency>

        接下来配置 Logback 的配置文件:

<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"><destination>localhost:8082</destination><encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"><customFields>{"appname":"xxxx"}</customFields></encoder>
</appender>
<root level="info"><appender-ref ref="CONSOLE" /><appender-ref ref="LOGSTASH" />
</root>

        最后通过 Logback 来输出一些日志,然后在 Kibana 中进行查看。

通过 Kibana 查看日志

        我们来访问 Kibana 提供的 Web 页面浏览器中打开 http://localhost:5601/ 该地址。然后在左侧列表中选择 Stack Managentment,选择后会出现新的页面,然后选择 Index Patterns 选项。在新出现的页面中点击 Create Index pattern 按钮,然后命名其为 logstash-*(这里名字随意),并选择 @timestamp 的字段,如下图:

        选择好后,点击 Create index pattern 按钮即可。创建完成后,返回 Kibana 的首页,选择 Discover 选项,切换到我们新建的 logstash-* 选项下,然后选择时间段,就可以看到相应的日志信息了。

小结

        上例中 ELK 都部署在了一台机器上,Demo 演示而已。实际情况中,ELK 可能部署在多台机器上,且可以配置集群。当微服务等客户端特别多时,同时向 Logstash 发送数据,并写入 ES 可能会影响性能,此时可以在客户端和 Logstash 中间引入 Kafka 来缓解 Logstash 和 ES 的压力。


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

相关文章

ELK日志分析

目录 一、概述 ELK工作原理 二、Elasticsearch 1.介绍 2.基础核心概念 (1)接近实时&#xff08;NRT&#xff09; (2)集群&#xff08;cluster&#xff09; (3)节点&#xff08;node&#xff09; (4)索引&#xff08;index&#xff09; (5)类型&#xff08;type&…

ELK日志分析系统(一)之ELK原理

文章目录 前言一、ELK简介1.ELK日志分析系统组成1.1Elasticsearch&#xff08;es&#xff09;1.2Logstash1.3Kibana 2.日志处理步骤 二、Elasticsearch1.Elasticsearch概述2.Elasticsearch核心概念2.1接近实时&#xff08;NRT&#xff09;2.2集群&#xff08;cluster&#xff0…

ELK相关软件下载安装

一、Windows安装elasticsearch 1、安装JDK&#xff0c;至少1.8.0_73以上版本&#xff0c;验证&#xff1a;java -version 2、下载和解压缩Elasticsearch安装包&#xff0c;查看目录结构 下载地址&#xff1a;https://www.elastic.co/cn/downloads/elasticsearch 目录结构&am…

ELK日志分析系统

目录 一、ELK日志分析系统 1、日志分析 2、elk 日志分析的工具 3、Logstash 4、elasticsearch介绍 5、Elasticsearch的基础核心概念 7、logstash介绍 8、Kibana介绍 二、实验 1、配置elasticsearch环境 2、安装elasticsearch-head插件 3、安装logstash 4、在node1主…

centos7搭建elk

ELK 是 ElasticSearch、 LogStash、 Kibana 三个开源工具的简称,现在还包括 Beats,其分工如下: LogStash/Beats: 负责数据的收集与处理ElasticSearch: 一个开源的分布式搜索引擎,负责数据的存储、检索和分析Kibana: 提供了可视化的界面。负责数据的可视化操作基于 ELK Stack…

ELK简介

目录 1.什么是ELK 2.为什么使用ELK 3.ELK的工作流程简介 4.ELK重点组件介绍 ①Filebeat工作原理&#xff1a; ②Logstash工作原理&#xff1a; 5.ELK架构举例 ①&#xff1a; ②&#xff1a; ③&#xff1a; 1.什么是ELK ELK是三个开源软件的缩写&#xff0c;分别是E…

ELK分布式日志解决方案

一、简介 ELK&#xff0c;包含三款产品&#xff0c;Elasticsearch、Logstash、Kibana&#xff0c;可在项目中作为日志框架使用。 项目中框架整合所需技术&#xff1a; 在整个方案中&#xff0c;各组件的作用如下&#xff1a; 应用服务 生产日志&#xff0c;通过Logger产生日…

ElasticSearch(九):ELK 架构

日志收集——》格式化分析——》检索和可视化——》风险告警 ELK架构 经典的ELK整合消息队列Nginx架构 什么是Logstash Logstash核心概念Logstash数据传输原理Logstash配置文件结构Logstash QueueLogstash导入数据到ES同步数据库数据到Elasticsearch 什么是Beats FileBeat简介…

ELK入门

整体思路 filebeat采集数据--->Kafka--->Logstash提取Kafka--->ES-->Kibana可视化 ElasticSearch 首次启动时&#xff0c;密码在控制台日志中, 建议保留首次运行时的日志 elk 下载地址&#xff1a; 下载 Elastic 产品 | Elastic -> Elasticsearch security f…

ELK 环境搭建

ELK ELK 其实是Elasticsearch、Logstash和Kibana三个产品的首字母缩写&#xff0c;这三款都是开源产品。 ElasticSearch (简称 ES)&#xff0c;是一个实时的分布式搜索和分析引擎&#xff0c;它可以用于全文搜索&#xff0c;结构化搜索以及分析&#xff1b;Logstash 是一个数…

ELK(入门篇)

简介 ELK由Elasticsearch、Logstash、Kibana三个优秀的开源项目组成&#xff0c;取首字母简写命名为ELK&#xff0c;主要提供对数据的加载、处理、查询等功能。其中&#xff1a; Elasticsearch&#xff1a;对数据进行搜集、分析、存储。 Logstash&#xff1a;对数据的搜集、分…

ELK详解

一&#xff0c;搜索原理 1&#xff0c;前提条件数据准备 a.获取数据 - 从互联网中获取数据 爬虫&#xff0c;网站数据b.建立文档 - 方便本地查询&#xff0c;将之前获取的数据&#xff0c;以文档的样式存在采取专用的存储软件&#xff0c;将文件&#xff08;Document&#…

ELK学习总结——我们为什么要用ELK

一. ELK是什么&#xff1f; ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案&#xff0c;是三个产品的首字母缩写&#xff0c;分别是ElasticSearch、Logstash 和 Kibana。 ElasticSearch简称ES&#xff0c;它是一个实时的分布式搜索和分析引擎&#xff0c;它可以…

1、ELK介绍

一、ELK简介 ELK是三个开源软件的缩写&#xff0c;分别表示&#xff1a;Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat&#xff0c;它是一个轻量级的日志收集处理工具(Agent)&#xff0c;Filebeat占用资源少&#xff0c;适合于在各个服务器上搜集…

ELK超详细配置

文章目录 一、ELK日志分析系统简介1.1、ELK日志分析系统组成1.2、日志处理步骤二、3款软件各自概念2.1、Elasticsearch介绍2.2、Logstash介绍2.3、Kibana介绍三、ELK日志分析系统部署3.1、实验环境及准备3.2、实验步骤3.2.1、elk-1和elk-2中部署Elasticsearch3.2.2、apache主机…

ELK入门——ELK详细介绍(ELK概念和特点、Elasticsearch/Logstash/beats/kibana安装及使用介绍、插件介绍)

目录 主要参考链接 一、什么是ELK&#xff08;端口9200&#xff09; 主要特点&#xff1a; 1.存储&#xff1a;面向文档JSON 2.检索&#xff1a;倒排乐观锁 3.分析&#xff1a;监控预警可视化 4.支持集群 二、Logstash&#xff08;端口5044&#xff09; 三、Beats 四…

ELK 是什么?

前言 本文隶属于专栏《1000个问题搞定大数据技术体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和文献引用请见1000个问题搞定大数据技术体系 正文 ELK ELK是三个软…

【ElasticSearch】ELK简介

本文目录 一、什么是ELK&#xff1f; 二、ELK简介 2.1 E -- ElasticSearch 2.2 L -- Logstash 2.3 K -- Kibana 三、ELK优点 一、什么是ELK&#xff1f; ELK 是 Elasticsearch、Logstash、Kibana 三大开源框架的首字母大写简称。市面上也被称为Elastic Stack。其中 Elas…

ELK详解(一)——ELK基本原理

今天继续给大家介绍Linux运维相关知识&#xff0c;本文主要内容是ELK的基本原理。 一、ELK简介 ELK是三个软件的统称&#xff0c;即Elasticsearch、Logstash和Kibana三个开源软件的缩写。这三款软件都是开源软件&#xff0c;通常配合使用&#xff0c;并且都先后归于Elastic.c…

ELK介绍

文章目录 1.ELK简介2.ELK架构图3.Filebeat工作原理4.Logstash工作原理 1.ELK简介 ELK是三个开源软件的缩写&#xff0c;分别表示&#xff1a;Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat&#xff0c;它是一个轻量级的日志收集处理工具(Agent)&a…