(三)解决prometheus部署在公网IP上的安全认证问题

   日期:2020-10-16     浏览:327    评论:0    
核心提示:prometheus相比于zabbix在网站登录的时候没有账密认证,就导致访问ip端口的时候会把自身监控的信息全部暴露出去。因此prometheus的部署建议是不要部署在公网上,另外就是开启认证了。所谓的认证就是在登陆的时候提示输入账号密码。在这里我们是通过nginx上的HTTP Basic Auth来实现。1、部署nginx,忽略。2、安装apache-htpasswd工具~:yum -y install httpd-tools3、创建账号密码~:cd /usr/local/nginx/con

prometheus相比于zabbix在网站登录的时候没有账密认证,就导致访问ip端口的时候会把自身监控的信息全部暴露出去。因此prometheus的部署建议是不要部署在公网上,另外就是开启认证了。所谓的认证就是在登陆的时候提示输入账号密码。在这里我们是通过nginx上的HTTP Basic Auth来实现。

1、部署nginx,忽略。

2、安装apache-htpasswd工具

~:yum -y install httpd-tools

3、创建账号密码

~:cd /usr/local/nginx/conf/
~:htpasswd -c ht.passwd prometheus
New password: 
Re-type new password: 
Adding password for user prometheus

4、在nginx.conf里面编辑反向代理

server { 
	listen 19090;
    
	location / { 
		proxy_pass http://localhost:9090;
		auth_basic "Basic Authentication";
		auth_basic_user_file "ht.passwd";
	}
 
}

这里要提一下,反向代理为什么要用http://localhost:9090,我这里的prometheus和nginx是部署在同一台服务器上的,同时在请求9090的时候,只允许该台服务器的ip访问。

5、修改prometheus.yml文件
在编辑prometheus.yml文件之前,先在prometheus目录下执行

~:./prometheus   --config.file=./prometheus.yml  --web.external-url=http://localhost:19090   --web.route-prefix="/"  --web.enable-lifecycle  --web.listen-address="localhost:9090"

目的是使prometheus对外的端口是19090,同时设置9090端口是为了对接nginx上的反向代理。

~:vim prometheus.yml
    static_configs:
    - targets: ['xxx.xxx.xxx.xxx:19090']
    basic_auth:
      username: prometheus
      password: 密码

6、重启prometheus
另外,这个时候如果grafana的监控出现问题的时候,需要重新添加prometheus的地址,并且点开Basic Auth,把刚刚设置的账号密码添加进去。

 
打赏
本文转载自:https://blog.csdn.net/weixin_48226988/article/details/109049507  
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服