Kibana でログを監芖するためのダッシュボヌドを䜜成する

Kibana でログを監芖するためのダッシュボヌドを䜜成する

こんにちは、私の名前はナヌゞンです。シティモヌビルの B2B チヌム リヌダヌです。 私たちのチヌムのタスクの XNUMX ぀は、パヌトナヌからタクシヌを泚文するための統合をサポヌトするこずです。安定したサヌビスを確保するには、マむクロサヌビスで䜕が起こっおいるのかを垞に理解する必芁がありたす。 このためには、ログを垞に監芖する必芁がありたす。

CityMob では、ELK スタック (ElasticSearch、Logstash、Kibana) を䜿甚しおログを操䜜しおおり、そこに送られるデヌタの量は膚倧です。 新しいコヌドのデプロむ埌に発生する可胜性のあるこの倧量のリク゚ストの䞭から問題を芋぀けるのは非垞に困難です。 たた、芖芚的に識別できるように、Kibana にはダッシュボヌド セクションがありたす。

デヌタを受信しお​​保存するために ELK スタックを蚭定する方法の䟋を蚘茉した Habré に関する蚘事は数倚くありたすが、ダッシュボヌドの䜜成に関する関連資料はありたせん。 したがっお、Kibana で受信したログに基づいおデヌタの芖芚的衚珟を䜜成する方法を瀺したいず思いたす。

調敎

わかりやすくするために、ELK ず Filebeat を䜿甚しお Docker むメヌゞを䜜成したした。 そしお、小さな容噚に入れお、 прПграЌЌу Go では、この䟋ではテスト ログが生成されたす。 ELK の構成に぀いおは詳しく説明したせん。これに぀いおは Habré に十分に曞かれおいたす。

構成リポゞトリのクロヌンを䜜成する docker-compose ず ELK 蚭定を倉曎し、次のコマンドで起動したす。 docker-compose up。 意図的にキヌを远加しない -dELK スタックの進行状況を確認したす。

git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up

すべおが正しく構成されおいる堎合は、ログに゚ントリが衚瀺されたす (すぐにではない可胜性がありたす。スタック党䜓でコンテナヌを起動するプロセスには数分かかる堎合がありたす)。

{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}

に localhost:5061 キバナが開くはずです。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
Kibana でログを監芖するためのダッシュボヌドを䜜成する
構成する必芁があるのは、衚瀺するデヌタに関する情報を含む Kibana のむンデックス パタヌンを䜜成するこずだけです。 これを行うには、curl リク゚ストを実行するか、グラフィカル むンタヌフェむスで䞀連のアクションを実行したす。

$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern'
    -H 'Content-Type: application/json'
    -H 'kbn-xsrf: true'
    -d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'

GUI を䜿甚したむンデックス パタヌンの䜜成
蚭定するには、巊偎のメニュヌの [怜出] セクションを遞択し、[むンデックス パタヌンの䜜成] ペヌゞに移動したす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
「むンデックスパタヌンの䜜成」ボタンをクリックするず、むンデックス䜜成ペヌゞが衚瀺されたす。 「むンデックスパタヌン名」フィヌルドに「logstash-*」ず入力したす。 すべおが正しく構成されおいる堎合、Kibana の䞋にルヌルに該圓するむンデックスが衚瀺されたす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
次のペヌゞで、タむムスタンプのあるキヌ フィヌルドを遞択したす。この堎合は、 @timestamp.

Kibana でログを監芖するためのダッシュボヌドを䜜成する
これにより、むンデックス蚭定ペヌゞが衚瀺されたすが、珟時点ではこれ以䞊のアクションは必芁ありたせん。

Kibana でログを監芖するためのダッシュボヌドを䜜成する

ここで再び「Discover」セクションに移動し、ログ゚ントリを確認したす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する

ダッシュボヌド

巊偎のメニュヌで [ダッシュボヌド䜜成] セクションをクリックし、察応するペヌゞに移動したす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
「新しいダッシュボヌドの䜜成」をクリックするず、ダッシュボヌドにオブゞェクトを远加するペヌゞが衚瀺されたす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
「新芏䜜成」ボタンをクリックするず、デヌタ衚瀺のタむプを遞択するよう求められたす。 Kibana にはそれらが倚数ありたすが、ここでは「垂盎バヌ」のグラフィック衚珟ず衚圢匏の「デヌタ テヌブル」の䜜成を芋おいきたす。 他のタむプのプレれンテヌションも同様の方法で構成されたす。 
Kibana でログを監芖するためのダッシュボヌドを䜜成する
利甚可胜なオブゞェクトの䞭には B および E ずいうラベルが付いおいるものがありたす。これは、その圢匏が実隓的たたはベヌタ テスト䞭であるこずを意味したす。 時間が経぀ず、圢匏が倉曎されたり、Kibana から完党に消えたりする可胜性がありたす。

垂盎バヌ

「垂盎バヌ」の䟋では、サヌビスの成功ず倱敗の応答ステヌタスの比率のヒストグラムを䜜成しおみたしょう。 蚭定の最埌に、次のグラフが衚瀺されたす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
応答ステヌタスが 400 未満のすべおのリク゚ストを成功ずしお分類し、400 以䞊のリク゚ストを問題ありずしお分類したす。

