一、Docker 安装 Elasticsearch
1、下载镜像 查看镜像
Docker 镜像统一从 https://hub.docker.com/_/elasticsearch下载,进入后查看所需版本
docker pull elasticsearch:7.17.0
2、运行 elasticsearch
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.17.0
#检测 elasticsearch 是否启动成功
curl 127.0.0.1:9200
Elasticsearch 安装启动完成
docker exec -it elasticsearch bash #进入docker容器
cd config #进入配置文件路径
vi elasticsearch.yml #修改配置文件
//增加下面两项,如果不添加以下两项,ElasticSearch-Head连接不了
http.cors.enabled: true
http.cors.allow-origin: "*"
二、安装ElasticSearch-Head(ES可视化工具)
进入https://hub.docker.com/,搜索ElasticSearch-Head,选择合适的版本下载
1、下载
docker pull mobz/elasticsearch-head:5
2、安装
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
二、Docker 安装 Kibana
https://hub.docker.com/_/kibana,查看镜像版本
1、下载镜像,最好安装相同版本
docker pull kibana:7.17.0
2、安装镜像
docker run -d --name kibana --net somenetwork -p 5601:5601 -e ELASTICSEARCH_URL=http://192.168.218.132:9200 kibana:7.17.0
docker run --name kibana --net somenetwork -p 5601:5601 -d -e ELASTICSEARCH_URL=http://192.168.218.132:9200 kibana:7.17.0
访问 http://127.0.0.1:5601 (启动可能会较慢,如失败等几秒再尝试刷新一下)
Kibana 安装启动完成
三、Docker 安装 Logstash
官网镜像地址:https://hub.docker.com/_/logstash
1、下载镜像
docker pull logstash:7.17.0
2、创建主机地址
mkdir /data
mkdir /data/elk
mkdir /data/elk/logstash
mkdir /data/elk/logstash/conf.d
3、编写配置文件
cd /data/elk/logstash
vi logstash.yml
内容如下:
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
#以下为filebeat的配置
cd /data/elk/logstash/conf.d
vi test.conf
内容如下:
input {
beats {
port => 5044
codec => "json"
}
}
output {
elasticsearch { hosts => ["192.168.218.132:9200"] }
stdout { codec => rubydebug }
}
#以下为spring boot的配置
cd /data/elk/logstash/conf.d
vi tcpspring.conf
input{
tcp {
port => 5044
codec => json_lines
}
}
output{
elasticsearch{
hosts=>["http://192.168.218.132:9200"]
index => "user-%{+YYYY.MM.dd}"
}
stdout{codec => rubydebug}
}
注释1:
input
通过tcp方式,logback将日志内容发送给了logstash,也就是logstash的日志来源input为logstash暴露的5044所接收到的日志信息。
因为logstash为本服务所在的服务器上,所以未标明IP即代表logstash服务所在的服务器的IP。
注释2:
output
hosts标明logstash的输出端是存储到ES中,而ES的地址就是http://ES服务所在服务器IP:端口
index代表 日志在ES中所创建的index名为 “user-2019-02-27” 这样的 每天创建新的index
stdout标明 spring boot的日志不仅输出到ES中,还在logstash的控制台也会输出,这样有助于查看
docker run -it -d -p 5044:5044 -p 5045:5045 -p 5046:5046 --name logstash --net somenetwork -v /data/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml -v /data/elk/logstash/conf.d/:/usr/share/logstash/conf.d/ logstash:7.17.0
docker restart logstash
docker logs -f logstash
参考文档:
Docker安装部署ELK教程 (Elasticsearch+Kibana+Logstash+Filebeat)
基于docker安装ELK
使用Docker搭建ELK日志系统
Docker实战(九):Docker安装ELK环境
Docker 安装 Logstash
【ELK】5.spring boot日志集成ELK,搭建日志系统