Az Apache-naplók továbbítása az OpenSearch-be a Logstash segítségével
Bevezetés
A hatékony webszerver-naplókezelés kulcsfontosságú a webhely teljesítményének megőrzéséhez, a problémák hibaelhárításához és a felhasználói viselkedésbe való betekintéshez. Az Apache az egyik legnépszerűbb webszerver. Hozzáférési és hibanaplókat hoz létre, amelyek értékes információkat tartalmaznak. A naplók hatékony kezeléséhez és elemzéséhez a Logstash segítségével feldolgozhatja és továbbíthatja őket a DigitalOcean Managed OpenSearch számára indexelés és megjelenítés céljából.
Ebben az oktatóanyagban végigvezetjük Önt a Logstash Dropletre történő telepítésén, az Apache naplók összegyűjtésére konfigurálásán, valamint elemzés céljából a Managed OpenSearch szolgáltatásba történő elküldésén.
Előfeltételek
- Droplet(ek) telepített Apache webszerverrel.
- Felügyelt OpenSearch-fürt
1. lépés – A Logstash telepítése
A Logstash telepíthető bináris fájlokkal VAGY a csomagtárolókon keresztül. A könnyebb kezelés és frissítés érdekében általában csomagtárolók használata javasolt.
Ebben a részben végigvezetjük a Logstash telepítésén a Dropletre az APT és a YUM csomagkezelők használatával.
Határozzuk meg az operációs rendszert:
cat /etc/os-release
APT-alapú rendszerekhez (Ubuntu/Debian)
Töltse le és telepítse a nyilvános aláíró kulcsot:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg
Előfordulhat, hogy a folytatás előtt telepítenie kell az apt-transport-https csomagot a Debianra:
sudo apt-get install apt-transport-https
Mentse el a lerakatdefiníciót a /etc/apt/sources.list.d/elastic-8.x.list mappába:
echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
Használja a fent leírt echo metódust a Logstash-tárhely hozzáadásához. Ne használja az add-apt-repository parancsot, mivel az hozzáad egy deb-src bejegyzést is, de nem biztosítunk forráscsomagot. Ha hozzáadta a deb-src bejegyzést, a következőhöz hasonló hibaüzenetet fog látni:
Unable to find expected entry 'main/source/Sources' in Release file (Wrong sources.list entry or malformed file)
Csak törölje a deb-src bejegyzést az /etc/apt/sources.list fájlból, és a telepítésnek a várt módon kell működnie.
Futtassa a sudo apt-get update parancsot, és a tároló készen áll a használatra. A következőkkel telepítheti:
sudo apt-get update && sudo apt-get install logstash
YUM-alapú rendszerekhez (CentOS/RHEL)
Töltse le és telepítse a nyilvános aláíró kulcsot:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Adja hozzá a következőket a /etc/yum.repos.d/logstash.repo fájlhoz. A „tee” segítségével frissítheti és létrehozhatja a fájlt.
sudo tee /etc/yum.repos.d/logstash.repo > /dev/null <<EOF
[logstash-8.x]
name=Elastic repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
Az adattár készen áll a használatra. A következőkkel telepítheti:
sudo yum install logstash
További információkért tekintse meg a Logstash telepítési útmutatóját.
2. lépés – A Logstash konfigurálása úgy, hogy naplókat küldjön az OpenSearch-nek
A Logstash-folyamat három fő szakaszból áll: bemenetből, szűrőből és kimenetből. A Logstash csővezetékek bővítményeket használnak. Használhat közösségi bővítményeket, vagy létrehozhat saját bővítményt.
Bevitel: Ez a szakasz különböző forrásokból gyűjt adatokat. A Logstash számos bemeneti bővítményt támogat az adatforrások, például a naplófájlok, adatbázisok, üzenetsorok és felhőszolgáltatások kezelésére.
Szűrés: Ez a szakasz feldolgozza és átalakítja a beviteli szakaszban gyűjtött adatokat. A szűrők módosíthatják, gazdagíthatják és strukturálhatják az adatokat, hogy hasznosabbá és könnyebben elemezhetők legyenek.
Kimenet: Ez a szakasz elküldi a feldolgozott adatokat egy célállomásra. A célállomások lehetnek adatbázisok, fájlok és adattárak, például az OpenSearch.
3. lépés – Az Open Search Output Plugin telepítése
Az OpenSearch kimeneti bővítmény a következő parancs futtatásával telepíthető:
/usr/share/logstash/bin/logstash-plugin install logstash-output-opensearch
További információk találhatók ebben a logstash-output-opensearch-plugin tárolóban.
Most hozzunk létre egy folyamatot:
Hozzon létre egy új fájlt az /etc/logstash/conf.d/ útvonalon apache_pipeline.conf néven, és másolja ki a következő tartalmat.
input {
file {
path => "/var/log/apache2/access.log"
start_position => "beginning"
sincedb_path => "/dev/null"
tags => "apache_access"
}
file {
path => "/var/log/apache2/error.log"
start_position => "beginning"
sincedb_path => "/dev/null"
tags => "apache_error"
}
}
filter {
if "apache_access" in [tags] {
grok {
match => { "message" => "%{HTTPD_COMBINEDLOG}" }
}
mutate {
remove_field => [ "message","[log][file][path]","[event][original]" ]
}
} else {
grok {
match => { "message" => "%{HTTPD24_ERRORLOG}" }
}
}
}
output {
if "apache_access" in [tags] {
opensearch {
hosts => "https://<OpenSearch-Hostname>:25060"
user => "doadmin"
password => "<your_password>"
index => "apache_access"
ssl_certificate_verification => true
}
} else {
opensearch {
hosts => "https://<OpenSearch-Hostname>:25060"
user => "doadmin"
password => "<your_password>"
index => "apache_error"
ssl_certificate_verification => true
}
}
}
Cserélje ki a értéket az OpenSearch szerver gazdagépnevére, a kódot pedig az OpenSearch jelszavára.
Bontsuk fel a fenti konfigurációt.
BEMENET: Ez az események forrásának konfigurálására szolgál. Itt a „fájl” bemeneti bővítmény használatos.
path => “/var/log/apache2/access.log” : Megadja az Apache hozzáférési naplófájl elérési útját, amelyből a Logstash olvasni fog
Győződjön meg arról, hogy a Logstash szolgáltatás hozzáfér a bemeneti útvonalhoz.
start_position => “beginning ”: Meghatározza, hogy a Logstash hol kezdje el olvasni a naplófájlt. A „kezdet” azt jelzi, hogy a Logstash-nak a fájl feldolgozását az elejétől kell kezdenie, nem pedig a végétől
sincedb_path => "/dev/null ": Megadja a sincedb fájl elérési útját. A Logstash a Sincedb fájlokat használja a naplófájlok aktuális pozíciójának nyomon követésére, így újraindítás vagy meghibásodás esetén ott folytathatja, ahol abbahagyta.
tags => “apache_access ”: címkét rendel az ebből a bemenetről beolvasott eseményekhez. A címkék hasznosak a Logstash-on belüli események azonosítására és szűrésére, amelyeket gyakran használnak a konfiguráció kimeneti vagy szűrési szakaszában. Ez utóbbihoz címkéket használunk
SZŰRŐ: az események feldolgozására szolgál.
Feltételekkel kezdve:
(if "apache_access" in [tags]):Ez ellenőrzi, hogy az
apache_accesscímke létezik-e a bejövő naplóesemények [tags] mezőjében. Ezzel a feltétellel alkalmazzuk a megfelelő GROK-szűrőt az Apache-hozzáféréshez és a hibanaplókhoz.Grok szűrő (Apache hozzáférési naplókhoz):
grok { match => { "message" => "%{HTTPD_COMBINEDLOG}" } }A
%{HTTPD_COMBINEDLOG}grok szűrő egy előre meghatározott minta a Logstashban, amely az Apache kombinált hozzáférési naplóformátumának elemzésére szolgál. Ez kivonja az olyan mezőket, mint az IP-cím, időbélyeg, HTTP-módszer, URI, állapotkód stb., a bejövő események üzenetmezőjéből.Mutációs szűrő
Eltávolítás(opcionális): Az Apache-naplók elemzése után a mutációs eltávolítást használjuk bizonyos mezők eltávolítására.mutate { remove_field => [ "message","[log][file][path]","[event][original]" ] }Else feltétel: Az else blokk akkor fut le, ha az
apache_accesscímke nincs jelen a [tags]-ban. Ez az else blokk egy másik GROK szűrőt tartalmaz az Apache hibanaplókhoz.grok { match => { "message" => "%{HTTPD24_ERRORLOG}" } }Ez a grok szűrő
%{HTTPD24_ERRORLOG}elemzi az Apache hibanapló formátumának megfelelő üzeneteket. Kibontja a hibanaplókhoz kapcsolódó mezőket, például időbélyegzőt, naplózási szintet, hibaüzenetet stb.A GROK-minták a következő címen találhatók: https://github.com/logstash-plugins/logstash-patterns-core/tree/main/patterns.
OUTPUT: A kimeneti beépülő modul eseményeket küld egy adott célhelyre.
A kimeneti blokk if feltétellel kezdődik. Itt if feltételes feltételeket használunk
if "apache_access" in [tags] {}Ha feltételes, akkor ez a naplók OpenSearch rendszerbe történő továbbítására szolgál két külön indexbe, az
apache_errorés azapache_accessindexbe.Nézzük meg az OpenSearch kimeneti beépülő modult:
hosts => "https://XXX:25060" Your Open search Hostname user => "doadmin" Your Open search Username password => "XXXXX" OpenSearch Password index => "apache_error" Index name in OpenSearch ssl_certificate_verification => true Enabled SSL certificate verification
{ }
4. lépés - Indítsa el a Logstash-t
A Pipeline konfigurálása után indítsa el a Logstash szolgáltatást:
systemctl enable logstash.service
systemctl start logstash.service
systemctl status logstash.service
5. lépés – Hibaelhárítás
Ellenőrizze a csatlakozást
A kapcsolat tesztelésével ellenőrizheti, hogy a Logstash csatlakozni tud-e az OpenSearch-hez:
curl -u your_username:your_password -X GET "https://your-opensearch-server:25060/_cat/indices?v"
Cserélje ki a <your-opensearch-server> elemet OpenSearch szervere gazdagépnevére, a <your_username> és <your_password> helyére pedig az OpenSearch hitelesítő adatait.
Adatbevitel
Győződjön meg arról, hogy az adatok megfelelően vannak indexelve az OpenSearch-ben:
curl -u your_username:your_password -X GET "http://your-opensearch-server:25060/<your-index-name>/_search?pretty"
Cserélje ki a <your-opensearch-server> elemet OpenSearch szervere gazdagépnevére, a <your_username> és <your_password> helyére pedig az OpenSearch hitelesítő adatait. Hasonlóképpen: <a-index-név> az index nevével.
Tűzfal és hálózati konfiguráció
Győződjön meg arról, hogy a tűzfalszabályok és a hálózati beállítások lehetővé teszik a Logstash és az OpenSearch közötti forgalmat a 25060 porton.
Naplók
A Logstash naplói a /var/log/logstash/logstash-plain.log címen találhatók.
A részleteket lásd: Hibaelhárítás.
Következtetés
Ebben az útmutatóban végigvezettük a Logstash beállítását az Apache naplók összegyűjtéséhez és az OpenSearch felé történő továbbításához. Íme egy gyors összefoglaló arról, amivel foglalkoztunk:
A Logstash telepítése: Megbeszéltük, hogyan használhatja az APT vagy YUM csomagkezelőket a Linux disztribúciótól függően a Logstash telepítéséhez a Dropletre.
A Logstash konfigurálása: Létrehoztuk és beállítottuk a Logstash konfigurációs fájlt, hogy biztosítsuk az Apache naplók helyes elemzését és elküldését az OpenSearch-nek.
Ellenőrzés az OpenSearch-ben: Az OpenSearch irányítópultjain beállítunk egy indexmintát, hogy megbizonyosodjunk arról, hogy a naplók megfelelően vannak indexelve, és láthatók-e elemzés céljából.
Ha ezeket a lépéseket végrehajtja, akkor most már rendelkeznie kell egy funkcionális beállítással, ahol a Logstash összegyűjti az Apache naplókat, és elküldi az OpenSearch-nek.
