Kurz: Odesílání dat do služby Azure Monitor pomocí rozhraní API pro příjem protokolů (šablony Resource Manageru)

Rozhraní API pro příjem protokolů ve službě Azure Monitor umožňuje odesílat vlastní data do pracovního prostoru služby Log Analytics. Tento kurz používá šablony Azure Resource Manageru (šablony ARM) k procházení konfigurace komponent potřebných k podpoře rozhraní API a pak poskytuje ukázkovou aplikaci využívající rozhraní REST API i klientské knihovny pro .NET, Go, Java, Java, JavaScript a Python.

Poznámka:

Tento kurz používá šablony ARM ke konfiguraci komponent potřebných pro podporu rozhraní API pro příjem protokolů. Viz kurz: Odeslání dat do protokolů služby Azure Monitor pomocí rozhraní API pro příjem protokolů (Azure Portal) pro podobný kurz, který ke konfiguraci těchto komponent používá uživatelské rozhraní webu Azure Portal.

Kroky potřebné ke konfiguraci rozhraní API pro příjem dat protokolů jsou následující:

  1. Vytvořte aplikaci Microsoft Entra pro ověření v rozhraní API.
  2. Vytvořte koncový bod shromažďování dat (DCE) pro příjem dat.
  3. Vytvořte vlastní tabulku v pracovním prostoru služby Log Analytics. Jedná se o tabulku, do které budete odesílat data.
  4. Vytvořte pravidlo shromažďování dat (DCR) pro směrování dat do cílové tabulky.
  5. Dejte aplikaci Microsoft Entra přístup k DCR.
  6. Podívejte se na ukázkový kód pro odesílání dat do služby Azure Monitor pomocí rozhraní API pro příjem protokolů a vzorový kód pro odesílání dat do rozhraní API pro příjem protokolů.

Požadavky

Pro absolvování tohoto kurzu potřebujete:

Shromažďování podrobností o pracovním prostoru

Začněte tím, že z pracovního prostoru shromáždíte informace, které budete potřebovat.

V nabídce Pracovních prostorů služby Log Analytics na webu Azure Portal přejděte do svého pracovního prostoru. Na stránce Vlastnosti zkopírujte ID prostředku a uložte ho pro pozdější použití.

Snímek obrazovky znázorňující ID prostředku pracovního prostoru

Vytvoření aplikace Microsoft Entra

Začněte registrací aplikace Microsoft Entra pro ověření v rozhraní API. Podporuje se jakékoli schéma ověřování Resource Manageru, ale tento kurz se řídí schématem toku udělení přihlašovacích údajů klienta.

  1. V nabídce Microsoft Entra ID na webu Azure Portal vyberte Registrace aplikací> Novou registraci.

    Snímek obrazovky znázorňující obrazovku registrace aplikace

  2. Pojmenujte aplikaci a změňte obor tenantů, pokud výchozí nastavení není pro vaše prostředí vhodné. Identifikátor URI přesměrování není povinný.

    Snímek obrazovky s podrobnostmi o aplikaci

  3. Po registraci můžete zobrazit podrobnosti o aplikaci. Poznamenejte si ID aplikace (klienta) a ID adresáře (tenanta). Tyto hodnoty budete potřebovat později v procesu.

    Snímek obrazovky znázorňující ID aplikace

  4. Vygenerujte tajný klíč klienta aplikace, který se podobá vytvoření hesla pro použití s uživatelským jménem. Vyberte Certifikáty a tajné kódy>Nový tajný klíč klienta. Zadejte název tajného kódu, abyste identifikovali jeho účel a vybrali dobu trvání vypršení platnosti . Tady je vybraná možnost 12 měsíců . Pro produkční implementaci byste postup obměně tajných kódů dodržovali osvědčené postupy nebo použili bezpečnější režim ověřování, například certifikát.

    Snímek obrazovky znázorňující tajný kód nové aplikace

  5. Vyberte Přidat , chcete-li tajný klíč uložit, a poznamenejte si hodnotu. Ujistěte se, že tuto hodnotu zaznamenáte, protože ji po opuštění této stránky nemůžete obnovit. Použijte stejná bezpečnostní opatření, jaká byste použili k bezpečnému uchovávání hesla, protože se jedná o funkční ekvivalent.

    Snímek obrazovky znázorňující hodnotu tajného kódu nové aplikace

Vytvoření koncového bodu shromažďování dat

