Tipps und Tricks zum Konvertieren unstrukturierter Daten aus Protokollen in ELK Stack mithilfe von GROK in LogStash

Strukturierung unstrukturierter Daten mit GROK



Wenn Sie den Elastic Stack (ELK) verwenden und daran interessiert sind, benutzerdefinierte Logstash-Protokolle Elasticsearch zuzuordnen, ist dieser Beitrag genau das Richtige fĂĽr Sie.





ELK Stack ist eine AbkĂĽrzung fĂĽr drei Open Source-Projekte: Elasticsearch, Logstash und Kibana. Zusammen bilden sie eine Protokollverwaltungsplattform.



  • Elasticsearch ist eine Such- und Analyse-Engine.
  • Logstash ist eine serverseitige Datenverarbeitungspipeline, die Daten aus mehreren Quellen gleichzeitig entnimmt, transformiert und dann an einen Cache wie Elasticsearch sendet.
  • Mit Kibana können Benutzer Daten mithilfe von Diagrammen und Grafiken in Elasticsearch visualisieren.


Beats kamen später und sind ein leichter Datenversender. Die Einführung von Beats hat Elk Stack in Elastic Stack verwandelt, aber darum geht es nicht.



Grok, Logstash, , . Logstash Elasticsearch.





Grok- Logstash, - . (regex) .



, Grok , .



Grok





Grok, Logstash Elasticsearch Kibana, .



, . , .





localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0


, , , .



, , , API. .





  • ​ localhost == environment
  • ​ GET == method
  • ​ /v2/applink/5c2f4bb3e9fda1234edc64d == url
  • ​ 400 == response_status
  • ​ 46ms == response_time
  • ​ 5bc6e716b5d6cb35fc9687c0 == user_id


, . – . .



Grok



Grok



Logstash 100 . , , apache, linux, haproxy, aws .



, , ? Grok.



Grok



, Grok. Grok Debugger Grok Patterns.



, Grok : %{SYNTAX:SEMANTIC}



, , Discover Grok. , , Grok, , .





, Grok, , Github Elastic.





, - , .





Grok https://grokdebug.herokuapp.com/



:



localhost GET /v2/applink/5c2f4bb3e9fda1234edc64d 400 46ms 5bc6e716b5d6cb35fc9687c0


Pattern:



%{WORD:environment} %{WORD:method} %{URIPATH:url} %{NUMBER:response_status} %{WORD:response_time} %{USERNAME:user_id}




{
  "environment": [
    [
      "localhost"
    ]
  ],
  "method": [
    [
      "GET"
    ]
  ],
  "url": [
    [
      "/v2/applink/5c2f4bb3e9fda1234edc64d"
    ]
  ],
  "response_status": [
    [
      "400"
    ]
  ],
  "BASE10NUM": [
    [
      "400"
    ]
  ],
  "response_time": [
    [
      "46ms"
    ]
  ],
  "user_id": [
    [
      "5bc6e716b5d6cb35fc9687c0"
    ]
  ]
}


Grok , — Logstash.



Logstash.conf



, ELK, Logstash:



sudo vi /etc/logstash/conf.d/logstash.conf


.



input { 
  file {
    path => "/your_logs/*.log"
  }
}
filter{
  grok {
    match => { "message" => "%{WORD:environment} %{WORD:method} %{URIPATH:url} %{NUMBER:response_status} %{WORD:response_time} %{USERNAME:user_id}"}
  }
}
output {
  elasticsearch {
    hosts => [ "localhost:9200" ]
  }
}


Logstash , , .



sudo service logstash restart
sudo service logstash status


, , , Elasticsearch Logstash Kibana!





Grok !





, , Grok Elasticsearch. . , , , url-.



Versuchen Sie, Grok-Ausdrücken eine Chance zu geben! Wenn Sie eine andere Möglichkeit haben oder Probleme mit den obigen Beispielen haben, schreiben Sie einfach einen Kommentar unten, um mich zu informieren.



Vielen Dank fĂĽrs Lesen - und folgen Sie mir hier auf Medium, um weitere interessante Artikel zur Softwareentwicklung zu erhalten!



Ressourcen

https://www.elastic.co/blog/do-you-grok-grok

https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns

https://grokdebug.herokuapp.com/



PS Link zur Quelle



Elasticsearch- Telegrammkanal




All Articles