4
8
6
0
专栏/.../

TiDB:Prometheus 安全访问策略配置全指南

 cchouqiang  发表于  2024-12-28

一、Prometheus Basic Auth 使用背景

TiDB 集群在默认情况下,对 Prometheus监控数据是没有加密的,通过浏览器可以直接访问 Prometheus,可能会导致监控数据信息遭遇泄漏。如果需要对 Prometheus 监控数据进行安全加密,则需要使用 Prometheus Basic Auth 。

二、方案简介

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

配置 Prometheus 加密步骤:

  1. 预制用户密码,其中密码可使用python3工具包加密
  2. 创建对应用户加密密码配置文件
  3. 升级 TiUP 到 1.15.0 版本及以上(TiDB 8.0 以上)
  4. TiUP 配置 Prometheus 登录安全验证参数
  5. Grafana 监控配置 Prometheus 登录验证

三、升级 TiUP & TiUP Cluster 到 1.15.0 以上

  1. 以离线集群为TiDB v6.5.5版本为例,从TiDB 官网下载 V8.1.0 LTS 及以上 TiDB-community-server 软件包 https://cn.pingcap.com/product-community/
  2. 上传并解压安装包
  3. 升级 TiUP &TiUP Cluster
查看当前镜像路径
tiup mirror show

将当前离线镜像中的 keys 目录复制到 $HOME/.tiup 目录中:
cp -r /opt/tidb-community-server-v6.5.5-linux-amd64/keys /root/.tiup/

合并8.1镜像到当前镜像中
tiup mirror merge /opt/tidb-community-server-v8.1.0-linux-amd64

升级
tiup update --self && tiup update cluster

检查版本
tiup cluster -v
tiup version 1.15.0 tiup
Go Version: go1.21.9
Git Ref: v1.15.1
GitHash: 7f0e0fa8b7d5521075a9be2015eff442769fad47

tiup -v
1.15.0 tiup
Go Version: go1.21.9
Git Ref: v1.15.1
GitHash: 7f0e0fa8b7d5521075a9be2015eff442769fad47

四、配置 Prometheus 安全认证

1、编写验证配置文件

使用python生成的密码:$2b$12$kXxrZP74Fmjh6Wih0Ignu.uWSiojl5aKj4UnMvHN9s2h/Lc/ui0.S

vi webconfig.yml
basic_auth_users:
  admin: $2b$12$kXxrZP74Fmjh6Wih0Ignu.uWSiojl5aKj4UnMvHN9s2h/Lc/ui0.S

2、检测是否可用

cd /tidb-data1/tidb-deploy/prometheus-8249/bin/prometheus
./promtool check web-config webconfig.yml

3、TiUP 配置 Prometheus 启动参数

tiup cluster edit-config tidb-test
末尾处增加 additional_args 启动命令
monitoring_servers:
- host: 192.168.1.11
  ssh_port: 22
  port: 9090
  ng_port: 12020
  deploy_dir: /tidb-data1/tidb-deploy/prometheus-8249
  data_dir: /tidb-data1/tidb-data/prometheus-8249
  log_dir: /tidb-data1/tidb-deploy/prometheus-8249/log
  external_alertmanagers: []
  arch: amd64
  os: linux
  additional_args:
  - --web.config.file=/tidb-data1/tidb-deploy/prometheus-8249/bin/prometheus/webconfig.yml

4、重启加载 Prometheus 配置

tiup cluster reload tidb-test -R prometheus

5、访问 Prometheus UI

192.168.1.11:9090

6、直接访问 Prometheus http API接口

curl localhost:9090/api/v1/query?query=up

7、带用户信息访问 Prometheus http API接口

curl -u "admin:test" localhost:9090/api/v1/query?query=up

五、配置 grafana 数据源 Prometheus 登录验证

4
8
6
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论