Weboldal keresés

A Logstash on Droplets konfigurálása az Nginx-naplók továbbításához a felügyelt OpenSearch-be


Bevezetés

A webszerver naplóinak nyomon követése elengedhetetlen a webhely zökkenőmentes működéséhez, a problémák megoldásához és a felhasználói viselkedés megértéséhez. Ha az Nginxet használja, akkor értékes információkkal teli hozzáférési és hibanaplókat készít. A naplók kezeléséhez és elemzéséhez a Logstash segítségével feldolgozhatja és továbbíthatja őket, a DigitalOcean Managed OpenSearch segítségével pedig indexelheti és megjelenítheti az adatokat.

Ebben az oktatóanyagban végigvezetjük a Logstash Dropletre történő telepítésén, az Nginx-naplók összegyűjtésére történő beállításán, valamint a DigitalOcean Managed OpenSearch szolgáltatásba való elküldésén.

Előfeltételek

  • Egy DigitalOcean Cloud-fiók és egy Ubuntu Droplet, és fut.

  • Az Nginx-et be kell állítani, és naplókat kell generálni a Dropletén. Az nginx Dropletre történő telepítéséhez olvassa el ezt az oktatóanyagot, amely az Ngnix telepítése Ubuntu rendszeren című témakörében található.

  • Az OpenSearch fürtnek futnia kell, és hozzá kell férnie. További részletekért keresse fel az OpenSearch-fürtök létrehozása című részt.

  • Hasznos az Nginx, Logstash és OpenSearch ismerete.

Használati eset

Szüksége lehet erre a beállításra, ha a következőket szeretné:

  • Megfigyelés és hibaelhárítás: Kövesse nyomon a webszerver teljesítményét és a hibákat a valós idejű naplók elemzésével.
  • Teljesítmény elemzése: Szerezzen betekintést a webes forgalmi mintákba és a szervermutatókba.
  • A naplózás központosítása: A könnyebb kezelés érdekében több Nginx-szerverről származó naplók összesítése egyetlen OpenSearch-példányba.

Megjegyzés: A beállítási időnek körülbelül 30 percnek kell lennie.

1. lépés – A Logstash telepítése a Droplets-re

A Logstash az itt elérhető bináris fájlokkal vagy az operációs rendszerre szabott csomagtárolókkal telepíthető. A könnyebb kezelés és frissítés érdekében általában csomagtárolók használata javasolt. Használhatja az APT csomagkezelőt Debian-alapú rendszereken, például az Ubuntu-n, míg Red Hat-alapú rendszereken, mint például a CentOS vagy RHEL, használhatja a yum-t. Mindkét módszer biztosítja, hogy a Logstash megfelelően integrálódjon a rendszer csomagkezelési infrastruktúrájába, leegyszerűsítve a telepítést és a karbantartást.

Ebben a részben végigvezetjük a Logstash telepítésén, mind az apt, mind a yum csomagkezelők használatával, biztosítva, hogy a Logstash-t beállíthassa a Dropletén, függetlenül a Linux disztribúciójától.

Az operációs rendszer megkereséséhez futtassa a következő parancsot:

cat /etc/os-release

APT-alapú rendszerekhez (Ubuntu/Debian)

1. 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

2. Telepítse az apt-transport-https fájlt, ha még nincs telepítve:

sudo apt-get install apt-transport-https

3. Adja hozzá és mentse el a Logstash lerakatdefiníciót az apt forráslistájához:

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

Megjegyzés: Ügyeljen arra, hogy ne használjon add-apt-repository parancsokat, mivel azok hozzáadhatnak egy nem támogatott deb-src bejegyzést. Ha hibát észlel egy deb-src bejegyzéssel kapcsolatban, törölje azt az /etc/apt/sources.list fájlból. 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)

Ha csak törli a deb-src bejegyzést az /etc/apt/sources.list fájlból, a telepítésnek a várt módon kell működnie.

4. Frissítse a csomagindexet, hogy tartalmazza az új tárolót:

sudo apt-get update

5. Telepítse a Logstash-t az apt csomagkezelővel:

sudo apt-get install logstash

6. Indítsa el a Logstash programot, és engedélyezze az automatikus elindulást rendszerindításkor:

sudo systemctl start logstash
sudo systemctl enable logstash

A Logstash most telepítve van és fut a rendszeren.

YUM-alapú rendszerekhez (CentOS/RHEL)

1. Töltse le és telepítse a Logstash adattár nyilvános aláíró kulcsát:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

