> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 監視と管理

> ABBYY Vantage Private Cloud を監視および管理します。ログファイル、組み込みの Skill Monitor サービス、サードパーティ製ツール、テクニカルサポート向けのデータ収集について説明します。

システム管理者として、常に ABBYY Vantage を監視・管理し、ドキュメント処理中に発生しうるエラーとその原因を特定する役割があります。

ABBYY Vantage を監視するには、次の方法を使用できます。

* **Vantage ログファイル**
* **組み込みの Skill Monitor サービス** – 既存の Vantage Skill の統計情報を収集し、完了したトランザクションおよび進行中のトランザクションに関する詳細情報を提供します。また、このサービスを使用して、テクニカルサポートに必要なトランザクションイベント情報を取得できます。
* **サードパーティ製サービス** – Vantage の内部プロセスや特定のワークフローを監視し、収集したデータを分析してドキュメント処理のさらなるチューニングおよび最適化を行い、ログを収集・分析できます。

テクニカルサポートに連絡する際には、エラーに関する情報に加えて、次の操作を行うことで、製品およびそのコンポーネントのバージョン情報も提供できます。

1. 左側のペインで **Help** をクリックし、**About** を選択してから **Version details** を選択します。
2. 詳細情報をコピーします。

<div id="how-to-access-diagnostics-logs">
  ## 診断ログへのアクセス方法
</div>

Vantage でドキュメントを処理する際に作成されるログファイルは、製品のインストールに使用したマシン上にローカル保存されます。

ログは次のように保存されます。すべての Kubernetes ノード上で実行されている Fluent Bit エージェントがコンテナのログを収集し、それらを Fluentd アグリゲーターサービスに送信します。デフォルトでは、すべてのログは永続ボリューム上のアーカイブファイルとして保存され、NFS を使ってアクセスできます。オプションで、管理者はログを Elasticsearch クラスターにも送信できます。

<img src="https://mintcdn.com/abbyy/vfngV6KHu21aRu9_/images/vantage/private-cloud/misc-p01-045.png?fit=max&auto=format&n=vfngV6KHu21aRu9_&q=85&s=fcfd9a72c4836137fd07371262d0a1df" alt="Fluent Bit エージェントが Docker コンテナからログを収集し、Fluentd アグリゲーターに送信し、そこから Elasticsearch および永続ボリュームストレージに出力する Kubernetes ロギングアーキテクチャ" style={{ width:"62%" }} width="817" height="778" data-path="images/vantage/private-cloud/misc-p01-045.png" />

診断ログにアクセスするには、次の手順を実行します。

1. 外部 NFS サーバーやその他の外部ストレージを使用している場合は、手順 3 に直接進みます。
2. クラスター内 NFS サーバーを使用したインストール（**高可用性なし** 構成のデフォルト）の場合、NFS サーバーの IP アドレスを取得します。

```bash theme={null}
kubectl -n nfs get po -lapp.kubernetes.io/name=nfs-kernel-server -o jsonpath='{ .items[*].status.hostIP }'
```

3. 共有にアクセスします。
   * **NFS の場合:**
     * Linux: `mount –t nfs <nfs server ip>:/ /opt/mount`
     * Windows: Client for NFS をインストールし、エクスプローラーを開いて `\\<nfs server ip>` に移動します。
   * **その他の種類の外部ストレージを使用する場合:** アクセス方法についてシステム管理者にお問い合わせください。
4. `\\<nfs server ip>\<sharename>\<env>\abbyy-monitoring\fluentd-pvc` ディレクトリに移動します。

<div id="providing-logs-to-technical-support">
  ### テクニカルサポートへのログ提供
</div>

ABBYY テクニカルサポートに Vantage のログを提供するには、次の手順を実行します。

1. ログフォルダーに移動します。ログは、Kubernetes クラスターの Namespace と同じ名前のサブフォルダーに保存されています。Vantage のログは `abbyy-vantage` フォルダーに保存されています。
2. 問題が発生した期間に該当するファイルをコピーします。ログは gzip 形式で圧縮されており、ファイル名は `Y-M-DD-H` 形式になっています（例: `2022-12-09-0800.log.gz`）。
3. ファイルを ABBYY テクニカルサポートに送信します。

<div id="elasticsearch-and-kibana">
  ## Elasticsearch と Kibana
</div>

Elasticsearch と Kibana は、ログの検索、分析、および可視化を行うためのツールです。Elasticsearch と Kibana は ABBYY Vantage と一緒にはインストールされないため、別途インストールとセットアップを行う必要があります。これは、製品がインストールされているかどうかに関係なく実施できます。既存のインストール環境を使用することもできます。

<Note>
  以下のサンプルセットアップ手順は簡略化されたものであり、例としてのみ提供されています。
</Note>

Elasticsearch と Kibana をインストールするには、次の手順を実行します。

1. リポジトリをクローンします:

```bash theme={null}
git clone https://github.com/elastic/cloud-on-k8s.git
cd cloud-on-k8s
git checkout 2.5
cd deploy/eck-operator
```

2. リソースをデプロイするためのオペレーターをインストールします：

```bash theme={null}
helm -n elastic upgrade -i eck-operator . --create-namespace
```

3. 次の内容で `elastic.yaml` という名前のファイルを作成します：

