一、docker安装各个环境
1. 安装es
docker pull elasticsearch:7.4.2
执行脚本:
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
elasticsearch.yml: 这个文件好像要提前建好,对应宿主机文件夹也可以先建好
yml里面加上:
http.host: 0.0.0.0
我猜是允许所有外网访问吧,但是我用的是宝塔面板,防火墙…
好了,如下图启动成功(kibana、logstash):
2. 安装kibana
docker pull kibana:7.4.2
安装脚本:
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.109.135:9200 -p 5601:5601 -d kibana:7.4.2
3. 安装logstash
三者版本一致,要不然会出现莫名的BUG
docker pull logstash:7.4.2
这里需要先配置一个文件(创建并启动 logstash需要映射):
新建文件 /mydata/logstash/logstash.conf
input {
tcp {
mode => "server"
host => "0.0.0.0"
# 接收服务发送过来的日志端口,随意改,别重复就好
port => 5000
codec => json_lines
}
}
output {
elasticsearch {
# 自己es装的地方
hosts => ["192.168.109.135:9200"]
action => "index"
# 索引 kibana创建索引时使用,根据自己心情来,最好有意义,我是我的网站服务名log+时间节点
index => "dscnlog-%{+YYYY.MM.dd}"
}
stdout {
codec => rubydebug
}
}
安装脚本:
docker run --name logstash -p 5000:5000 \
-v /mydata/logstash/logstash.conf:/etc/logstash.conf \
--link elasticsearch:elasticsearch \
-d logstash:7.4.2 \
logstash -f /etc/logstash.conf
所有的安装就完成了,有问题多试几遍就可以了
二、集成到SpringCloud简单的使用
1. 加入依赖
一般是在公共模块,每个服务都会引用的模块
加入maven依赖(好像6.x了应该可以集成,我没试过,可以试试):
<!-- 日志集中管理 -->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.2</version>
</dependency>
2. 创建logback.xml
依旧放在公共模块下的 resources文件下:
直接取名叫logback.xml这个就行了,改名字还需要额外加入springboot的配置,麻烦
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">
<!-- 作用域就是spring的上下文环境中,后面是服务名,defaultValue不填就可以了,之后就是打印对应的服务名 -->
<springProperty scope="context" name="applicationName" source="spring.application.name" defaultValue=""/>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!-- logstash远程主机 -->
<destination>192.168.109.135:5000</destination>
<!-- encoder必须配置,有多种可选 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<!-- 日志输出级别 -->
<root level="info">
<appender-ref ref="stash" />
</root>
</configuration>
3. 打开kibana界面
这几个操作:
这样就把日志集成好了,统一管理;
谢谢大家阅读!互相学习!感谢魏来指导!