Prometheus 监控带用户名密码的 API (NGINX)采集配置


这篇文章的主要目的是告诉大家如何配置 Prometheus,使得它可以从指定的 Web Api 接口采集指标数据。文章中用到的案例是 NGINX 的采集配置,从设定了用户名和密码的 NGINX 数据指标页中采集数据,因此这篇文章的副标题可能是 nginx 的 prometheus 采集配置或者prometheus 采集 basic auth 的 nginx

上图是配置完成后,在 Grafana 配置了模板的效果。

使用过 Prometheus 的朋友想必都知道如何配置 address:port 类服务,例如收集某个 Redis 的相关信息时,配置可以这么写:

  - job_name: 'redis'
    static_configs:
    - targets: ['11.22.33.58:6087']

注释:以上案例中假设 Redis Exporter 的 地址和端口是 11.22.33.58:6087。

这种是最简单,也是最为人熟知的办法。但是如果要监控指定的 Web API,可就不能这么写了。如果你没有看到这篇文章,你可能会在搜索引擎里面这么搜:

  • Prometheus 监控 Web
  • Prometheus scrape Web
  • Prometheus 监控接口
  • Prometheus 监控指定 API
  • Prometheus API 配置
  • Prometheus 域名 配置
  • Prometheus basic auth
  • Prometheus 接口 用户名 密码

但很不幸的是,搜不到什么有效信息(现在是 2021 年 03 月),能找到的基本上都是坑。

条件假设

假设我们现在需要从地址为 https://www.weishidong.com//status/format/prometheus 的接口收集相关的 Prometheus 监控指标,并且这个接口使用了 basic auth(假定用户名为 weishidong,密码为 0099887kk)进行基本的权限校验。

配置实践操作

按照之前见到的 Prometheus 配置填写的话,很有可能把配置写成这样:

  - job_name: 'web'
    static_configs:
    - targets: ['http://www.weishidong.com/status/format/prometheus']
    basic_auth:
      username: weishidong
      password: 0099887kk

保存配置文件并重启服务后你就会发现,这样是收集不到数据的,简直糟糕。

官方配置指南

刚才的操作真的是糟糕透了,遇到不懂的问题时,我们当然是去翻官方文档了->

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值