我已经使用以下docker-compose.yml
文件创建了一个普罗米修斯码头容器。
version: '3.7'
services:
prometheus:
image: prom/prometheus
volumes:
- ./prometheus/:/etc/prometheus/
ports:
- "9090:9090"
prometheus/prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: monitoring
metrics_path: /metrics
static_configs:
- targets:
- host.docker.internal:8000
它工作正常,我可以通过以下URL查看普罗米修斯的UI/ Jmeter 板http://localhost:9090/graph
现在,我需要为Prometheus UI/ Jmeter 板添加一个基本身份验证。以便只有具有有效凭据的用户才能访问该用户界面。
我已经引用了这个github issue,并将以下配置添加到prometheus/prometheus.yml
文件
server:
extraArgs:
web.config.file: /etc/config/web_config.yml
probeHeaders:
- name: Authorization
value: Basic <'username:password' in base64>
serverFiles:
web.config.yml:
basic_auth_users:
<username>: '<bcrypt password>'
我已经将<'username:password' in base64>
替换为Base64编码字符串admin:password
,并将<username>
替换为admin
,<bcrypt password>
替换为Base64编码字符串password
,这是用户的密码。
我的prometheus/web_config.yml
文件:
basic_auth_users:
admin: <base64 password>
当我运行docker-compose up
命令时,我得到以下错误:
caller=main.go:455 level=error msg="Error loading config (--config.file=/etc/prometheus/prometheus.yml)" file=/etc/prometheus/prometheus.yml err="parsing YAML file /etc/prometheus/prometheus.yml: yaml: unmarshal errors:\n line 12: field server
not found in type config.plain\n line 19: field serverFiles not found in type config.plain"
1条答案
按热度按时间pkwftd7m1#
您正在遵循的指南引用了一个Helm Chart模板(针对Kubernetes),该模板误导了您的需求(Docker Compose)。
basic_auth_users
需要用户(!)明文作为密钥和Base64编码的密码(仅限!)就像价值一样。请参见... Using Basic Auth。
在主机的
./prometheus
文件夹中创建第二个文件:web.yml
:然后,在运行Docker Compose时,将标志
--web.config.file
添加到Prometheus容器映像: