Prometheus: 為 Prometheus Node Exporter 添加 TLS 加密

此文件屬於從 Linux 獲取指標指南的一部分。請在此處查看完整指南:如何使用 Node Exporter 在 Prometheus 中獲取 Linux 伺服器指標

👋 歡迎瀏覽 Stackhero 文件!

Stackhero 提供一個全託管的 Prometheus cloud 平台,專為高可靠性和簡易操作而設:

  • 內建 Alert Manager,讓您可以直接將警報發送到 SlackMattermostPagerDuty 及其他主流平台。
  • 專屬電郵伺服器,讓您無需額外設定即可發送無限量電郵警報
  • 包含 Blackbox,可針對 HTTPICMPTCP 及其他協議進行全面監控探測。
  • 使用線上設定檔編輯器,快速配置您的實例,無需手動處理 YAML。
  • 一鍵升級,Stackhero 會為您處理整個升級流程,減少停機時間及人手干預。
  • 高效能及強大安全性,皆因您擁有專屬的私有基礎設施。

大約 5 分鐘即可完成部署。Stackhero 會處理所有設定,讓您專注於監控,而非維護。立即試用 Stackhero 的 Prometheus cloud hosting,簡化您的監控及警報流程。

默認情況下,Node Exporter 不加密通信。這意味著包括先前定義的密碼在內的憑據以明文形式傳輸。為了保護通信,您可以按以下方式啟用 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 以繞過證書驗證。