Trucs et astuces pour convertir les données non structurées des journaux vers ELK Stack à l'aide de GROK dans LogStash

Structurer des données non structurées avec GROK



Si vous utilisez la pile Elastic (ELK) et que vous souhaitez mapper des journaux Logstash personnalisés à Elasticsearch, cet article est pour vous.





ELK Stack est l'abréviation de trois projets open source: Elasticsearch, Logstash et Kibana. Ensemble, ils forment une plate-forme de gestion des journaux.



  • Elasticsearch est un moteur de recherche et d'analyse.
  • Logstash est un pipeline de traitement de donnĂ©es cĂ´tĂ© serveur qui prend des donnĂ©es de plusieurs sources en mĂŞme temps, les transforme, puis les envoie vers un cache comme Elasticsearch.
  • Kibana permet aux utilisateurs de visualiser les donnĂ©es Ă  l'aide de graphiques et de graphiques dans Elasticsearch.


Beats est arrivé plus tard et est un expéditeur de données léger. L'introduction de Beats a transformé Elk Stack en Elastic Stack, mais ce n'est pas le but.



Cet article se concentre sur Grok, qui est une fonctionnalité de Logstash qui peut transformer vos journaux avant qu'ils ne soient envoyés dans la cachette. Pour nos besoins, je ne parlerai que du traitement des données de Logstash vers 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-.



Essayez de donner une chance aux expressions Grok! Si vous avez une autre façon de faire cela, ou avez des problèmes avec les exemples ci-dessus, écrivez simplement un commentaire ci-dessous pour me le faire savoir.



Merci d'avoir lu - et suivez-moi ici sur Medium pour des articles plus intéressants sur le génie logiciel!



Ressources

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/



Lien PS vers la source



Chaîne Telegram Elasticsearch




All Articles