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 幫您搞定所有安裝設定,讓您專注於監控本身,而非維護作業。立即體驗 Prometheus cloud hosting on Stackhero,讓您的監控與警報流程更有效率。
默認情況下,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 以繞過證書驗證。