簡體   English   中英

有沒有辦法以編程方式添加Prometheus監控目標和警報

[英]Is there a way to add Prometheus monitoring targets and alerts programmatically

我正在嘗試通過像Zabbix這樣的API以編程方式向Prometheus添加監視目標和警報。

例如,當我的cloud orchestrator軟件部署3個新虛擬機時,我還會將它們作為監控目標添加到具有一些預定義規則的Prometheus服務器。

在Zabbix中,我可以使用其API向服務器添加項目,模板,圖形等。 這樣我就可以通過監控功能自動化我的雲基礎架構。

如果您使用服務發現(SD)來控制虛擬機,那么Prometheus可以使用它來發現要抓取的主機。 部署的新主機將添加到SD中,Prometheus可以發現並抓取它們。

Prometheus支持各種SD系統,如Consul,DNS,EC2,Azure等。
如果您不使用任何本機支持的系統,那么您還可以使用基於文件的服務發現,並讓您的雲協調器創建和更新由Prometheus讀取的配置文件。

有兩種方法可以做到這一點

選項1:使用服務發現機制,prometheus將自動發現服務注冊表上的動態注冊服務即。 領事

- job_name: 'self'
consul_sd_configs:
  - server: 'localhost:8080'
    services: []

選項2:在prometheus配置中使用file_sd_configs

    crape_configs:
  - job_name: 'any_job_name'
    file_sd_configs:
      - files:
        - target.json

target.json

[{
"targets": [ "endpoint1:8080", "endpoint1:8081" ],
"labels": {
  "env": "stage",
  "job": "boot-api"
}}]

在文件更改prometheus將自動重新讀取文件,您也可以在目錄中使用多個目標文件。

正如其他人所指出的那樣,普羅米修斯通過服務發現(SD)本身支持許多系統。 對於那些不直接支持的用戶,可以使用file_sd_configs。

步驟1:設置file_sd_config以添加目錄中文件中提到的所有節點。 例如。

prometheus.yaml

file_sd_configs:
- files:
  - /etc/prometheus/targets/*.yaml

以上設置查找給定目錄中的所有yaml文件,並添加文件中提到的目標。

第2步:生成文件

對於自動發現,運行一個cron作業,該作業通過API提取節點列表,並更新已存在的文件或將文件添加到目錄。 json / yaml文件的格式應該如文檔中所述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM