Logstash - zbieranie dzienników

Dzienniki z różnych serwerów lub źródeł danych są gromadzone przez spedytorów. Nadawca to instancja Logstash zainstalowana na serwerze, która uzyskuje dostęp do dzienników serwera i wysyła je do określonej lokalizacji wyjściowej.

Głównie wysyła dane wyjściowe do Elasticsearch w celu przechowywania. Logstash pobiera dane wejściowe z następujących źródeł -

  • STDIN
  • Syslog
  • Files
  • TCP/UDP
  • Dzienniki zdarzeń Microsoft Windows
  • Websocket
  • Zeromq
  • Dostosowane rozszerzenia

Zbieranie dzienników za pomocą serwera Apache Tomcat 7

W tym przykładzie zbieramy dzienniki serwera Apache Tomcat 7 zainstalowanego w systemie Windows za pomocą wtyczki do wprowadzania plików i wysyłamy je do innego dziennika.

logstash.conf

Tutaj Logstash jest skonfigurowany do uzyskiwania dostępu do dziennika dostępu Apache Tomcat 7 zainstalowanego lokalnie. Wzorzec wyrażenia regularnego jest używany do ustawiania ścieżki wtyczki pliku w celu pobrania danych z pliku dziennika. Zawiera „access” w swojej nazwie i dodaje typ Apache, który pomaga w odróżnieniu zdarzeń Apache od innych w scentralizowanym źródle docelowym. Na koniec zdarzenia wyjściowe zostaną pokazane w output.log.

input {
   file {
      path => "C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/*access*"
      type => "apache"
   }
} 
output {
   file {
      path => "C:/tpwork/logstash/bin/log/output.log"
   }
}

Uruchom Logstash

Możemy uruchomić Logstash za pomocą następującego polecenia.

C:\logstash\bin> logstash –f  Logstash.conf

Dziennik Apache Tomcat

Uzyskaj dostęp do serwera Apache Tomcat i jego aplikacji internetowych (http://localhost:8080) do generowania dzienników. Zaktualizowane dane w dziennikach są odczytywane przez Logstash w czasie rzeczywistym i przechowywane w pliku output.log, jak określono w pliku konfiguracyjnym.

Apache Tomcat generuje nowy plik dziennika dostępu zgodnie z datą i rejestruje w nim zdarzenia dostępu. W naszym przypadku był to localhost_access_log.2016-12-24.txt w plikulogs katalog Apache Tomcat.

0:0:0:0:0:0:0:1 - - [
   25/Dec/2016:18:37:00 +0800] "GET / HTTP/1.1" 200 11418
0:0:0:0:0:0:0:1 - munish [
   25/Dec/2016:18:37:02 +0800] "GET /manager/html HTTP/1.1" 200 17472
0:0:0:0:0:0:0:1 - - [
   25/Dec/2016:18:37:08 +0800] "GET /docs/ HTTP/1.1" 200 19373
0:0:0:0:0:0:0:1 - - [
   25/Dec/2016:18:37:10 +0800] "GET /docs/introduction.html HTTP/1.1" 200 15399

output.log

Możesz zobaczyć w zdarzeniach wyjściowych, pole typu jest dodane, a zdarzenie jest obecne w polu wiadomości.

{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   localhost_access_log.2016-12-25.txt",
   "@timestamp":"2016-12-25T10:37:00.363Z","@version":"1","host":"Dell-PC",
   "message":"0:0:0:0:0:0:0:1 - - [25/Dec/2016:18:37:00 +0800] \"GET /
   HTTP/1.1\" 200 11418\r","type":"apache","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   localhost_access_log.2016-12-25.txt","@timestamp":"2016-12-25T10:37:10.407Z",
   "@version":"1","host":"Dell-PC",
   "message":"0:0:0:0:0:0:0:1 - munish [25/Dec/2016:18:37:02 +0800] \"GET /
   manager/html HTTP/1.1\" 200 17472\r","type":"apache","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   localhost_access_log.2016-12-25.txt","@timestamp":"2016-12-25T10:37:10.407Z",
   "@version":"1","host":"Dell-PC",
   "message":"0:0:0:0:0:0:0:1 - - [25/Dec/2016:18:37:08 +0800] \"GET /docs/
   HTTP/1.1\" 200 19373\r","type":"apache","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   localhost_access_log.2016-12-25.txt","@timestamp":"2016-12-25T10:37:20.436Z",
   "@version":"1","host":"Dell-PC",
   "message":"0:0:0:0:0:0:0:1 - - [25/Dec/2016:18:37:10 +0800] \"GET /docs/
   introduction.html HTTP/1.1\" 200 15399\r","type":"apache","tags":[]
}

Zbieranie dzienników za pomocą wtyczki STDIN

W tej sekcji omówimy kolejny przykład zbierania dzienników przy użyciu STDIN Plugin.

logstash.conf

Jest to bardzo prosty przykład, w którym Logstash odczytuje zdarzenia wprowadzone przez użytkownika na standardowe wejście. W naszym przypadku jest to wiersz poleceń, który przechowuje zdarzenia w pliku output.log.

input {
   stdin{}
}
output {
   file {
      path => "C:/tpwork/logstash/bin/log/output.log"
   }
}

Uruchom Logstash

Możemy uruchomić Logstash za pomocą następującego polecenia.

C:\logstash\bin> logstash –f  Logstash.conf

Wpisz następujący tekst w wierszu polecenia -

Użytkownik wprowadził następujące dwie linie. Logstash oddziela zdarzenia według ustawienia separatora, a jego domyślną wartością jest „\ n”. Użytkownik może zmienić, zmieniając wartość separatora we wtyczce pliku.

Tutorialspoint.com welcomes you
Simply easy learning

output.log

Poniższy blok kodu przedstawia dane dziennika wyjściowego.

{
   "@timestamp":"2016-12-25T11:41:16.518Z","@version":"1","host":"Dell-PC",
   "message":"tutrialspoint.com welcomes you\r","tags":[]
}
{
   "@timestamp":"2016-12-25T11:41:53.396Z","@version":"1","host":"Dell-PC",
   "message":"simply easy learning\r","tags":[]
}