Prometheus: 為 Prometheus Node Exporter 添加身份驗證

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

👋 歡迎來到 Stackhero 文件中心!

Stackhero 提供全代管的 Prometheus cloud 平台,專為高可靠性與簡易操作而設計:

  • 內建 Alert Manager,可直接將警報發送到 SlackMattermostPagerDuty 及其他主流平台。
  • 專屬電子郵件伺服器,讓您無需額外設定即可發送無限量電子郵件警報
  • 內含 Blackbox,可針對 HTTPICMPTCP 等多種協定進行全面監控探測。
  • 可透過線上設定檔編輯器快速設定您的實例,無需手動管理 YAML。
  • 一鍵升級,Stackhero 會自動處理更新流程,最大程度減少停機與人工干預。
  • 專屬私有基礎架構,內建高效能與強化安全性。

約 5 分鐘即可完成部署。Stackhero 幫您搞定所有安裝設定,讓您專注於監控本身,而非維護作業。立即體驗 Prometheus cloud hosting on Stackhero,讓您的監控與警報流程更有效率。

默認情況下,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 時需要它。

將以下行附加到配置文件中,以添加名為 "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 應返回指標列表。