统一观测|如何使用 Prometheus 监控 Windows

news2024/11/24 19:33:25

作者: 颍川

引言

微软 Windows 是当前主流操作系统之一,在桌面和服务端均有较大市场份额。

对于 Linux 操作系统,Prometheus 可以通过 Node Exporter 来进行基础资源(CPU、内存、磁盘、网络等)监控,类似地,对于 Windows 操作系统,我们也需要对这个 OS 环境下的基础资源进行 Prometheus 监控。

Windows 简介

Windows 是美国微软公司以图形用户界面为基础研发的操作系统。目前常用的版本 Windows Server 2008R2 和 Desktop Windows 7 及以上。由于 Windows 已广为大家所熟悉,本文不再赘述其功能和特点。

Windows Metric 监控参考模型

我们从指标采集、监控大盘、告警规则等 3 方面定义了 Windows Metric 监控的参考模型,以便实现监控闭环。

指标采集

Windows 基础监控指标主要包含 CPU、内存、磁盘、网络和进程等四方面。下面分别介绍各方面的主要指标。

CPU 指标

CPU 是计算机的大脑,作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。我们建议关注如下主要指标。

在这里插入图片描述

内存指标

内存是用于暂存 CPU 中的运算数据,以及与硬盘等外部存储器交换的数据。它是磁盘与 CPU 进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。我们建议关注如下主要指标。

在这里插入图片描述

磁盘指标

通俗来讲,我们所说的磁盘是计算机外部存储设备的总称,现在常见的有传统硬盘 HDD [5 ] 、混合硬盘 HHD [6 ] 和固态硬盘 SSD **[7 ] **。我们建议关注如下主要指标。

在这里插入图片描述

网络指标

计算机网络是计算机之间进行实时互通的渠道。目前通常是基于 TCP/IP 协议构建的。我们建议关注如下主要指标。

在这里插入图片描述

进程指标

进程是操作系统进行资源分配和调度的基本单位,是操作系统结构的基础。我们建议关注如下主要指标。

在这里插入图片描述

监控大盘

参考 Linux 广泛使用的 Node Exporter 监控大盘,结合 Windows 自身的特点,我们建议默认监控大盘至少包含以下指标 panel:

  • CPU
    • 使用率(%):Windows 正常运行最重要的指标之一。
    • DPC 队列长度、等待线程队列长度、上下文切换次数:反应 Windows 系统调度繁忙程度的重要指标。
  • 内存

    • 物理内存使用率(%)、虚拟内存使用率(%):Windows 正常运行最重要的指标之一。
    • 分页文件使用率(%)、分页错误率(%)。
    • 分页/非分页内存量。
  • 磁盘

    • 空间使用率(%):显示磁盘剩余可用空间。
    • 磁盘空闲率(%):反映磁盘繁忙程序。
    • 读写 IOPS、读写队列长度:反应进程对磁盘的操作状态。
  • 网络

    • 流入/出速率(bit/s):反映网络繁忙程度的核心指标。
    • TCP 连接数(Listen、total、non_established、established):反映进程使用网络的各阶段状态。
    • TCP 重传次率:反映 Windows 与外界交互的网络稳定性。
  • 进程

    • CPU 使用率(%):展示进程耗用 CPU 的情况。
    • 内存使用率(%):展示进程使用内存情况。
    • 句柄数。
    • IO 字节数:展示进程 IO 读写量。

最后,为了方便运维人员快速查看所管理 Windows 集群的整体运行情况,我们还建议配置TopN(包含 CPU 使用率、磁盘空间使用率、磁盘空闲率、网络流量等关键指标)大盘。

告警规则