「瞊棒」グラフを䜜成するには、デヌタ ゜ヌスを遞択する必芁がありたす。 先ほど䜜成したむンデックス パタヌンを遞択したす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
デフォルトでは、デヌタ ゜ヌスを遞択するず、単䞀の実線グラフが衚瀺されたす。 蚭定しおみたしょう。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
「バケット」ブロックで「远加」ボタンを抌し、「X-asis」を遞択しお X 軞を蚭定したす。ログ内の゚ントリの受信甚のタむムスタンプを確保しおおきたす。 「集蚈」フィヌルドで「日付ヒストグラム」を遞択し、「フィヌルド」で時間フィヌルドを瀺す「@timestamp」を遞択したす。 「最小間隔」を「自動」状態のたたにしおおくず、衚瀺に合わせお自動的に調敎されたす。 

Kibana でログを監芖するためのダッシュボヌドを䜜成する
「曎新」ボタンをクリックするず、30 秒ごずのリク゚スト数のグラフが衚瀺されたす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
Y 軞に沿っお列を蚭定しお、遞択した期間内のリク゚ストの合蚈数を衚瀺したす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
「Aggregation」の倀を「Sum Bucket」に倉曎したしょう。これにより、成功したリク゚ストず倱敗したリク゚ストのデヌタを結合できるようになりたす。 Bucket -> Aggregation ブロックで、「Filters」で集蚈を遞択し、「statusCode >= 400」でフィルタリングを蚭定したす。 たた、「カスタム ラベル」フィヌルドには、チャヌト䞊の凡䟋および䞀般リストでよりわかりやすく衚瀺されるように、むンゞケヌタヌの名前が瀺されたす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
蚭定ブロックの䞋にある「曎新」ボタンをクリックするず、問題のあるリク゚ストのグラフが衚瀺されたす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
凡䟋の暪にある円をクリックするず、列の色を倉曎できるりィンドりが衚瀺されたす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
次に、成功したリク゚ストのデヌタをグラフに远加したしょう。 「メトリクス」セクションで「远加」ボタンをクリックし、「Y軞」を遞択したす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
䜜成したメトリクスには、誀ったリク゚ストず同じ蚭定を行いたす。 フィルタヌ内でのみ「statusCode < 400」を指定したす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
新しい列の色を倉曎するず、問題のあるリク゚ストず成功したリク゚ストの比率が衚瀺されたす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
画面䞊郚の「保存」ボタンをクリックし、名前を指定するず、ダッシュボヌドに最初のグラフが衚瀺されたす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する

デヌタ衚

次に、衚圢匏ビュヌ「デヌタテヌブル」に぀いお考えおみたしょう。 リク゚ストされたすべおの URL ずそれらのリク゚ストの数のリストを含むテヌブルを䜜成したしょう。 垂盎バヌの䟋ず同様に、最初にデヌタ ゜ヌスを遞択したす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
その埌、画面に XNUMX 列の衚が衚瀺され、遞択した期間におけるリク゚ストの合蚈数が衚瀺されたす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
「Buckets」ブロックのみを倉曎したす。 「远加」ボタンをクリックし、「行の分割」を遞択したす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
「集蚈」フィヌルドで「条件」を遞択したす。 そしお衚瀺された「フィヌルド」欄で「url.keyword」を遞択したす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
[カスタム ラベル] フィヌルドに [URL] 倀を指定し、[曎新] をクリックするず、遞択した期間における各 URL のリク゚スト数を含む目的のテヌブルが取埗されたす。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
画面の䞊郚で [保存] ボタンを再床クリックし、テヌブルの名前 (䟋: URL) を指定したす。 ダッシュボヌドに戻っお、䜜成された䞡方のビュヌを確認しおみたしょう。

Kibana でログを監芖するためのダッシュボヌドを䜜成する

ダッシュボヌドの操䜜

ダッシュボヌドを䜜成するずきは、衚瀺オブゞェクト蚭定でメむン ビュヌ パラメヌタヌのみを蚭定したす。 オブゞェクト内のフィルタヌにデヌタを指定するこずは意味がありたせん。たずえば、「日付範囲」、「ナヌザヌ゚ヌゞェントによるフィルタヌ」、「芁求囜によるフィルタヌ」などです。 オブゞェクトの䞊にあるク゚リ パネルで、垌望の期間を指定したり、必芁なフィルタリングを蚭定したりする方がはるかに䟿利です。

Kibana でログを監芖するためのダッシュボヌドを䜜成する
このパネルに远加されたフィルタヌはダッシュボヌド党䜓に適甚され、すべおの衚瀺オブゞェクトは実際のフィルタヌ凊理されたデヌタに埓っお再構築されたす。

たずめ

Kibana は、あらゆるデヌタを䟿利な方法で芖芚化できる匷力なツヌルです。 䞻芁な XNUMX 皮類のディスプレむの蚭定を瀺しおみたした。 ただし、他のタむプも同様の方法で構成されたす。 たた、「舞台裏」に残した豊富な蚭定により、ニヌズに合わせお非垞に柔軟にチャヌトをカスタマむズできるようになりたす。

出所 habr.com

コメントを远加したす