Kibana 6.7.0リリース記念 Logs画面にfilebeat以外で入れたログを出す

# 概要

Kibana6.7.0がリリースされました。
https://www.elastic.co/blog/kibana-6-7-0-released

ここでは、「Logs is now GA」のところに注目して紹介します。

# Logs画面とは

公式サイトの画像をひっぱりますが、こんな画面です。
![](https://www.elastic.co/assets/bltca23470ae4732275/kibana-6-7-0-logs.jpg)

## Discoverの画面と何が違うの？

Logs画面は、tail -fするもの、Discoverは検索結果を表示するViewだと考えると良いと思います。
つまり、リアルタイム（に近しい）ログ表示、スクロールすることによるデータの探し方に特化した画面がLogsだと言えます。


# Logs画面に自分のログを出す

## 例１

![6.7_1.png](https://qiita-image-store.s3.amazonaws.com/0/111676/e39abb31-1a44-c3a2-62d6-1ef87fab2321.png)

GithubのコミットログをIndexに入れた例です。

|項目|値|
|---|----|
|Index名| github |
|コミット時のメッセージ | message |
|タイムスタンプ | timestamp |

Kibanaから見えるようになってはいますが、Logs画面を開いても表示できません。


## Logs画面に出るIndexの指定

デフォルトでは、filebeatから始まるインデックスがLogs画面に出る、と書いてあります。

https://www.elastic.co/guide/en/kibana/current/xpack-logs.html#_configure_data_sources_2

> The filebeat-* index pattern is used to query data by default. If your logs are located in a different set of indices, or use a different timestamp field, you can adjust the source configuration via the user interface or the Kibana configuration file.

「Kibana configuration file」で調整できると書いてあります。
ここでいう設定ファイルは kibana.ymlですね。Dockerだと /usr/share/kibana/config/kibana.yml　です。


## 設定ファイルによる指定

設定項目については、ここを見てください。

https://www.elastic.co/guide/en/kibana/current/logs-ui-settings-kb.html

> xpack.infra.sources.default.logAlias
Index pattern for matching indices that contain log data. Defaults to filebeat-*,kibana_sample_data_logs*.

たしかに、デフォルトではfilebeat-*が入っていますね。

この項目は、kibana.ymlに書くのですが、このファイルをうっかり間違えて編集して保存するとKibana本体が起動しないようになります。
怖いですね。恐ろしいですね。

## UIからの指定

うっかりさんが多かったのか、設定ファイルによる指定ではなく、UIによる設定が6.7.0では取り入れられました。
その方法を紹介しましょう。

### 設定アイコンを選択する

画面上部にある歯車アイコンを選択します。

![6.7_2.png](https://qiita-image-store.s3.amazonaws.com/0/111676/8367fe6e-5fd2-6ac0-0da2-5b29477ac4b3.png)

### Log indicesの指定

「Log indices」の部分に対象としたいIndexを指定します。
**複数設定する場合は、カンマ区切りです**

![6.7_3.png](https://qiita-image-store.s3.amazonaws.com/0/111676/c15266ca-337c-789b-53bd-9b7ed21d6c6b.png)

### Update Sourceを押す

画面下部にある「Update Source」を押下し、保存します。
![6.7_4.png](https://qiita-image-store.s3.amazonaws.com/0/111676/5bca57bc-3c46-f0ae-51db-06393dcb8073.png)


# 私が嵌った点

## timestamp ? `@timestamp`?

改めて、表示したかったGithubのコミットログのデータを見てください。

![6.7_1.png](https://qiita-image-store.s3.amazonaws.com/0/111676/e39abb31-1a44-c3a2-62d6-1ef87fab2321.png)

Tableのところに着目していただくと、timestampと`@timestamp`と同じデータが入っています。
`@timestamp`は、timestampのデータのひっぱってくるscripted fieldになっています。

![6.7_5.png](https://qiita-image-store.s3.amazonaws.com/0/111676/cabd74e4-d465-e9c1-0ddd-ba32087f916f.png)

Scrited Fieldの＠timestampフィールドだと、Logs画面には出ない！

## 時刻フィールドの変更

設定UIでtimestampをつかうように設定を変えてみましょう

![6.7_6.png](https://qiita-image-store.s3.amazonaws.com/0/111676/0848673c-00c8-3f8b-5e97-7acfa1765b16.png)

## すると・・・

Githubのコミット情報がLogs画面に表示されるようになりました。

![6.7_7.png](https://qiita-image-store.s3.amazonaws.com/0/111676/65abe39c-cd7e-34d6-70ec-586cc233fe5e.png)


# 教訓

今回は、timestampと`@timestamp`でしたが、他にも時系列データの日付を表す部分のフィールド名がずれていることで、データがうまく表示されないことがありました。

最近はElastic Common Schemaという形で、共通のスキーマが提唱されています。
https://www.elastic.co/jp/blog/introducing-the-elastic-common-schema

独自のデータソースを取り込むときも、こういう情報をベースに設計をすると良いということですね。


# おまけ

他にも設定値がUIから変更できるようになっています。

「Management」から「Advanced Settings」からスクロールしていただくと、v7系のデザインへの変更ができるようになっています。

![6.7_8.png](https://qiita-image-store.s3.amazonaws.com/0/111676/d1872bd8-c937-1ee1-a9c1-45c1480fd27a.png)

これをOnにしていただくと、v7の画面を体感できます。
初期設定は設定ファイルが便利ですけど、画面から変えられる手軽さは良いですねぇ。v7の感じは以下のとおり。

![6.7_9.png](https://qiita-image-store.s3.amazonaws.com/0/111676/c524b33d-9e74-6e44-1226-dbcdd80f0f81.png)


では、ハッピー弾性ライフを。