A Filebeat és a Logstash két alapvető eszköz, amelyek lehetővé teszik a naplók és adatfolyamok hatékony begyűjtését, feldolgozását és továbbítását különböző rendszerekbe. Az alábbiakban bemutatjuk, hogyan konfigurálhatjuk őket az adatok feldolgozására, beleértve az input forrástól kezdve a kimeneti formátumokig. A folyamat bemutatja a helyi naplók, mint a syslog, valamint az egyéb formátumok, mint az NDJSON feldolgozását.
Először is, mentsük el a jelenlegi filebeat.yml konfigurációs fájlt egy biztonsági mentésre a következő parancs használatával:
Ezután indítsunk el egy új terminált, amelyben a Logstash fogja figyelni a Filebeat által küldött adatokat. Ehhez futtassuk a következő parancsot a Logstash konfigurációval, amit a második fejezetben hoztunk létre:
Ezáltal a Logstash folyamatosan megjeleníti a képernyőn a bejövő adatokat. Bár ez ideális tesztelési célokra, a valós környezetben valószínűleg nem lesz praktikus, ha nem tudjuk ilyen gyorsan olvasni az adatokat. Most nézzük meg, hogyan működnek az input és output típusok a Filebeat és Logstash használatával.
A Filebeat többféle input forrást is képes kezelni, amelyek lehetnek helyi fájlok, hálózati adatforrások, vagy külső rendszerek, mint a Redis vagy Kafka. Ezeket az inputokat a filebeat.yml fájlban konfigurálhatjuk, mint ahogy az a korábbi szakaszban is látható volt.
Helyi fájlok olvasása
A Filebeat a konfigurált filestream inputok segítségével gyűjti be a helyi naplófájlokat, és továbbítja azokat a Logstash-nak vagy más kimeneti helyekre. Ha például Rsyslog vagy Syslog-ng használatáról váltunk Filebeat-ra, a folyamat nagyjából hasonló lesz: a Filebeat beolvassa a naplókat, és ha lehetséges, JSON vagy ECS formátumba alakítja őket.
A Filebeat figyelemmel kíséri a fájlok állapotát, és egy regisztrációt (offset registry) tárol arról, hogy hol hagyta abba az olvasást, így nem kell újra feldolgoznia azokat a sorokat, amelyeket már korábban olvasott. A tesztelés érdekében írhatunk egy egyszerű bash szkriptet, amely törli ezt a regisztrációt, így újra beolvashatjuk ugyanazokat a naplókat több alkalommal:
A szkript törli a regisztrációt és újraindítja a Filebeat-et. A szkriptet futtathatjuk az alábbi módon:
A -e opció segítségével a Filebeat minden kimenetet a hibákhoz (stderr) irányít.
Parserek alkalmazása és új mezők hozzáadása
A parserek a bemeneti adatokat más formátumba alakítják, általában JSON formátumban. Ha például NDJSON adatokat dolgozunk fel, akkor a Logstash terminálján az adat egy nagy blobként jelenik meg a message mezőben. A helyes formázás érdekében érdemes egy parse-ert beilleszteni a filebeat.yml fájlba.
Például:
Ebben az esetben a parszer az NDJSON adatokat egy processed mezőbe rendezi, és egyéni mezőket ad hozzá a MITRE ATT&CK keretrendszer alapján. Ez lehetővé teszi, hogy a naplókat a későbbi elemzésekhez vagy szűrésekhez kategorizáljuk.
A Filebeat most már képes az NDJSON adatokat helyesen beolvasni, és más eszközök számára elérhetővé tenni. Az adatok ellenőrzéséhez futtassuk újra a Filebeat törlő szkriptet, majd nézhetjük meg az adatokat a Logstash termináljában.
Új bemeneti források hozzáadása
Most, hogy sikeresen beállítottuk az NDJSON fájlok feldolgozását, próbáljunk meg egy új bemeneti forrást hozzáadni, például helyi syslog fájlokat a /var/log könyvtárból. Ehhez az alábbi beállítást használhatjuk:
Ebben a konfigurációban egy új bemenetet adunk hozzá, amely a syslog fájlokat olvassa. Az exclude_lines mező segítségével kizárhatjuk a UFW kifejezést tartalmazó sorokat, amelyek az Ubuntu tűzfalát jelentik. A syslog parser automatikusan felismeri a naplók formátumát.
Fontos megjegyzések
A Filebeat és a Logstash használata során figyelembe kell venni, hogy bár a konfiguráció alapvető, az adatok kezelésének és feldolgozásának finomhangolása elengedhetetlen a hatékony munkafolyamatok biztosításához. A rendszer folyamatosan monitorozza és rögzíti az adatokat, miközben segít a hibaüzenetek és az anomáliák gyors észlelésében. A különböző formátumok, mint az NDJSON és a syslog, eltérő kezelésére van szükség, így fontos az eszközök megfelelő konfigurálása a kívánt eredmények eléréséhez.
Hogyan használjuk a tanúsítványokat és a tűzfal beállításokat Elasticsearch és Kibana konfigurációhoz
A tanúsítványok és titkos kulcsok kezelése kulcsfontosságú szerepet játszik minden biztonságos adatforgalmat használó rendszerben. A következőkben bemutatjuk, hogyan állíthatunk be saját aláírt tanúsítványokat és konfigurálhatunk tűzfal szabályokat, amelyek lehetővé teszik, hogy az Elasticsearch és Kibana biztonságos környezetben működjenek.
Először is, el kell végezni a tanúsítvány aláírását az intermedier tanúsítvány kibocsátó segítségével, az alábbi parancs futtatásával:
Ezt követően ellenőrizhetjük, hogy az OpenSSL helyesen másolta-e át a kiterjesztéseket a tanúsítványba, például az alábbi paranccsal:
Ellenőriznünk kell, hogy a tanúsítvány kiterjesztései, mint a wildcard és az alternatív nevei (SAN), megfelelően jelennek meg:
Ezután ellenőrizhetjük a tanúsítványt a hitelesítő lánccal szemben, hogy biztosak legyünk abban, hogy helyesen van aláírva:
Miután elkészült a tanúsítvány, készíthetünk egy titkosítatlan privát kulcsot, mivel egyes eszközök nem támogatják a titkosított kulcsokat. Ehhez futtassuk az alábbi parancsot:
Ezután az Elasticsearch egy kombinált tárolófájlt használhat, amely tartalmazza a tanúsítványt és a hozzá tartozó privát kulcsot. Az alábbi paranccsal létrehozhatjuk a PKCS#12 fájlt:
A PKCS#12 fájl most már készen áll az Elasticsearch számára. Ne felejtsük el elmenteni az OpenSSL konfigurációt és bármilyen jegyzetet a Git tárolóban.
Miután a tanúsítványok és kulcsok elkészültek, szükség van a tűzfal szabályok konfigurálására is, hogy biztosítsuk az eszközök közötti kommunikációt. Az Uncomplicated Firewall (UFW) használata esetén az alábbi parancsokkal adhatunk hozzá engedélyezett portokat:
A Firewalld használata esetén egyetlen parancsot futtathatunk minden port hozzáadásához:
Az említett portok között a 5044 a Logstash portja, a 9200 az Elasticsearch kapcsolataihoz, a 5601 a Kibana webes felületéhez, és a 8220, 8221 pedig az Elastic Agent kommunikációjához szükséges.
A következő lépés a DNS konfigurálása. Az operációs rendszerek hosts fájljának módosításával biztosíthatjuk, hogy a különböző eszközök könnyen elérhetők legyenek a megfelelő IP-címeken. Az alábbi példa bemutatja, hogyan kell ezt megtenni:
Miután az IP-címek helyesen vannak beállítva, a további lépés a szükséges eszközök telepítése. Javasolt legalább két Ubuntu virtuális gép használata, amelyek közül az egyik Elasticsearch, Kibana és Elastic Agent példányt futtat, míg a másik Logstash-t és az Elastic Agent Fleet szervert. Ha erőforrások korlátozottak, akkor a telepítéseket egyetlen gépen is végezhetjük, de fontos, hogy legalább két különböző virtuális gépen futtassunk Elastic Agent példányokat, mivel két Elastic Agent nem futhat ugyanazon a gazdagépen.
Ez a konfiguráció segít a valós környezetekben való munkához szükséges eszközök és szolgáltatások elosztásának megértésében. Ha mindezt különböző gépeken végezzük el, gyakorlatilag kipróbálhatjuk, hogyan működnek ezek a szolgáltatások egy éles környezetben, ahol az eszközök különböző szervereken futnak, és az adatok biztonságos kapcsolatokat igényelnek.
Az Elasticsearch telepítése az alábbi parancsokkal kezdődik:
Ezután frissíthetjük a csomaglistát, és telepíthetjük az Elasticsearch-t és Kibana-t:
Miután ezek az eszközök telepítésre kerültek, elérhetjük őket a megfelelő címek és portok használatával.
Meta és a jövő energiaforrásai: Mi vár ránk a mesterséges intelligencia energiaéhsége és a nukleáris energia színre lépésével?
Hogyan implementáljuk a felhasználói autentikációt és autorizációt Angularban?
Hogyan befolyásolják a hisztogramok az orvosi képalkotást és miért fontosak a különböző sugárzáskezelési technikák a képminőség javításában?
Hogyan hat a gyász és a remény az ír identitásra Seamus Heaney életében és munkásságában?

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский