docker部署elk
作者:向前的步伐 / 发表: 2020年12月27日 20:22 / 更新: 2020年12月27日 20:22 / git&工具 / 阅读量:878
一、简介
Elastic Stack(旧称ELK Stack),是一种能够从任意数据源抽取数据,并实时对数据进行搜索、分析和可视化展现的数据分析框架。
ELK是由 Elasticsearch、Logstash和Kibana 三部分组件组成。
Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash 是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
Filebeat 是用于单用途数据托运人的平台。它们以轻量级代理的形式安装,并将来自成百上千台机器的数据发送到 Logstash 或 Elasticsearch。
架构:
工作原理:
在需要收集日志的所有服务上部署 logstash ,其中 logstash agent ( logstash shipper )用于监控并过滤收集日志,将过滤后的内容发送到 logstash indexer , logstash indexer 将日志收集在一起交给全文搜索服务 ElasticSearch ,可以用 ElasticSearch 进行自定义搜索,通过 Kibana 来结合自定义搜索进行页面展示。
二、安装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
检测 elasticsearch 是否启动成功
curl 127.0.0.1:9200
看到上图响应,说明Elasticsearch 安装启动完成。
三、安装Kibana
这里需要使用和 elasticsearch 相同版本镜像 7.1.1 (不一样可能会出现问题)。
# 下载镜像 查看镜像
docker pull kibana:7.1.1
docker images
注意:在本例中,Kibana使用默认配置,并希望连接到正在运行的Elasticsearch实例http://localhost:9200
运行 Kibana:
docker run -d --name kibana --net somenetwork -p 5601:5601 kibana:7.1.1
查看容器启动状态:
docker ps
访问 http://服务器IP:5601,就可以看到kibana界面了
四、安装Logstash
使用同版本镜像 7.1.1
# 下载镜像 查看镜像
docker pull logstash:7.1.1
docker images
在本地服务创建一个存放配置的文件夹,用于保存要启动的服务的配置文件,在映射到文件到docker服务中
进入到logstash配置配置文件:
配置logstash.yml:
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
再编辑conf.d/test.conf:
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["192.168.93.128:9200"]
index => "log-%{+yyyy.MM.dd}"
}
}
启动Logstash容器:
docker run -it -d -p 5044:5044 --name logstash --net somenetwork -v /root/elk_pro/logstash/logstash.yml:/usr/share/logstash/logstash.yml -v /root/elk_pro/logstash/conf.d/:/usr/share/logstash/conf.d/ logstash:7.1.1
查看容器运行状态:
docker ps
五、安装Filebeat
使用同版本镜像 7.1.1
# 下载镜像 查看镜像
docker pull store/elastic/filebeat:7.1.1
docker images
进入到/root/elk_pro/filebeat,编辑创建filebeat.docker.yml:
# 日志输入配置
filebeat.inputs:
- type: log
enabled: true
paths:
# 需要收集的日志所在的位置,可使用通配符进行配置
- /root/elk_pro/filebeat/log/*.log
#日志输出配置(采用 logstash 收集日志,5044为logstash端口)
output.logstash:
hosts: ['192.168.93.128:5044']
注:192.168.93.128服务器IP
启动Filebeat:
docker run --name filebeat --user=root -d --net somenetwork -v /root/elk_pro/filebeat/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml --privileged=true store/elastic/filebeat:7.1.1
查看容器启动状态:
docker ps
启动成功后,就可以去Kibana查看日志数据了。