CentOS7中使用Prometheus监控Windows主机


系列文章目录

第一章:超详细 CentOS7安装部署Prometheus及其简单使用(exporter、探针、告警)
第二章:超详细 Centos7下Prometheus Alertmanager配置钉钉告警与邮箱告警(已亲手验证)
第三章:CentOS7中Prometheus PushGateway的使用
第四章:Prometheus结合Consul实现自助服务发现
第五章:CentOS7中使用Prometheus 集成 mtail 实现错误日志采集
扩展:CentOS7中使用Prometheus Process-exporter监控进程状态
扩展(当前):CentOS7中使用Prometheus监控Windows主机



一、简介

windows_exporter 由 Prometheus Community 维护windows_exporter是一个采集Windows 机器指标的采集器。支持 Windows Server 2008R2 以上版本和 Windows 7 以上版本。

windows_exporter 官网

https://githubfast.com/prometheus-community/windows_exporter

二、步骤

前置准备:一定要先关闭windows的防火墙!!!
前置准备:一定要先关闭windows的防火墙!!!
前置准备:一定要先关闭windows的防火墙!!!

1、下载windows_exporter-0.20.0-amd64.exe

在虚拟机中下载

wget https://githubfast.com/prometheus-community/windows_exporter/releases/download/v0.20.0/windows_exporter-0.20.0-amd64.exe

下载好后将其移动到你的windows主机上,并将其放在D盘根目录

2、cmd 下将windows_exporter注册为Windows系统服务

win+s搜索cmd,使用管理员身份打开命令提示符
执行下面命令将其注册为系统服务

sc create windows_exporter binpath=D:\windows_exporter-0.20.0-amd64.exe type= own start= auto displayname= windows_exporter

sc create的用法说明:

C:\Users\Administrator>sc create
描述:
        在注册表和服务数据库中创建服务项。
用法:
        sc <server> create [service name] [binPath= ] <option1> <option2>...
选项:
注意: 选项名称包括等号。
      等号和值之间需要一个空格。
 type= <own|share|interact|kernel|filesys|rec>
       (默认 = own)
 start= <boot|system|auto|demand|disabled|delayed-auto>
       (默认 = demand)
 error= <normal|severe|critical|ignore>
       (默认 = normal)
 binPath= <BinaryPathName>
 group= <LoadOrderGroup>
 tag= <yes|no>
 depend= <依存关系(以 / (斜杠) 分隔)>
 obj= <AccountName|ObjectName>
       (默认 = LocalSystem)
 DisplayName= <显示名称>
 password= <密码>

windows_exporter服务注册成功Windows服务列表查看windows_exporter服务
在这里插入图片描述
选中windows_exporter服务,右键菜单中点击属性,在属性对话框输入启动参数:

 --telemetry.addr=0.0.0.0:9182

在这里插入图片描述

删除 windows_exporter 服务的命令

sc delete windows_exporter

3、查看 windows_exporter metrics 采集指标

windows_exporter默认端口是9182

http://127.0.0.1:9182/metrics 

4、Prometheus 添加 windows_exporter 节点监控

vim  /usr/local/prometheus/prometheus.yml

注意下面的地址填写VMnet8的IPv4地址,在windows的cmd中使用ipconfig命令查看

  - job_name: "windows-node"
    scrape_interval: 60s
    static_configs:
      - targets: ['VMnet8的IPv4地址:9182']
        labels:
          project: windows_node_exporter
    relabel_configs:
      - source_labels: [__address__]
        target_label: instance

5、检查Prometheus配置文件

/usr/local/prometheus/promtool  check config   /usr/local/prometheus/prometheus.yml

6、Prometheus 热加载配置

curl  -X POST http://127.0.0.1:9090/-/reload

7、查看Prometheus的web界面

在这里插入图片描述

三、Prometheus Windows 指标查询

在这里插入图片描述

CPU利用率

100 - (avg by (instance,job) (irate(windows_cpu_time_total{mode="idle"}[2m])) * 100)

剩余内存

windows_os_physical_memory_free_bytes /1024/1024/1024

内存利用率

100 - 100 * windows_os_physical_memory_free_bytes / windows_cs_physical_memory_bytes

硬盘使用率

100- 100 * (windows_logical_disk_free_bytes / windows_logical_disk_size_bytes)

预测硬盘使用天数

100 * (windows_logical_disk_free_bytes / windows_logical_disk_size_bytes) < 15 and predict_linear(windows_logical_disk_free_bytes[6h], 4 * 24 * 3600)

网卡sent速率

((sum(rate (windows_net_bytes_sent_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[5m])) by (instance,job)) / 100)

网卡received速率

((sum(rate (windows_net_bytes_received_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[5m])) by (instance,job)) / 100)

四、Prometheus Windows Rule 告警规则

1、创建告警rule

