Logstash
是Elastic Stack
中的一个重要组件,用于从各种来源收集、处理和转发数据。以下是如何在若依微服务项目中集成Logstash
的详细步骤。
Logstash是一个开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到最喜欢的存储库中(如Elasticsearch)。
从
Logstash
官网下载页面下载最新版本的Logstash
https://www.elastic.co/cn/downloads/logstash
将下载的安装包解压到指定目录:
tar -zxvf logstash-8.13.4.tar.gz -C /usr/local
进入Logstash
的bin
目录并创建配置文件:
cd /usr/local/logstash-8.13.4/bin
vim logstash-elasticsearch.conf
在配置文件中添加以下内容:
input {
stdin {}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
}
stdout {
codec => rubydebug
}
}
使用创建的配置文件启动Logstash
./logstash -f logstash-elasticsearch.conf
在实际项目中,我们通常不会直接从stdin
输入数据,而是从文件、数据库、消息队列等来源输入数据。这里以从文件输入数据为例,修改Logstash
配置文件:
input {
file {
path => "/path/to/your/logfile.log"
start_position => "beginning"
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "your_index_name"
}
stdout {
codec => rubydebug
}
}
在若依微服务项目中,将日志输出到指定文件,以便Logstash
能够读取和处理这些日志。修改logback-spring.xml
配置文件:
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/path/to/your/logfile.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/path/to/your/logfile.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="FILE" />
</root>
这样,若依微服务的日志将被写入到指定的日志文件中,Logstash
可以读取这些日志并将其发送到Elasticsearch
。
启动若依微服务项目并生成一些日志。然后检查Logstash
的输出,确保日志数据已成功发送到Elasticsearch
。
powered by kaifamiao