Kibanaを使ったデータの閲覧

2018年5月24日(木)
石井 葵
【誰でも簡単にログ分析!OSSのBIツールElastic Stack解説書!】 株式会社インプレスR&Dより発行された「Elastic Stackで作るBI環境 誰でもできるデータ分析入門」の立ち読みコーナー第5回です

Discoverでログを閲覧する

 では、実際にログを閲覧してみましょう。まずはDiscover基本的な使い方から説明します。

各ボタンの意味

 画面左上の「Discover」を選択し、Discover画面を開きましょう。画面左上では、現在何件のデータが取得されているのか表示されます。その下にある白い枠の中にデータの検索条件を入力し、Enterキーか虫眼鏡マークをクリックすると検索を行うことができます。検索条件の具体的な記法は後ほど解説します。

データ数表示と検索条件記入欄

 デフォルトは直近15分の間でElasticsearch内に保存されたデータが表示されます。データが何もない場合、Not results foundと表示されます。データがある場合はX軸:時間・Y軸:データ件数の棒グラフと、実際にElasticsearchに取り込またデータが表示されます。

Elasticsearchにデータがある場合のDiscover画面

Elasticsearchにデータがない場合のDiscover画面

 データが閲覧できない場合、画面右上から表示する時間を調整し、データが存在すると思われる時間に検索期間を変更します。それでもデータがない場合、LogstashやBeatsが起動しているか確認しましょう。

データの検索期間を変更する

 Discover画面の右上を見て下さい。時計マークの隣に"Last 15 minutes"と記載されています。つまり、今Kibanaに表示されているログは全て過去15分間のログのみとなります。

Kibanaで表示しているログの検索期間

 このままだと直近15分のログしか閲覧することができません。そこで、"Last 15 minutes"にマウスを合わせてクリックします。

Quickを使って検索期間を変更

Quickで時刻を選択

 すると、検索時間を選択できるようになります。試しに「Last 7 days」をクリックしてみましょう。

Quickで1週間分のデータを検索する

 検索期間が広がったのがわかるでしょうか。Quickからはこのように、ざっくりとした検索期間を指定することが可能です。他にも検索期間を指定する方法はいくつかあります。

Relativeを使って検索期間を変更

 Relativeでは、「〇〇分前」というような検索期間の指定ができます。時間の単位をプルダウンから選択し、遡りたい期間を数字で入力します。Goボタンをクリックすることで

指定した条件で再検索することができます。バージョン5.4からは「Set to Now」をクリックすると、今の時刻=0秒(分など単位は様々です)前を指定することができるようになりました。

Relativeで1時間前から現在までのデータを表示するよう設定

 時刻の単位を入力する箇所の下にある「round to the hour」にチェックを入れると、細かい単位の数値を切り捨てることができます。切り捨てる単位はプルダウンで指定している時間の範囲によって変動します。

Relativeで1時間前から現在までのデータを表示するよう設定(round to the hourにチェックを入れた場合)

Absoluteを使って検索期間を変更

 またはAbsoluteを使うことで、カレンダー機能を使って検索範囲を指定することも可能です。Absoluteをクリックすると、カレンダーが表示されます。検索を始めたい期間と終わりの期間を数字で入力するか、カレンダーからクリックして選択します。Goボタンを押すことで検索を開始することが可能です。「Set to Now」をクリックすると、現在の時間に検索終了期間を合わせることができます。

 Kibana5.4からはFromの期間でも「Set to Now」を使用することができます。

Absoluteで時刻を選択

Discover画面でログを詳しく閲覧しよう

ログの詳細を表示する

 ただ単にDiscover画面を表示するとわかりますが、実際の生データの詳細は折りたたまれています。これではせっかく取り込みをしたログを全部表示することができません。ログの左横にある三角マーク(丸がついている部分)をクリックすると、ログの全量が表示されます。

デフォルトのログ表示方式

三角マーククリック後

