Prometheus默認解壓後無法直接訪問,且需要配置prometheus.yml,核心原因是它的默認行為是“最小化啓動”,未開放外部訪問權限+依賴配置文件定義監控規則/目標,具體邏輯如下:

1. 為什麼默認解壓後無法訪問?

Prometheus默認啓動時,僅監聽127.0.0.1:9090(本機迴環地址),且未自動加載完整配置,導致外部機器無法連接:

  • 解壓後直接執行./prometheus,它會使用內置的默認配置(而非本地的prometheus.yml),默認配置中web.listen-address參數是127.0.0.1:9090(僅允許本機訪問);
  • 此時只有在Prometheus所在服務器的本地,用curl 127.0.0.1:9090能訪問,外部機器(如你的客户端)會提示“拒絕連接”。

2. 為什麼必須配置prometheus.yml

prometheus.yml是Prometheus的核心配置文件,它定義了三大關鍵內容(缺少則無法正常工作):

  • 全局配置:如監聽地址(web.listen-address)、時區、拉取間隔等(決定是否能被外部訪問);
  • 監控目標:即要採集哪些服務的指標(如自身、Node Exporter等);
  • 告警規則/Alertmanager地址:若需告警功能,必須在配置中指定。

如果不配置prometheus.yml,Prometheus雖然能啓動,但僅能採集自身進程的少量指標,且僅本機可訪問,無法實現實際的監控功能。

解決方法:通過prometheus.yml配置後啓動

  1. 解壓Prometheus後,在安裝目錄下創建/編輯prometheus.yml(示例):
global:
  scrape_interval: 15s
  web.listen-address: "0.0.0.0:9090"  # 開放所有網卡訪問

scrape_configs:
  - job_name: "prometheus"
    static_configs:
      - targets: ["localhost:9090"]  # 監控自身
  1. 指定配置文件啓動:
./prometheus --config.file=prometheus.yml

此時Prometheus會監聽0.0.0.0:9090,外部機器即可通過IP:9090訪問。

要不要我幫你整理一份Prometheus最簡可用配置模板,直接複製就能用?