elk 服务端配置
docker-compose 部署服务
version: '3.0'
services:
elasticsearch:
restart: always
image: elasticsearch:7.4.0
ports:
- "9200:9200"
- "9300:9300"
container_name: "es"
volumes:
- ./elk/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
environment:
- TZ=Asia/Shanghai
- discovery.type=single-node
networks:
- esnet
kibana:
restart: always
image: kibana:7.4.0
container_name: "kibana"
volumes:
- ./elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml:ro
ports:
- "5601:5601"
environment:
- TZ=Asia/Shanghai
networks:
- esnet
logstash:
restart: always
image: logstash:7.4.0
container_name: logstash
ports:
- 4560:4560
- 9600:9600
environment:
- TZ=Asia/Shanghai
volumes:
- ./elk/logstash/config/:/usr/share/logstash/config/
networks:
- esnet
networks:
esnet:
driver: bridge
在/root/elk/es/config 下创建 elasticsearch.yml
cluster.name: "my-es-7.4.0"
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
在/root/elk/kibana/config 下创建 kibana.yml
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://localhost:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
在/root/elk/logstash/config 下创建 logstash.yml
在/root/elk/logstash/config 下创建 log4j2.properties
logger.elasticsearchoutput.name = logstash.outputs.elasticsearch
logger.elasticsearchoutput.level = debug
在/root/elk/logstash/config 下创建 pipelines.yml(配置input-filter-output)
- pipeline.id: my-logstash
path.config: "/usr/share/logstash/config/*.conf"
pipeline.workers: 3
在/root/elk/logstash/config 下创建*.conf 文件(流的输入输出配置)
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 4560
}
}
output {
elasticsearch {
action => "index"
# 配置es连接
hosts => "ip:9200"
# 配置索引
index => "index"
}
}
打开http://localhost:5601
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ecaa8e0ef88454c86dd5fab930bcdd73.png)
elk 客户端配置
引入依赖
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.2</version>
</dependency>
logback-spring.xml的配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<springProperty scope="context" name="appName" source="spring.application.name" />
<springProperty scope="context" name="ip" source="server.port" />
<property name="serviceName" value="consumer" />
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>ip:4560</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<timeZone>UTC</timeZone>
</timestamp>
<pattern>
<pattern>
{
"level": "%level",
"ip": "${ip}",
"appname": "${appName}",
"serviceName": "${serviceName}",
"pid": "${PID:-}",
"thread": "%thread",
"class": "%logger{40}",
"disc": "%message",
"stack_trace": "%exception"
}
</pattern>
</pattern>
</providers>
</encoder>
</appender>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<root level="INFO">
<appender-ref ref="LOGSTASH" />
<appender-ref ref="CONSOLE" />
</root>
</configuration>
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/31634698ca4055f28638ef5598b2478b.png)