Prometheus: 为 Prometheus Node Exporter 添加 TLS 加密
本文档属于从 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 不加密通信。这意味着包括之前定义的密码在内的凭据是以明文传输的。为了保护通信,您可以按如下方式启用 TLS 加密。
创建 TLS 证书
运行以下命令以创建 TLS 证书和密钥:
# 创建 TLS 证书
cd /tmp
sudo openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 \
-keyout /etc/prometheus_node_exporter/tlsCertificate.key \
-out /etc/prometheus_node_exporter/tlsCertificate.crt \
-subj "/CN=`hostname`" \
-addext "subjectAltName = DNS:`hostname`"
sudo chmod 600 /etc/prometheus_node_exporter/*
sudo chown -R node_exporter:node_exporter /etc/prometheus_node_exporter
更新配置
将以下行附加到配置文件中以添加 TLS 设置,然后重启 Node Exporter:
sudo cat << 'EOF' >> /etc/prometheus_node_exporter/configuration.yml
tls_server_config:
cert_file: /etc/prometheus_node_exporter/tlsCertificate.crt
key_file: /etc/prometheus_node_exporter/tlsCertificate.key
EOF
# 重启 Prometheus Node Exporter
sudo systemctl restart node_exporter
您可以通过以下命令通过 HTTPS 连接来验证 TLS 是否处于活动状态:
curl -k -u prometheus:${password} https://localhost:9100/metrics
请注意,此方法不使用 CA 证书,因此您需要将 "-k" 选项传递给 cURL 以绕过证书验证。