根据前面对各项主要指标的介绍,我们建议配置至少如下默认告警规则:

  • CPU
    • 使用率:持续 n 分钟超过 x%(参考值:80%),表示 CPU 已成为瓶颈。
    • 等待处理线程队列长度:持续 n 分钟过 CPU 核数*2,表示 CPU 调度已满负荷。
  • 内存

    • 物理内存使用率:持续 n 分钟超过 x%(参考值:90%),表示内存资源已不足。
  • 磁盘

    • 空间使用率:持续 n 分钟大于 x%(参考值:85%),表示磁盘剩余空间不足,系统即将进入不可知状态。
    • 空闲率:持续 n 分钟小于 x%(参考值:15%),表示磁盘过于繁忙。
  • 网络

    • 网络连接数(established):持续 n 分钟大于 x 个,表示网络连接数过多。
    • 网络连接数(non_established):持续 n 分钟大于 x 个,表示可能存在网络连接过载或关闭异常。
    • TCP 重传率:持续 n 分钟大于 x%(参考值:5%),表示网络负载过重或网络不稳定。

自建 Prometheus 监控 Windows 的痛点

通常我们当前的 Windows 都是部署在 ECS 上,因此自建 Prometheus 监控 Windows/ECS 时,我们将面临的典型问题有:

  1. 由于安全、组织管理等因素,用户业务通常部署在多个相互隔离的 VPC,需要在多个 VPC 内都重复、独立部署 Prometheus,导致部署和运维成本高。

  2. 每套完整的自建监控系统都需要安装并配置 Prometheus、Grafana、AlertManager 等,过程复杂、实施周期长。

  3. 缺少与阿里云 ECS 无缝集成的服务发现(ServiceDiscovery)机制,无法根据 ECS 标签来灵活定义抓取 targets。如果自行实现类似功能,则需要使用 GOlang 语言开发代码(调用阿里云 ECS POP 接口)、集成进开源 Prometheus 代码、编译打包后部署,实现门槛高、过程复杂、版本升级困难。

  4. 常用开源 Grafana Windows 大盘不够专业,缺少结合 Windows 原理/特征和最佳实践进行深入优化。

  5. 缺少 Windows 告警指标模板,需要用户自行研究、配置告警项,工作量大。

Windows 监控场景下,自建 Prometheus 与阿里云 Prometheus 对比

阿里云 Prometheus 监控 **[9 ] **是一款全面对接开源 Prometheus 生态,支持类型丰富的组件观测,提供多种开箱即用的预置观测大盘,且提供全面托管的混合云/多云 Prometheus 服务。除了支持阿里云容器服务、自建 Kubernetes、Remote Write 外,阿里云 Prometheus 还提供混合云+多云 ECS 应用的 metric 观测能力;并且支持多实例聚合观测能力,实现 Prometheus 指标的统一查询,统一 Grafana 数据源和统一告警。

阿里云 Prometheus 与 ECS 无缝集成,默认提供了 Windows 的 CPU、内存、磁盘、网络和进程等 5 方面的核心监控指标采集,同时提供了对应的优化后的监控大盘和告警指标,为用户提供了开箱即用的 Windows 监控能力。

在这里插入图片描述

使用阿里云 Prometheus 监控 Windows

下面介绍如何使用阿里云 Prometheus 进行 Windows 的监控,包括接入配置、查看监控大盘和配置告警规则等三方面。

接入 Windows 配置

首先需要用户按部署和配置 Windows Exporter 文档 **[10 ] **,自行在 Windows 机器上安装和配置 exporter,以便将暴露 Metric 给阿里云 Prometheus。

登录阿里云 Prometheus 控制台,访问 ARMS 接入中心 **[11 ] **,点击组件应用“Windows”的“添加”按钮,在弹出界面选择 Windows 所部署的环境(目前支持“阿里云 ECS 环境”),选择 Windows 所在的 Prometheus 实例,然后填写监控接入的配置信息。

  • Exporter 名称:当前 Windows 监控唯一命名。
  • Exporter 端口:部署 Windows Exporter 时配置的监听端口。
  • 采集路径:Prometheus 采集 Windows Exporter 的 http path,默认是 /metrics。
  • 采集间隔(秒):监控数据采集时间间隔。
  • ECS 标签/值:已部署 Windows Exporter 的 ECS 标签和标签值,Prometheus 通过此标签进行服务发现(Service Discovery)。

