Ops实践 | 从零开始,使用Prometheus实现企业内部Win、Linux服务器监控预警及可视化展示

cc4c4273f556ddb7cd18f5660805ce61.jpeg

e32a4394ff7d042649b5ce02477ef857.gif

微信改版了,现在看到我们全凭缘分,为了不错过【全栈工程师修炼指南】重要内容及福利,大家记得按照上方步骤设置「接收文章推送」哦~

原文链接:Ops实践 | 从零开始,使用Prometheus实现企业内部Win、Linux服务器监控预警及可视化展示


前言简述:

从本章开始,作者将主要针对企业中主机系统(Linux、Windows)、K8S集群节点与Pod、网站服务(http、dns)、数据库、网络安全设备进行指标采集与监控预警实践,我从基础环境安装,到目标对象的监控,以及目标监控指标的可视化展示和目标‍预警规则的设置几方面入手。

让看友可以更随着我快速的进行实践操作,为数字企业转型舔砖加瓦,全面迎接云原生环境下的企业内部监控预警和展示,至此也希望大家多多支持此《#云原生落地实用指南》专栏,作者将会持续更新云原生下Prometheus的监控和等保下企业内部日志收集实践,我相信你看了此系列专栏必定会有所收获,让你的企业快速拥抱云原生。

上一章,作者讲解了如何使用 Prometheus 监控之blackbox_exporter 导出器,来采集企业内部或外部的业务系统站点以及网站证书过期时间,然后编写预警规则,并使用Altermanager进行告警通知;这一章,作者继续抽取企业里针对内部的 Windows 服务器 和 Linux 服务器 主机的指标导出、监控预警以及可视化的展示,分别采用 windows_exporter 和 node_exporter 来实现了对应操作系统中资源Metrics指标的导出,于此同时作者使用Grafana针对采集到的数据进行可视化的展示,让采集的数据更加直观的显示(老板看了都说了,三个 好、好、好),于此同时作者使用PowerShell 以及 Shell 分别编写了 exporter 的快速安装配置,便于针对需要批量安装童鞋。

先来看看,本章将实现的效果展示图吧。

图0.Windows 服务器使用PowerShell快速安装部署及防火墙配置exporter.

0e51b9c43e402153e74dbeedd74a3430.png

图1.Windows 服务器主机资源监控预警与可视化

daf8494c614ae8c90bfad3037674a3b4.png

图2.Linux 服务器使用Shell快速安装部署及防火墙配置exporter.

87ab5e19e5a265875c275f7e24fa18e9.png

图3.Linux 服务器主机资源监控预警与可视化

ca0a5967713978da37610ad631ff7b1d.png

废话不多说,实践出真知。


windows_exporter - Win 主机指标导出器

描述: 此导出器适用于 Windows 机器的 Prometheus 导出器,对安装有 windows_exporter 工具的 Windows 机器进行监控指标暴露,以及使用Prometheus进行相应资源指标(Metrics)的抓取,然后根据预警规则进行相应的监控;所以我们首先需要在目标机器上安装 windows_exporter 工具,你可以将其理解为 agent 的工作模式。

项目地址: https://github.com/prometheus-community/windows_exporter#collectors , 以及查看支持的资源指标。

项目支持: Windows Server versions 2008R2 and later, and desktop Windows version 7 and later.

目标对象监控

快速安装

Step 1.官网项目中快速拉取下载 windows_exporter-0.24.0-amd64.exe 安装,同样此处为了照顾新手朋友,作者一步一步的进行配置讲讲,在文末附上一键安装的PowerShell脚本。

# 创建工作目录
mkdir D:\\prometheus

# 下载地址
$DOWNLOAD_URL="https://mirror.ghproxy.com/https://github.com/prometheus-community/windows_exporter/releases/download/v0.24.0/windows_exporter-0.24.0-amd64.exe"

# 方式1下载.
PS C:\Windows\system32> Get-Alias wget
  # CommandType     Name                                               Version    Source
  # -----------     ----                                               -------    ------
  # Alias           wget -> Invoke-WebRequest
wget -Uri $DOWNLOAD_URL -OutFile D:\\prometheus\\windows_exporter-amd64.exe

# 方式2下载.低版本服务首选
(new-object System.Net.WebClient).DownloadFile($DOWNLOAD_URL,'D:\\prometheus\\windows_exporter-amd64.exe')

# 方式3.
Start-BitsTransfer -Source $DOWNLOAD_URL -Destination D:\\prometheus\\windows_exporter-amd64.exe

温馨提示:上述 mirror.ghproxy.com 地址为 GitHub Proxy 代理加速,可以极大的加快国内下载Github上的资源。

Step 2.配置 windows_exporter 配置,报考默认启用 Collectors 收集器以及额外添加的收集器和监听端口(默认为9128,为了防火墙好配置,我将windows以及后续的node导出器的监听端口都改为9100)。

# 方式1.
$sw = new-object system.IO.StreamWriter("d:\\prometheus\\config.yml")
$sw.write("# config.yml
# 采集 CPU、内存、磁盘、网络IO、系统资源(memory, processes, users),服务、登录session、进程、TCP链接等,时间。
collectors:
  enabled: cpu,cpu_info,cs,logical_disk,net,os,system,service,logon,process,tcp,time,vmware
collector:
  service:
    services-where: Name='windows_exporter'
log:
  level: info
scrape:
  timeout-margin: 0.5
telemetry:
  path: /metrics
  max-requests: 5
web:
  listen-address: ':9182'")
$sw.close()

# 方式2.
@"
# config.yml
# 采集 CPU、内存、磁盘、网络IO、系统资源(memory, processes, users),服务、登录session、进程、TCP连接,时间等。
collectors:
  enabled: cpu,cpu_info,cs,logical_disk,net,os,system,service,logon,process,tcp,time
collector:
  service:
    services-where: Name='windows_exporter'
log:
  level: info
scrape:
  timeout-margin: 0.5
telemetry:
  path: /metrics
  max-requests: 5
web:
  listen-address: ':9182'
"@ | Out-File D:\\prometheus\\config.yml -Encoding utf8

Step 3.主机防火墙配置,只运行指定IP(prometheus)地址访问目标对象的/metrics页面。

# 方式1
$REMOTE_IP=127.0.0.1,10.20.12.103,10.20.12.106
# 方式2
$REMOTE_RANGE=10.20.12.103-10.20.12.106
# 创建防火墙规则
New-NetFirewallRule -Name "windows_exporter" -Description "Prometheus exporter for Windows machines" -DisplayName "windows_exporter" -RemoteAddress $REMOTE_RANGE -LocalPort 9182 -Protocol 'TCP'  -Direction Inbound -Action Allow -Enabled True

Step 4.完成配置后,我们便可手动在windows服务器上运行 windows_exporter-amd64.exe 命令,并验证metric端口(127.0.0.1:9100)是否可以正常访问。

完整原文:Ops实践 | 从零开始,使用Prometheus实现企业内部Win、Linux服务器监控预警及可视化展示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值