赞
踩
ELK(Elasticsearch, Logstash, Kibana)是一个目前主流的开源日志监控平台。由三个主要组件组成的:
官网地址:https://www.elastic.co/cn/。
本篇文章重点在于,教你如何快速搭建ELK 日志监控平台,有关详细的使用操作会在后续文章进行讲解。
官方下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
在此,鄙人选择 7.17.16
版本,注意此版本号要记好。ELK 的版本最好统一,不然可能会出现版本不兼容的情况。
选择合适的安装包(本人MACOS系统,其他系统选择对应安装包就行)。
下载完成后,解压安装包。
打开终端,进入bin
目录,输入 ./elasticsearch
启动 ES。
cd /elasticsearch-7.17.16/bin
./elasticsearch
至此ES安装部署完毕。
官方下载地址:https://www.elastic.co/cn/downloads/past-releases#logstash
与 Elasticsearch 一致,选择7.17.16
版本。
选择本系统对应的安装包。
下载完成后,解压安装包。
打开终端,进入bin
目录,输入./logstash -e "input { stdin {} } output { stdout {} }"
启动。
cd /logstash-7.17.16/bin
./logstash -e "input { stdin {} } output { stdout {} }"
在控制台输入 hello ,会输出 Logstash 处理后的结果。
至此Logstash安装部署完毕。
官方下载地址:https://www.elastic.co/cn/downloads/past-releases#kibana
与 Elasticsearch 一致,选择7.17.16
版本。
选择与本系统对应的安装包。
下载完成后,解压安装包。
打开终端,进入bin
目录,输入./kibana
启动。
cd /kibana-7.17.16/bin
./kibana
打开浏览器输入http://localhost:5601/
,进入到Kibana界面。
至此Kibana安装部署完毕。
以上完成了ELK的快速搭建。接下来有一个小demo,教你如何利用 ELK 收集日志并查询。
我们先创建一个SpringBoot应用。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.7.12</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
</dependency>
</dependencies>
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!--日志文件所在目录--> <property name="LOG_HOME" value="../logs/log" /> <!--采用打印到控制台,记录日志的方式--> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!--日志输出格式--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 采用保存到日志文件 记录日志的方式, %d{yyyy-MM-dd HH:mm:ss.SSS}:输出日志发生的时间,精确到毫秒。 [%thread]:输出日志所在的线程名。 %-5level:输出日志级别,使用占位符%5level可以保持日志级别的对齐。 %logger{36}:输出日志所在的类名(只输出类名的后36个字符)。 %msg:输出日志消息。 %n:新行。 --> <!--滚动记录文件--> <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--日志文件地址--> <file>${LOG_HOME}/demoLog.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--粒度:天。等价于一天一个文件--> <fileNamePattern>${LOG_HOME}/demoLog-%d{yyyy-MM-dd}.log</fileNamePattern> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="INFO" additivity="false"> <appender-ref ref="rollingFile" /> <appender-ref ref="console" /> </root> </configuration>
@SpringBootApplication @Slf4j public class DemoLogApplication implements ApplicationRunner { public static void main(String[] args) { SpringApplication.run(DemoLogApplication.class,args); } @Override public void run(ApplicationArguments args) throws Exception { SimpleDateFormat format = new SimpleDateFormat("hh时mm分ss秒 SSS"); Random random = new Random(); while (true){ TimeUnit.MILLISECONDS.sleep(1000+random.nextInt(1000)); String format1 = format.format(new Date()); log.info("测试案例。当前时间:{}",format1); } } }
进入Logstash的config
目录,创建一个名为 demoLog.conf 文件
文件内容如下:
input { file { path => ".../logs/log/demoLog.log" start_position => "beginning" stat_interval => "3" type => "demo_log" } } output { if [type] == "demo_log" { elasticsearch { hosts => ["http://127.0.0.1:9200"] index => "demo_log-%{+YYYY.MM.dd}" } } }
属性说明:
input:指定Logstash接收数据的输入插件,使用file插件作为输入。file插件用于读取并处理文件中的数据。
file:指定使用的输入插件是file插件。
path:指定要读取的文件路径。
start_position:指定从文件的哪个位置开始读取数据。设置为"beginning"表示从文件的开始位置开始读取数据
stat_interval:指定文件的状态检查间隔(以秒为单位)。设置为"3"表示每隔3秒检查一次文件状态,以判断是否有新数据。
type:指定数据的类型名称。设置为"nginx-access-log"表示数据的类型是Nginx访问日志。
output:指定Logstash处理完数据后的输出插件。使用elasticsearch插件将处理后的日志数据发送到Elasticsearch。
- type:指定数据的类型名称。
- elasticsearch:指定使用的输出插件是elasticsearch插件。
- hosts:指定Elasticsearch集群的主机地址。Logstash将处理后的数据发送到位于"192.168.140.100"主机上,HTTP端口9200的ES节点
- index:指定数据在Elasticsearch中的索引名称,比如【 filebeat-8.4.1-2023.07.02 】使用[@metadata][version]字段和当前日期来构建索引名称 可以根据采集数据的来源和版本动态创建索引。
输入以下命令:
./logstash -f ../config/demo_log.conf
进入Stack Management,选择索引管理,可以看到我们配置的日志文件。
创建索引模式
输入索引模式名称,其实相当于检索索引的正则表达式。
进入Discover,即可检索日志信息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。