在这里插入图片描述
在这里插入图片描述

查看 Windows 监控大盘

阿里云 Prometheus 默认提供了 Windows 明细、Windows 进程和 TopN 等三个大盘。

进入 Prometheus 实例的集成中心,点击“Windows”,在弹出界面选择“大盘”tab 页,点击大盘缩略图,即可查看对应 Grafana 大盘。

在这里插入图片描述

Windows 明细大盘

明细大盘展示了指定 Windows 系统的 CPU、内存、磁盘和网络等四方面的重要指标。

在这里插入图片描述

Windows 进程大盘

进程大盘展示各个进程的 CPU、内存、线程和 IO 监控情况,方便我们对进程级异常进行排查。

在这里插入图片描述

Windows TopN 大盘

TopN 大盘分别展示所监控的 Windows 集群中,关键指标(CPU、内存、磁盘和网络)的 Top5 节点,方便我们对整个 Windows 集群总体健康程度快速掌握。

在这里插入图片描述

配置 Windows 监控告警

进入 Prometheus 实例的集成中心,点击“Windows”,在弹出界面选择“告警”tab 页,即可查看/新增当前 Prometheus 实例的 Windows 告警规则。目前提供 CPU、内存、磁盘和网络等四方面的 11 个关键告警指标,用户可根据实际情况实例化告警规则。创建 Prometheus 告警的详细操作步骤,详见 Prometheus 告警规则 **[12 ] **文档。

在这里插入图片描述

自定义 Windows 监控项

阿里云 Prometheus 提供的 Windows Exporter 默认配置的采集项有:cpu, cpu_info, memory, process, tcp, cs, logical_disk, net, os, system, textfile, time。Windows Exporter 还提供了 Active Directory、Container、DNS 等 Windows 组件的 Metric 采集,用户可根据实际业务需求,修改 config 配置文件,然后重启 windows_exporter 服务即可生效,详见 Windows Exporter 官方文档 **[13 ] **。

在这里插入图片描述
在这里插入图片描述

结束语

阿里云 Prometheus 与阿里云容器服务和 ECS 无缝集成,默认提供了 Windows 的 CPU、内存、磁盘、网络和进程等 5 方面的核心监控指标采集,同时提供了对应的优化后的专家级监控大盘和告警指标模板,为用户提供了免运维、开箱即用的 Windows 监控能力。目前支持 ECS 环境的 Windows 监控,即将发布对阿里云容器服务(ACK、注册集群等)的 Windows 节点监控,敬请期待。

相关链接

[1] 参考 Microsoft 指南:

https://learn.microsoft.com/zh-cn/windows/win32/procthread/context-switches

[2] 参考 Microsoft 文档

https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc940375(v=technet.10)

*[3] 内核模式程序调用
*

https://learn.microsoft.com/zh-cn/windows-hardware/drivers/gettingstarted/user-mode-and-kernel-mode

[4] xperf

https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-8.1-and-8/hh162920(v=win.10)

[5] 传统硬盘 HDD

https://en.wikipedia.org/wiki/Hard_disk_drive

[6] 混合硬盘 HHD

https://en.wikipedia.org/wiki/HHD

[7] 固态硬盘 SSD

https://en.wikipedia.org/wiki/Solid-state_drive

[8] CacheSet 工具

https://learn.microsoft.com/zh-cn/sysinternals/downloads/cacheset

[9] 阿里云 Prometheus 监控

https://help.aliyun.com/document_detail/122123.html

[10] 部署和配置 Windows Exporter 文档

https://help.aliyun.com/document_detail/462984.htm

[11] ARMS 接入中心

https://common-buy.aliyun.com/?commodityCode=arms#/open

