思有云 - IOIOX - logstash
type: channel
link: https://www.ioiox.com/tag/logstash/
items: Docker Compose 部署 ELK 日志管理系统 Elasticsearch + Logstash + Kibana + Filebeat

Docker Compose 部署 ELK 日志管理系统 Elasticsearch + Logstash + Kibana + Filebeat
type: item
date: 2021-05-11T15:52:00+08:00
description: 前言ELK日志管理系统是Elasticsearch + Logstash + Kibana的简称,加上Filebeat组成一整套日志收集,过滤,处理,数据存储和前端展示系统.博主经过一段时间的安装,配置,测试也基本满足了个人以及中小企业团队对于日志管理的需求.在研究的这段时间里参考了网上各种教程,整合了相对详细的部署和配置教程分享给大家.本教程使用docker-compose整合部署,参考 deviantony/docker-elk 7.13.2的TLS加密版.i> ELK一般都部署于内网来管理内网服务器,由于个人使用,通过互联网管理各服务器,所以使用 TLS 版部署,确保在发送日志时使用加密协议保证安全.√> 本文为 Stille 原创文章.经实践,测试,整理发布.如需转载请联系作者获得授权,并注明转载地址.项目流程服务端:部署ELK即 Elasticsearch + Logstash + Kibana 到日志服务器.客户端:部署Filebeat到需要收集日志的服务器.常规流程客户端部署Filebeat监控日志,发送至日志服务器ELK中的logstash做进一步的过滤和整理,在发送至数据库elasticsearch存储,通过kibana前端展示.本文流程由于个人使用,并没有过多的日志过滤和整理需求,加上logstash本身非常耗费服务器资源.所以本文教程将不使用logstash功能,直接在客户端部署Filebeat监控日志,发送至日志服务器ELK中的elasticsearch存储,通过kibana前端展示.部署服务端 ELK部署 TLS 版 ELK拉取代码git clone -b tls https://github.com/deviantony/docker-elk elk # 拉取代码reset 到指定版本!> 如需使用最新版本,请忽略本操作,本文以 7.13.2 版为例.git reset c03a1d06e2e1fc2c62b399059bf4762bc7661db4 --hard # reset 到 7.13.2 with tls 版本修改配置修改docker-compose.yml中顶级卷配置到指定目录用于存储数据,并创建data目录.volumes: elasticsearch: driver: local driver_opts: type: 'none' o: 'bind' device: '/root/elk/data'在elk根目录创建data目录cd elk mkdir data启动 elk 并重置密码docker-compose up -d # 启动 elk docker-compose exec -T elasticsearch bin/elasticsearch-setup-passwords auto --batch -u https://localhost:9200 # 重置并保存好密码 docker-compose down # 停止 elk批量修改密码推荐使用vscode等软件搜索整个elk目录,将changeme修改为上文生成elastic的新密码.创建证书!> tls 版代码中已经含有 tls 目录,并且也已经有证书,本文建议自行创建自己的证书比较安全.x> 以下命令需在 tls 目录下执行,先执行 cd tls 在创建证书,提示时全部选 A 覆盖docker run -it \ -v ${PWD}:/usr/share/elasticsearch/tls \ docker.elastic.co/elasticsearch/elasticsearch:7.13.2 \ bin/elasticsearch-certutil cert \ --days 3650 \ --keep-ca-key \ --in tls/instances.yml \ --out tls/certificate-bundle.zip解压缩,删除压缩文件,选择 A 覆盖.unzip certificate-bundle.zip # 选择 A 覆盖 rm -rf certificate-bundle.zip # 删除 zip再次参考以下提示,执行命令并选择.docker run -it \ -v ${PWD}:/usr/share/elasticsearch/tls \ docker.elastic.co/elasticsearch/elasticsearch:7.13.2 \ bin/elasticsearch-certutil http参考选择!> 注意最后一行是填写路径 tls/elasticsearch-ssl-http.zipGenerate a CSR? [y/N] n Use an existing…