;Grafana Kubernetes监控;配置Kubernetes监控

配置Kubernetes监控

使用Kubernetes Monitoring界面设置对Kubernetes集群的监控,并安装预配置的仪表板和警报。

笔记

  • 必须具有Admin角色才能安装仪表板和警报。
  • 如果不想使用预配置的Agent清单,可以手动部署和提取kube-state-metrics。但是,如果不使用Grafana Agent,就不能监视事件。

部署Kubernetes监控

  1. 导航到您的Grafana Cloud实例。

  2. 单击Kubernetes监控图标(船轮)。

  3. 点击开始发送数据

  4. 选择是否使用Grafana Agent将遥测数据发送到Grafana云或手动发送kube-state-metrics。

    按照说明将Kubernetes数据导入Grafana Cloud。

    说明解释了如何:

    • 使用Grafana Agent或Grafana Agent Operator进行配置,或手动发送kube-state-metrics。

    • 安装预配置的仪表板和警报。

    • 可选地,配置为发送日志。

  5. 探索你的Kubernetes基础设施

请注意:如果您已经安装了仪表板和警报,但还没有部署和配置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指标,就像标准中可用的指标一样/指标终端在吊舱上。

添加一个刮作业针对所有/指标在集群荚上的端点,执行以下操作:

  1. 将以下内容添加到代理刮擦配置的底部:

    ……—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来自普罗米修斯文档。

  2. 使用将更新后的配置部署到集群中Kubectl应用-f

    kubectl apply -f .yaml . conf . txt
  3. 重新启动代理以获取配置更改。

    Kubectl rollout重启部署/grafana-agent

有关完整的示例,请参见使用Grafana Agent监控Kubernetes上的应用程序

手动安装

您可以手动连接您的Kubernetes数据到Grafana Cloud,而不是使用Kubernetes监控配置中提供的清单,使用以下方法之一:

重新安装或升级Kubernetes Monitoring

Grafana Agent、仪表板、警报规则、记录规则、kube-state-metrics和Kubernetes清单定期更新。您必须手动更新这些组件以利用任何更新。参见如何更新Kubernetes监控组件