Prometheus Node Exporter 配置访问认证
设置Basic Auth
使用 htpasswd 来生成 bcrypt 密码 hash,如果没有htpasswd命令请自行安装
#这里我只用它来生成了密码 hash , 没有传递用户名。
htpasswd -nBC 12 '' | tr -d ':\n'
创建一个yaml配置文件,如:web-config.yml
basic_auth_users:
prometheus: $2y$12$y4PaNc0UM0Jzi07jJf6zcuRFyp2GlH6F5rUKcE.xk3Aug2khcqa7m # prometheus:123456
二进制启动
使用配置文件启动启动node_exporter
node_exporter 1.5
及以上:node_exporter --web.config.file=web-config.yml
node_exporter 1.5
及以下:node_exporter --web.config=web-config.yml
如果遇到这报错:
node_exporter: error: unknown long flag ‘–web.config’, try --help
请参考版本启动参数
docker启动
# 需要添加一个参数–compatibility表示以兼容模式来运行
# docker-compose --compatibility up -d
version: '3'
services:
node-exporter:
image: 10.194.24.53/k8s-component/prom/node-exporter:v1.6.1
container_name: node-exporter
hostname: harbor01-10.194.24.53
restart: always
deploy:
resources:
limits:
cpus: '0.5'
memory: 500M
reservations:
cpus: '0.1'
memory: 200M
command:
- --web.config.file=/etc/web-config.yml
- --path.sysfs=/host/sys
- --path.rootfs=/host/root
- --path.procfs=/host/proc
- --path.udev.data=/host/root/run/udev/data
- --no-collector.wifi
- --no-collector.hwmon
- --no-collector.btrfs
- --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|boot|run|var/lib/docker/.+|var/lib/kubelet/pods/.+)($$|/)
- --collector.netclass.ignored-devices=^(veth.*|[a-f0-9]{15})$$
- --collector.netdev.device-exclude=^(veth.*|[a-f0-9]{15})$$
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/host/root:ro
- ./web-config.yml:/etc/web-config.yml:ro
ports:
- "39100:9100"
遇到
$
转义错误:Invalid interpolation format for "command" option in service "node-exporter": "^/(sys|proc|dev|host|etc)($|/)"
参考:
https://github.com/docker/compose/issues/4485
,意思是多加个$
即可。
参考:
1.https://www.cnblogs.com/light-year/p/15981157.html