サポートセンターホーム


Kubernetes ログとイベントの送信

LogicMonitor は、監視対象の Kubernetes クラスターからログを送信するためのさまざまな方法を提供します。 LMログ. 使用する方法は、送信するログの種類によって異なります。

  • Kubernetes ログの場合は、lm-logs Helm チャート構成 (Kubernetes 統合の一部として提供される) を使用することをお勧めします。
  • Kubernetes イベントとポッド ログの場合、監視対象のクラスターまたはクラスター グループからログを収集して転送するように LogicMonitor コレクターを構成することをお勧めします。

Kubernetes ログの取り込み

をインストールして構成できます。 LogicMonitor Kubernetes の統合 Kubernetes ログを LM ログ取り込み API に転送します。

必須条件

展開

LMログのKubernetes構成は、ヘルムチャートとしてデプロイされます。

1. LogicMonitorHelmリポジトリを追加します。 

helm repo add logicmonitor https://logicmonitor.github.io/k8s-helm-charts

LogicMonitor Helmリポジトリがすでにある場合は、それを更新して最新のチャートを取得する必要があります。

helm repo update

2。 インストールする lm-logs 必要な値を入力するチャート:

helm install -n <namespace> \
--set lm_company_name="<lm_company_name>" \
--set lm_access_id="<lm_access_id>" \
--set lm_access_key="<lm_access_key>" \
lm-logs logicmonitor/lm-logs

Kubernetes イベントの収集と転送

監視対象の Kubernetes クラスターまたはクラスター グループから Kubernetes クラスター イベントとポッド ログを受信して​​転送するように LogicMonitor コレクターを構成できます。

必須条件

  • EA Collector30.100以降がインストールされています。
  • すでに展開しています LogicMonitorのKubernetesモニタリング.
  • ログを収集するリソース (イベントまたはポッド) へのアクセス。

監視のためにコレクターにリソースを追加する

注意: このセクションは、監視中の既存のクラスターにのみ適用されます。 クラスターが最新バージョンのArgusで監視に追加されたばかりの場合は、この編集を行う必要はありません。

Cluster Role Collectorは、監視するリソースにアクセスできる必要があります。

$ kubectl edit clusterrole collector

apiGroups>リソース追加 events 影響により pod/logs 例えば:

- apiGroups:
  resources:
  - events
  - pod/logs

イベントとログの収集を有効にする

イベントとログの収集を有効にするには、次の XNUMX つのオプションがあります。

1.(推奨)イベント収集を有効にするために、ArgusのHelmデプロイメントを変更します。

helm upgrade --reuse-values \
   --set device_group_props.cluster.name="lmlogs.k8sevent.enable" \
   --set device_group_props.cluster.value="true" \
   --set device_group_props.pods.name="lmlogs.k8spodlog.enable" \
   --set device_group_props.pods.value="true" \
argus logicmonitor/argus

2. LogicMonitorで監視対象のKubernetesクラスターグループ(または個々のリソース)に次のプロパティを手動で追加します。

プロパティ 製品説明
lmlogs.k8sevent.enable = true ポッド、デプロイメント、サービス、ノードなどからLMログにイベントを送信します。 falseの場合、イベントを無視します。
lmlogs.k8spodlog.enable = true ポッドログをLMログに送信します。 falseの場合、ポッドからのログを無視します。

オプションの構成

ログとイベントの収集を有効にすることに加えて、コレクタの次のエントリを追加または編集できます。 agent.conf:

プロパティ 製品説明 デフォルト
lmlogs.k8sevent.polling.interval.min = 1 Kubernetesイベントコレクションのポーリング間隔(分単位)。 1
lmlogs.k8spodlog.polling.interval.min = 1 Kubernetesポッドログコレクションのポーリング間隔(分単位)。 1
lmlogs.thread.count.for.k8s.pod.log.collection = 20 Kubernetesポッドログコレクションのスレッド数。 最大値は50です。 10

ログを削除するようにフィルターを構成する

LogicMonitorに送信されないように、機密情報(クレジットカード、電話番号、個人IDなど)を含むログメッセージを削除するようにフィルターを構成することをお勧めします。 フィルタを使用して、ログ取り込みAPIキューに送信される必須ではないsyslogログメッセージの量を減らすこともできます。

Kubernetesイベントのフィルタリング基準は、メッセージ、理由、タイプのフィールドに基づいています。 Kubernetesポッドログの場合、メッセージフィールドでフィルタリングできます。 フィルタリング基準は、キーワード、正規表現パターン、フィールドの特定の値などを使用して定義できます。 フィルタ条件を設定するには、コメントを解除して有効にし、でフィルタリングエントリを編集します。 agent.conf 例えば:

  • INFOレベルのポッドログをLogicMonitorにフィルターで除外するには、コメントを解除するか、次の行を追加します。 logsource.k8spodlog.filter.1.message.notcontain=INFO
  • type = NormalのKubernetesイベントを送信するには、次の行をコメントアウトします。 logsource.k8sevent.filter.1.type.notequal=Normal

トラブルシューティング

Kubernetes ログ

1. 数分経っても LM ポータルに Kubernetes ログが表示されない場合は、リソース マッピングの問題である可能性があります。

2. マッピングが正しい場合は、ログ ファイル パスがマウントされていることを確認します。 ログ ファイルのパスがマウントされていない場合は、 /k8s-helm-charts/lm-logs/templates/deamonset.yaml ファイル パスとボリュームを追加します。

たとえば、マウントするパスが /mnt/ephemeral/docker/containers/、次の編集を行います。

  • ファイル パスを追加します。
name: ephemeraldockercontainers
  mountPath: /mnt/ephemeral/docker/containers/
  readOnly: true
  • ボリュームの下に追加:
name: ephemeraldockercontainers
  hostPath:
    path: /mnt/ephemeral/docker/containers/

Kubernetes イベント

ポッド ログの収集と転送を有効にしているが、LM ログでポッド ログを受信して​​いない場合は、コレクタを再起動し、ポーリング間隔を 3 ~ 5 分に増やします。

記事上で