Azure Monitor által felügyelt szolgáltatás Prometheus-szabálycsoportokhoz (előzetes verzió)

A Prometheus szabályai az összegyűjtött adatokra reagálnak. Ezek egy Prometheus-szabálycsoport részeként vannak konfigurálva, amely az Azure Monitor-munkaterületen van tárolva. A szabályok egymás után, a csoportban meghatározott sorrendben futnak.

Szabálytípusok

A Prometheus-szabályoknak két típusa van az alábbi táblázatban leírtak szerint.

Típus Description
Riasztás A riasztási szabályok lehetővé teszik egy Azure Monitor-riasztás létrehozását egy Prometheus Lekérdezési nyelv (Prom QL) lekérdezés eredményei alapján.
Felvétel A rögzítési szabályok lehetővé teszik, hogy előre kiszámítsa a gyakran szükséges vagy számításilag kiterjedt kifejezéseket, és az eredményeket új idősorként tárolja. Az előre lefordított eredmény lekérdezése gyakran sokkal gyorsabb lesz, mint az eredeti kifejezés végrehajtása minden alkalommal, amikor szükség van rá. Ez különösen olyan irányítópultok esetében hasznos, amelyeknek minden frissítéskor újra le kell kérdezniük ugyanazt a kifejezést, vagy riasztási szabályokban kell használniuk, ahol több riasztási szabály is alapulhat ugyanazon az összetett lekérdezésen. A rögzítési szabályokkal létrehozott idősorok új Prometheus-metrikákként kerülnek vissza az Azure Monitor-munkaterületre.

Prometheus-szabálycsoportok megtekintése

A szabálycsoportokat és azok belefoglalt szabályait az Azure Portal az Azure Monitor-munkaterület Szabálycsoportok elemének kiválasztásával tekintheti meg.

Képernyőkép egy Azure Monitor-munkaterület szabálycsoportjairól.

Szabályok engedélyezése

Szabály engedélyezéséhez vagy letiltásához kattintson a szabályra a Azure Portal. Az állapot módosításához válassza az Engedélyezés vagy a Letiltás lehetőséget.

Képernyőkép a Prometheus-szabály részleteiről az engedélyezés lehetőséggel.

Megjegyzés

Egy szabály vagy szabálycsoport letiltása vagy újbóli engedélyezése után eltarthat néhány percig, amíg a szabálycsoportlista tükrözi a szabály vagy a csoport frissített állapotát.

Prometheus-szabályok létrehozása

A nyilvános előzetes verzióban a szabálycsoportok, a rögzítési szabályok és a riasztási szabályok Azure Resource Manager -sablonokkal, API-val és kiépítési eszközökkel vannak konfigurálva. Ez egy prometheus szabálycsoport nevű új erőforrást használ. Létrehozhat és konfigurálhat szabálycsoport-erőforrásokat, ahol a riasztási szabályok és a rögzítési szabályok a szabálycsoport tulajdonságainak részeként vannak definiálva. Az Azure Prometheus-szabálycsoportok egy adott Azure Monitor-munkaterület hatókörével vannak meghatározva.

Egy Resource Manager sablonnal Prometheus-szabálycsoportokat, riasztási szabályokat és rögzítési szabályokat hozhat létre és konfigurálhat. Resource Manager sablonok lehetővé teszik a riasztási és rögzítési szabályok programozott beállítását egységes és reprodukálható módon a környezetekben.

Az alapvető lépések a következők:

  1. Használja az alábbi sablonokat JSON-fájlként, amely leírja a szabálycsoport létrehozását.
  2. A sablon üzembe helyezése bármilyen üzembe helyezési módszerrel, például Azure Portal, Azure CLI, Azure PowerShell vagy Rest API használatával.

Szabályok korlátozása egy adott fürtre

A szabálycsoport szabályainak korlátozásával egy adott fürtből származó adatokat kérdezhet le a szabálycsoport clusterName tulajdonságával. Próbálja meg egyetlen fürtre korlátozni a szabályokat, ha a monitorozási munkaterület több fürtből származó nagy mennyiségű adatot tartalmaz, és aggodalomra ad okot, hogy egyetlen szabálykészlet futtatása az összes adaton teljesítménybeli vagy szabályozási problémákat okozhat. A clusterName tulajdonsággal több szabálycsoportot is létrehozhat, mindegyik ugyanazokkal a szabályokkal van konfigurálva, és az egyes csoportokat egy másik fürtre korlátozza.

  • Az clusterName értéknek meg kell egyeznie azzal a cluster címkével, amelyet az adatgyűjtés során adott fürt metrikáihoz ad hozzá.
  • Ha clusterName nincs megadva egy adott szabálycsoporthoz, a csoport szabályai a munkaterület összes adatát lekérdezik az összes fürtből.

Példa sablon egy Prometheus-szabálycsoportra

