在 Kubernetes 上搭建 ELK 日志收集平台的详细教程

阅读时长 6 分钟读完

在 Kubernetes 上搭建 ELK 日志收集平台的详细教程

ELK 日志分析平台是业界广泛使用的开源日志分析解决方案,由 ElasticSearch、Logstash 和 Kibana 三个开源项目组成。ELK 能够帮助用户快速构建集中式日志收集、存储、搜索和可视化分析平台。本文将介绍如何在 Kubernetes 上搭建 ELK 日志收集平台。

前置要求和准备工作

  • Kubernetes 集群
  • Helm 3.0 以上版本

步骤一:安装 ElasticSearch

在 Kubernetes 上安装 ElasticSearch 可以使用 Elasticsearch 的官方 Helm Chart,执行以下命令:

ElasticSearch 安装完成后,可以使用以下命令查看 ElasticSearch 状态:

步骤二:安装 Logstash

在 Kubernetes 上安装 Logstash 可以使用 Logstash 的官方 Helm Chart,执行以下命令:

Logstash 安装完成后,可以使用以下命令查看 Logstash 状态:

步骤三:安装 Kibana

在 Kubernetes 上安装 Kibana 可以使用 Kibana 的官方 Helm Chart,执行以下命令:

Kibana 安装完成后,可以使用以下命令查看 Kibana 状态:

步骤四:配置 Logstash

创建 Logstash 配置文件 logstash.conf,并存放在 Kubernetes ConfigMap 中:

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

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

其中,input 配置指定 Logstash 接收的日志数据来源,这里使用 TCP 协议的 5000 端口收集数据;output 配置指定 Logstash 处理后的日志数据输出到 ElasticSearch 集群中。

使用以下命令创建 ConfigMap:

在 Logstash 安装后,需要创建一个 Kubernetes Deployment,该 Deployment 中包括一个 Logstash 容器和一个 Sidecar 容器,Sidecar 容器将 ConfigMap 挂载到 Logstash 容器中:

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

步骤五:测试日志收集

创建一个简单的 Node.js 应用程序,使用 Winston 日志库输出日志到 TCP 5000 端口:

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

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

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

上述代码片段中,我们创建了一个 Transport,使用 TCP 协议发送日志数据到 Logstash 所监听的 5000 端口。

在应用程序运行后,可以使用以下命令在 Kibana 中查看日志:

总结

本文介绍了如何在 Kubernetes 上搭建 ELK 日志收集平台,包括 ElasticSearch、Logstash 和 Kibana 的安装和配置,以及如何测试日志的收集。这个 ELK 平台可以帮助开发团队更好地管理和分析日志,准确诊断和解决出现的问题。

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

纠错
反馈