Node Exporter 可观测性最佳实践

Node Exporter 介绍
Node Exporter 是一个开源的 Prometheus 指标收集器,它提供了大量关于宿主机系统的关键指标,如 CPU、内存、磁盘和网络使用情况。在 Kubernetes 环境中,Node Exporter 对于监控集群节点的健康状况至关重要。本文将介绍如何在 Kubernetes 环境中部署 Node Exporter,并通过 DataKit 采集器将指标通过观测云进行监控和展示。
主要功能:
系统监控:Node Exporter 能够采集主机包括 CPU 使用情况、内存使用量、磁盘 I/O 统计、网络流量等关键系统指标。
低依赖性:Node Exporter 用 Go 语言编写,无需第三方依赖,易于部署和运行。
配置灵活性:提供多种启动参数,允许用户自定义监听端口、数据路径、日志级别等设置。
数据格式兼容:输出的数据格式遵循 Prometheus 标准,确保与 Prometheus 服务器的兼容性。
多种部署方式:支持二进制直接部署和 Docker 容器部署,适应不同的生产环境。
观测云
观测云是一款功能强大的统一可观测平台,它提供了对多云环境、云原生应用、中间件以及各类应用程序的实时监控和分析能力。
部署在 Kubernetes 集群中的 Node Exporter 会暴露一个 metrics 端点,DataKit 通过这个端点拉取指标数据。DataKit 通过 ConfigMap 挂载额外的配置文件,或者通过环境变量直接在 Kubernetes 的 DaemonSet 配置中设置。这样,DataKit 就可以根据用户的配置,定期从 Node Exporter 收集指标数据,并将其发送到观测云平台。下面介绍在主机部署 Node Exporter 组件,采集主机指标并通过 DataKit 进行收集、存储,最后通过观测云用于数据的可视化展示。
操作步骤
安装 Node Exporter
在 k8s 环境中创建 DaemonSet 配置文件 node-exporter.yaml。
然后执行以下命令:
执行完毕后,可通过 http://主机ip:31672/metrics 查看当前主机获取到的所有监控数据。
部署 DataKit
登录观测云控制台,点击「集成」 -「DataKit」 - 「Kubernetes」,下载 datakit.yaml ,拷贝第 3 步中的 token 。
编辑 datakit.yaml ,把 token 粘贴到 ENV_DATAWAY 环境变量值中“token=”后面,设置环境变量 ENV_CLUSTER_NAME_K8S 的值并增加环境变量 ENV_NAMESPACE ,这两个环境变量的值一般和集群名称对应,一个工作空间集群名称要唯一。
把 datakit.yaml 上传到可以连接到 Kubernetes 集群的主机上,执行如下命令:
在 datakit.yaml 中配置 ConfigMap 资源来收集 Node Exporter 的指标数据。
然后在 datakit.yaml 中的 volumeMounts 下挂载 kubernetesprometheus.conf 。
最后,执行以下命令重启 datakit 。
关键指标
登录观测云控制台,点击「指标」 -「指标管理」,输入“NodeExporter”,就能查询采集到的指标。
监控 Node Exporter 采集的主机指标时,主要需要从以下维度进行,通过综合监控这些维度,可以确保主机的高效运行和稳定性:
系统运行情况:包括 CPU、内存、磁盘以及网络相关信息。
系统资源使用:监控系统资源的使用情况,以优化资源分配并避免瓶颈。
硬件状态:监控硬件健康状态,预防硬件故障
服务健康度:监控系统服务的状态,确保服务的连续可用性。
以下是 Node Exporter 采集主机指标的关键指标目录:
重点指标说明
node_network_receive_bytes_total和node_network_transmit_bytes_total:这两个指标反映了主机的网络流量情况,对于监控网络性能和排查网络问题至关重要。node_memory_Active_bytes和node_memory_Inactive_bytes:这两个指标帮助监控内存的使用情况,区分活跃和非活跃内存,对于内存优化和故障排查很有帮助。node_disk_io_now和node_disk_io_time_seconds_total:这两个指标反映了磁盘 I/O 的负载和性能,高 I/O 负载可能影响系统性能。node_cpu_seconds_total:这个指标反映了 CPU 的使用情况,对于监控 CPU 性能和负载非常重要。node_filesystem_size_bytes、node_filesystem_free_bytes和node_filesystem_avail_bytes:这些指标反映了文件系统的使用情况,对于容量规划和性能优化至关重要。
通过监控这些关键指标,可以确保主机系统的稳定运行,及时发现并解决潜在的性能问题。
监控视图
登录观测云控制台,点击「场景」 -「新建仪表板」,输入 “Node Exporter ”, 选择 “Node Exporter 监控视图”,点击 “确定” 即可添加内置视图:
监控器(告警)
主机内存使用率过高
主机磁盘使用率过高
主机 CPU 使用率过高
总结
通过监控 Node Exporter 采集的主机关键指标,比如 CPU 使用率、内存和磁盘的 I/O 性能、网络流量和错误率、以及系统服务状态等,我们能够深入理解服务器的运行状况。这些指标覆盖了系统资源的使用情况、硬件健康状态、服务可用性以及网络效率,为我们提供了全面的系统性能视图。通过综合监控这些关键指标,可以及时发现并解决潜在的性能问题和故障,从而确保主机的高效运行和稳定性。这种持续的监控和分析对于维护服务器的最优性能和进行有效的容量规划至关重要。









评论