贵有恒,何必三更起、五更眠、最无益,只怕一日曝、十日寒。这篇文章主要讲述使用nginx的auth_basic实现prometheus 安全认证相关的知识,希望能为你提供帮助。
prometheus本身是不提供认证服务的,这就带来了一定的安全风险,毕竟有些信息并不是希望任何人都可以看到的。针对这一点可以使用nginx的auth_basic功能来实现认证在本例中
prometheus server 主机ip 192.168.0.191 运行在127.0.0.1:9090nginx监听9000
exporter 主机 192.168.0.251 运行在127.0.0.1:9090 nginx监听9000
结构如图
安装httpd-tools工具?xxxxxxxxxx
1yum -y install httpd-tools
2cd /opt/
3htpasswd -c .ht.passwd promauth
?
交互过程中,记住设定的密码,这里设定的密码是promauth
生成的passwd文件需要分发到所有需要使用验证功能的机器上。配置启动 rpometheus
在配置文件加入要监控的exporter配置,targets要指向nginx上开放的端口,basic_auth要写入刚刚设定的用户名密码。
【使用nginx的auth_basic实现prometheus 安全认证】
启动prometheus./prometheus --config.file=prometheus.yml--web.listen-address=127.0.0.1:9090
exporter在192.168.0.251上执行
./node_exporter --collector.textfile.directory /var/lib/node_exporter/textfile_collector --collector.systemd--collector.systemd.unit-include="(docker|sshd).service"./node_exporter --collector.textfile.directory /var/lib/node_exporter/textfile_collector --collector.systemd--collector.systemd.unit-include="(docker|sshd).service --web.listen-address="127.0.0.1:9090"
nginx配置注意:在需要认证的机器上,都要有前几步使用htpasswd生成的文件 /opt/.ht.passwd,没有这个文件nginx会报错。
在nginx配置文件中添加认证配置
cat >
/etc/nginx/conf.d/prom.conf <
<
EOF
server
listen 9000;
location /
auth_basic "promauth";
auth_basic_user_file "/opt/.ht.passwd";
proxy_passhttp://localhost:9090/;
EOF
重载配置文件后,浏览器访问9000端口,ngx会验证用户信息,成功后请求转发到prometheus监听的9090端口上
同时由于prometheus与exporter监听的是127.0.01,所以外部机器无法直接访问。
查看prometheus的web页面上的targets可以看到192.168.0.251的信息。
如果状态为down,需要检查端口nginx代理 认证信息是否正确。
推荐阅读
- Spark+ES+ClickHouse 构建DMP用户画像
- 2022最新网易云音乐代挂源码[含教程]自动刷歌签到
- 前端主流布局系统进阶与实战,轻松解决页面布局难题
- lvm逻辑卷管理 创建 |ext4 xfs扩容
- 轻松实现Rust系统入门,实战编译器开发
- ssh服务和证书的配置
- 比利时国防部遭Log4j漏洞攻击
- SpringBoot+Vue3 项目实战,打造企业级在线办公系统
- 数据库管理系统常见问题介绍|S10