ログの傾向を閲覧する

 では、今度はログの傾向を閲覧してみましょう。Kibanaの左側にあるInsuranceを利用します。このInsuranceは直近500件分のログを分析し、各fieldに入っているデータがどのくらい同じなのか割合で示すことができます。

 内訳を閲覧したいfield名にマウスを合わせてクリックすることで、直近500件分のログがどのような割合になっているかを視覚的にもわかりやすく閲覧することができます。

 データの内訳を表示した状態で「Visualize」をクリックすると、データの内訳をそのまま棒グラフとして閲覧することができます。そのままグラフを保存することも可能です。

Insurance画面の例

Insuranceでfield内のデータを閲覧する

InsuranceのVisualizeをクリックした後の画面

虫眼鏡を使って特定のデータのみ選択する&除外する

 各データの横、またはInsuranceの内訳画面にある虫眼鏡をクリックすると、特定のデータのみ抜き出して検索することや、逆に特定のデータのみ除外することができます。

虫眼鏡の例(Insurance内の場合)

虫眼鏡の例(生ログを閲覧する場所の場合)

 プラスの虫眼鏡を選択すると「そのデータに一致する条件で」検索することができます。例えばfield名「system.process.username」(そのプロセスを動かしているOSユーザー名)が「ntp」のもの「だけ」検索したい場合はntpのすぐ横にあるプラスの虫眼鏡をクリックします。画面キャプチャではInsuranceから虫眼鏡を選択した場合を具体例として扱っていますが、実データからクリックしても同じ挙動となります。

field名「system.process.username」が「ntp」のものだけ表示する

虫眼鏡のプラスボタンをクリックした結果

虫眼鏡のプラスボタンをクリックした結果(Insurance)

 逆にマイナスの虫眼鏡では「そのデータに一致しない条件で」検索することができます。例えばfield名「system.process.username」が「root」のものを「除外して」検索したい場合はrootのすぐ横にあるマイナスの虫眼鏡をクリックします。

field名「system.process.username」が「root」のものを除外する

虫眼鏡のマイナスボタンをクリックした結果

虫眼鏡のマイナスボタンをクリックした結果(Insurance)

 検索条件を指定すると、Discover上部に枠が表示されます。虫眼鏡でデータの検索を行う状態を解除したい場合、表示されている枠内の□をクリックして一時的に虫眼鏡の効果を外す(画面キャプチャ:虫眼鏡の効果を一時的に解除する)か、ゴミ箱マークをクリック(画面キャプチャ:虫眼鏡の効果を解除する)して検索条件ごと消してしまえば良いです。また、枠内の虫眼鏡マークを選択(画面キャプチャ:プラスとマイナスの切り替え)することで、プラスとマイナスを切り替えることも可能です。

虫眼鏡の効果を一時的に解除する

虫眼鏡の効果を解除する

プラスとマイナスの切り替え

自分で検索してみよう

 ある程度はKibanaの機能を使って取得したい情報を絞ることができますが、自分で検索条件を指定してデータを絞りたいときもあります。特にグラフを作成する場合、あらかじめ検索条件でデータ量を指定しないと余計な情報までグラフに表示されてしまいます。

条件に一致するものを取り出す

 field名を指定し、その後field内のデータを指定する方法をとります。例えばfield名「system.process.username」が「root」と記載されている情報に絞ってログを取得したい場合、検索条件は下記のようになります。

system.process.usernameがrootのものだけ検索

system.process.username:root
検索条件の指定後

 内訳をみると、検索条件通りのログが残っていることがわかります。field名は完全一致で記載する必要がありますが、「〇〇を含む」のような条件指定が実現できます。

条件に一致しないものを取り出す

 今度は条件に一致しないものは件数としてカウントされないようにしましょう。例えば「system.process.username」が「root」と記載されている情報は除外してログを取得したい場合、field名の頭にマイナスをつけます。マイナスは半角で記載します。

system.process.usernameがrootのものを除外して検索

-system.process.username:root

複数検索条件を指定する

 KibanaではGoogle検索のように、検索条件を複数指定することができます。ただしGoogleとは違い、複数の条件指定は明示的に行う必要があります。

