filebeatはk8sのログをどのように収集しますか?

Kubernetes(K8s)のログを収集するには、Filebeatを使用して指定されたターゲット位置に送信することができます。

K8sのログを収集する手順は次のとおりです:

  1. Filebeatを設定する:以下の設定をFilebeatの設定ファイルfilebeat.ymlに記述してください。
  2. ファイルビートの入力設定:
    – タイプ:コンテナ
    パス:
    – /var/lib/docker/containers/*/*.logoutput.elasticsearch:
    hosts: [“elasticsearch:9200”]
  3. この設定は、Filebeatがコンテナログを収集するデータタイプとして、Kubernetesコンテナのログファイルパスを指定しています。同時に、出力先をElasticsearchに指定しています。
  4. Filebeat のデプロイ: Kubernetes クラスター環境に応じて、Helm Chart を使用して Filebeat をデプロイするか、Kubernetes デプロイメント ファイルを手動で作成することができます。以下はデプロイメント ファイル filebeat-kubernetes.yaml の一例です。
  5. apiVersion: v1
    kind: ConfigMap
    metadata:
    name: filebeat-config
    labels:
    k8s-app: filebeat
    data:
    filebeat.yml: |-
    filebeat.inputs:
    – type: container
    paths:
    – /var/lib/docker/containers/*/*.logoutput.elasticsearch:
    hosts: [“elasticsearch:9200”]


    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
    name: filebeat
    labels:
    k8s-app: filebeat
    spec:
    selector:
    matchLabels:
    k8s-app: filebeat
    template:
    metadata:
    labels:
    k8s-app: filebeat
    spec:
    containers:
    – name: filebeat
    image: docker.elastic.co/beats/filebeat:7.15.1
    args: [
    “-c”, “/etc/filebeat.yml”,
    “-e”,
    ]
    env:
    – name: ELASTICSEARCH_HOST
    value: “elasticsearch:9200”
    volumeMounts:
    – name: config
    mountPath: /etc/filebeat.yml
    subPath: filebeat.yml
    readOnly: true

    volumes:
    – name: config
    configMap:
    defaultMode: 0600
    name: filebeat-config

  6. デプロイメントファイルの適用:kubectlコマンドを使用してデプロイメントファイルを適用します、例:
  7. filebeat-kubernetes.yamlを使用してkubectl applyします。
  8. このDaemonSetは、Kubernetesクラスター内で作成され、各ノードでFilebeatインスタンスが実行されることを確認します。
  9. ログを参照する:K8sの収集されたログをElasticsearchやKibanaなどのツールで閲覧する。

Filebeatを使用してK8sログを収集する一般的な手順が上記にあります。具体的な要件に応じて設定や調整を行うことができます。

bannerAds