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

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

相关推荐
云游1 天前
大模型性能指标的监控系统(prometheus3.5.0)和可视化工具(grafana12.1.0)基础篇
grafana·prometheus·可视化·监控
一只拉古1 天前
DevOps 的 Linux 基础(第一部分)
linux·自动化运维·devops
海风极客1 天前
一个案例带你搞懂Prometheus指标类型(下)
监控
可观测性用观测云3 天前
OpenTelemetry WebSocket 监控终极方案:打通最后一公里
监控
vivo互联网技术4 天前
vivo Pulsar 万亿级消息处理实践(4)-Ansible运维部署
大数据·ansible·自动化运维·pulsar·消息处理·分布式消息中间件
可观测性用观测云5 天前
观测云接收 OpenTelemetry Collector 数据最佳实践
监控
SRETALK6 天前
夜莺开源监控,模板函数一览
运维·监控·自动化运维
数据智能老司机7 天前
自动化 API 交付——API 代码规范检查:自动化确保 API 一致性
架构·api·自动化运维
数据智能老司机7 天前
自动化 API 交付——破坏性变更检查:管理 API 演进
架构·api·自动化运维