ドメインのモニターとログの公開

Oracle SOA Suiteドメインを設定した後、次のことができます:

PrometheusおよびGrafanaを使用したOracle SOA Suiteインスタンスのモニター

WebLogicモニタリング・エクスポータを使用すると、実行中のOracle SOA Suiteインスタンスからランタイム情報をスクレイピングし、PrometheusおよびGrafanaを使用してモニターできます。

モニタリングを設定します。このステップに従って、Oracle SOA Suiteインスタンスのモニタリングを設定します。WebLogic Monitoring Exporterの詳細は、ここを参照してください。

ElasticsearchへのWebLogic Serverログの公開

WebLogic Serverログは、Fluentdを使用してElasticsearchに公開できます。Fluentd構成ステップを参照してください。

ElasticsearchへのSOAサーバー診断ログの公開

この項では、診断ログをElasticsearchに公開し、Kibanaで表示する方法を示します。オペレータ・ログの公開については、このサンプルを参照してください。

前提条件

ログ収集用にElasticsearchおよびKibanaをまだ設定していない場合は、このドキュメントを参照して設定を完了してください。

Elasticsearchへの公開

診断またはその他のログは、logstashポッドを使用してElasticsearchサーバーにプッシュできます。logstashポッドは、共有ドメイン・ホームまたはログの場所にアクセスできる必要があります。Oracle SOA Suiteドメインの場合、ドメイン・ホームの永続ボリュームをlogstashポッドで使用できます。logstashポッドを作成するには、次のステップを実行します:

  1. Oracle SOA Suiteドメインのドメイン・ホームのドメイン・ホーム永続ボリューム要求の詳細を取得します。次のコマンドは、ネームスペース(soans)の永続ボリューム要求の詳細をリストします。次の例では、永続ボリューム要求はsoainfra-domain-pvcです:
    kubectl get pvc -n soans   
    

    サンプル出力:

    NAME                  STATUS   VOLUME               CAPACITY   ACCESS MODES   STORAGECLASS                    AGE
    soainfra-domain-pvc   Bound    soainfra-domain-pv   10Gi       RWX            soainfra-domain-storage-class   xxd
    
  2. logstash構成ファイル(logstash.conf)を作成します。次に、DOMAIN_HOME/servers/<server_name>/logs/-diagnostic.logで使用可能なすべてのサーバーの診断ログをプッシュするlogstash構成のサンプルを示します:
    input {                                                                                                                
      file {                                                                                                               
        path => "/u01/oracle/user_projects/domains/soainfra/servers/**/logs/*-diagnostic.log"                                          
        start_position => beginning                                                                                        
      }                                                                                                                    
    }                                                                                                                         
    filter {                                                                                                               
      grok {                                                                                                               
        match => [ "message", "<%{DATA:log_timestamp}> <%{WORD:log_level}> <%{WORD:thread}> <%{HOSTNAME:hostname}> <%{HOSTNAME:servername}> <%{DATA:timer}> <<%{DATA:kernel}>> <> <%{DATA:uuid}> <%{NUMBER:timestamp}> <%{DATA:misc}> <%{DATA:log_number}> <%{DATA:log_message}>" ]                                                                                        
      }                                                                                                                    
    }                                                                                                                         
    output {                                                                                                               
      elasticsearch {                                                                                                      
        hosts => ["elasticsearch.default.svc.cluster.local:9200"]                                                          
      }                                                                                                                    
    }
    
  3. 管理サーバーのポッド(ネームスペースsoanssoainfra-adminserverポッドなど)を使用して、logstashデプロイメントに使用できるように、logstash.conf/u01/oracle/user_projects/domainsにコピーします:
    kubectl cp logstash.conf  soans/soainfra-adminserver:/u01/oracle/user_projects/domains --namespace soans
    
  4. ドメイン・ホームの永続ボリューム要求を使用して、logstashポッドのデプロイメントYAML (logstash.yaml)を作成します。logstash構成ファイルが正しい場所を指していること(たとえば、logstash.confを/u01/oracle/user_projects/domains/logstash.confにコピーします)、および正しいドメイン・ホーム永続ボリューム要求を指していることを確認します。次に、サンプルlogstashデプロイメントYAMLを示します:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: logstash-soa
      namespace: soans
    spec:
      selector:
        matchLabels:
          app: logstash-soa
      template: # create pods using pod definition in this template
        metadata:
          labels:
            app: logstash-soa
        spec:
          volumes:
          - name: soainfra-domain-storage-volume
            persistentVolumeClaim:
              claimName: soainfra-domain-pvc
          - name: shared-logs
            emptyDir: {}
          containers:
          - name: logstash
            image: logstash:6.6.0
            command: ["/bin/sh"]
            args: ["/usr/share/logstash/bin/logstash", "-f", "/u01/oracle/user_projects/domains/logstash.conf"]
            imagePullPolicy: IfNotPresent
            volumeMounts:
            - mountPath: /u01/oracle/user_projects
              name: soainfra-domain-storage-volume
            - name: shared-logs
              mountPath: /shared-logs
            ports:
            - containerPort: 5044
              name: logstash
    
  5. logstashをデプロイして、Elasticsearchへのログの公開を開始します:
    kubectl create -f  logstash.yaml
  6. これで、Kibanaと索引パターン"logstash-*"を使用して診断ログを表示できます。