入门:监控您的 Kubernetes 基础设施
编辑入门:监控您的 Kubernetes 基础设施编辑
本指南演示如何使用 Elastic Kubernetes 集成来观察您的 Kubernetes 基础设施。您将设置一个 Elastic Cloud 部署,其中大多数配置会自动完成。然后,您将学习如何监控您的 Kubernetes 日志和指标,以便主动检测集群中的问题。
在本教程中,您将部署 Elastic Stack,在您的主机上安装 Elastic Agent 以收集日志和指标,并可视化从这些收集的日志和指标中获得的信息。
先决条件编辑
要开始,您需要
- 互联网连接和用于 Elastic Cloud 试用的电子邮件地址
- 一个活动的 Kubernetes 集群。
- 已部署在您的 Kubernetes 集群上的
kube-state-metrics
(KSM) 服务。
如果您尚未部署 KSM 服务,则可以按照以下步骤进行设置(更详细的说明可以在 KSM 服务存储库的主页上找到)
- 检查您的 Kubernetes 集群版本是否为 1.8 或更高版本。如果不是,请参阅 KSM 服务自述文件的 Kubernetes 部署 部分以获取说明。
-
如果您使用的是 Google Kubernetes Engine (GKE),您的 GCP 身份必须具有
cluster-admin
角色。如果尚未分配,则可以通过运行以下命令来分配该角色kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=$(gcloud info --format='value(config.account)')
-
将
kube-state-metrics
存储库克隆到本地目录git clone [email protected]:kubernetes/kube-state-metrics.git
-
更改到克隆的存储库目录
cd kube-state-metrics
-
将项目部署到您的 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
-
要测试 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
-
现在,打开 Web 浏览器,访问地址
localhost:8080/metrics
。如果一切正常,您将看到来自集群的指标数据流。
完成先决条件后,您就可以开始使用!
步骤 1:创建 Elastic Cloud 部署编辑
如果您已经注册了试用部署,则可以跳过此步骤。
Elastic Cloud 部署为您提供了 Elastic Stack 的所有功能,作为一个托管服务。要试用您的第一个部署,请注册免费的 Elastic Cloud 试用版
- 访问我们的 Elastic Cloud 试用 页面。
-
输入您的电子邮件地址和密码。
-
完成 登录 后,您可以创建部署。为您的部署命名并选择 创建部署.
- 在部署设置过程中,请记下您的
elastic
超级用户密码,并将其保存在安全的地方。 - 部署准备就绪后,选择 继续。此时,您可以访问 Kibana 和一系列设置指南。
步骤 2:运行集成设置指南编辑
-
选择 监控 Kubernetes 集群 卡片。指南将在第一步上打开。
-
在指南的 添加数据 选项卡上,选择 开始。Elastic Kubernetes 集成页面将打开。
-
选择 添加 Kubernetes,您就可以添加第一个集成。
步骤 3:在您的集群上安装 Elastic Agent编辑
Elastic Kubernetes 集成使用 Elastic Agent,这是一种单一的、统一的方式,用于将日志、指标和其他类型数据的监控添加到主机。它还可以保护主机免受安全威胁,从操作系统查询数据等等。单个代理可以轻松快速地在整个基础设施中部署监控。每个代理都具有一个单一策略(输入设置的集合),您可以更新该策略以添加对新数据源、安全保护等的集成。
您的新 Elastic Cloud 部署包含 Fleet Server 的预配置实例,该实例管理您可以用来监控主机系统(在本例中为您的 Kubernetes 集群)的 Elastic Agent。
- 在 准备好添加您的第一个集成了吗? 页面上,选择 安装 Elastic Agent.
-
按照指南中的步骤配置 Elastic Agent 并将其注册到 Fleet
- 下载提供的清单文件,或将文本复制到本地目录中的新文件中。该文件应命名为
elastic-agent-managed-kubernetes.yml
。 -
从包含清单文件的目录中运行 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
- 下载提供的清单文件,或将文本复制到本地目录中的新文件中。该文件应命名为
-
在集成设置指南中,等待确认 Elastic Agent 已注册到 Fleet。这可能需要几分钟时间。
您还可以随时通过在 Kibana 中导航到 Fleet 页面来查看 Elastic Agent 的状态。我们的测试 Kubernetes 集群有三个节点,因此配置了三个 Elastic Agent。
您还可以通过运行
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
筛选以仅查看适用的日志
如果遇到问题,您可以查看设置指南中提供的故障排除步骤。Kubernetes 日志和 get pods
命令也可以用于诊断任何问题。
如果遇到任何与内存相关的错误,您可能需要调整 容器资源限制(在 elastic-agent-managed-kubernetes.yml
清单文件中,以增加 resources: limits
和 resources: requests
下的默认 memory
值)。容器资源使用情况取决于数据流的数量和环境大小。
步骤 4:添加 Elastic Kubernetes 集成编辑
- 选择 添加集成.
-
选择要监控的指标和日志类型。如果您愿意,现在可以保留所有默认值,并在以后根据需要调整这些设置。
步骤 5:查看您的 Kubernetes 数据编辑
-
选择 确认传入数据。等待 Elastic Agent 策略保存片刻,然后 Kubernetes 集成设置指南将在第二步上打开。
-
在指南的 探索 Kubernetes 指标和日志 选项卡上,选择 开始。Kibana [指标 Kubernetes] 集群概览 仪表板将打开。
您可以使用仪表板过滤器向下钻取到特定的集群或命名空间。您还可以将指标的时间段过滤到任何范围,无论是绝对范围还是相对于当前时间。
-
在 Kubernetes 仪表板 [指标 Kubernetes] 卡片上,尝试一些其他可用的仪表板。
例如,在 Kubernetes Pod 仪表板上,默认可视化效果会捕获 Pod 状态、CPU 使用率、内存使用率和网络流量
在 Kubernetes 部署 仪表板上,您可以查看所有部署和副本:预期、可用、不可用和已更新。
-
在 Elastic 横幅上,选择 设置指南:步骤 2。指南将在第二步上打开。
- 由于您现在已经尝试了一些 Kibana 仪表板,因此选择 标记已完成.
- 在 浏览 Elastic 可观测性 选项卡下,选择 开始 以了解有关 Elastic 可观测性的更多信息。设置指南中的其余步骤将向您介绍用于监控 Kubernetes 集群日志和指标数据的其他功能,以帮助您更好地评估集群的性能。
您现在已成功使用 Elastic Kubernetes 集成配置了 Kubernetes 基础设施的监控!要了解有关 Elastic Kubernetes 集成的更多信息,请查看 Kubernetes 集成 文档。
下一步编辑
了解有关 Elastic 可观测性的更多信息
- 将您的调查提升到更深的层次!使用 Elastic 可观测性 来统一您的日志、指标、正常运行时间和应用程序性能数据。
- 您的眼睛因盯着屏幕而感到疲劳吗?创建警报,并在您在泳池边享用饮料时了解问题。
- 一切都按您的意愿正常工作了吗?通过在整个基础设施中部署 Elastic Agent,将您的代理策略推广到其他主机!
了解其他 Elastic 解决方案和功能
- 是否希望将搜索添加到您的网站、应用程序或组织数据?尝试使用 企业搜索.
- 是否希望 Elastic 完成繁重的工作?使用机器学习来 检测异常.
- 是否希望保护您的端点免受安全威胁?尝试使用 Elastic Security。添加端点保护只是您添加到代理策略的另一个集成!