使用docker搭建elk
安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装elk
-
安装e (elasticsearch)
# 下载镜像 查看镜像 docker pull elasticsearch:7.1.1 docker images
-
创建自定义网络
# 创建自定义的网络(用于连接到连接到同一网络的其他服务(例如Kibana)) docker network create somenetwork # 运行 elasticsearch docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.1.1 # 查看容器状态 docker ps
-
安装k (kibana)
# 运行 Kibana docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:7.1.1 # 查看容器启动状态 docker ps
-
安装l(Logstash)
# 下载镜像 查看镜像 docker pull logstash:7.1.1 docker images
创建目录。mkdir -p /usr/local/src/docker/logstash/conf.d/
4.1 创建配置文件logstash.yml
/usr/local/src/docker/logstash/logstash.yml (文件内容) path.config: /usr/share/logstash/conf.d/*.conf path.logs: /var/log/logstash
4.2 创建配置文件logstash.yml
/usr/local/src/docker/logstash/conf.d/test.conf (文件内容)
input{ beats { port => 5044 codec => "json" } }output { elasticsearch { hosts => ["elasticsearch:9200"] action => “index” index => “arcade” } stdout { codec => rubydebug } }
启动 Logstash
启动 Logstash 记得映射上面两个目录 {path} docker run -it -d -p 5044:5044 --name logstash --net somenetwork -v /usr/local/src/docker/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml -v /usr/local/src/docker/logstash/conf.d/:/usr/share/logstash/conf.d/ logstash:7.1.1 查看容器运行状态 docker ps
-
安装 Filebeat
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.1-linux-x86_64.tar.gz # 解压 tar -zxvf filebeat-6.2.1-linux-x86_64.tar.gz #启动 ./filebeat -e -c filebeat.yml #修改 filebeat.yml - type: log # 一定要改成trueChange to true to enable this prospector configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. 这里是监控日志的地址 paths: - /markcloud/target/logs/*.log output.logstash: # The Logstash hosts hosts: ["logstash:5044"]
-
大功告成~
-
使用docker安装elk
安装docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装elk
-
安装e (elasticsearch)
# 下载镜像 查看镜像 docker pull elasticsearch:7.1.1 docker images
-
创建自定义网络
# 创建自定义的网络(用于连接到连接到同一网络的其他服务(例如Kibana)) docker network create somenetwork # 运行 elasticsearch docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.1.1 # 查看容器状态 docker ps
-
安装k (kibana)
# 运行 Kibana docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:7.1.1 # 查看容器启动状态 docker ps
-
安装l(Logstash)
# 下载镜像 查看镜像 docker pull logstash:7.1.1 docker images
创建目录。mkdir -p /usr/local/src/docker/logstash/conf.d/
4.1 创建配置文件logstash.yml
/usr/local/src/docker/logstash/logstash.yml (文件内容) path.config: /usr/share/logstash/conf.d/*.conf path.logs: /var/log/logstash
4.2 创建配置文件logstash.yml
/usr/local/src/docker/logstash/conf.d/test.conf (文件内容)
input{ beats { port => 5044 codec => "json" } }output { elasticsearch { hosts => ["elasticsearch:9200"] action => “index” index => “arcade” } stdout { codec => rubydebug } }
启动 Logstash
启动 Logstash 记得映射上面两个目录 {path} docker run -it -d -p 5044:5044 --name logstash --net somenetwork -v /usr/local/src/docker/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml -v /usr/local/src/docker/logstash/conf.d/:/usr/share/logstash/conf.d/ logstash:7.1.1 查看容器运行状态 docker ps
-
安装 Filebeat
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.1-linux-x86_64.tar.gz # 解压 tar -zxvf filebeat-6.2.1-linux-x86_64.tar.gz #启动 ./filebeat -e -c filebeat.yml #修改 filebeat.yml - type: log # 一定要改成trueChange to true to enable this prospector configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. 这里是监控日志的地址 paths: - /markcloud/target/logs/*.log output.logstash: # The Logstash hosts hosts: ["logstash:5044"]
-
大功告成~
7.