# Data APIサーバーのログを監視

利用対象...

* Cloud API Services Platform
* Cloud Big Data
* Cloud Big Data Platform
* Cloud Data Fabric
* Cloud Data Integration
* Cloud Data Management Platform
* Cloud Pipeline Designer Standard Edition
* Data Fabric

Remote Engine Gen2のData APIサーバーのログはデフォルトで公開されており、docker logsコマンドで消費できます。

ログはjson形式で、デフォルトのECS(Elastic Common Schema)パターンに従っています。ローのJSON構造の行を読んでもあまり意味がないので、ログ管理プラットフォームにログを取り込ませてインデックス化すれば、より簡単に可視化できるようになります。

このドキュメンテーションでは、ELK ([Elasticsearch、Logstash、Kibana](https://www.elastic.co/fr/what-is/elk-stack))プラットフォームを使ってdataset-api-serverのログを取得して可視化する方法を紹介します。

![Data APIサーバーログのアーキテクチャー図。](https://help.qlik.com/talend/ja-JP/data-inventory-user-guide/Resources/images/regen2_api_logging.png)

dataset-api-serverコンテナーにはさまざまな種類のログが記録されます。

* OData APIのアクセスログ。検索フィールドで/apisフィルターを使えば、アクセスのログのみフィルタリングできます。
* コンテナーが本当に稼働しているかどうかをDockerが判断するためのプローブ。検索フィールドで/environmentフィルターを使えば、プローブのログのみフィルタリングできます。
* Data APIバックエンドとの同期ログ。検索フィールドで/synchronizationフィルターを使えば、同期のログのみフィルタリングできます。

## 始める前に

docker-compose.ymlファイルで、filebeat-ingestプロパティがtrueに設定されていることを確認します。これによってデフォルトでログが公開されるようになります。

```
dataset-api-server:
[...]
  labels:
    autoheal: 'true'
    filebeat_ingest: 'true' # Send container logs to ELK
```

## ELKスタック

このドキュメンテーションでは、ELKスタック全体がRemote Engine Gen2と同じマシンで独自のDockerマルチコンテナーアプリケーション内で実行されているものと想定しています。また、同じくElastic社が開発したFilebeatという別のコンポーネントによってRemote Engine Gen2からログが読み取られ、ELKスタックにプッシュされます。

このドキュメンテーションはELKスタックのバージョン7.7.0を基にしています。

ドキュメンテーションページの[Downloads] (ダウンロード)タブから、必要なファイル一式が含まれているapi-server-monitoring.zipアーカイブを取得します。

1. お好きな場所でapi-server-monitoring.zipアーカイブを解凍します。
2. メインディレクトリーでdocker-compose up -dコマンドを実行します。
3. [http://localhost:5601](http://localhost:5601/)というURLにアクセスします。
4. [Management] (管理) &gt; Kibana &gt; [Index Patterns] (インデックスパターン)に移動し、filebeat-\*というKibanaインデックスパターンを作成します。時刻には@timestampを使います。
5. dataset-apis-serverのログは、http://localhost:5601/app/kibana#/discoverにあるKibanaのDiscoverセクションで確認できます。

ELKスタックを停止したい場合は、メインディレクトリーでdocker-compose down -vコマンドを実行します。

## ログをフィルタリングおよび検索

dataset-api-serverコンテナーにはさまざまな種類のログが記録されます。

* OData APIのアクセスログ。検索フィールドで/apisフィルターを使えば、アクセスのログのみフィルタリングできます。

* コンテナーが本当に稼働しているかどうかをDockerが判断するためのプローブ。検索フィールドで/environmentフィルターを使えば、プローブのログのみフィルタリングできます。

* Data APIバックエンドとの同期ログ。検索フィールドで/synchronizationフィルターを使えば、同期のログのみフィルタリングできます。

* ログに記録されたデータをKibanaで直接視覚化する方法を設定します。

  たとえば潜在的なエラー、重大度、対応するタイムスタンプに関する情報を表示して強調するようカラムをソートできます。

### このセクション内

* [ELKサービスを設定](https://help.qlik.com/talend/ja-JP/data-inventory-user-guide/Cloud/configuring-elk-services)