Prometheus监控Windows系统并配置basic_auth访问权限

Prometheus监控Windows系统并配置basic_auth访问权限

(一)下载windows_exporter

Prometheus官方没有提供windows端的采集器,需要下载github上大佬写的采集器

下载地址:github.com/prometheus-...

下载Latest版本的.msi安装包

.msi安装包可以将windows_exporter配置为windows服务(推荐版本)

.exe是可执行文件,双击启动后可以直接运行采集器,后续可手动配置为windows服务,本文不采用该方式

(二)如何安装windows_exporter

由于参数较多,本文只列举了常用参数,详细参数请到github上查看。安装方式相同。

通过cmd输入命令的方式进行安装,下面是exporter常用的参数

参数名 说明 默认值
--web.listen-address 设置采集器端口号 :9182
--telemetry.path 采集器的metrics的地址 /metrics
--telemetry.max-requests 最大并发请求数。0表示禁用。 5
--collectors.enabled 要使用的收集器的逗号分隔列表。使用[defaults]作为占位符,该占位符展开后包含默认启用的所有收集器。" [defaults]
--web.config.file web配置文件,负责TLS和权限 None

安装命令行参数,负责控制上述参数在安装时进行修改

参数名 说明
ENABLED_COLLECTORS 作为--collectors.enabled标志,提供已启用收集器的逗号分隔列表
LISTEN_ADDR 监听地址,默认为0.0.0.0
LISTEN_PORT 端口号,默认为9182
METRICS_PATH 采集器的metrics的地址。默认为 /metrics
EXTRA_FLAGS 额外参数,可以设置上述的所有参数名

通过msiexec命令进行安装,例如:

css 复制代码
msiexec /i <path-to-msi-file> ENABLED_COLLECTORS=os,iis LISTEN_PORT=5000

/imsiexec的安装指令,后续填写msi安装包的路径

ENABLED_COLLECTORS可以设置采集器的采集指标

LISTEN_PORT设置端口号

可以通过EXTRA_FLAGS额外指定特殊的exporter参数,例如:

css 复制代码
msiexec /i <path-to-msi-file> LISTEN_PORT=5000 EXTRA_FLAGS="--web.config.file=<path-to-config-file>"

上述命令设置了采集器的--web.config.file的配置文件路径,其他参数也可以通过这种方式进行设置。

详细安装步骤在配置完basic_auth(设置密码)之后。

(三)配置Prometheus和exporter的basic_auth(配置访问密码)

由于监控主机往往在暴露在公网环境中,最好是对Prometheus和exporter设置其访问密码,防止信息泄露。

3.1 设置密码加密

方式一(推荐):

加密网站:bcrypt-generator.com/

在网站上输入自己的密码即可得到加密的密码字符串

本文以123456作为密码为例,加密后得到:$2a$12$bVrC.ySI8j8eNHzhozeSx.XLZnzLwOFjqd0YQPGhH9mahcxVookDO

方式二(官网):

编写python脚本,作者在自己电脑上没有跑通,不知道什么原因:)

ini 复制代码
import getpass
import bcrypt
​
password = getpass.getpass("password: ")
hashed_password = bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt())
print(hashed_password.decode())

3.2 编写Prometheus web配置文件

Prometheus服务端:

创建配置文件,路径都可以,推荐创建在Prometheus根目录下

vim web.yml

配置文件中写入如下内容:

perl 复制代码
basic_auth_users:
  admin: $2a$12$bVrC.ySI8j8eNHzhozeSx.XLZnzLwOFjqd0YQPGhH9mahcxVookDO

admin为用户名,可以任意设置,后面写上刚才的加密后的字符串,注意冒号后面要加一个空格

多个用户则设置多行即可

设置完成后保存,通过命令行进行校验:

arduino 复制代码
$ promtool check web-config web.yml
web.yml SUCCESS

校验成功即该配置文件合法

之后启动Prometheus是加上启动参数即可让改配置文件生效

ini 复制代码
prometheus --web.config.file=web.yml

这时候进入Prometheus后台管理界面时就需要输入刚才的密码了。

3.3编写windows_exporter配置文件

加密方式同上,同样在windows端在某个路径下编写一个配置文件,本文使用配置文件为:C:\windows_exporter\config.yml

配置文件中内容与上文相同,该设置的事exporter端的访问权限,也可以设置多个

perl 复制代码
basic_auth_users:
  admin: $2a$12$bVrC.ySI8j8eNHzhozeSx.XLZnzLwOFjqd0YQPGhH9mahcxVookDO

安装命令如下:

bash 复制代码
msiexec /i ./windows_exporter-0.24.0-amd64.msi LISTEN_PORT=5000 EXTRA_FLAGS="--web.config.file=C:\windows_exporter\config.yml"

安装完成后再windows服务中查看名称为windows_exporter的服务,如果出现该服务则安装成功

如果未出现该服务,则说明命令行参数有误,安装失败。

如果需要卸载该服务,以管理员身份启动cmd,输入命令sc delete windows_exporter即可。

如果需要重新安装,则需要删除C:\Program Files\windows_exporter文件夹

安装成功后,windows端通过浏览器访问本地端口,并输入刚才设置的密码,成功进入页面则安装成功。

3.4编写Prometheus Job配置

编写Prometheus根目录下prometheus.yml文件:

yaml 复制代码
scrape_configs:
  - job_name: "windows1"
    basic_auth:
      username: admin
      password: 123456
    # metrics_path defaults to '/metrics'
     # scheme defaults to 'http'.
    static_configs:
      - targets: ["192.168.0.1:5000"]

添加basic_auth配置,用户名密码配置为exporter的密码即可

(四)测试

启动Prometheus服务端

ini 复制代码
prometheus --web.config.file=web.yml

浏览器访问9090端口,在Status中查看Targets

观察到如上页面即配置成功。

相关推荐
EasyNVR4 天前
NVR批量管理软件/平台EasyNVR多个NVR同时管理支持对接阿里云、腾讯云、天翼云、亚马逊S3云存储
大数据·音视频·监控·视频监控
帅儿二郎5 天前
ELK:日志监控平台部署-基于elastic stack 8版本
linux·运维·elk·自动化运维·elastic·日志监控平台·日志分析平台
LNTON羚通5 天前
摄像机视频分析软件下载LiteAIServer视频智能分析平台中的噪声监测算法及其应用场景
大数据·人工智能·目标检测·音视频·监控
LNTON羚通6 天前
利用摄像机实时接入分析平台LiteAIServer视频智能分析软件进行视频监控:过亮过暗检测算法详解
人工智能·算法·目标检测·音视频·监控
EasyNVR6 天前
NVR小程序接入平台/设备EasyNVR多个NVR同时管理视频监控新选择
大数据·网络·音视频·监控·视频监控
EasyNVR7 天前
NVR批量管理软件/平台EasyNVR多个NVR同时管理支持视频投放在电视墙上
大数据·网络·音视频·监控·视频监控
EasyNVR8 天前
NVR小程序接入平台/设备EasyNVR多个NVR同时管理多平台级联与上下级对接的高效应用
大数据·小程序·音视频·监控·视频监控
LNTON羚通9 天前
算法定制LiteAIServer视频智能分析平台裸土检测技术实现、应用场景与优势概览
大数据·算法·目标检测·音视频·监控
可观测性用观测云9 天前
通过观测云对接企业消息中心,实现定制化告警通知
监控
concisedistinct13 天前
在多数据中心环境中,自动化运维如何保证跨区域的一致性?网络延迟导致的数据不一致是否可以完全避免?|自动化运维|跨区域一致性
运维·网络·自动化·自动化运维·数据中心