个人博客

docker部署elk

一、简介

Elastic Stack(旧称ELK Stack),是一种能够从任意数据源抽取数据,并实时对数据进行搜索、分析和可视化展现的数据分析框架。

ELK是由 Elasticsearch、Logstash和Kibana 三部分组件组成。

Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash 是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用

kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

Filebeat 是用于单用途数据托运人的平台。它们以轻量级代理的形式安装,并将来自成百上千台机器的数据发送到 Logstash 或 Elasticsearch。

架构:

picture

工作原理:

picture

在需要收集日志的所有服务上部署 logstash ,其中 logstash agent ( logstash shipper )用于监控并过滤收集日志,将过滤后的内容发送到 logstash indexer , logstash indexer 将日志收集在一起交给全文搜索服务 ElasticSearch ,可以用 ElasticSearch 进行自定义搜索,通过 Kibana 来结合自定义搜索进行页面展示。

二、安装Elasticsearch

# 下载镜像 查看镜像
docker pull elasticsearch:7.1.1
docker images

picture

创建自定义的网络(用于连接到连接到同一网络的其他服务(例如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

picture

检测 elasticsearch 是否启动成功

curl 127.0.0.1:9200

picture

看到上图响应,说明Elasticsearch 安装启动完成。

三、安装Kibana

这里需要使用和 elasticsearch 相同版本镜像 7.1.1 (不一样可能会出现问题)。

# 下载镜像 查看镜像
docker pull kibana:7.1.1
docker images

picture

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

运行 Kibana:

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

查看容器启动状态:

docker ps

picture

访问 http://服务器IP:5601,就可以看到kibana界面了

picture

四、安装Logstash

使用同版本镜像 7.1.1

# 下载镜像 查看镜像
docker pull logstash:7.1.1
docker images

picture

在本地服务创建一个存放配置的文件夹,用于保存要启动的服务的配置文件,在映射到文件到docker服务中

picture

picture

进入到logstash配置配置文件:

picture

配置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

picture

五、安装Filebeat

使用同版本镜像 7.1.1

# 下载镜像 查看镜像
docker pull store/elastic/filebeat:7.1.1
docker images

picture

进入到/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

picture

启动成功后,就可以去Kibana查看日志数据了。

相关标签
elk
回到顶部