Megosztás a következőn keresztül:


Logs Ingestion API az Azure Monitorban

Az Azure Monitor Logs Ingestion API-jával REST API-hívással vagy ügyfélkódtárak használatával adatokat küldhet egy Log Analytics-munkaterületre. Az API lehetővé teszi, hogy adatokat küldjön a támogatott Azure-táblákba vagy a létrehozott egyéni táblákba. Az Azure-táblák sémáját egyéni oszlopokkal is bővítheti, hogy további adatokat fogadjon el.

Alapművelet

Az adatok a Logs Ingestion API-ba bármely olyan alkalmazásból elküldhetők, amely REST API-hívást indíthat. Ez lehet egy ön által létrehozott egyéni alkalmazás, vagy lehet egy alkalmazás vagy ügynök, amely megérti, hogyan küldhet adatokat az API-nak. Egy olyan adatgyűjtési szabályt (DCR) határoz meg, amely tartalmazza a céltáblát és a munkaterületet, valamint az alkalmazásregisztráció hitelesítő adatait a megadott DCR-hez való hozzáféréssel. Az adatokat a DCR által megadott végpontra vagy egy adatgyűjtési végpontra (DCE) küldi, ha privát kapcsolatot használ.

Az alkalmazás által az API-nak küldött adatokat JSON formátumban kell formázni, és meg kell egyeznie a DCR által várt struktúrával. Nem feltétlenül kell egyeznie a céltábla szerkezetével, mert a DCR tartalmazhat egy átalakítást, amely átalakítja az adatokat a tábla szerkezetének megfelelően. A céltáblát és a munkaterületet úgy módosíthatja, hogy az API-hívás vagy a forrásadatok módosítása nélkül módosítja a DCR-t.

A naplóbetöltési API áttekintését bemutató ábra.

Konfiguráció

Az alábbi táblázat az Azure minden olyan összetevőjét ismerteti, amelyet konfigurálnia kell a Logs Ingestion API használata előtt.

Feljegyzés

Az összetevők konfigurációját automatizáló PowerShell-szkriptek esetében tekintse meg a Logs ingestion API használatával az Azure Monitorba adatküldési mintakódot.

Összetevő Függvény
Alkalmazásregisztráció és titkos kód Az alkalmazásregisztráció az API-hívás hitelesítésére szolgál. Engedélyt kell adni az alább ismertetett DCR-nek. Az API-hívás tartalmazza az alkalmazás (ügyfél) azonosítóját és címtár-(bérlői) azonosítóját , valamint az alkalmazás titkos kódjának értékét .

Lásd: Microsoft Entra-alkalmazás és szolgáltatásnév létrehozása, amely hozzáfér az erőforrásokhoz , és új alkalmazáskulcs létrehozása.
Tábla a Log Analytics-munkaterületen A Log Analytics-munkaterület táblájának léteznie kell ahhoz, hogy adatokat küldjön neki. Használhatja a támogatott Azure-táblák egyikét, vagy létrehozhat egy egyéni táblát az elérhető módszerek bármelyikével. Ha az Azure Portallal hozza létre a táblát, a DCR létrejön Önnek, beleértve az átalakítást is, ha szükséges. Bármely más módszerrel manuálisan kell létrehoznia a DCR-t a következő szakaszban leírtak szerint.

Lásd: Egyéni tábla létrehozása.
Adatgyűjtési szabály (DCR) Az Azure Monitor az adatgyűjtési szabályt (DCR) használja a bejövő adatok szerkezetének és azokkal kapcsolatos teendőknek a megértéséhez. Ha a tábla struktúrája és a bejövő adatok nem egyeznek, a DCR tartalmazhat átalakítást a forrásadatok céltáblának való konvertálásához. Az átalakítással szűrheti a forrásadatokat, és bármilyen más számítást vagy átalakítást hajthat végre.

Ha egyéni táblát hoz létre az Azure Portal használatával, a rendszer a megadott mintaadatok alapján hozza létre a DCR-t és az átalakítást. Ha egy meglévő táblát használ, vagy egy másik módszerrel hoz létre egyéni táblát, akkor manuálisan kell létrehoznia a DCR-t a következő szakaszban található részletekkel.

A DCR létrehozása után hozzáférést kell adnia ahhoz az alkalmazáshoz, amelyet az első lépésben hozott létre. Az Azure Portal Monitor menüjében válassza az Adatgyűjtési szabályokat, majd a létrehozott DCR-t. Válassza a Hozzáférés-vezérlés (IAM) lehetőséget a DCR-hez, majd válassza a Szerepkör-hozzárendelés hozzáadása lehetőséget a figyelési metrikák közzétevői szerepkörének hozzáadásához.