K přijetí dat odesílaných do služby Azure Monitor se vyžaduje DCE . Jakmile nakonfigurujete DCE a propojíte ho s DCR, můžete z aplikace odesílat data přes protokol HTTP. DCE musí být umístěn ve stejné oblasti jako řadič domény a pracovní prostor služby Log Analytics, ve kterém se budou data odesílat.

  1. Do vyhledávacího pole webu Azure Portal zadejte šablonu a pak vyberte Nasadit vlastní šablonu.

    Snímek obrazovky, který ukazuje, jak nasadit vlastní šablonu

  2. Vyberte Vytvořit vlastní šablonu v editoru.

    Snímek obrazovky znázorňující, jak vytvořit šablonu v editoru

  3. Do editoru vložte následující šablonu ARM a pak vyberte Uložit. Tuto šablonu nemusíte upravovat, protože zadáte hodnoty pro její parametry.

    Snímek obrazovky, který ukazuje, jak upravit šablonu ARM

    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "dataCollectionEndpointName": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the name of the Data Collection Endpoint to create."
                }
            },
            "location": {
                "type": "string",
                "defaultValue": "westus2",
                "metadata": {
                    "description": "Specifies the location for the Data Collection Endpoint."
                }
            }
        },
        "resources": [
            {
                "type": "Microsoft.Insights/dataCollectionEndpoints",
                "name": "[parameters('dataCollectionEndpointName')]",
                "location": "[parameters('location')]",
                "apiVersion": "2021-04-01",
                "properties": {
                    "networkAcls": {
                    "publicNetworkAccess": "Enabled"
                    }
                }
            }
        ],
        "outputs": {
            "dataCollectionEndpointId": {
                "type": "string",
                "value": "[resourceId('Microsoft.Insights/dataCollectionEndpoints', parameters('dataCollectionEndpointName'))]"
            }
        }
    }
    
  4. Na obrazovce Vlastní nasazení zadejte předplatné a skupinu prostředků, do které se má řadič domény uložit, a zadejte hodnoty jako Název DCE. Umístění by mělo být stejné jako pracovní prostor. Oblast se už naplní a použije se pro umístění DCE.

    Snímek obrazovky pro úpravu vlastních hodnot nasazení

  5. Vyberte Zkontrolovat a vytvořit a po kontrole podrobností vyberte Vytvořit .

  6. Pokud chcete zobrazit další podrobnosti pro DCE, vyberte zobrazení JSON. Zkopírujte ID prostředku a koncový bod logsIngestion, který budete potřebovat v pozdějším kroku.

    Snímek obrazovky znázorňující ID prostředku DCE

Vytvoření nové tabulky v pracovním prostoru služby Log Analytics

Před odesláním dat do ní je nutné vytvořit vlastní tabulku. Tabulka pro tento kurz bude obsahovat pět sloupců zobrazených ve schématu níže. Pro každý sloupec jsou povinné hodnoty name, typea description vlastnosti. isHidden Vlastnosti a isDefaultDisplay obě výchozí hodnoty false jsou, pokud nejsou explicitně zadány. Možné datové typy jsou string, , int, reallongdateTimeboolean, guid, a .dynamic

Poznámka:

Tento kurz používá PowerShell z Azure Cloud Shellu k volání rozhraní REST API pomocí rozhraní AZURE Monitor Tables API. K provedení těchto volání můžete použít jakoukoli jinou platnou metodu.

Důležité

Vlastní tabulky musí používat příponu _CL.

  1. Na webu Azure Portal vyberte tlačítko Cloud Shell a ujistěte se, že je prostředí nastavené na PowerShell.

    Snímek obrazovky znázorňující otevření Cloud Shellu

  2. Zkopírujte následující kód PowerShellu a nahraďte proměnné v parametru Path odpovídajícími hodnotami pro váš pracovní prostor v Invoke-AzRestMethod příkazu. Vložte ho do příkazového řádku Cloud Shellu a spusťte ho.

    $tableParams = @'
    {
        "properties": {
            "schema": {
                "name": "MyTable_CL",
                "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "datetime",
                        "description": "The time at which the data was generated"
                    },
                   {
                        "name": "Computer",
                        "type": "string",
                        "description": "The computer that generated the data"
                    },
                    {
                        "name": "AdditionalContext",
                        "type": "dynamic",
                        "description": "Additional message properties"
                    },
                    {
                        "name": "CounterName",
                        "type": "string",
                        "description": "Name of the counter"
                    },
                    {
                        "name": "CounterValue",
                        "type": "real",
                        "description": "Value collected for the counter"
                    }
                ]
            }
        }
    }
    '@
    
    Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/MyTable_CL?api-version=2022-10-01" -Method PUT -payload $tableParams
    

Vytvoření pravidla shromažďování dat

