Prometheus 版本 2.41.0
- 平台统一监控的介绍和调研
- 直观感受PromQL及其数据类型
- PromQL之选择器和运算符
- PromQL之函数
- Prometheus 配置身份认证
Prometheus 使用默认方式安装是不带有身份证认证和TLS,需要单独配置开启。
Prometheus 配置文件为yaml格式,并且单独配置,官网命名为web-config.yml
,使用--web.config.file
命令加载。
web-config.yml
tls_server_config:
# 配置TLS
cert_file: <filename>
key_file: <filename>
#客户端认证类型,支持NoClientCert、RequestClientCert、RequireAnyClientCert、VerifyClientCertIfGiven、RequireAndVerifyClientCert, 默认为NoClientCert
#NoClientCert 不验证证书
#RequestClientCert 握手期间请求客户端证书,但不要求发送
#RequireAnyClientCert 握手期间请求客户端证书,并且客户端至少要发送一个证书,但不要求证书有效
#VerifyClientCertIfGiven 握手期间请求客户端证书,不要求发送证书,但如果发送了证书,证书必须有效
#RequireAndVerifyClientCert 握手期间请求客户端证书,并且客户端至少要发送一个有效证书
[ client_auth_type: <string> | default = "NoClientCert" ]
#客户端证书验证的CA 证书
[ client_ca_file: <filename> ]
# 最低TLS 版本,默认 TLS12
[ min_version: <string> | default = "TLS12" ]
# 最高TLS 版本,默认TLS13
[ max_version: <string> | default = "TLS13" ]
# 支持TLS 1.2以下的密码套件列表,为空,默认使用GO的默认密码套件,https://golang.org/pkg/crypto/tls/#pkg-constants
# 仅支持以下函数返回的密码,https://pkg.go.dev/crypto/tls#CipherSuites
[ cipher_suites:
[ - <string> ] ]
# 控制服务端是选择客户端密码套件,还是服务端密码套件,如果为ture,则从cipher_suites中选择首选项
[ prefer_server_cipher_suites: <bool> | default = true ]
# ECDHE握手中使用的椭圆曲线,按优先顺序
# 可用选项:https://golang.org/pkg/crypto/tls/#CurveID
[ curve_preferences:
[ - <string> ] ]
http_server_config:
# 开启HTTP/2. HTTP/2仅支持TLS.
# 更改不能立刻生效
[ http2: <boolean> | default = true ]
# 可添加到HTTP响应的header列表。
[ headers:
# 设置 Content-Security-Policy,为空则不设置
[ Content-Security-Policy: <string> ]
# 设置 X-Frame-Options,为空则不设置
# 接受的值有 deny 和 sameorigin
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
[ X-Frame-Options: <string> ]
# 设置 X-Content-Type-Options,为空则不设置
# 接受的值是 nosniff
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
[ X-Content-Type-Options: <string> ]
# 设置 the X-XSS-Protection,为空则不设置
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection
[ X-XSS-Protection: <string> ]
# 谨慎使用此头,因为此标头可能会迫使浏览器在同一域和子域上加载 Prometheus 和其他应用程序时使用 HTTPS
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security
[ Strict-Transport-Security: <string> ] ]
# Web页面的 身份认证,密码加密使用bcrypt,格式为username: password
basic_auth_users:
[ <string>: <secret> ... ]
上述配置为官方的配置文档,如果我们要开启Prometheus的 Web的身份认证,简单配置只需要添加basic_auth_users
部分,如
basic_auth_users:
alice: $2y$10$mDwo.lAisC94iLAyP81MCesa29IzH37oigHC/42V2pdJlUprsJPze
bob: $2y$10$hLqFl9jSjoAAy95Z/zw8Ye8wkdMBM8c5Bn1ptYqP/AXyV0.oy0S8m
密码使用bcrypt加密,可以使用工具 htpasswd
https://github.com/prometheus/exporter-toolkit/blob/master/docs/web-configuration.md#about-bcrypt
或者
https://bcrypt-generator.com/
安全性高一些,配置TLS,如下为必配选项,证书生成可见其他网站。
tls_server_config:
cert_file: server.crt
key_file: server.key
配置完成后,通过 --web.config.file
加载到Prometheus中。
访问Prometheus的页面,需要登录,如图:
在Grafana 配置数据源选项的时候,要开启Basic auth
,输入正确的用户名和密码
作者其他文章:
Grafana 系列文章,版本:OOS v9.3.1
- Grafana 的介绍和安装
- Grafana监控大屏配置参数介绍(一)
- Grafana监控大屏配置参数介绍(二)
- Grafana监控大屏可视化图表
- Grafana 查询数据和转换数据
- Grafana 告警模块介绍
- Grafana 告警接入飞书通知
Spring Boot Admin 系列
- Spring Boot Admin 参考指南
- SpringBoot Admin服务离线、不显示健康信息的问题
- Spring Boot Admin2 @EnableAdminServer的加载
- Spring Boot Admin2 AdminServerAutoConfiguration详解
- Spring Boot Admin2 实例状态监控详解
- Spring Boot Admin2 自定义JVM监控通知
- Spring Boot Admin2 自定义异常监控
- Spring Boot Admin 监控指标接入Grafana可视化