入门指南:监控您的 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 实例,该实例管理您可以使用来监控主机系统的 Elastic Agent,在本例中为您的 Kubernetes 集群。

  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 [Metrics Kubernetes] 集群概览 仪表板将打开。

    Metrics Kubernetes Cluster Overview dashboard

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

  3. Kubernetes 仪表板 [Metrics 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 解决方案和功能

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