Docker 方式部署 ELK(Elasticsearch+Logstash+Kibana)

阅读时长 5 分钟读完

在现代化的应用程序中,日志是非常重要的一部分。日志可以帮助我们了解应用程序的运行情况,发现问题并进行调试。ELK(Elasticsearch+Logstash+Kibana)是一个非常流行的日志分析平台,它可以帮助我们收集、分析和可视化日志数据。在本文中,我们将介绍如何使用 Docker 方式部署 ELK。

前置条件

在开始之前,您需要安装 Docker 和 Docker Compose。如果您还没有安装,请前往 Docker 官网下载安装程序。

准备工作

为了部署 ELK,我们需要创建一个 Docker Compose 文件。在项目根目录下创建一个名为 docker-compose.yml 的文件,并添加以下内容:

-- -------------------- ---- -------
-------- ---

---------
  --------------
    ------ ---------------------------------------------------
    --------------- -------------
    ------------
      - --------------------------
    ------
      - ---------
    --------
      - ----------------------------------

  ---------
    ------ -----------------------------------------
    --------------- --------
    -------- -------- -- ------------------------------------------
    -----------
      - -------------
    ------
      - ---------
    --------
      - ------------------------------------------------

  -------
    ------ -------------------------------------
    --------------- ------
    -----------
      - -------------
    ------
      - ---------

--------
  -----

上面的 Docker Compose 文件定义了三个服务:Elasticsearch、Logstash 和 Kibana。这三个服务都使用了 Elastic 官方提供的 Docker 镜像,并且定义了一些配置项。

Elasticsearch

Elasticsearch 是一个分布式的搜索和分析引擎,它可以帮助我们存储和查询大量的数据。在本例中,我们使用了 docker.elastic.co/elasticsearch/elasticsearch:7.9.2 镜像,它是 Elasticsearch 7.9.2 的官方 Docker 镜像。

我们定义了一个名为 elasticsearch 的服务,并将其映射到主机的 9200 端口。此外,我们还定义了一个名为 data 的 Docker 卷,用于持久化 Elasticsearch 的数据。

Logstash

Logstash 是一个数据收集和处理引擎,它可以帮助我们从不同的来源收集和处理数据。在本例中,我们使用了 docker.elastic.co/logstash/logstash:7.9.2 镜像,它是 Logstash 7.9.2 的官方 Docker 镜像。

我们定义了一个名为 logstash 的服务,并将其映射到主机的 5044 端口。我们还定义了一个名为 ./logstash/pipeline 的本地目录,并将其映射到 Logstash 容器中的 /usr/share/logstash/pipeline 目录,用于存放 Logstash 的配置文件。

Kibana

Kibana 是一个数据可视化工具,它可以帮助我们将数据转换为可视化的图表和仪表盘。在本例中,我们使用了 docker.elastic.co/kibana/kibana:7.9.2 镜像,它是 Kibana 7.9.2 的官方 Docker 镜像。

我们定义了一个名为 kibana 的服务,并将其映射到主机的 5601 端口。我们还指定了 depends_on 配置项,表示 Kibana 服务依赖于 Elasticsearch 服务。

配置 Logstash

在 Logstash 容器中,我们需要创建一个名为 logstash.conf 的配置文件,用于定义 Logstash 的数据管道。在 ./logstash/pipeline 目录下创建一个名为 logstash.conf 的文件,并添加以下内容:

-- -------------------- ---- -------
----- -
  ----- -
    ---- -- ----
  -
-

------ -
  ------------- -
    ----- -- ----------------------
    ----- -- -------------------------------------------------------------
  -
-

上面的配置文件定义了一个 Beats 输入插件,用于从 Beats 客户端收集数据。我们还定义了一个 Elasticsearch 输出插件,用于将收集的数据存储到 Elasticsearch 中。

启动 ELK

现在,我们已经准备好了 Docker Compose 文件和 Logstash 配置文件,可以启动 ELK 服务了。在项目根目录下运行以下命令:

这个命令会启动 Elasticsearch、Logstash 和 Kibana 服务,并将它们连接到一个 Docker 网络中。在启动过程中,您可以在控制台中查看服务的日志输出。

使用 Kibana

一旦 ELK 服务启动完成,您可以通过浏览器访问 Kibana 的 Web 界面,地址为 http://localhost:5601。在 Kibana 中,您可以创建索引模式、可视化和仪表盘,以帮助您分析和可视化收集的数据。

总结

在本文中,我们介绍了如何使用 Docker 方式部署 ELK(Elasticsearch+Logstash+Kibana)。通过使用 Docker Compose 文件和 Logstash 配置文件,我们可以轻松地启动和管理 ELK 服务。ELK 是一个非常强大的日志分析平台,它可以帮助我们收集、分析和可视化日志数据,以便更好地了解应用程序的运行情况。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65045dcc95b1f8cacd104faa

纠错
反馈