不要一股脑执行以下语句,请观察修改要修改的地方
安装logstash
# logstash安装docker run -d --name logstash \-p 5043:5043 -p 5044:5044 --privileged=true \-v /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \-v /mydata/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \logstash:7.17.3
elasticsearch
# 安装es
docker pull elasticsearch:7.17.3
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
chmod -R 777 /mydata/elasticsearch/docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
--restart=always --privileged=true \
-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.17.3
kibana
# 安装es可视化工具kibana
docker pull kibana:7.17.3# ELASTICSEARCH_HOSTS=http://本机ip:9200
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.101:9200 -p 5601:5601 \
--restart=always --privileged=true -d kibana:7.17.3
注意给logstash,elasticsearch,kibana释放端口,云服务器提供商和系统的端口
访问 http://ip:9200,http://ip:5601看es,kibana是否安装完成
2.1进入到es挂载目录elasticsearch.yml的挂载目录,添加以下内容
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl.enabled: true
# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl.enabled: false
2.重启es容器并进入es容器
3.进入容器后执行以下命令 傻瓜式设置账号密码
./bin/elasticsearch-setup-passwords interactive
4.重启es容器
3.1 进入logstash容器执行以下命令:
docker exec -it logstash /bin/bash/usr/share/logstash/bin/logstash-plugin install logstash-codec-json_lines
3.2 重启logstash
3.3 进入logstash容器的挂载目录logstash.conf
input {stdin { }tcp {mode => "server"host => "0.0.0.0"port => 5043codec => json_lines}
}output {stdout {codec => rubydebug}elasticsearch {hosts => "192.168.1.1:9200"index => "springboot-%{+YYYY.MM.dd}"user => "username"password => "password"}
}
这里认证明文不安全.可以参考如下链接:
密文
pom.xml
ch.qos.logback logback-classic
net.logstash.logback logstash-logback-encoder 7.3
在resources文件夹下,创建logback-spring.xml
INFO false %d{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) -- %boldMagenta([%thread]) %boldCyan(%logger) : %msg%n UTF-8 175.178.216.62:5043 {"applicationName":"${applicationName}"} ${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log 30 %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n 10MB
测试成果
@RestController
public class TestController {private final static Logger logger= LoggerFactory.getLogger(TestController.class);@RequestMapping("/myTest")public void test(){logger.info("日志开始"+System.currentTimeMillis());logger.info("日志结束"+System.currentTimeMillis());}
}
详见本篇文章