```yaml theme={null}
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: elasticsearch
  namespace: elastic
spec:
  version: 8.5.1
  nodeSets:
    - config:
        indices.fielddata.cache.size: 38%
        xpack.ml.enabled: false
        xpack.security.enabled: true
      count: 1
      name: default
      podTemplate:
        spec:
          containers:
            - name: elasticsearch
              resources:
                limits:
                  memory: 1Gi
                  cpu: '1'
                requests:
                  cpu: '1'
                  memory: 1Gi
          initContainers:
            - command:
                - sh
                - '-c'
                - sysctl -w vm.max_map_count=262144
              name: sysctl
              securityContext:
                privileged: true
                runAsUser: 0
          nodeSelector:
            kubernetes.io/os: linux
      volumeClaimTemplates:
        - metadata:
            name: elasticsearch-data
          spec:
            accessModes:
              - ReadWriteOnce
            resources:
              requests:
                storage: 128Gi
```

4. `kibana.yaml` という名前のファイルを、次の内容で作成します：

```yaml theme={null}
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
  name: kibana
  namespace: elastic
spec:
  version: 8.5.1
  count: 1
  elasticsearchRef:
    name: elasticsearch
  podTemplate:
    spec:
      containers:
        - name: kibana
          env:
            - name: NODE_OPTIONS
              value: "--max-old-space-size=2048"
          resources:
            requests:
              memory: 512Mi
              cpu: 0.5
            limits:
              memory: 1Gi
              cpu: 1
      nodeSelector:
        kubernetes.io/os: linux
```

5. 次のコマンドを実行して Elasticsearch をインストールします:

```bash theme={null}
kubectl -n elastic apply -f elastic.yaml
```

デプロイのステータスを確認します：

```bash theme={null}
kubectl -n elastic get statefulset
```

6. Kibana をインストールするには、次のコマンドを実行します。

```bash theme={null}
kubectl -n elastic apply -f kibana.yaml
```

デプロイ状況を確認する：

```bash theme={null}
kubectl -n elastic get deployment
```

7. Elasticsearch ユーザーのパスワードを取得します：

```bash theme={null}
kubectl -n elastic get secret elasticsearch-es-elastic-user -o go-template='{{.data.elastic | base64decode }}'
```

8. 次の Parameter を `env_specific.yaml` ファイルに追加します：

```yaml theme={null}
logging:
  enabled: true
  elasticsearch:
    enabled: true
    host: elasticsearch-es-http.elastic.svc.cluster.local
    username: elastic
    password: elastic_user_password
    scheme: https
```

9. 既に製品がインストールされている環境に後から Kibana をインストールする場合は、`env_specific.yaml` ファイルを更新し、次のコマンドを実行します。

```bash theme={null}
ansible-playbook -i inventories/k8s playbooks/6-DeployMonitoring-k8s.yml
```

<div id="grafana">
  ## Grafana
</div>

Grafana（Prometheus と併用）は、データの可視化、監視、および分析を行うためのツールです。Grafana は ABBYY Vantage と同時にはインストールされないため、別途インストールして設定する必要があります。既存の Grafana 環境を利用してもかまいません。

<Note>
  Prometheus はクラスター内でのみ利用できるため、Grafana もクラスター内にインストールする必要があります。
</Note>

<Note>
  以下のサンプルのセットアップ手順は簡略化したものであり、あくまで例として提供されています。
</Note>

Grafana をインストールするには、次の手順を実行します。

1. `grafana.yaml` という名前のファイルを作成します。
2. 次のコードをファイルにコピーして貼り付け、保存します。

```yaml theme={null}
persistence:
  enabled: false
rbac:
  create: true
  namespaced: false
serviceAccount:
  create: true
podLabels:
  app.kubernetes.io/component: grafana
nodeSelector:
  kubernetes.io/os: linux
adminUser: admin
adminPassword: password
plugins:
  - grafana-piechart-panel
  - flant-statusmap-panel
grafana.ini:
  server:
    root_url: "%(protocol)s://%(domain)s:%(http_port)s/grafana/"
    enable_gzip: "true"
ingress:
  enabled: true
  annotations:
    kubernetes.io/ingress.class: abbyy-nginx
    nginx.ingress.kubernetes.io/rewrite-target: /$2
  tls:
    - secretName: platform-wildcard
      hosts:
        - {{ env }}.{{ domain }}
  hosts:
    - {{ env }}.{{ domain }}
  path: "/grafana(/|$)(.*)"
sidecar:
  dashboards:
    enabled: true
    label: grafana_dashboard
datasources:
  datasources.yaml:
    apiVersion: 1
    datasources:
      - name: Prometheus
        editable: true
        isDefault: true
        jsonData:
          timeInterval: 5s
          tlsSkipVerify: true
        type: prometheus
        url: 'http://prometheus-scaling.abbyy-monitoring.svc.cluster.local:9090'
      - editable: true
        isDefault: true
        jsonData:
          timeInterval: 5s
          tlsSkipVerify: true
        name: Victoria
        type: prometheus
        url: 'http://victoria-metrics-abbyy.abbyy-monitoring.svc.cluster.local:8428'
```

<Note>
  host Parameter の値を Vantage クラスターのドメイン名に置き換え、初期管理者パスワードを変更してください。
</Note>

3. 次のコマンドを実行します：

```bash theme={null}
helm repo add grafana https://grafana.github.io/helm-charts
helm -n abbyy-monitoring upgrade -i grafana grafana/grafana -f grafana.yaml
```
