チュートリアル: ELK を使用して Service Fabric アプリケーションを監視する
このチュートリアルは、シリーズの第 4 部です。 ここでは、ELK (Elasticsearch、Logstash、Kibana) を使用して、Azure で実行されている Service Fabric アプリケーションを監視する方法について説明します。
シリーズの第 4 部では、次の方法を学習します。
- Azure で ELK サーバーを設定する
- Event Hubs からログを受信するよう Logstash を構成する
- Kibana でプラットフォームとアプリケーションのログを視覚化する
このチュートリアル シリーズで学習する内容は次のとおりです。
前提条件
このチュートリアルを開始する前に
- Azure サブスクリプションを持っていない場合は無料アカウントを作成する
- 第 2 部で指定した場所にログを出力するようアプリケーションを設定します。
- 第 3 部を完了し、ログを Event Hubs に送信するよう構成された Service Fabric クラスターを実行します。
- "リッスン" アクセス許可が含まれた Event Hubs のポリシーと、第 3 部の関連付けられた主キー。
投票サンプル アプリケーションをダウンロードする
このチュートリアル シリーズの第 1 部で投票サンプル アプリケーションをビルドしていない場合は、ダウンロードすることができます。 コマンド ウィンドウで、次のコマンドを実行して、サンプル アプリのリポジトリをローカル コンピューターに複製します。
git clone https://github.com/Azure-Samples/service-fabric-java-quickstart
Azure で ELK サーバーを作成する
このチュートリアルでは、構成済みの ELK 環境を使用できます。また、既にお持ちの場合、Logstash の設定に関するセクションまでスキップできます。 しかし、お持ちでない場合は、次の手順に従って Azure で作成してください。
Azure で ELK Certified by Bitnami を作成します。 チュートリアルの目的上、このサーバーを作成するために従わなければならない仕様は特にありません。
Azure Portal でリソースに移動し、 [サポート + トラブルシューティング] セクションの [ブート診断] を押します。 次に、 [シリアル ログ] タブをクリックします。
Kibana インスタンスへのアクセスに必要なパスワードをログで検索します。 これは次のようなスニペットです。
[ 25.932766] bitnami[1496]: ######################################################################### [ 25.948656] bitnami[1496]: # # [ 25.962448] bitnami[1496]: # Setting Bitnami application password to '[PASSWORD]' # [ 25.978137] bitnami[1496]: # (the default application username is 'user') # [ 26.004770] bitnami[1496]: # # [ 26.029413] bitnami[1496]: #########################################################################
Azure Portal のサーバーの [概要] ページにある [接続] ボタンを押して、ログインの詳細を取得します。
次のコマンドを使用して、ELK イメージがホストされているサーバーに SSH 接続します
ssh [USERNAME]@[CONNECTION-IP-OF-SERVER] Example: ssh testaccount@104.40.63.157
ELK の設定
最初の手順では ELK 環境を読み込みます
sudo /opt/bitnami/use_elk
既存の環境を使用している場合、次のコマンドを実行して Logstash サービスを停止する必要があります
sudo /opt/bitnami/ctlscript.sh stop logstash
次のコマンドを実行して、Event Hubs 用の Logstash プラグインをインストールします。
logstash-plugin install logstash-input-azureeventhub
次の内容で Logstash 構成ファイルを作成します。または、既存の Logstash 構成ファイルを変更します。ファイルを作成する場合、Azure で ELK Bitnami イメージを使用するのであれば、
/opt/bitnami/logstash/conf/access-log.conf
で Logstash 構成ファイルを作成する必要があります。input { azureeventhub { key => "[RECEIVER-POLICY-KEY-FOR-EVENT-HUB]" username => "[RECEIVER-POLICY-NAME]" namespace => "[EVENTHUB-NAMESPACENAME]" eventhub => "[EVENTHUB-NAME]" partitions => 4 } } output { elasticsearch { hosts => [ "127.0.0.1:9200" ] } }
構成を確認するには、次のコマンドを実行します。
/opt/bitnami/logstash/bin/logstash -f /opt/bitnami/logstash/conf/ --config.test_and_exit
Logstash サービスを開始します
sudo /opt/bitnami/ctlscript.sh start logstash
Elasticsearch をチェックして、データを受信していることを確認します
curl 'localhost:9200/_cat/indices?v'
http://SERVER-IP で Kibana ダッシュボードにアクセスし、Kibana のユーザー名とパスワードを入力します。 Azure で ELK イメージを使用した場合、既定のユーザー名は "user" になり、パスワードはブート診断で取得したものになります。
次の手順
このチュートリアルでは、以下の内容を学習しました。
- ELK サーバーを立ち上げて Azure で実行する
- Service Fabric クラスターから診断情報を受信するようサーバーを構成する
次のチュートリアルに進みます。