 # **Prometheus監控系統** 在你要用來監控(非被監控)的機器上安裝prometheus 以下使用Linux作為範例: 到官網下載Linux用的prometheus包 [https://prometheus.io/download/](https://) 將安裝包移至你想要的目錄,在該目錄下解壓縮: ``` tar -xvzf prometheus-<version>.tar.gz ``` 該目錄下會默認有配置檔prometheus.yml,請根據需要修改。 最上面的global是參數設定,例如: scrape_interval 定義了 Prometheus 從目標(例如應用程序、服務)抓取度量數據的時間間隔。 evaluation_interval 定義了 Prometheus 評估規則的時間間隔。規則可以包括警報規則、記錄規則等。 ``` global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). ``` 重點是一個job,以cadvisor為例, ``` - job_name: 'cadvisor' scrape_interval: 10s metrics_path: '/metrics' static_configs: - targets: ['cadvisor_ip:port'] labels: group: 'cadvisor' ``` job_name: 為任務取名以做辨識。 scrape_interval: 定義了 Prometheus 抓取度量數據的時間間隔。 metrics_path: 指定了 Prometheus 從目標獲取度量數據的路徑,這里是 '/metrics'。通常,各種應用程序和服務都會將其度量數據公開在特定的路徑上,Prometheus 使用該路徑來獲取數據。 static_configs: 用於指定 Prometheus 應該從哪里抓取數據。舉例,目標是 '10.20.1.40:8080',表示 cAdvisor 應用程序的地址為 10.20.1.40,監聽端口為 8080。 labels: 這里設置了一個標簽,將這個目標標記為屬於 'cadvisor' 組。標簽的使用可以幫助你更好地組織和查詢你的度量數據。 **prometheus啟動辦法:** 在prometheus目錄直接下 `./prometheus` 就會啟動並默認讀取該目錄下的yml,如果遇到問題就要加參數例如: ``` ./prometheus --config.file=prometheus.yml ``` **Cadvisor架設** Cadvisor則是要裝在被監控的機器上。 直接寫在docker-compose來一併啟用,請注意port號的部分,prometheus.yml job的targets追蹤的就是該port號。 ``` cadvisor: image: gcr.io/cadvisor/cadvisor volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro ports: - "8080:8080" container_name: cadvisor ``` 這邊注意volumes:他掛載了一些目錄到 cAdvisor 容器,這是為了讓 cAdvisor 能夠監主機的各種資源。 /:/rootfs:ro: 掛載宿主機的根目錄,用於獲取根文件系統的信息,以唯讀模式掛載(ro表示read-only)。 /var/run:/var/run:rw: 掛載宿主機的 /var/run 目錄,用於訪問容器的運行時信息,以讀寫模式掛載。 /sys:/sys:ro: 掛載宿主機的 /sys 目錄,用於獲取系統信息,以唯讀模式掛載。 /var/lib/docker/:/var/lib/docker:ro: 掛載宿主機的 Docker 數據目錄,以唯讀模式掛載,用於獲取 Docker 相關的信息。 不用compose也可直接用命令,或是不用docker安裝也可。 ``` docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 --detach=true --name=cadvisor gcr.io/cadvisor/cadvisor ``` **prometheus頁面** Cadvisor裝好後起動prometheus並到頁面查看,默認9090。 **grafana** 視覺化套件,這跟prometheus裝在一起即可,也可裝在任何機器連接prometheus。 ``` docker run -d -p 7070:3000 --name=grafana grafana/grafana-enterprise ``` 我給了7070這個port,到localhost:7070。 帳密:admin 能看到cpu 記憶體 網路  **附錄** 待辦: 熱更新prometheus處理 grafana無法登入帳號問題: https://stackoverflow.com/questions/71140109/grafana-cannot-login-to-http-localhost3000-login
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up