Végpont

A Logs Ingestion API REST API-végpontja lehet adatgyűjtési végpont (DCE) vagy A DCR-naplók betöltési végpontja.

A DCR-naplók betöltési végpontja akkor jön létre, amikor közvetlen betöltéshez hoz létre DCR-t. A végpont lekéréséhez nyissa meg a DCR-t az Azure Portal JSON-nézetében. Előfordulhat, hogy a végpontok megjelenítéséhez módosítania kell az API-verziót a legújabb verzióra.

Képernyőkép a naplóbetöltési végpontról egy DCR-ben.

DCE-re csak akkor van szükség, ha privát kapcsolattal csatlakozik egy Log Analytics-munkaterülethez, vagy ha a DCR nem tartalmazza a naplóbetöltési végpontot. Ez lehet a helyzet, ha régebbi DCR-t használ, vagy ha a DCR-t a "kind": "Direct" paraméter nélkül hozta létre. További részletekért lásd az adatgyűjtési szabályt (DCR ).

Feljegyzés

A logsIngestion tulajdonság 2024. március 31-én lett hozzáadva. Ezen dátum előtt a Naplók betöltési API-hoz DCE-ra volt szükség. A végpontok nem adhatók hozzá egy meglévő DCR-hez, de továbbra is használhat meglévő DCR-eket meglévő tartományvezérlőkkel. Ha egy DCR-végpontra szeretne lépni, akkor létre kell hoznia egy új DCR-t a meglévő helyett. A végpontokkal rendelkező DCR-k DCE-t is használhatnak. Ebben az esetben eldöntheti, hogy a DCE-t vagy a DCR-végpontokat használja-e a DCR-t használó összes ügyfélhez.

Adatgyűjtési szabály (DCR)

Amikor egyéni táblát hoz létre egy Log Analytics-munkaterületen az Azure Portal használatával, létrejön egy DCR, amely a Logs ingestion API-val használható. Ha már létező táblába küld adatokat, akkor manuálisan kell létrehoznia a DCR-t. Kezdje az alábbi minta DCR-vel, és cserélje le a sablon alábbi paramétereinek értékeit. A DCR létrehozásához használja az Azure Monitor adatgyűjtési szabályainak létrehozása és szerkesztése című cikkben ismertetett módszerek bármelyikét.

Paraméter Leírás
region Régió a DCR létrehozásához. Ennek meg kell egyeznie a Log Analytics-munkaterület és a DCE régióval, ha használ egyet.
dataCollectionEndpointId A DCE erőforrás-azonosítója. Távolítsa el ezt a paramétert, ha a DCR betöltési pontját használja.
streamDeclarations Módosítsa az oszloplistát a bejövő adatok oszlopaira. Nem kell módosítania a stream nevét, mivel ennek csak egyeznie kell a névvel a streams következőben dataFlows: .
workspaceResourceId A Log Analytics-munkaterület erőforrás-azonosítója. Nem kell módosítania a nevet, mivel ennek csak egyeznie kell a névvel a destinations következőben dataFlows: .
transformKql A bejövő adatokra alkalmazni kívánt KQL-lekérdezés. Ha a bejövő adatok sémája megegyezik a tábla sémáján, akkor használhatja source az átalakítást, amely változatlanul továbbítja a bejövő adatokat. Ellenkező esetben használjon olyan lekérdezést, amely átalakítja az adatokat a céltábla sémájának megfelelően.
outputStream Az adatokat küldő tábla neve. Egyéni tábla esetén adja hozzá a Custom-table-name<> előtagot. Beépített tábla esetén adja hozzá a Microsoft-table-name előtagot>.<
{
    "location": "eastus",
    "dataCollectionEndpointId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Insights/dataCollectionEndpoints/dce-eastus",
    "kind": "Direct",
    "properties": {
        "streamDeclarations": {
            "Custom-MyTable": {
                "columns": [
                    {
                        "name": "Time",
                        "type": "datetime"
                    },
                    {
                        "name": "Computer",
                        "type": "string"
                    },
                    {
                        "name": "AdditionalContext",
                        "type": "string"
                    }
                ]
            }
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/cefingestion/providers/microsoft.operationalinsights/workspaces/my-workspace",
                    "name": "LogAnalyticsDest"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Custom-MyTable"
                ],
                "destinations": [
                    "LogAnalyticsDest"
                ],
                "transformKql": "source",
                "outputStream": "Custom-MyTable_CL"
            }
        ]
    }
}

Ügyfélkódtárak

A REST API-híváson kívül az alábbi ügyfélkódtárak használatával adatokat küldhet a Logs ingestion API-nak. A kódtárakhoz a Konfigurációban ismertetett összetevők szükségesek. Az egyes kódtárakat használó példákat a Logs ingestion API használatával az Azure Monitorba küldő mintakódban tekintheti meg.

REST API-hívás

Ha REST API-hívással szeretne adatokat küldeni az Azure Monitornak, küldjön POST-hívást HTTP-en keresztül. A híváshoz szükséges részleteket ebben a szakaszban ismertetjük.

URI

Az URI tartalmazza a régiót, a DCE- vagy DCR-betöltési végpontot, a DCR-azonosítót és a stream nevét. Az API-verziót is megadja.

Az URI a következő formátumot használja.

{Endpoint}/dataCollectionRules/{DCR Immutable ID}/streams/{Stream Name}?api-version=2023-01-01

Példa:

https://my-dce-5kyl.eastus-1.ingest.monitor.azure.com/dataCollectionRules/dcr-000a00a000a00000a000000aa000a0aa/streams/Custom-MyTable?api-version=2023-01-01

A DCR Immutable ID rendszer a létrehozáskor hozza létre a DCR-et. Lekérheti az Azure Portal DCR-jének Áttekintés lapján.

Képernyőkép a nem módosítható azonosítót megjelenítő adatgyűjtési szabályról.

Stream Name az egyéni adatokat kezelő DCR-ben lévő adatfolyamra hivatkozik.

Fejlécek

Az alábbi táblázat az API-hívás fejléceit ismerteti.

Fejléc Kötelező? Leírás
Engedélyezés Igen Az ügyfél hitelesítő adatainak folyamatán keresztül beszerzett tulajdonosi jogkivonat. Használja a jogkivonat célközönségének értékét a felhőhöz:

Nyilvános Azure-felhő – https://monitor.azure.com
A 21Vianet-felhő által üzemeltetett Microsoft Azure - https://monitor.azure.cn
Azure US Government-felhő – https://monitor.azure.us
Content-Type Igen application/json
Tartalomkódolás Nem gzip
x-ms-client-request-id Nem Sztring formátumú GUID. Ez egy kérésazonosító, amelyet a Microsoft bármilyen hibaelhárítási célra használhat.

Törzs

A hívás törzse tartalmazza az Azure Monitornak küldendő egyéni adatokat. Az adatok alakjának olyan JSON-tömbnek kell lennie, amelynek elemszerkezete megegyezik a DCR-ben lévő stream által várt formátummal. Ha egyetlen elemet kell elküldeni az API-híváson belül, az adatokat egyelemes tömbként kell elküldeni.

Példa:

[
{
    "TimeGenerated": "2023-11-14 15:10:02",
    "Column01": "Value01",
    "Column02": "Value02"
}
]

Győződjön meg arról, hogy a kérelem törzse megfelelően van kódolva az UTF-8-ban az adatátvitelsel kapcsolatos problémák elkerülése érdekében.

Példa

A PowerShell használatával történő API-hívás példáját a Logs ingestion API használatával az Azure Monitorba küldő mintakódban tekintheti meg.

Támogatott táblák

A betöltési API-nak küldött adatok a következő táblákba küldhetők:

Táblák Leírás
Egyéni táblák A Log Analytics-munkaterületen létrehozott egyéni táblák. A céltáblának léteznie kell, mielőtt adatokat küldhet neki. Az egyéni tábláknak utótagot _CL kell tartalmazniuk.
Azure-táblák Jelenleg az alábbi Azure-táblák támogatottak. Más táblák is hozzáadhatók a listához, mivel a támogatásuk implementálva van.

Feljegyzés

Az oszlopneveknek betűvel kell kezdődniük, és legfeljebb 45 alfanumerikus karakterből és aláhúzásból (_) állhatnak. _ResourceId, , _ResourceIdid, _SubscriptionId, TenantId, Type, UniqueId, és Title fenntartott oszlopnevek. Az Azure-táblához hozzáadott egyéni oszlopoknak utótagot _CFkell tartalmazniuk.

Korlátok és korlátozások

A Logs Ingestion API-val kapcsolatos korlátozásokért tekintse meg az Azure Monitor szolgáltatáskorlátjait.

Következő lépések