ロギングとモニタリング

ダッシュボードのモニタリング

クラスタとノードの指標のモニタリングに関するダッシュボード例は、Management Center から入手できます。

[モニタリング] タブ。

[Grafana Monitoring Dashboard] ボタンをクリックすると、管理クラスタでホストされている Grafana アプリケーションが開きます。Grafana へのアクセスは管理センターで管理されます。Management Center にログインしている場合は、追加のログインは必要ありません。

ダッシュボード

ログインすると、デモ用として使用できるサンプル ダッシュボードの一覧が表示されます。

Grafana ダッシュボード

ログ

[Grafana Loki Logs] ボタンをクリックすると、Grafana Explore が開き、Kubernetes システムログを含むログをクエリできます。

クエリ対象のログにラベルが追加されます。

ログラベル

ログタイプ ラベル
コンテナログ
  • クラスタ = CLUSTER_NAME
  • リソース = k8s_container
  • 名前空間 = NAMESPACE_NAME
  • ノード = NODE_NAME
  • Pod = POD_NAME
  • コンテナ = CONTAINER_NAME
  • 他の Kubernetes ラベル
ノードの journald ログ
  • クラスタ = CLUSTER_NAME
  • リソース = k8s_node
  • ノード = NODE_NAME
  • 識別子 = SYSLOG_IDENTIFIER
  • マシン = MACHINE_ID
監査ログ
  • クラスタ = CLUSTER_NAME
  • リソース = k8s_audit
  • 種類 = KIND
  • apiVersion=API_VERSION
  • レベル = LEVEL
  • Vert = VERB
  • requestURI=REQUEST_URI

すべての Kubernetes ラベルと cluster ラベルがログラベルとして含まれます。

サンプルクエリ

  • コンテナログ

    {cluster="admin", namespace="kube-system", resources="k8s_container", container="kube-apiserver"}
    

    Grafana クエリのコンテナログ

  • ノードの journald ログ

    {cluster="admin", resources="k8s_node"}
    

    Grafana クエリのノード ログ

  • 監査ログ

    {cluster="admin", resources="k8s_audit"}
    

    Grafana クエリの監査ログ

ストレージ クラスを構成する

指標、ログ、ダッシュボード、アラートを保存するために、PersistentVolumeClaims がリクエストされます。クラスタを作成すると、クラスタにより LogMon カスタム リソースが自動的に作成されます。デフォルトの StorageClass をオーバーライドするには、次の手順を行います。

  1. 次のコマンドを実行して、コマンドライン エディタで LogMon カスタム リソースを開きます。

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  2. LogMon カスタム リソースで、spec フィールドの下の storageClassName を更新します。

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          default_loki:
            deployment:
              storageClassName: anthos-system # configure the new storage class here 
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              storageClassName: anthos-system # configure the new storage class here
    
  3. LogMon カスタム リソースに対する変更を保存するには、保存してコマンドライン エディタを終了します。

ストレージ サイズを構成する

クラスタを作成すると、クラスタにより LogMon カスタム リソースが自動的に作成されます。指標、ログ、ダッシュボード、アラートのストレージ サイズをオーバーライドするには、次の手順を行います。

  1. 次のコマンドを実行して、コマンドライン エディタで LogMon カスタム リソースを開きます。

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  2. LogMon カスタム リソースで、spec フィールドの下の storageSize を更新します。

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          default_loki:
            deployment:
              components:
                loki:
                   storageSize: 20Gi # configure the new storage size for logs here
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              components:
                alertmanager:
                   storageSize: 1Gi # configure the new storage size for alerts here
                grafana:
                   storageSize: 1Gi # configure the new storage size for dashboards here
                prometheus:
                   storageSize: 20Gi # configure the new storage size for metrics here
    ````
    
  3. LogMon カスタム リソースに対する変更を保存するには、保存してコマンドライン エディタを終了します。

保持期間を構成する

クラスタで実行される Prometheus エージェントと Loki エージェントのログの保持期間を構成するには、次の手順を行います。

  1. 次のコマンドを実行して、コマンドライン エディタで LogMon カスタム リソースを開きます。

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  2. LogMon カスタム リソースで、spec フィールドの下の retentionTime を更新します。

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          default_loki:
            deployment:
              retentionPolicy:
                retentionTime: 720h # configure the new retention time for logs here
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              retentionPolicy:
                retentionTime: 720h # configure the new retention time for metrics here
    
  3. LogMon カスタム リソースに対する変更を保存するには、保存してコマンドライン エディタを終了します。

fluent-bit の追加出力を構成する

ログは、クラスタで実行されている Loki に加えて、他の宛先にエクスポートできます。サポートされている送信先のリストをご覧ください。追加のログ出力先を構成するには、次の手順を行います。

  1. logmon: system_logs ラベルを持つ kube-system 名前空間に configmap を作成します。追加の出力構成の構文は fluent-bit 出力プラグインと同じであり、data フィールド内の output.conf ファイルに追加する必要があります。サンプル構成ファイルをご覧ください。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      # The name should match the configmap name specified in step 3.
      name: <customized-system-logs-fluent-bit-output-config>
      # Don't change the namespace
      namespace: kube-system
      labels:
        # This label is required.
        logmon: system_logs
    data:
      # The file name must be output.conf
      output.conf: |
        # Add a customized fluent-bit output plugin configuration here
    
  2. 次のコマンドを実行して、コマンドライン エディタで LogMon カスタム リソースを開きます。

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. LogMon カスタム リソースで、spec/system_logs/outputs フィールドの下に additionalOutput フィールドを追加します。

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          additionalOutput:
            fluentbitConfigmaps:
            # The name should match the configmap name created in step 1.
            - "<customized-system-logs-fluent-bit-output-config>"
            # Scheme: []v1.VolumeMount. Add volumeMounts if necessary
            volumeMounts:
            - ...
            - ...
            # Scheme: []v1.Volume. Add volumes if necessary
            volumes:
            - ...
            - ...
    
  4. LogMon カスタム リソースに対する変更を保存するには、保存してコマンドライン エディタを終了します。