Kubernetesモニタリングのトラブルシューティング

最終更新日: 02 年 2023 月 XNUMX 日

LogicMonitorのKubernetesMonitoring Integrationを正常にインストールできなかった場合は、次の手順を使用してトラブルシューティングを行ってください。

Helmインストールコマンドが成功しなかった場合:

  • インストール中に、KubernetesRBAC対応オプションが正しく選択されていることを確認してください。 これは、クラスター内のRBACと一致する必要がある「enableRBAC」ヘルムチャート値を制御します(すなわち クラスタでRBACが有効になっていない場合、この値はfalseである必要があります)。
  • LogicMonitor APIトークンが有効であり、十分な権限があることを確認してください。
  • Argus&Collectorset-Controllerポッドのログを確認してください

Helmインストールコマンドは成功したが、クラスターが監視に正常に追加されていない場合:

  • コレクターグループが追加されたかどうかを確認します。 そうでない場合は、提供されているLogicMonitorAPIトークンに問題がある可能性があります。 LogicMonitor監査ログを使用して、要求が拒否されたかどうかを識別できます。
  • コレクターが正常にインストールされたかどうかを確認します。 コレクターグループが追加されたが、コレクターが正常にインストールされなかった場合は、APIトークンに問題がある可能性はありません。 Collectorのインストールメモリ要件が満たされていない可能性があります。そうでないことを確認してください。 コレクターが正しくインストールされていない場合は、Argus、Collectorset-Controller、およびCollectorポッドのログを確認することもお勧めします。
  • OpenShift を使用している場合は、インストールを有効にするために、コレクターのサービス アカウントの権限を昇格する必要がある場合があります。 これは、次のコマンドで実行できます (デフォルトの名前空間が使用されていると仮定します)。
    oc adm policy add-scc-to-user anyuid system:serviceaccount:default:collector

Helmインストールコマンドが成功し、クラスターが監視に追加されたが、データ収集が機能していない場合:

  • 最新バージョンのデータソースを使用していることを確認してください。 バグ修正と改善を含む新しいバージョンのデータソースを定期的にリリースしています。 新しいバージョンをインポートするには、を参照してください。 この記事
  • 最新バージョンのデータソースを使用してもデータ収集が機能しない場合は、データソースを変更してKubernetes APIの応答とステータスコードを表示し、詳細情報を取得できます。 たとえば、次のスクリーンショットのように、ポッドデータソースを変更して、リクエストとレスポンスの情報を出力し、データ収集の試行中にKubernetesAPIが返すエラーを絞り込むことができます。 これは、データ収集が機能しない理由を特定するのに役立つ場合があります。 

メモリ、CPU、およびエフェメラルストレージが原因でGKEでArgusおよびCollectorset-Controllerポッドをセットアップできない場合は、次の構成を使用します。

  • Argus構成ファイルを使用して、コレクターのリソース制限と要求(メモリ、CPU、エフェメラルストレージ)を設定してください。
    サンプルファイル:
statefulsetspec:
      template:
        spec:                                                                                                                                                                               
         containers:
           - name: collector
           resources:
             requests:
               cpu: 1000m
               ephemeral-storage: 5Gi
               memory: 2Gi

Argusのインストール中に次のgRPC接続失敗エラーが発生した場合は、次の手順を実行します:

level = warning msg =”gRPC接続の作成中にエラーが発生しました。 エラー:コンテキストの期限を超えました」argus_pod_id = debug_id = goroutine = 1 method = pkg / connection.createGRPCConnection watch = init

問題を解決するには、次の手順を実行します。

  1. 次のコマンドを実行して、ArgusPodシェルにログインします。

    kubectl exec -it <argus_Pod_name> /bin/sh
  1. 次のコマンドを入力して、ArgusとCollectorset-Controllerポッド間の通信を確認します。 

    curl http://collectorset-controller:50000
  1. 通信に失敗してエラーが発生した場合は、内部ネットワークポリシーで設定されている制限のパラメータを確認する必要があります。

コレクターポッドがOpenShiftClusterv4.xで頻繁に再起動し、モニタリングギャップが発生している場合は、以下を実行します。

Dockerコレクターは、すべての収集ジョブを実行します。 ただし、OpenShiftにはプロセス数を1024に制限する1024のデフォルトのコンテナーPID制限があるため、この制限は大規模クラスターには不十分です。

を使用して設定を変更できます ContainerRuntimeConfig カスタムリソース。

たとえば、ポッドに次のようにラベルを付けました machineconfigpool キーを使用してPID制限を増やしたい custom-crio と値として custom-pidslimit次に、構成ファイルを次のように変更します。

apiVersion: machineconfiguration.openshift.io/v1
kind: ContainerRuntimeConfig
metadata:
 name: custom-pidslimit
spec:
 machineConfigPoolSelector:
   matchLabels:
     custom-crio: custom-pidslimit
 containerRuntimeConfig:
   pidsLimit: 4096

Note:適切なPID制限は、コレクターのサイズと監視されるKubernetesリソースの数によって異なる場合があります。 ただし、小型コレクターに設定されているデフォルトのPID制限は、最小4096です。

ポッドシェルで次のコマンドを入力して、PID制限が有効かどうかを確認することもできます。
cat /sys/fs/cgroup/pids/pids.current

記事上で