配置Kubernetes监控
使用Kubernetes Monitoring界面设置对Kubernetes集群的监控,并安装预配置的仪表板和警报。
笔记:
- 必须具有Admin角色才能安装仪表板和警报。
- 如果不想使用预配置的Agent清单,可以手动部署和提取kube-state-metrics。但是,如果不使用Grafana Agent,就不能监视事件。
部署Kubernetes监控
导航到您的Grafana Cloud实例。
单击Kubernetes监控图标(船轮)。
点击开始发送数据.
选择是否使用Grafana Agent将遥测数据发送到Grafana云或手动发送kube-state-metrics。
按照说明将Kubernetes数据导入Grafana Cloud。
说明解释了如何:
使用Grafana Agent或Grafana Agent Operator进行配置,或手动发送kube-state-metrics。
安装预配置的仪表板和警报。
可选地,配置为发送日志。
请注意:如果您已经安装了仪表板和警报,但还没有部署和配置Agent来抓取指标和收集日志,则Agent配置说明将向您展示如何部署以下内容:
- Grafana代理单副本StatefulSet将收集Prometheus度量和Kubernetes事件从您的集群中的对象。
- Kube-state-metrics Helm图(部署KSM部署和服务,以及一些其他访问控制对象)。
- Grafana代理DaemonSet将从您的集群中的Pods收集日志。
kube-state-metrics
请注意,使用Kubernetes监控集群导航功能需要以下指标:
—kube_namespace_status_phase—container_cpu_usage_seconds_total—kube_pod_status_phase—kube_pod_start_time—kube_pod_container_status_restarts_total—kube_pod_container_info—kube_pod_container_status_waiting_reason—kube_daemonset。\* - kube_replicaset。\* - kube_statefulset。\* - kube_job。\* - kube_node* - kube_cluster* - node_cpu_seconds_total - node_memory_MemAvailable_bytes - node_filesystem_size_bytes - node_namespace_pod_container - container_memory_working_set_bytes - job="integrations/kubernetes/ eventandler "(对于事件日志,默认带有Grafana代理)
注意:日志不是Kubernetes Monitoring工作所必需的,但是它们在某些视图中提供了额外的上下文集群导航选项卡。必须将日志条目发送到Loki数据源
集群
,名称空间
,圆荚体
标签。
配置的抓取目标
如果您使用Grafana Agent配置Kubernetes Monitoring,默认情况下,Agent会抓取以下目标:
- cAdvisor(每个节点一个):cAdvisor出现在集群中的每个节点上,并发出容器资源使用指标,如CPU使用情况、内存使用情况和磁盘使用情况。
- kubelet(每个节点一个):kubelet出现在每个节点上,并发出特定于kubelet进程的指标,如
kubelet_running_pods
而且kubelet_running_container_count
. - kube-state-metrics(默认为一个副本):kube-state-metrics在集群中作为部署和服务运行,并发出Prometheus指标,跟踪集群中对象的状态,如Pods、Deployment、DaemonSets等。
默认的ConfigMap配置一个allowlist来删除所有没有在Kubernetes监控仪表板、警报和记录规则中引用的指标。您可以选择修改此allowlist,将其替换为denylist(通过使用下降
指令),完全省略它,或将其移动到remote_write
级别,以便全局应用于所有已配置的抓取任务。要了解更多信息,请参见通过重新标签减少Prometheus参数的使用.
抓取应用程序Pod指标
默认情况下,Kubenetes Monitoring不抓取应用程序Prometheus指标,但是您可以配置Grafana Agent也抓取应用程序Prometheus指标,就像标准中可用的指标一样/指标
终端在吊舱上。
添加一个刮作业针对所有/指标
在集群荚上的端点,执行以下操作:
将以下内容添加到代理刮擦配置的底部:
……—job_name:“kubernetes-pods”kubernetes_sd_configs:—role: pod relabel_configs: #示例重标签,只刮有#“Example”的pod。Io / should_be_scraping = true"注释。# - source_labels: [__meta_kubernetes_pod_annotation_example_io_should_be_deleted] # action: keep # regex: trueIo /metric_path =
"注释。# - source_labels: [__meta_kubernetes_pod_annotation_example_io_metric_path] # action: replace # target_label: __metrics_path__ # regex:(.+) #示例重新标记只为Pod抓取单个所需端口#基于Pod "示例。Io /scrape_port = "注释。# - source_labels: [__address__, __meta_kubernetes_pod_annotation_example_io_scrape_port] # action:替换# regex: ([^:]+)(?::\d+)?;(\d+) #替换:$ 1:$2 # target_label: __address__ #将Pod标签暴露为度量标签- action: labelmap regex: __meta_kubernetes_pod_label_(.+) #将Pod命名空间暴露为度量命名空间标签- source_labels: [__meta_kubernetes_namespace] action:替换target_label:命名空间#将Pod名称暴露为度量名称标签-[__meta_kubernetes_pod_name] action: replace target_label: pod 该配置将每个已定义的Pod容器端口添加到Agent的抓取目标,使用Agent的Kubernetes服务发现机制发现。您可以选择取消相关部分的注释,以自定义度量路径(默认为
/指标
),指定一个示例端口,或者使用Pod注释来声明性地指定Agent应该在Pod清单中抓取哪些目标。要了解更多信息,请参阅例子在普罗米修斯项目的官方回购中要了解有关配置Agent的详细信息,请参见配置Grafana Agent来自特工的文件。以了解更多有关可用
kubernetes_sd_configs
标签和角色(我们使用圆荚体
此处的角色),参见kubernetes_sd_config来自普罗米修斯文档。使用将更新后的配置部署到集群中
Kubectl应用-f
:kubectl apply -f
.yaml . conf . txt 重新启动代理以获取配置更改。
Kubectl rollout重启部署/grafana-agent
有关完整的示例,请参见使用Grafana Agent监控Kubernetes上的应用程序.
手动安装
您可以手动连接您的Kubernetes数据到Grafana Cloud,而不是使用Kubernetes监控配置中提供的清单,使用以下方法之一:
直接部署Grafana Agent用于度量、日志和跟踪。
使用Kubernetes代理操作员(测试版)使用prometheus风格的操作符和Kubernetes自定义资源部署和配置Grafana Agent。
使用remote_write发送普罗米修斯度量如果您有一个现有的Prometheus部署,并希望将您的Kubernetes度量发送到Grafana Kubernetes Monitoring。
重新安装或升级Kubernetes Monitoring
Grafana Agent、仪表板、警报规则、记录规则、kube-state-metrics和Kubernetes清单定期更新。您必须手动更新这些组件以利用任何更新。参见如何更新Kubernetes监控组件.
相关的Grafana云资源
《普罗米修斯》和《格拉夫纳云》简介
普罗米修斯要接管监控世界了!在本次网络研讨会中,我们将首先快速介绍开源项目,它是监控现代云原生系统的事实上标准。
如何用Grafana Cloud建立和可视化大规模的合成监控
学习如何使用Kubernetes, Grafana Loki和Grafana Cloud的合成监控功能来设置您的基础设施的检查。
使用Grafana Cloud来提高制造工厂的效率
本节GrafanaCONline将讲述Grafana如何帮助一家拥有75年历史的制造公司提高产品质量和设备维护。