Prometheus: 为 Prometheus Node Exporter 添加身份验证
本文档属于从 Linux 检索指标指南的一部分。您可以在此处查看完整指南:如何使用 Node Exporter 在 Prometheus 中检索 Linux 服务器指标。
👋 欢迎查阅 Stackhero 文档!
Stackhero 提供了一个完全托管的 Prometheus cloud 平台,专为高可靠性与简便性设计:
- 内置
Alert Manager,可将告警直接发送到Slack、Mattermost、PagerDuty及其他主流平台。- 配备专用邮件服务器,支持发送无限量邮件告警,无需额外配置。
- 集成
Blackbox,可对HTTP、ICMP、TCP等协议进行探测,实现全面监控。- 通过在线配置文件编辑器,快速完成实例配置,无需手动管理 YAML 文件。
- 一键升级,Stackhero 自动为您处理升级流程,最大限度减少停机和人工干预。
- 依托专属私有基础设施,内置高性能与强大安全性。
大约 5 分钟即可完成部署。Stackhero 负责所有初始化设置,让您专注于监控本身,无需为维护分心。欢迎体验 Stackhero 的 Prometheus cloud hosting,让您的监控与告警流程更加高效便捷。
默认情况下,Node Exporter 不执行身份验证,这意味着任何人都可以检索暴露的指标。为了保护访问,您可以为用户添加基本身份验证。
生成随机密码
使用以下命令生成密码:
password=`openssl rand -base64 32`
passwordHashed=`echo ${password} | htpasswd -inBC 10 "" | tr -d ':'`
echo "为 Prometheus 服务器保留的明文密码:${password}"
如果您没有
htpasswd二进制文件,可以使用apt-get install --no-install-recommends apache2-utils在 Debian/Ubuntu 上安装它。
请妥善保管明文密码,因为在配置 Prometheus 时需要用到它。
添加用户并重启 Node Exporter
将以下行附加到配置文件中,以添加一个名为 "prometheus" 的用户,并使用生成的密码哈希:
sudo cat << EOF >> /etc/prometheus_node_exporter/configuration.yml
basic_auth_users:
prometheus: ${passwordHashed}
EOF
# 重启 Node Exporter
sudo systemctl restart node_exporter
最后,验证身份验证是否正常工作:
- 运行
curl http://localhost:9100/metrics应返回 "Unauthorized"。 - 运行
curl -u prometheus:${password} http://localhost:9100/metrics应返回指标列表。