[12] Prometheus 告警规则

https://help.aliyun.com/document_detail/331981.html

[13] Windows Exporter 官方文档

https://github.com/prometheus-community/windows_exporter#using-a-configuration-file

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/116533.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

吴恩达的2022年终盘点:生成式AI、ViT、大模型

昨日,**吴恩达在圣诞节的《The Batch》特刊上发布了一年一度的年终盘点。**在过去的一年,生成式AI迎来爆发式增长,由人工智能生成的图片在社交平台疯狂传播,引发大量争议的同时也推动了投资;视觉 Transformer(ViT) 的工…

【nowcoder】笔试强训Day8

目录 一、选择题 二、编程题 2.1两种排序方法 2.2最小公倍数 一、选择题 1.下列选项中关于Java中super关键字的说法正确的是() A super关键字是在子类对象内部指代其父类对象的引用 B super关键字不仅可以指代子类的直接父类,还可以直…

SpreadJS 16新建文件格式,Data Manager中的层次结构

SpreadJS 16新建文件格式,Data Manager中的层次结构 为TableSheet、Designer、Calculation、Shape和Workbook添加增强功能。 2022年12月22日-16:53新版本 特征 新建文件格式 新的.sjs文件格式使ExcelIO进程更快、更小。 表页增强功能 Data Manager中的层次结构。 Data Manager字…

【代码随想录】链表-golang

