https://blogs.oracle.com/weblogicserver/processing-the-oracle-weblogic-server-kubernetes-operator-logs-using-elastic-stack
Oracleは、WebLogicコミュニティとともに、重要なワークロードをWebLogic Serverで実行する組織が、それらのワークロードをクラウドに移行するための、できるだけ簡単に行う方法を探しています。その取り組みの1つの側面として、Oracle WebLogic Server Kubernetes Operatorを提供しています。
Announcing the Oracle WebLogic Server Kubernetes Operatorこの記事では、Kubernetes環境におけるWebLogicドメインの管理を支援する重要な機能、すなわち、Elastic Stackの製品を使用してオペレータからのログを公開および分析する機能について説明します。
https://blogs.oracle.com/developers/announcing-oracle-weblogic-server-kuberentes-operator
https://orablogs-jp.blogspot.jp/2018/03/announcing-oracle-weblogic-server.html
What Is the Elastic Stack?
Elastic Stack(ELK)は、Elasticsearch、Logstash、Kibanaなどのいくつかのオープンソース製品で構成されています。Elastic Stackをログデータとともに使用すると、アプリケーションのパフォーマンスをほぼリアルタイムで把握できます。ElasticsearchはLuceneをベースにしたスケーラブルで分散型かつRESTfulな検索エンジンです。さまざまなデータセットに対するインデックス作成と高速検索を柔軟に制御できます。
Logstashは、複数のソースからのデータを同時に取得、変換し、選択した宛先にルーティングできるサーバーサイドのデータ処理パイプラインです。
Kibanaは、Elasticsearchのブラウザベースのプラグインで、収集したデータを視覚化して探索するために使用します。ダッシュボードでデータをナビゲート、選択、配置するための数多くの機能が含まれています。
Kubernetes環境でOperatorを使用してWebLogic Serverクラスタを実行する顧客は、Operatorとサーバを監視する必要がありますが、これはElasticsearchとKibanaを組み合わせることで実現できます。以下の手順でこれを設定する方法を説明します。
Processing Logs Using ELK
この例では、OperatorとLogstashエージェントは1つのPodにデプロイされ、ElasticsearchとKibanaはdefault名前空間に2つの独立したPodとしてデプロイされています。OperatorとLogstashコンテナ間で共有され、ログの保存に使用するメモリバックアップボリュームを使用します。Operatorインスタンスは、ログを共用ボリューム(/logs)に入れます。Logstashはボリュームからログを収集し、フィルタリングされたログをElasticsearchに転送します。最後に、KibanaとブラウザベースのUIを使用してログを分析し、視覚化します。Operator and ELK integration
OperatorとELKの統合を有効にするには、まずcreate-weblogic-operator-inputs.yamlファイルのelkIntegrationEnabledパラメータをtrueに設定する必要があります。create-weblogic-operator-inputs.yamlこれにより、Elasticsearch、LogstashおよびKibanaがインストールされ、LogstashがOperatorのログをElasticsearchにエクスポートするように設定されます。その後、インストール手順に従って、Operatorをインストールして始動してください。
https://github.com/oracle/weblogic-kubernetes-operator/blob/master/kubernetes/create-weblogic-operator-inputs.yaml
weblogic-kubernetes-operator InstallationELKとの統合がアクティブ化されていることを確認するには、以下のコマンドで生成された出力を確認します。
https://github.com/oracle/weblogic-kubernetes-operator/blob/master/site/installation.md
このコマンドで、以下のELKに関する情報が出力されるはずです。$ . ./create-weblogic-operator.sh -i create-operator-inputs.yaml
3つのデプロイメントがすべて実行されていることを確認するには、次の手順で確認します。Deploy ELK... deployment "elasticsearch" configured service "elasticsearch" configured deployment "kibana" configured service "kibana" configured
1. ElasticsearchとKibanaのPodがデプロイされ、起動済みであることを確認します(defaultのKubernetes名前空間で実行されます)。
以下のような出力が出ていればOKです。$ kubectl get pods
2. OperatorのPodがデプロイ済みで起動済みであることを確認します。なお、weblogic-operator名前空間で実行されていることに注意してください。
以下のような出力が出ていればOKです。$ kubectl -n weblogic-operator get pods
3. OperatorとLogstashコンテナがOperator Pod内で動作していることを確認します。
以下のような出力が出ていればOKです。$ kubectl get pods -n weblogic-operator --output json | jq '.items[].spec.containers[].name'
4. ElasticsearchのPodが起動済みであることを確認します。
Elasticstashが無事に起動していれば、以下のような情報が得られるはずです。$ kubectl exec -it elasticsearch-3938946127-4cb2s /bin/bash $ curl "http://localhost:9200" $ curl "http://localhost:9200/_cat/indices?v”
Logstashがリストに現れない場合は、Logstashのログ出力を確認してみましょう。
Logstashログにエラーがない場合は、ElasticsearchのPodがLogstashコンテナの後に起動されている可能性があります。そのような場合は、単にLogstashを再起動して修正してください。$ kubectl logs weblogic-operator-501749275-nhjs0 -c logstash -n weblogic-operator
Using Kibana
Kibanaはログを閲覧するためのWebアプリケーションです。KibanaのKubernetesサービス構成には、NodePortが含まれているため、Kubernetesクラスタ外からKibanaにアクセスできます。ポート番号を見つけるため、以下のコマンドを実行します。このコマンドを実行すると、以下のようなサービスのNodePort情報が出力されるはずです。$ kubectl describe service kibana
この例では、NodePortの値は30911です。KibanaのWebアプリケーションには、http://[NODE_IP_ADDRESS]:30911でアクセスできます。
Kibanaが正しくインストールされていることを確認し、Kibanaのステータスを確認するには、http://[NODE_IP_ADDRESS]:30911/statusのWebページに接続してください。ステータスはGreenでなければなりません。
続いて、Kibanaのインデックスパターンを定義します。これを行うには、左側のパネルでDiscoverをクリックします。デフォルトのインデックスパターンはlogstash- *で、デフォルトの時間フィルタフィールド名は@timestampです。Createをクリックします。
Managementページではlogstash*インデックスのフィールドを表示しています。
続いて、オペレータログの表示方法をカスタマイズします。時間間隔と自動リフレッシュの設定を行うには、Discoverページの右上隅をクリックし、Auto-refreshタブをダブルクリックして、希望の間隔を選択します。たとえば、10秒といった具合です。
また、時間範囲を設定し、特定の時間間隔に生成されたログメッセージに絞ることもできます。
Logstashを構成し、Operatorログレコードを別々のフィールドに分割します。例えば以下のような感じです。
表示するフィールドを制限できます。例えば、level、method、logfieldsを選択してaddをクリックすると、選択したフィールドのみ表示されます。method: dispatchDomainWatch level: INFO log: Watch event triggered for WebLogic Domain with UID: domain1 thread: 39 timeInMillis: 1518372147324 type: weblogic-operator path: /logs/operator.log @timestamp: February 11th 2018, 10:02:27.324 @version: 1 host: weblogic-operator-501749275-nhjs0 class: oracle.kubernetes.operator.Main _id: AWGGCFGulCyEnuJh-Gq8 _type: weblogic-operator _index: logstash-2018.02.11 _score:
フィルタを使用して、式に一致するフィールドを持つログメッセージのみを表示することもできます。Discoverページの上部にあるAdd a filterをクリックしてフィルタ式を作成します。 たとえば、method、is one of、onFailureを選択すると…
KibanaにはonFailureメソッドからの全てのメッセージが表示されます。
ここまでの設定で、KibanaでOperatorログを収集できるようになりました。ブラウザベースのビューアを使用して、ログを簡単に表示、分析できます。
0 件のコメント:
コメントを投稿