docker安装ELK

一、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
docker安装ELK_第1张图片
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安装ELK_第2张图片

二、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 (启动可能会较慢,如失败等几秒再尝试刷新一下)
docker安装ELK_第3张图片
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,搭建日志系统

你可能感兴趣的:(docker,elk,elasticsearch)