Az alábbiakban egy mintasablont talál, amely létrehoz egy Prometheus-szabálycsoportot, beleértve egy rögzítési szabályt és egy riasztási szabályt. Ez létrehoz egy típusú Microsoft.AlertsManagement/prometheusRuleGroupserőforrást. A szabályok végrehajtása a csoporton belül megjelenő sorrendben történik.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {},
    "variables": {},
    "resources": [
        {
           "name": "sampleRuleGroup",
           "type": "Microsoft.AlertsManagement/prometheusRuleGroups",
           "apiVersion": "2021-07-22-preview",
           "location": "northcentralus",
           "properties": {
                "description": "Sample Prometheus Rule Group",
                "scopes": [
                    "/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.monitor/accounts/<azure-monitor-workspace-name>"
                ],
                "enabled": true,
                "clusterName": "<myCLusterName>",
                "interval": "PT1M",
                "rules": [
                    {
                        "record": "instance:node_cpu_utilisation:rate5m",
                        "expression": "1 - avg without (cpu) (sum without (mode)(rate(node_cpu_seconds_total{job=\"node\", mode=~\"idle|iowait|steal\"}[5m])))",
                        "labels": {
                            "workload_type": "job"
                        },
                        "enabled": true
                    },
                    {
                        "alert": "KubeCPUQuotaOvercommit",
                        "expression": "sum(min without(resource) (kube_resourcequota{job=\"kube-state-metrics\", type=\"hard\", resource=~\"(cpu|requests.cpu)\"})) /  sum(kube_node_status_allocatable{resource=\"cpu\", job=\"kube-state-metrics\"}) > 1.5",
                        "for": "PT5M",
                        "labels": {
                            "team": "prod"
                        },
                        "annotations": {
                            "description": "Cluster has overcommitted CPU resource requests for Namespaces.",
                            "runbook_url": "https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubecpuquotaovercommit",
                            "summary": "Cluster has overcommitted CPU resource requests."
                        },
                        "enabled": true,
                        "severity": 3,
                        "resolveConfiguration": {
                            "autoResolved": true,
                            "timeToResolve": "PT10M"
                        },
                        "actions": [
                            {
                               "actionGroupId": "/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/actiongroups/<action-group-name>"
                            }
                        ]
                    }
                ]
            }
        }
    ]
}        

Az alábbi táblázatok a szabálydefiníció minden tulajdonságát ismertetik.

Szabálycsoport

A szabálycsoport a következő tulajdonságokkal rendelkezik, legyen szó riasztási szabályról, rögzítési szabályról vagy mindkettőről.

Name Kötelező Típus Description
name True (Igaz) sztring Prometheus-szabálycsoport neve
type True (Igaz) sztring Microsoft.AlertsManagement/prometheusRuleGroups
apiVersion True (Igaz) sztring 2021-07-22-preview
location True (Igaz) sztring Erőforrás helye az előzetes verzióban támogatott régiókból
properties.description False (Hamis) sztring Szabálycsoport leírása
properties.scopes Igaz sztring[] Cél Azure Monitor-munkaterület. Jelenleg csak egy hatókör támogatott
properties.ebabled Hamis boolean Csoport engedélyezése/letiltása. Alapértelmezett érték: true (igaz).
properties.clusterName False (Hamis) sztring Szabály alkalmazása egy adott fürt adataira. Az alapértelmezett érték a munkaterület összes adatára érvényes.
properties.interval False (Hamis) sztring Csoport kiértékelési időköze. Alapértelmezett = PT1M

Rögzítési szabályok

A rules szakasz a következő tulajdonságokkal rendelkezik a szabályok rögzítéséhez.

Name Kötelező Típus Description
record True (Igaz) sztring Szabálynév rögzítése. Ez az új idősorhoz használt név.
expression True (Igaz) sztring PromQL-kifejezés az új idősor értékének kiszámításához.
labels True (Igaz) sztring A Prometheus-szabály kulcs-érték párokat címkéz, és hozzáadódik a rögzített idősorhoz.
enabled Hamis boolean Csoport engedélyezése/letiltása. Alapértelmezett érték: true (igaz).

Riasztási szabályok

A rules szakasz a következő tulajdonságokkal rendelkezik a riasztási szabályokhoz.

Name Kötelező Típus Leírás Jegyzetek
alert False (Hamis) sztring Riasztási szabály neve
expression True (Igaz) sztring PromQL kifejezés kiértékeléséhez.
for False (Hamis) sztring Riasztások aktiválásának időtúllépése. Értékek – "PT1M", "PT5M" stb.
labels Hamis object címkék kulcs-érték párok A Prometheus riasztási szabálycímkéi hozzá lesznek adva az aktivált riasztáshoz.
rules.annotations Hamis object Széljegyzetek a riasztáshoz hozzáadandó kulcs-érték párok.
enabled Hamis boolean Csoport engedélyezése/letiltása. Alapértelmezett érték: true (igaz).
rules.severity Hamis egész szám Riasztás súlyossága. 0-4, az alapértelmezett érték 3 (tájékoztató)
rules.resolveConfigurations.autoResolved Hamis boolean Ha engedélyezve van, a rendszer automatikusan feloldja a riasztást, ha a feltétel már nem teljesül. Alapértelmezett = igaz
rules.resolveConfigurations.timeToResolve False (Hamis) sztring Riasztások automatikus feloldási időtúllépése. Default = "PT5M"
rules.action[].actionGroupId hamis sztring Egy vagy több műveletcsoport erőforrás-azonosítója. Mindegyik aktiválódik egy riasztás aktiválásakor.

Következő lépések