GROKを使用した非構造化データの構造化
Elasticスタック(ELK)を使用していて、カスタムLogstashログをElasticsearchにマッピングすることに関心がある場合は、この投稿が役立ちます。
ELKスタックは、Elasticsearch、Logstash、Kibanaの3つのオープンソースプロジェクトの略語です。一緒にログ管理プラットフォームを形成します。
- Elasticsearchは、検索および分析エンジンです。
- Logstashはサーバー側のデータ処理パイプラインであり、複数のソースから同時にデータを取得して変換し、Elasticsearchなどのキャッシュに送信します。
- Kibanaを使用すると、Elasticsearchのチャートとグラフを使用してデータを視覚化できます。
Beatsは後で登場し、軽量のデータシッパーです。Beatsの導入によりElk StackがElastic Stackに変わりましたが、それが目的ではありません。
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-.
Grok式を試してみてください!これを行う別の方法がある場合、または上記の例に問題がある場合は、下にコメントを書いてお知らせください。
読んでくれてありがとう-さらに興味深いソフトウェアエンジニアリングの記事については、Mediumで私をフォローしてください!
Elasticsearch Telegramチャネル