保护涉密信息Prometheus Server和node_exporter的安全认证

背景

在日常prometheus的使用中是没有安全加密措施的,可能会导致监控信息,敏感信息遭遇泄漏。在这种情况下需要保护对Prometheus的访问。

方案简介

Prometheus于2.24版本(包括2.24)之后提供Basic Auth功能进行加密访问,在浏览器登录UI的时候需要输入用户密码,访问Prometheus api的时候也需要加上用户密码。

一、Prometheus Server的安全认证配置

1.1、准备认证文件

生成认证文件的方法有多种,如使用python、用htpasswd等,本文使用htpasswd生成
CentOS系统上安装htpasswd工具:

~# yum -y install httpd-tools

Ubuntu系统上安装htpasswd工具:

~# apt -y install apache2-utils

生成认证文件:

~# htpasswd -nbB -C 10 admin admin123

在这里插入图片描述

写入如下内容:
在这里插入图片描述

1.2、修改prometheus的service文件

~# vim /usr/lib/systemd/system/prometheus.service

在service文件里添加如下选项,为prometheus进程指定认证文件
在这里插入图片描述

之后重新加载service文件,并重启prometheus进程

~# systemctl daemon-reload && systemctl restart prometheus

在这里插入图片描述

1.3、Web页面验证

通过以上已经完成了Prometheus Server的用户认证设置,现在通过Web访问Prometheus,需要用户名、密码认证:
在这里插入图片描述

在这里插入图片描述

1.4、Grafana访问认证

因为grafana需要读取Prometheus的数据,此时Grafana上也需要用户名、密码认证了:
在这里插入图片描述

这是需要在Grafana的数据源配置Prometheus的安全认证,如下,找到Prometheus的数据源,Authentication配置项中配置用户名密码
在这里插入图片描述

先跳过TLS证书验证,配置上Prometheus Server的用户名密码后,Grafana上的仪表板才能正常打开:
在这里插入图片描述

二、Node_exporter的安全认证

Node_exporter的安全认证配置与Prometheus Server的安全认证过程类似

2.1、准备安全认证文件

使用的工具与Prometheus Server使用工具一样

~# htpasswd -nbB -C 10 k8s-master01 k8s-master01123

在这里插入图片描述

2.2、编辑认证文件

在这里插入图片描述

2.3、修改node_exporter的service文件

在service文件里添加如下选项:
在这里插入图片描述

2.4、重启node_exporter

~# systemctl daemon-reload && systemctl restart node_exporter

2.5、Web访问node_exporter

现在访问Node_exporter的web压面,需要填写用户名密码
在这里插入图片描述

在这里插入图片描述

三、Prometheus Server上添加Prometheus和Node_exporter的密码

经过一、二步骤,Prometheus Server和Node_exporter都设置了用户名密码,访问它们的指标数据都需要用户名密码,这种情况下Prometheus Server采集自己的指标和Node_exporter的指标都需要用户名名
没在Prometheus的配置文件里添加用户名密码时,Prometheus的Web页面上会报未认证:
在这里插入图片描述

在这里插入图片描述

3.1、修改Prometheus Server的配置文件

在prometheus.yml文件中,prometheus自己的采集任务下添加basic_auth,如下
在这里插入图片描述

3.2、验证指标采集

重启Prometheus后,再通过Web查看Prometheus,可以看到自己的状态已经能正常采集:
![在这里插入图片描述
]
同样在172.16.1.12这台联邦节点上配置自己Promethes的用户名密码和Node_exporter的用户名密码
在这里插入图片描述

重启后,172.16.1.12也能正常采集到自己和k8s-master01的指标数据了
在这里插入图片描述

3.3、Prometheus Server采集联邦节点的安全认证

通过以上3.1、3.2配置了核心节点采集自己的指标,172.16.1.12采集自己的指标和k8s-master01的指标
Prometheus核心Server采集联邦节点172.16.1.12上的指标时还未认证,如下:
在这里插入图片描述

需要在Prometheus核心节点上配置联邦节点172.16.1.12的用户密码才可以,方法同3.1和3.2
在这里插入图片描述

重启Prometheus核心节点的Prometheus后,即可正常采集联邦节点172.16.1.12的指标数据了
在这里插入图片描述

3.4、在Grafana上检查验证

以上三级认证已配置完成,最终在Grafana上检查验证能否查看到k8s-master01节点到指标数据
在这里插入图片描述

欢迎关注作者的公众号,公众号每天分享运维干货文章

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值