一、Docker安装ELK
在Docker运行ELK后,最终文件结构如下
elasticsearch
|- data
logstash
|- conf
|- logstash.conf
stack.yml
start.bat
步骤1:创建elasticsearch文件夹,在里面在创建一个data文件夹
步骤2:创建logstash文件夹,在里面创建conf文件夹,在conf文件夹里创建logstash.conf文件,内容如下:
input {
tcp {
mode => "server"
port => 5044
codec => json_lines
}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
action => "index"
index => "applog"
}
stdout {
codec => rubydebug
}
}
步骤3:创建stack.yml,内容如下:
version: '3.1'
services:
elasticsearch:
image: elasticsearch:6.8.7
environment:
discovery.type: single-node
networks:
elk-network:
aliases:
- elasticsearch
volumes:
- ./elasticsearch/data:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
kibana:
image: kibana:6.8.7
environment:
SERVER_NAME: kibana.example.org
ELASTICSEARCH_HOSTS: http://elasticsearch:9200
XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_ENABLED: "false"
networks:
elk-network:
aliases:
- kibana
ports:
- 5601:5601
depends_on:
- elasticsearch
logstash:
image: logstash:6.8.7
environment:
XPACK_MONITORING_ENABLED: "false"
XPACK_MONITORING_ELASTICSEARCH_HOSTS: http://elasticsearch:9200
networks:
elk-network:
aliases:
- logstash
volumes:
- ./logstash/conf:/usr/share/logstash/pipeline
ports:
- 5044:5044
depends_on:
- elasticsearch
networks:
elk-network:
driver: bridge
步骤4:创建start.bat脚本文件,内容如下:
docker-compose -f stack.yml up
pause;
步骤5:双击start.bat启动
二、SpringBoot中发送日志到logstash
步骤1:引入maven相关依赖,如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.1</version>
</dependency>
步骤2:在resource文件夹添加logback.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">
<include resource="org/springframework/boot/logging/logback/base.xml" />
<contextName>logback</contextName>
<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>127.0.0.1:5044</destination>
<!-- encoder必须配置,有多种可选 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<root level="info">
<appender-ref ref="stash" />
</root>
</configuration>
步骤3:启动项目打印日志测试
@SpringBootApplication
@Slf4j
public class MyApplication implements CommandLineRunner {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
log.info("test");
}
}
三、访问 http://localhost:5601/查看Kibana
(具体操作百度把)