2. Hozzon létre egy tárfájlt a Logstash számára a /etc/yum.repos.d/ fájlban. Például hozzon létre egy logstash.repo nevű fájlt. Az alábbi tartalmat másolhatja és beillesztheti a fájl létrehozásához és a tartalom frissítéséhez:

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

A tároló készen áll a használatra.

3. Telepítse a Logstash-t a YUM csomagkezelővel:

sudo yum install logstash

4. Indítsa el a Logstash programot, és engedélyezze az automatikus elindulást rendszerindításkor:

sudo systemctl start logstash
sudo systemctl enable logstash

A Logstash most telepítve van és fut a rendszeren.

2. lépés – Az Open Search Output Plugin telepítése

Az OpenSearch kimeneti beépülő modult a következő parancs futtatásával telepítheti:

/usr/share/logstash/bin/logstash-plugin install logstash-output-opensearch

A beépülő modulról további információkat találhat ebben a logstash-output-opensearch bővítménytárban.

3. lépés – A Logstash konfigurálása az Nginx-naplók OpenSearch-nek való elküldésére

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átot.

  • 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.

Most hozzunk létre egy csővezetéket.

1. Hozzon létre Logstash konfigurációs fájlt a következő tartalommal: /etc/logstash/conf.d/nginx-to-opensearch.conf:

input {
  file {
    path => "/var/log/nginx/access.log"
    start_position => "beginning"
    sincedb_path => "/dev/null"
    tags => ["nginx_access"]
  }
  file {
    path => "/var/log/nginx/error.log"
    start_position => "beginning"
    sincedb_path => "/dev/null"
    tags => ["nginx_error"]
  }
}
filter {
  if "nginx_access" in [tags] {
    grok {
      match => { "message" => "%{IPORHOST:client_ip} - %{USER:ident} \[%{HTTPDATE:timestamp}\] \"%{WORD:method} %{URIPATHPARAM:request} HTTP/%{NUMBER:http_version}\" %{NUMBER:response} %{NUMBER:bytes} \"%{DATA:referrer}\" \"%{DATA:user_agent}\"" }
    }
    mutate {
      remove_field => ["message", "[log][file][path]", "[event][original]"]
    }
  } else if "nginx_error" in [tags] {
    grok {
      match => { "message" => "\[%{TIMESTAMP_ISO8601:timestamp}\] \[%{LOGLEVEL:level}\] \[%{DATA:pid}\] \[%{DATA:tid}\] %{GREEDYDATA:error_message}" }
    }
    mutate {
      remove_field => ["message", "[log][file][path]", "[event][original]"]
    }
  }
}
output {
  if "nginx_access" in [tags] {
    opensearch {
      hosts => ["https://<OpenSearch-Hostname>:25060"]
      user => "doadmin"
      password => "<your_password>"
      index => "nginx_access-%{+YYYY.MM.dd}"
      ssl => true
      ssl_certificate_verification => true
    }
  } else if "nginx_error" in [tags] {
    opensearch {
      hosts => ["https://<OpenSearch-Hostname>:25060"]
      user => "doadmin"
      password => "<your_password>"
      index => "nginx_error-%{+YYYY.MM.dd}"
      ssl => true
      ssl_certificate_verification => true
    }
  }
}

Csere:

  • OpenSearch-Hostname az OpenSearch szerver gazdagépnevével.
  • az OpenSearch jelszavával.

2. Alkalmazza az új konfigurációt a Logstash újraindításával:

sudo systemctl restart logstash

3. Ellenőrizze a Logstash-naplókat, hogy megbizonyosodjon arról, hogy az adatokat megfelelően dolgozza fel és továbbítja:

sudo tail -f /var/log/logstash/logstash-plain.log

Az nginx-to-opensearch.conf konfiguráció bontása

BEMENET

Az input blokk két fájlbemenetet konfigurál a naplók olvasásához:

Nginx-naplók: Útvonalak: /var/log/nginx/access.log (hozzáférési naplókhoz) /var/log/nginx/error.log (hibanaplókhoz) Kezdőpozíció: kezdet – A naplófájlok elejétől olvassa be. Sincedb elérési út: /dev/null – Letiltja a követést a folyamatos olvasáshoz. Címkék: ["nginx_access"] a hozzáférési naplókhoz ["nginx_error"] a hibanaplókhoz

Megjegyzés: Győződjön meg arról, hogy a Logstash szolgáltatás hozzáfér a beviteli útvonalakhoz.

SZŰRŐ

A filter blokk a naplókat a címkéik alapján dolgozza fel:

