a tranzakció fogalmilag kapcsolódó események bármely csoportja, amely időt ölel fel, például egy szállodai szoba egyetlen ügyfél általi online foglalásával kapcsolatos eseménysorozat, vagy egy tűzfal-behatolási eseményhez kapcsolódó eseménysorozat. A tranzakciótípus egy konfigurált tranzakció, amelyet mezőként mentenek és a transaction
paranccsal együtt használnak. Tetszőleges számú adatforrás generálhat tranzakciókat több naplóbejegyzéssel.
tranzakciós keresés
a tranzakciós keresés hasznos bármely fizikai esemény egyetlen megfigyeléséhez, amely több naplózott eseményre terjed ki. A tranzakció paranccsal definiálhat egy tranzakciót, vagy felülbírálhatja a transactiontypes.conf
pontban megadott tranzakciós beállításokat.
a tranzakciós Keresés egyik gyakori használata, hogy több eseményt egyetlen meta-eseménybe csoportosít, amely egyetlen fizikai eseményt képvisel. Például egy memóriahiány miatt több adatbázisesemény is naplózásra kerülhet, és ezek mind egy tranzakcióba csoportosíthatók.
további információkért lásd: események azonosítása és csoportosítása tranzakciókba ebben a kézikönyvben.
tranzakciós Keresési példa
ez a példa a keresési oktatóanyag mintaadatait használja, de az Apache web access log bármilyen formátumával működnie kell. Ha ezt a példát saját Splunk példányán szeretné kipróbálni, töltse le a mintaadatokat, és kövesse az utasításokat, hogy a bemutató adatokat a Splunk-ba juttassa. A keresés futtatásakor mindig használja az időtartományt.
ez a példa azonos munkamenet-azonosítóval és IP-címmel rendelkező tranzakciókat keres. Ez a példa a tranzakciót olyan események csoportjaként definiálja, amelyek ugyanazzal a munkamenet-azonosítóval (JSESSIONID
) rendelkeznek, és ugyanabból az IP-címből származnak, clientip
, és ahol az első esemény tartalmazza a “nézet” karakterláncot, az utolsó pedig a “vásárlás”karakterláncot.
sourcetype=access_* | transaction JSESSIONID clientip startswith="view" endswith="purchase" | where duration>0
a keresés a tranzakció első eseményét olyan eseményekként határozza meg, amelyek tartalmazzák a “nézet” karakterláncot a startswith="view"
argumentum használatával. A endswith="purchase"
argumentum ugyanezt teszi a tranzakció utolsó eseményére.
ez a példa a tranzakciókat a where
parancsba és a duration
mezőbe pipálja, hogy kiszűrje az összes olyan tranzakciót, amely kevesebb, mint egy másodpercig tartott. A where
szűrő nem alkalmazható a transaction
parancs előtt, mert a duration
mezőt a transaction
parancs adja hozzá. A duration
mező értékei másodpercben mutatják a tranzakció első és utolsó eseményeinek időbélyegei közötti különbséget.
kíváncsi lehet arra, hogy a tranzakciók miért tartottak sokáig, ezért ezeknek az eseményeknek a megtekintése segíthet a hibaelhárításban. Nem fogja látni ezeket az adatokat, de néhány tranzakció hosszú időt vehet igénybe, mert a felhasználó frissíti és eltávolítja az elemeket a bevásárlókosarából, mielőtt befejezi a vásárlást. Ezenkívül ez a keresés az összes esemény felett fut. A transaction
parancs előtt nincs szűrés. Bármikor szűrheti a keresést az első cső előtt, annál gyorsabban fut a keresés.
további példákat a tranzakció parancsban talál.
stats használata tranzakció helyett
mind a stats parancs, mind a tranzakció parancs hasonló, mivel lehetővé teszik az egyes események összevonását a mezőértékek alapján.
a stats
parancs egy vagy több mező szerint csoportosított események statisztikájának kiszámítására és az események elvetésére szolgál (kivéve, ha eventstats-t vagy streamstats-t használ). Másrészt, kivéve az első és az utolsó események közötti időtartamot és az események számát, a transaction
parancs nem számítja ki a csoportosított események statisztikáit. Ezenkívül megőrzi a nyers eseményt és az eredeti esemény Egyéb mezőértékeit, és lehetővé teszi az események sokkal összetettebb kritériumok alapján történő csoportosítását, például a csoportosítás időtartam vagy késések szerinti korlátozását, valamint a csoport kezdetének vagy végének meghatározására vonatkozó feltételek előírását.
a transaction
parancs két konkrét esetben a leghasznosabb:
1. Ha egy egyedi azonosító (egy vagy több mezőből) önmagában nem elegendő két tranzakció megkülönböztetéséhez. Ez az eset áll fenn, amikor az azonosítót újra felhasználják, például a cookie vagy a kliens IP által azonosított webes munkamenetek. Ebben az esetben az időtartamokat vagy szüneteket is használják az adatok tranzakciókra történő szegmentálására. Más esetekben, amikor egy azonosítót újra felhasználnak, például DHCP-naplókban, egy adott üzenet azonosíthatja a tranzakció kezdetét vagy végét.
2. Amikor kívánatos az események nyers szövegét együtt látni, nem pedig az események alkotó területeinek elemzését.
más esetekben általában jobb a stats
parancsot használni, amely hatékonyabban teljesít, különösen elosztott környezetben. Gyakran van egy egyedi azonosító az eseményekben, és stats
használható.
például a trade_id
egyedi azonosítóval azonosított ügyletek időtartamára vonatkozó statisztikák kiszámításához a következő keresések ugyanazt a választ adják:
... | transaction trade_id | chart count by duration span=log2
és
... | stats range(_time) as duration by trade_id | chart count by duration span=log2
Ha azonban a trade_id
értékeket újra felhasználják, de minden kereskedelem valamilyen szöveggel végződik, például “vége”, az egyetlen megoldás a transaction
keresés használata:
... | transaction trade_id endswith=END | chart count by duration span=log2
másrészt, ha a trade_id
értékeket újra felhasználják, de nem 10 percen belül, a megoldás a következő transaction
keresés használata:
... | transaction trade_id maxpause=10m | chart count by duration span=log2
Tudjon meg többet az” eseménycsoportosításról és korrelációról ” a kézikönyv egy korábbi fejezetében.
tranzakciók és makrókeresés
a tranzakciók és a makrókeresések hatékony kombináció, amely lehetővé teszi a tranzakciókeresések helyettesítését. Végezzen tranzakciókeresést, majd mentse el a $field$
gombbal a helyettesítés engedélyezéséhez.
a makrókeresések és tranzakciók használatára vonatkozó példát a Tudáskezelő kézikönyvében található keresési makrók meghatározása és használata című témakörben talál.