Řadič domény definuje, jak se budou data zpracovávat po přijetí. Sem patří:

  • Schéma dat odesílaných do koncového bodu
  • Transformace , která se použije na data před odesláním do pracovního prostoru
  • Cílový pracovní prostor a tabulka transformovaných dat budou odeslány do
  1. Do vyhledávacího pole webu Azure Portal zadejte šablonu a pak vyberte Nasadit vlastní šablonu.

    Snímek obrazovky, který ukazuje, jak nasadit vlastní šablonu

  2. Vyberte Vytvořit vlastní šablonu v editoru.

    Snímek obrazovky znázorňující, jak vytvořit šablonu v editoru

  3. Do editoru vložte následující šablonu ARM a pak vyberte Uložit.

    Snímek obrazovky, který ukazuje, jak upravit šablonu ARM

    Všimněte si následujících podrobností v DCR definované v této šabloně:

    • dataCollectionEndpointId: ID prostředku koncového bodu shromažďování dat.
    • streamDeclarations: Definice sloupců příchozích dat.
    • destinations: Cílový pracovní prostor.
    • dataFlows: Odpovídá datovému proudu s cílovým pracovním prostorem a určuje transformační dotaz a cílovou tabulku. Výstupem cílového dotazu je to, co se odešle do cílové tabulky.
    {
        "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {
            "dataCollectionRuleName": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the name of the Data Collection Rule to create."
                }
            },
            "location": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the location in which to create the Data Collection Rule."
                }
            },
            "workspaceResourceId": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the Azure resource ID of the Log Analytics workspace to use."
                }
            },
            "endpointResourceId": {
                "type": "string",
                "metadata": {
                    "description": "Specifies the Azure resource ID of the Data Collection Endpoint to use."
                }
            }
        },
        "resources": [
            {
                "type": "Microsoft.Insights/dataCollectionRules",
                "name": "[parameters('dataCollectionRuleName')]",
                "location": "[parameters('location')]",
                "apiVersion": "2021-09-01-preview",
                "properties": {
                    "dataCollectionEndpointId": "[parameters('endpointResourceId')]",
                    "streamDeclarations": {
                        "Custom-MyTableRawData": {
                            "columns": [
                                {
                                    "name": "Time",
                                    "type": "datetime"
                                },
                                {
                                    "name": "Computer",
                                    "type": "string"
                                },
                                {
                                    "name": "AdditionalContext",
                                    "type": "string"
                                },
                                {
                                    "name": "CounterName",
                                    "type": "string"
                                },
                                {
                                    "name": "CounterValue",
                                    "type": "real"
                                }
                            ]
                        }
                    },
                    "destinations": {
                        "logAnalytics": [
                            {
                                "workspaceResourceId": "[parameters('workspaceResourceId')]",
                                "name": "myworkspace"
                            }
                        ]
                    },
                    "dataFlows": [
                        {
                            "streams": [
                                "Custom-MyTableRawData"
                            ],
                            "destinations": [
                                "myworkspace"
                            ],
                            "transformKql": "source | extend jsonContext = parse_json(AdditionalContext) | project TimeGenerated = Time, Computer, AdditionalContext = jsonContext, CounterName=tostring(jsonContext.CounterName), CounterValue=toreal(jsonContext.CounterValue)",
                            "outputStream": "Custom-MyTable_CL"
                        }
                    ]
                }
            }
        ],
        "outputs": {
            "dataCollectionRuleId": {
                "type": "string",
                "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]"
            }
        }
    }
    
  4. Na obrazovce Vlastní nasazení zadejte předplatné a skupinu prostředků, do které se má řadič domény uložit. Pak zadejte hodnoty definované v šabloně. Hodnoty zahrnují název řadiče domény a ID prostředku pracovního prostoru, které jste shromáždili v předchozím kroku. Umístění by mělo být stejné jako pracovní prostor. Oblast se už naplní a použije se pro umístění řadiče domény.

    Snímek obrazovky, který ukazuje, jak upravit vlastní hodnoty nasazení

  5. Vyberte Zkontrolovat a vytvořit a po kontrole podrobností vyberte Vytvořit .

  6. Po dokončení nasazení rozbalte pole Podrobnosti o nasazení a výběrem řadiče domény zobrazte jeho podrobnosti. Vyberte zobrazení JSON.

    Snímek obrazovky znázorňující podrobnosti DCR

  7. Zkopírujte NEMĚNNÉ ID řadiče domény. Použijete ho v pozdějším kroku při odesílání ukázkových dat pomocí rozhraní API.

    Snímek obrazovky znázorňující zobrazení JSON DCR

    Poznámka:

    Všechny vlastnosti DCR, jako je například transformace, se nemusí na webu Azure Portal zobrazit, i když se dcR úspěšně vytvořilo s těmito vlastnostmi.

Přiřazení oprávnění k řadiči domény

Po vytvoření dcR musí mít aplikace udělená oprávnění. Oprávnění umožní všem aplikacím, které používají správné ID aplikace a klíč aplikace k odesílání dat do nového DCE a DCR.

  1. V DCR na webu Azure Portal vyberte Řízení přístupu (IAM)>Přidat přiřazení role.

    Snímek obrazovky znázorňující přidání vlastního přiřazení role do DCR

  2. Vyberte Vydavatel metrik monitorování a vyberte Další. Místo toho můžete vytvořit vlastní akci s datovou Microsoft.Insights/Telemetry/Write akcí.

    Snímek obrazovky znázorňující výběr role pro přiřazení role DCR

  3. Vyberte Uživatele, skupinu nebo instanční objekt pro přiřazení přístupu a zvolte Vybrat členy. Vyberte aplikaci, kterou jste vytvořili, a zvolte Vybrat.

    Snímek obrazovky znázorňující výběr členů pro přiřazení role DCR

  4. Před uložením přiřazení role vyberte Zkontrolovat a přiřadit a ověřte podrobnosti.

    Snímek obrazovky znázorňující uložení přiřazení role DCR

Ukázkový kód

Viz Ukázkový kód pro odesílání dat do služby Azure Monitor pomocí rozhraní API pro příjem protokolů pro vzorový kód pomocí komponent vytvořených v tomto kurzu.

Další kroky