vim  /usr/local/prometheus/rules/windows_node_exporter.yml
groups:
- name: Windows服务器资源监控
  rules:
  - alert: CPU高负荷
    expr: 100 - (avg by (instance,job) (irate(windows_cpu_time_total{mode="idle"}[2m])) * 100) > 30
    for: 5m
    labels:
      severity: critical
    annotations:
      summary: "{{$labels.instance}} CPU使用率过高,请尽快处理!"
      description: "{{$labels.instance}} CPU使用大于90%,当前使用率{{ $value }}%. "
    
  - alert: 内存使用率过高
    expr: 100 - 100 * windows_os_physical_memory_free_bytes / windows_cs_physical_memory_bytes > 30
    for: 5m
    labels:
      severity: critical
    annotations:
      summary: "{{ $labels.instance }} 内存使用率过高,请尽快处理!"
      description: "{{ $labels.instance }}内存使用率超过30%,当前使用率{{ $value }}%."
                                                                                    
  - alert: 服务器宕机
    expr: up{project=~"windows_node_exporter"} == 0
    for: 3m
    labels:
      severity: critical
    annotations:
      summary: "{{$labels.instance}} 服务器宕机,请尽快处理!"
      description: "{{$labels.instance}} 服务器延时超过3分钟,当前状态{{ $value }}. "

  - alert: VNC 服务异常
    expr: windows_service_state{name=~"vncserver",state="running"} == 0
    for: 3m
    labels:
      severity: critical
    annotations:
      summary: "Service {{ $labels.name }} down"
      description: "Service [{{ $labels.name }}] on instance {{ $labels.instance }} has been down for more than 3 minutes." 

  - alert: 网络流入received
    expr: ((sum(rate (windows_net_bytes_received_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[5m])) by (instance,job)) / 100) > 10240
    for: 5m
    labels:
      severity: critical
    annotations:
      summary: "{{$labels.instance}} 流入网络带宽过高,请尽快处理!"
      description: "{{$labels.instance}} 流入网络带宽持续5分钟高于10M. RX带宽使用量{{$value}}."

  - alert: 网络流出sent
    expr: ((sum(rate (windows_net_bytes_sent_total{device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[5m])) by (instance,job)) / 100) > 10240
    for: 5m
    labels:
      severity: critical
    annotations:
      summary: "{{$labels.instance}} 流出网络带宽过高,请尽快处理!"
      description: "{{$labels.instance}} 流出网络带宽持续5分钟高于10M. RX带宽使用量{{ $value }}."

  - alert: 磁盘容量
    expr: 100 - 100 * (windows_logical_disk_free_bytes{volume=~"C:|D:|E:|F:"} / windows_logical_disk_size_bytes{volume=~"C:|D:|E:|F:"}) > 80
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "{{$labels.mountpoint}} 磁盘分区使用率过高,请尽快处理!"
      description: "{{$labels.instance}} {{$labels.volume}}  磁盘分区使用大于80%,当前使用率{{ $value }}%."

2、检查rule文件格式

/usr/local/prometheus/promtool  check rules  /usr/local/prometheus/rules/windows_node_exporter.yml

3、Prometheus热加载配置文件

curl  -X POST http://127.0.0.1:9090/-/reload

4、查看Prometheus的web界面

在这里插入图片描述

  • 15
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在CentOS 7上安装和配置Prometheus,你可以按照以下步骤进行操作: 1. 下载Prometheus的二进制安装包。你可以选择从官方网站或者GitHub上下载最新版本的二进制安装包。参考文档提供了一个下载链接。 2. 解压安装包。使用tar命令解压下载的安装包,例如:tar xvf alertmanager-$VERSION.darwin-amd64.tar.gz。解压后会生成一个包含可执行文件的文件夹。 3. 进入解压后的文件夹。进入解压后的文件夹,你会找到一个名为prometheus的可执行文件。 4. 创建配置文件。在Prometheus的安装目录下创建一个prometheus.yml配置文件。你可以使用任何文本编辑器编辑该文件。 5. 配置抓取目标。在配置文件添加抓取目标的配置项。根据你的需求,你可以配置多个抓取目标。你可以参考引用提供的配置项示例,在scrape配置项添加你的抓取目标的相关信息。 6. 启动Prometheus。在命令行进入Prometheus的安装目录,并使用./prometheus命令启动Prometheus。 7. 访问Web界面。在浏览器访问http://localhost:9090,你将能够看到Prometheus的Web界面。 8. 配置Alert Manager。根据需求,你可以下载Alert Manager的二进制安装包,并根据引用提供的文档进行安装和配置。 请注意,以上步骤仅为一个大致的指南,具体的安装和配置过程可能因环境和需求而异。你可以参考引用提供的文档和其他官方文档来获取更详细的信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [CentOS 7安装和配置Promethues](https://blog.csdn.net/a52202261/article/details/101143113)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值