AかつBの場合を検索する

 この場合、検索条件をANDで繋いで指定します。1つのログにAとBの条件に当てはまるものが対象となります。例えばfield名「system.process.username」が「root」に一致するかつ、field名「system.process.state」が「sleaping」に一致する情報を取得したい場合、検索条件は下記のようになります。

system.process.usernameがrootのものかつsystem.process.stateがsleapingのものを検索

system.process.username:root AND system.process.state:sleaping

 逆にfield名「system.process.username」が「root」に一致するかつ、field名「system.process.state」が「sleaping」に一致しない情報を取得したい場合、検索条件にANDを指定する必要はありません。理由はマイナスがANDと同じ役割を果たすためです。実際の書き方は下記のようになります。

system.process.usernameがrootのものかつsystem.process.stateがsleapingではないものを検索

system.process.username:root AND system.process.state:sleaping

AまたはBの場合を検索する

 この場合、検索条件をORで繋いで指定します。AまたはBの条件に当てはまるログ全てが検索対象となります。例えばfield名「system.process.username」が「root」に一致するまたは、field名「system.process.state」が「sleaping」にする情報を取得したい場合、検索条件は下記のようになります。

system.process.usernameがrootのものまたはsystem.process.stateがsleapingのものを検索

system.process.username:root OR system.process.state:sleaping

 field名「system.process.username」が「root」に一致するかつ、field名「system.process.state」が「sleaping」に一致しない情報を取得したい場合、一致しない条件のものを最初に記載し、一致する条件はORの後に続けて記載します。実際の書き方は下記のようになります。

system.process.usernameがrootのものまたはsystem.process.stateがsleapingではないものを検索

-system.process.state:sleaping OR system.process.username:root

検索条件を保存しよう

 「色々検索したけれど、これを毎回設定するのはめんどくさいね…。使い回しはできないのかな?」

 もふもふちゃんの言う通り、毎回検索を行うのは面倒ですね。Kibanaは検索条件を保存することができます。画面右上のSaveアイコンをクリックすると、名前を入れる欄が出てきます。New Saved Searchに好きな名前を入れて青いSaveボタンを押しましょう。

検索条件を保存する画面を呼び出す

検索条件名を入力

 保存できた後はNewボタンを押して、一旦検索条件を指定していない状態に戻してみます。その後、先ほど保存した検索条件を再度指定してみましょう。Openボタンをクリックします。保存している検索条件が出てくるので、呼び出したい検索条件の名前を選択します。

検索条件をリセット

保存した検索条件を呼び出す

検索条件を選択する

 同じ名前で検索条件の詳細をアップデートしたい場合、条件を書き変えて検索を実行した後、Saveボタンから同じ検索条件を指定することで上書き保存できます。

 次は、今まで出てきた検索方法を駆使しつつ、Kibanaのグラフを作成してみましょう。

Elasticsearch、Kibana、Logstashを使用したデータ分析基盤の設計・構築をメインに行なうインフラエンジニアだったが、最近配属が変わって新卒なエンジニアの教育を実施している。新卒エンジニアと一緒にプログラミングやアプリケーション開発手法を学ぶ日々を過ごしている。

連載バックナンバー

運用・管理書籍・書評
第8回

トラブルシューティング

2018/6/14
【誰でも簡単にログ分析!OSSのBIツールElastic Stack解説書!】 株式会社インプレスR&Dより発行された「Elastic Stackで作るBI環境 誰でもできるデータ分析入門」の立ち読みコーナー第8回です
運用・管理書籍・書評
第7回

Dashboard画面を使ってグラフを一覧表示する

2018/6/7
【誰でも簡単にログ分析!OSSのBIツールElastic Stack解説書!】 株式会社インプレスR&Dより発行された「Elastic Stackで作るBI環境 誰でもできるデータ分析入門」の立ち読みコーナー第7回です。
運用・管理書籍・書評
第6回

Visualize画面でデータを可視化する

2018/5/31
【誰でも簡単にログ分析!OSSのBIツールElastic Stack解説書!】 株式会社インプレスR&Dより発行された「Elastic Stackで作るBI環境 誰でもできるデータ分析入門」の立ち読みコーナー第6回です。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています