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

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,把刚刚设置的账号密码添加进去。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值