Prometheus监控之basic_auth加密配置

一、简介

平常使用prometheus都是没有加密的安全措施的,有一些节点直接暴漏在公网上了,不安全。现在使用basic_auth加密,可以加个密码,安全一些。

仅仅是登录的时候需要输入账号免密

二、配置

1、生成basic_auth秘钥

1
2
3
4
5
6
7
8
9
10
11
12
#安装工具包
yum install -y httpd-tools
#生成加密密码
htpasswd -nBC 12 '' | tr -d ':n'

htpasswd -nBC 10 "" | tr -d ':\n'; echo


New password: # 这里设置密码为123456,实际使用请按照自己的集群需求定义密码
Re-type new password:
#生成的密码信息
$2y$12$mMnPuKlOQ97ff4NjDsQTMukAtRS/ILpjxjEQrCN0vefs0CBLe/hi6

2、node-exporeter添加配置文件

1
2
3
4
vi /usr/local/node-exporeter/config.yml
basic_auth_users:
# 当前设置的用户名为admin, 可以设置多个
admin: $2y$12$mMnPuKlOQ97ff4NjDsQTMukAtRS/ILpjxjEQrCN0vefs0CBLe/hi6

3、修改prometheus.yml配置文件

1
2
3
4
5
6
7
scrape_configs:
- job_name: 'prometheus'
basic_auth:
username: admin
password: 123456
static_configs:
- targets: ["192.168.100.45:9101"] #由localhost改成具体ip,此处影响prometheus的metrics

4、重启

启动服务设置开机自动启动

1
2
3
4
5
# prometheus
sudo systemctl restart prometheus
# 监控主机
sudo systemctl restart node_exporter

三、consul 配置

1-2 、node-exporeter 配置

和上面一样

3、修改prometheus.yml配置文件

1
2
3
4
5
6
7
8
9
scrape_configs:
- job_name: 'prometheus'
basic_auth:
username: admin
password: 123456
consul_sd_configs:
- server: "http://localhost:8500" # consul 地址
token: "3f7ec03b-3dx6-xxxx-c37d-64d6b02e450a" # consul token
services: ["linux","CentOS7"] # 从哪个services 获取

4、注册到consul

需要把账号密码带入

1
curl http://192.168.100.200:8500/v1/agent/service/register --header "X-Consul-Token: 3f7ec03b-3dx6-xxxx-c37d-64d6b02e450a" -X PUT -d  '{ "id": "zj-test-100-45", "name": "CentOS7", "address": "192.168.100.45", "port": 9101, "tags": ["CentOS7", "TZ"] }'