链表 from 代码随想录 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 思路:设置一个新的节点,节点的下一个是链表的第一个节点 /*** Definition f…

阿根廷夺冠早已预判,梅西经济爆火,这款产品在跨境电商卖断货了

2022年12月18日23:00,世界杯的决赛将举行,阿根廷会战法国;期间,梅西和姆巴佩也将会在绿茵场上狭路相逢。而作为现役名声最为响亮的球星之一,此次卡塔尔也是梅西最后一次征战世界杯赛场,同时,随着…

基于Python实现电影推荐系统【100010052】

电影推荐系统 标签:Tensorflow、矩阵分解、Surprise、PySpark 1、用Tensorflow实现矩阵分解 1.1、定义one_batch模块 import numpy as np import pandas as pddef read_and_process(filename, sep ::):col_names [user, item, rate, timestamp]df pd.read_cs…

IP判断.库函数复习.数组.C

strtok(在string.h库里)函数以"."为分隔符对IP字符串进行切分. atoi函数(在stdlib.h里)将切分的一部分字符串转换为十进制数字. 描述 C 库函数 char *strtok(char *str, const char *delim) 分解字符串 str 为一组字符串&#xf…

LeetCode题目笔记——1759. 统计同构子字符串的数目

文章目录题目描述题目难度——中等方法一:数学代码/C代码/Python总结题目描述 给你一个字符串 s ,返回 s 中 同构子字符串 的数目。由于答案可能很大,只需返回对 109 7 取余 后的结果。 同构字符串 的定义为:如果一个字符串中的…

300道网络安全工程师面试题(附答案解析)冲刺金三银四

2022年马上就要过去了,先来灵魂三连问,年初定的目标完成多少了?薪资涨了吗?女朋友找到了吗? 好了,不扎大家的心了,接下来进入正文。 由于我之前写了不少网络安全技术相关的文章和回答&#xff…

nginx 报400_nginx 400 Bad request

记录一次自己写出来的bug. 首先自己在gateway中做了filter,操作了header 操作中返回的报错400 nginx, 所以一直将矛头指向了nginx配置,但是各种查询和修改后,错误依旧. 静下心来一步步的看,发现请求实际上已经通过nginx发送到了gateway中,并且gateway日志中也清楚的记录了lo…

[普及练习场]失踪的7

本专辑上篇: [普及练习场] 生活大爆炸版石头剪刀布 看得都爽,对吧!感谢hydro的页面和浴谷的搬运。 目录 一.读题 失踪的7 题意 二 .做题 算法原理 算法实现 全篇代码分解讲解 输入 中心 一.读题 失踪的7 题目描述 远古的 Pascal 人也…

FIT2CLOUD飞致云荣膺“2022年度OSCHINA优秀开源技术团队”奖项

2022年12月,知名开源技术社区OSCHINA(开源中国)公布了“2022年度OSCHINA优秀开源技术团队”入选名单。凭借在开源软件研发和开源社区运营方面的优秀表现,FIT2CLOUD飞致云获得了OSCHINA社区的认可,荣膺“2022年度优秀开…

基于人脸关键点检测的驾驶员睡意检测系统

摘要 驾驶员注意力不集中或者分心是道路交通事故的主要原因。 为了减少道路交通事故,设计开发驾驶员疲劳检测系统至关重要。 本研究利用人脸关键点检测方法提出了驾驶员睡意检测系统,目的是使驾驶更安全。 一.人类检测方法 人脸关键点检测是人脸识别任…

B. Array Walk(贪心)

Problem - 1389B - Codeforces 给你一个数组a1,a2,...,an&#xff0c;由n个正整数组成。 最初&#xff0c;你站在索引1处&#xff0c;分数等于a1。你可以进行两种移动。 向右移动--从你当前的索引x走到x1&#xff0c;并将ax1加入你的分数。这个动作只有在x<n时才能进行。 …

黑客窃取 4 亿 Twitter 用户记录,勒索马斯克破财消灾

整理 | 何苗 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 上周五&#xff0c;一个用户名为 Ryushi 的用户在黑客论坛 Breached 上发布了一个帖子声称&#xff0c;已成功利用漏洞抓取了超 4 亿 Twitter 用户数据并在线出售。 为了证明数据的真实性&am…

spring cloud gateway网关转发websocket请求

springcloud gateway网关是所有微服务的统一入口。 1、springcloud gateway关键术语 Route&#xff1a;路由&#xff0c;网关配置的基本组成模块。一个Route模块由一个 ID&#xff0c;一个目标 URI&#xff0c;一组断言和一组过滤器定义。如果断言为真&#xff0c;则路由匹配…

经营报表-FineReport配置Oracle外接数据库(2)

1. 配置外接数据库 1.1 外接数据库配置入口 外接数据库的配置入口&#xff0c;有三种形式&#xff1a; 1&#xff09;超级管理员第一次登录数据决策系统时&#xff0c;即可为系统配置外接数据库。如下图所示&#xff1a; 2&#xff09;对于使用内置数据库的系统&#xff0c;管…

蓝桥杯嵌入式|第十三届蓝桥杯嵌入式省赛程序设计试题及其题解

题目 十三届省赛是要制作一个可由串口设置密码的密码锁。在本场比赛中&#xff0c;我们将用到LED模块、按键模块、串口模块、定时器的PWM模块以及官方会提供源码的LCD模块。下面就请看原题&#xff1a; 题解 在正式题解前&#xff0c;大家需要注意以下几点&#xff1a; 由于LCD…

《计算机网络》——第二章知识点

物理层:在连接各种计算机的传输媒体上传输数据比特流&#xff0c;确定与传输媒体接口有关的一些特性。1.机械特性 定义物理连接的特性&#xff0c;规定物理连接时所采用的规格、接口形状、引线数目、引脚数量和排列情况。 2.电气特性 规定传输二进制位时&#xff0c;线路上信…

【深度学习框架TensorFlow】使用TensorFlow框架构建全连接的神经网络,实现手写数字识别

文章目录一.TensorFlow1.1 内容介绍二.开始实验2.1TensorFlow的基本使用2.2基于全连接神经网络的手写数字识别2.3 结论一.TensorFlow 使用深度学习框架TensorFlow。 目标&#xff1a; 1.了解TensorFlow的基本用法&#xff1b; 2.学习使用TensorFlow构建全连接的神经网络&…