ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker安装部署ELK教程 (Elasticsearch+Kibana+Logstash+Filebeat)

2022-03-29 11:34:21  阅读:259  来源: 互联网

标签:ELK filebeat -- Filebeat Kibana master docker root logstash


一、Docker 安装 Elasticsearch

1拉取镜像

docker pull elasticsearch:7.1.1

2创建自定义的网络(用于连接到连接到同一网络的其他服务(例如Kibana))

docker network create somenetwork
3运行elasticsearch
docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.1.1
4查看容器状态
docker ps
5检测 elasticsearch 是否启动成功
curl 127.0.0.1:9200

二、Docker 安装 Kibana

1拉取镜像

docker pull kibana:7.1.1

2运行Kibana

注意:在本例中,Kibana使用默认配置,并希望连接到正在运行的Elasticsearch实例http://localhost:9200

docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:7.1.1

3浏览器访问测试

http://10.0.0.101:5601/

三、Docker 安装 Logstash

1拉取镜像

docker pull logstash:7.1.1

2创建目录用于存放配置文件

[root@master ~]# mkdir docker
[root@master ~]# mkdir docker/logstash
[root@master ~]# cd docker/logstash/
[root@master logstash]# vim logstash.yml
[root@master logstash]# cat logstash.yml
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
[root@master logstash]# mkdir conf.d
[root@master logstash]# cd conf.d/
[root@master conf.d]# vim test.conf
[root@master conf.d]# cat test.conf
input {
    beats {
    port => 5044
    codec => "json"
}
}

output {
  elasticsearch { hosts => ["elasticsearch:9200"] }
  stdout { codec => rubydebug }
}

3启动Logstash

记得映射上面两个目录 {path}

docker run -it -d -p 5044:5044 --name logstash --net somenetwork \
-v /root/docker/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml \
-v /root/docker/logstash/conf.d/:/usr/share/logstash/conf.d/ logstash:7.1.1

四、Docker 安装 Filebeat

1拉取镜像

docker pull store/elastic/filebeat:7.1.1

2下载官方默认配置文件

[root@master ~]# cd docker
[root@master docker]# mkdir filebeat
[root@master docker]# cd filebeat
[root@master filebeat]# curl -L -O https://raw.githubusercontent.com/elastic/beats/7.1/deploy/docker/filebeat.docker.yml

3修改配置文件

# 增加下面的配置 (收集 .log 数据 把数据发送到当前网络5044端口 (logstash 端口) )
# 这个地方的 .log 要保证有几条测试数据
filebeat.inputs:
- type: log
  enabled: true
  paths:
  - /var/log/nginx/*.log
output.logstash:
  hosts: ['{ip}:5044']
[root@master filebeat]# vim filebeat.docker.yml 
[root@master filebeat]# cat filebeat.docker.yml 
filebeat.config:
  modules:
    path: ${path.config}/modules.d/*.yml
    reload.enabled: false

filebeat.autodiscover:
  providers:
    - type: docker
      hints.enabled: true

processors:
- add_cloud_metadata: ~

output.elasticsearch:
  hosts: '${ELASTICSEARCH_HOSTS:elasticsearch:9200}'
  username: '${ELASTICSEARCH_USERNAME:}'
  password: '${ELASTICSEARCH_PASSWORD:}'
filebeat.inputs:
- type: log
  enabled: true
  paths:
  - /var/log/nginx/*.log

output.logstash:
  hosts: ['{ip}:5044']

4运行Filebest

# 请更改下面两个路径
{nginx-path} = 本地的日志文件目录(映射到容器中 作为数据源)
{path} = Filebeat配置文件路径
{ip} = elasticsearch

1) 创建本地日志文件目录

[root@master ~]# mkdir logs
[root@master ~]# cd logs
[root@master logs]# pwd
/root/logs

2) 确定filebest配置文件路径

[root@master ~]# cd docker/filebeat/
[root@master filebeat]# ls
filebeat.docker.yml
[root@master filebeat]# pwd
/root/docker/filebeat

3) 确定elasticsearch的ip地址

应该就是本机的ip地址10.0.0.101

4)运行

docker run --name filebeat --user=root -d --net somenetwork \
--volume="/root/logs:/var/log/nginx/" \
--volume="/root/docker/filebeat/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" \
--volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" \
--volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
store/elastic/filebeat:7.1.1

5登录web页面查看数据

http://10.0.0.101:5601/

 

标签:ELK,filebeat,--,Filebeat,Kibana,master,docker,root,logstash
来源: https://www.cnblogs.com/tyjs09/p/16070841.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有