入门指南:监控您的 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 实例,该实例管理您可以使用来监控主机系统的 Elastic Agent,在本例中为您的 Kubernetes 集群。
- 在 准备好添加您的第一个集成? 页面上,选择 安装 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 [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 解决方案和功能
- 想要为您的网站、应用程序或组织数据添加搜索功能吗?试用 Enterprise Search。
- 希望 Elastic 完成繁重的工作吗?使用机器学习来 检测异常。
- 想要保护您的端点免受安全威胁吗?试用 Elastic Security。添加端点保护只是您添加到代理策略的另一个集成!