入门指南:监控 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。
-
按照指南中的步骤在 Fleet 中配置和注册 Elastic Agent
- 下载提供的清单文件或将文本复制到本地目录中的新文件。该文件应命名为
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
清单文件中 Elastic Agent 容器的 资源限制,以增加 resources: limits
和 resources: requests
下的默认 memory
值。容器资源使用情况取决于数据流的数量和环境大小。
步骤 4:添加 Elastic Kubernetes 集成
编辑- 选择 添加集成。
-
选择要监控的指标和日志类型。如果您愿意,现在可以保留所有默认设置,并在以后根据需要调整这些设置。
步骤 5:查看您的 Kubernetes 数据
编辑-
选择 确认传入数据。等待 Elastic Agent 策略保存片刻,然后 Kubernetes 集成设置指南将在第二步打开。
-
在指南的 探索 Kubernetes 指标和日志 选项卡上,选择 开始。Kibana [Metrics Kubernetes] 集群概述 仪表板将打开。
您可以使用仪表板过滤器深入了解特定集群或命名空间。您还可以将指标的时间段过滤到任何范围,无论是绝对范围还是相对于当前时间的相对范围。
-
在 Kubernetes 仪表板 [Metrics 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。添加端点保护只是您添加到代理策略的另一个集成!