Napló feldolgozás: Hozzáférési naplók: grok szűrőt használ a hozzáférési napló formátumának elemzéséhez, és kivonja az olyan mezőket, mint a client_ip, timestamp, method, request, http_version, response, byte, referrer és user_agent kód>. Eltávolítja az eredeti üzenetet és bizonyos metaadatmezőket.

Hibanaplók: Ellenőrzi az nginx_error címkét, és egy grok szűrőt alkalmaz az olyan mezők kinyerésére, mint az timestamp, level, pid, tid és error_message. Ezenkívül eltávolítja az üzenet és a metaadat mezőket.

KIMENET

A output blokk a címkéik alapján irányítja az eseményeket az OpenSearch felé:

Útválasztás az OpenSearch szolgáltatásba: Mind a hozzáférési, mind a hibanaplók esetében meghatározza: Gazdagépek: az OpenSearch példány URL-je. Felhasználó: doadmin a hitelesítéshez. Jelszó: Az Ön OpenSearch jelszava. Index: nginx_access-%{+YYYY.MM.dd} a hozzáférési naplókhoz nginx_error-%{+YYYY.MM.dd} a hibanaplókhoz SSL beállítások: Engedélyezi az SSL és a tanúsítvány ellenőrzését.

4. lépés – Az OpenSearch konfigurálása

1. Nyissa meg webböngészőjét, és lépjen az OpenSearch irányítópult URL-jére:

https://<OpenSearch-Hostname>

Cserélje le az OpenSearch-Hostname elemet az OpenSearch szerver gazdagépnevére.

2. Hozzon létre egy indexmintát. a. A bal oldalsávon lépjen a Kezelés > Irányítópult-kezelés > Indexminták elemre. b. Kattintson az Indexminta létrehozása lehetőségre a jobb felső sarokban. c. Írja be az nginx_access-* vagy az nginx_error-* indexmintát, hogy megfeleljen a Logstash által létrehozott összes indexnek, majd kattintson a Következő lépés gombra. d. Kattintson az Indexminta létrehozása lehetőségre.

3. Győződjön meg arról, hogy az indexminta sikeresen létrejött, és látható az Index Patterns listában.

4. A bal oldalsávon lépjen a Discover elemre, és válassza ki a létrehozott indexmintát (nginx_access-* vagy nginx_error-*). Ellenőrizze, hogy a naplóbejegyzések láthatók és megfelelően indexelve.

5. Hozzon létre vizualizációkat és irányítópultokat. További részletekért keresse fel az Irányítópult létrehozása az OpenSearch-ben című részt.

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 doadmin:your_password -X GET "https://<OpenSearch-Hostname>:25060/_cat/indices?v"

Csere:

  • OpenSearch-Hostname az OpenSearch szerver gazdagépnevével.
  • az OpenSearch jelszavával.

Adatbevitel

A következő curl paranccsal biztosíthatja, hogy az adatok megfelelően indexelve legyenek az OpenSearch-ben:

curl -u doadmin:your_password -X GET "http://<OpenSearch-Hostname>:25060/nginx-logs-*/_search?pretty"

Csere:

  • OpenSearch-Hostname az OpenSearch szerver gazdagépnevével.
  • az OpenSearch jelszavával

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.

Következtetés

Ebben az útmutatóban megtanulta, hogyan kell beállítani a Logstash-t az Nginx-naplók összegyűjtésére és az OpenSearch felé történő továbbítására.

Áttekintette, hogyan használhatja az apt vagy a yum csomagkezelőket a Linux-disztribúciótól függően a Logstash üzembe helyezéséhez és futtatásához a Dropletén. Létrehozta és beállította a Logstash konfigurációs fájlt is, hogy megbizonyosodjon arról, hogy az Nginx-naplók megfelelően vannak értelmezve és elküldve az OpenSearch-nek. Ezután beállít egy indexmintát az OpenSearch irányítópultjain annak ellenőrzésére, hogy a naplók megfelelően vannak-e indexelve, és láthatóak-e az elemzéshez. Ha ezek a lépések elkészültek, akkor most már rendelkeznie kell egy működő beállítással, amelyben a Logstash összegyűjti az Nginx-naplókat, és elküldi az OpenSearch-nek. Ez a beállítás lehetővé teszi az OpenSearch hatékony keresési és megjelenítési eszközeinek használatát a szervernaplók elemzéséhez.

Ha bármilyen problémába ütközik, tekintse meg az általunk adott hibaelhárítási tippeket, és további segítségért tekintse meg a Logstash és az OpenSearch dokumentációját. A rendszeres ellenőrzés biztosítja a naplózási rendszer zökkenőmentes és hatékony működését.

Kapcsolódó cikkek: