入门:监控您的 Kubernetes 基础设施编辑

本指南演示如何使用 Elastic Kubernetes 集成来观察您的 Kubernetes 基础设施。您将设置一个 Elastic Cloud 部署,其中大多数配置会自动完成。然后,您将学习如何监控您的 Kubernetes 日志和指标,以便主动检测集群中的问题。

在本教程中,您将部署 Elastic Stack,在您的主机上安装 Elastic Agent 以收集日志和指标,并可视化从这些收集的日志和指标中获得的信息。

先决条件编辑

要开始,您需要

  • 互联网连接和用于 Elastic Cloud 试用的电子邮件地址
  • 一个活动的 Kubernetes 集群。
  • 已部署在您的 Kubernetes 集群上的 kube-state-metrics (KSM) 服务。

如果您尚未部署 KSM 服务,则可以按照以下步骤进行设置(更详细的说明可以在 KSM 服务存储库的主页上找到)

  1. 检查您的 Kubernetes 集群版本是否为 1.8 或更高版本。如果不是,请参阅 KSM 服务自述文件的 Kubernetes 部署 部分以获取说明。
  2. 如果您使用的是 Google Kubernetes Engine (GKE),您的 GCP 身份必须具有 cluster-admin 角色。如果尚未分配,则可以通过运行以下命令来分配该角色

    kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=$(gcloud info --format='value(config.account)')
  3. kube-state-metrics 存储库克隆到本地目录

    git clone [email protected]:kubernetes/kube-state-metrics.git
  4. 更改到克隆的存储库目录

    cd kube-state-metrics
  5. 将项目部署到您的 Kubernetes 集群

    kubectl apply -f examples/standard

    结果应类似于以下内容

    clusterrolebinding.rbac.authorization.k8s.io/kube-state-metrics created
    clusterrole.rbac.authorization.k8s.io/kube-state-metrics created
    deployment.apps/kube-state-metrics created
    serviceaccount/kube-state-metrics created
    service/kube-state-metrics created
  6. 要测试 KSM 服务是否正在运行,请运行以下命令以公开该服务

    kubectl port-forward svc/kube-state-metrics -n kube-system 8080:8080

    结果应为

    Forwarding from 127.0.0.1:8080 -> 8080
    Forwarding from [::1]:8080 -> 8080
  7. 现在,打开 Web 浏览器,访问地址 localhost:8080/metrics。如果一切正常,您将看到来自集群的指标数据流。

    KSM metrics data

完成先决条件后,您就可以开始使用!

步骤 1:创建 Elastic Cloud 部署编辑

如果您已经注册了试用部署,则可以跳过此步骤。

Elastic Cloud 部署为您提供了 Elastic Stack 的所有功能,作为一个托管服务。要试用您的第一个部署,请注册免费的 Elastic Cloud 试用版

  1. 访问我们的 Elastic Cloud 试用 页面。
  2. 输入您的电子邮件地址和密码。

    Start your free Elastic Cloud trial
  3. 完成 登录 后,您可以创建部署。为您的部署命名并选择 创建部署.

    Create your first deployment
  4. 在部署设置过程中,请记下您的 elastic 超级用户密码,并将其保存在安全的地方。
  5. 部署准备就绪后,选择 继续。此时,您可以访问 Kibana 和一系列设置指南。

步骤 2:运行集成设置指南编辑

  1. 选择 监控 Kubernetes 集群 卡片。指南将在第一步上打开。

    Observe my Kubernetes infrastructure - Step 1
  2. 在指南的 添加数据 选项卡上,选择 开始。Elastic Kubernetes 集成页面将打开。

    Kubernetes integration page
  3. 选择 添加 Kubernetes,您就可以添加第一个集成。

    Add integration page

步骤 3:在您的集群上安装 Elastic Agent编辑

Elastic Kubernetes 集成使用 Elastic Agent,这是一种单一的、统一的方式,用于将日志、指标和其他类型数据的监控添加到主机。它还可以保护主机免受安全威胁,从操作系统查询数据等等。单个代理可以轻松快速地在整个基础设施中部署监控。每个代理都具有一个单一策略(输入设置的集合),您可以更新该策略以添加对新数据源、安全保护等的集成。

您的新 Elastic Cloud 部署包含 Fleet Server 的预配置实例,该实例管理您可以用来监控主机系统(在本例中为您的 Kubernetes 集群)的 Elastic Agent。

  1. 准备好添加您的第一个集成了吗? 页面上,选择 安装 Elastic Agent.
  2. 按照指南中的步骤配置 Elastic Agent 并将其注册到 Fleet

    1. 下载提供的清单文件,或将文本复制到本地目录中的新文件中。该文件应命名为 elastic-agent-managed-kubernetes.yml
    2. 从包含清单文件的目录中运行 apply 命令

      kubectl apply -f elastic-agent-managed-kubernetes.yml

      结果应为

      daemonset.apps/elastic-agent created
      clusterrolebinding.rbac.authorization.k8s.io/elastic-agent created
      rolebinding.rbac.authorization.k8s.io/elastic-agent created
      rolebinding.rbac.authorization.k8s.io/elastic-agent-kubeadm-config created
      clusterrole.rbac.authorization.k8s.io/elastic-agent created
      role.rbac.authorization.k8s.io/elastic-agent created
      role.rbac.authorization.k8s.io/elastic-agent-kubeadm-config created
      serviceaccount/elastic-agent created
  3. 在集成设置指南中,等待确认 Elastic Agent 已注册到 Fleet。这可能需要几分钟时间。

    Agent enrollment confirmed

    您还可以随时通过在 Kibana 中导航到 Fleet 页面来查看 Elastic Agent 的状态。我们的测试 Kubernetes 集群有三个节点,因此配置了三个 Elastic Agent。

    Fleet page showing enrolled Elastic Agents

    您还可以通过运行 get pods 命令检查 Kubernetes 集群中 Elastic Agent 的状态

    kubectl -n kube-system get pods -l app=elastic-agent

    Elastic Agent 启动并运行后,结果应为

    NAME                  READY   STATUS    RESTARTS   AGE
    elastic-agent-b72dp   1/1     Running   0          3m35s
    elastic-agent-p2t39   1/1     Running   0          3m35s
    elastic-agent-xmfhg   1/1     Running   0          3m35s

    您的 Kubernetes 集群日志还应显示 Elastic Agent pod 已成功创建。按 elastic-agent 筛选以仅查看适用的日志

    Cluster logs showing three Elastic Agent pods were created

如果遇到问题,您可以查看设置指南中提供的故障排除步骤。Kubernetes 日志和 get pods 命令也可以用于诊断任何问题。

如果遇到任何与内存相关的错误,您可能需要调整 容器资源限制(在 elastic-agent-managed-kubernetes.yml 清单文件中,以增加 resources: limitsresources: requests 下的默认 memory 值)。容器资源使用情况取决于数据流的数量和环境大小。

步骤 4:添加 Elastic Kubernetes 集成编辑

  1. 选择 添加集成.
  2. 选择要监控的指标和日志类型。如果您愿意,现在可以保留所有默认值,并在以后根据需要调整这些设置。

    Configure the integration

步骤 5:查看您的 Kubernetes 数据编辑

  1. 选择 确认传入数据。等待 Elastic Agent 策略保存片刻,然后 Kubernetes 集成设置指南将在第二步上打开。

    Observe my Kubernetes infrastructure - Step 2
  2. 在指南的 探索 Kubernetes 指标和日志 选项卡上,选择 开始。Kibana [指标 Kubernetes] 集群概览 仪表板将打开。

    Metrics Kubernetes Cluster Overview dashboard

    您可以使用仪表板过滤器向下钻取到特定的集群或命名空间。您还可以将指标的时间段过滤到任何范围,无论是绝对范围还是相对于当前时间。

  3. Kubernetes 仪表板 [指标 Kubernetes] 卡片上,尝试一些其他可用的仪表板。

    例如,在 Kubernetes Pod 仪表板上,默认可视化效果会捕获 Pod 状态、CPU 使用率、内存使用率和网络流量

    Metrics Kubernetes Pods dashboard

    Kubernetes 部署 仪表板上,您可以查看所有部署和副本:预期、可用、不可用和已更新。

    Metrics Kubernetes Deployments dashboard
  4. 在 Elastic 横幅上,选择 设置指南:步骤 2。指南将在第二步上打开。

    Observe my Kubernetes infrastructure - Step 1
  5. 由于您现在已经尝试了一些 Kibana 仪表板,因此选择 标记已完成.
  6. 浏览 Elastic 可观测性 选项卡下,选择 开始 以了解有关 Elastic 可观测性的更多信息。设置指南中的其余步骤将向您介绍用于监控 Kubernetes 集群日志和指标数据的其他功能,以帮助您更好地评估集群的性能。

您现在已成功使用 Elastic Kubernetes 集成配置了 Kubernetes 基础设施的监控!要了解有关 Elastic Kubernetes 集成的更多信息,请查看 Kubernetes 集成 文档。

下一步编辑

了解有关 Elastic 可观测性的更多信息

  • 将您的调查提升到更深的层次!使用 Elastic 可观测性 来统一您的日志、指标、正常运行时间和应用程序性能数据。
  • 您的眼睛因盯着屏幕而感到疲劳吗?创建警报,并在您在泳池边享用饮料时了解问题。
  • 一切都按您的意愿正常工作了吗?通过在整个基础设施中部署 Elastic Agent,将您的代理策略推广到其他主机!

了解其他 Elastic 解决方案和功能

  • 是否希望将搜索添加到您的网站、应用程序或组织数据?尝试使用 企业搜索.
  • 是否希望 Elastic 完成繁重的工作?使用机器学习来 检测异常.
  • 是否希望保护您的端点免受安全威胁?尝试使用 Elastic Security。添加端点保护只是您添加到代理策略的另一个集成!