Filebeat 手順書

作業対象マシンとログイン手順

  • 作業対象クラスタ:core https://docs.google.com/presentation/d/1CH-n-ZHSAvASfVd3kuNiIzZPTCaK551N/edit#slide=id.g3315518f17b_2_1

ログイン手順

ssh cdsl
ssh teduka@core-s1

Helmリポジトリの追加

ElasticのHelmチャートを使用するため、以下のコマンドでリポジトリを追加します。

helm repo add elastic https://helm.elastic.co
helm repo update

ネームスペースの作成

まず、elastic という名前のネームスペースを作成します。

kubectl create ns elastic

YAMLファイルの場所


fb-values.yaml

daemonset:
  secretMounts: []
  filebeatConfig:
    filebeat.yml: |
      logging.level: info
      filebeat.autodiscover:
        providers:
          - type: kubernetes
            node: ${NODE_NAME}
            hints.enabled: true
            hints.default_config:
              type: container
              paths:
                - /var/log/containers/*${data.kubernetes.container.id}.log
      processors:
        - add_tags:
            tags: [doktor, dev]
      output.logstash:
        hosts: ["ls-master.a910.tak-cslab.org:30544"]
      setup.ilm.enabled: false
  resources:
    limits:
      memory: 300Mi
      cpu: 0.5
    requests:
      memory: 300Mi
      cpu: 0.5

補足
- Logstashのホストには FQDN を使用(クラスタ外アクセス対応)
- ポートはBeats用(30544
- 不要な設定(Index、template)を削除
- リソース制限(CPUとメモリ)を明示的に設定

credentials.yaml

apiVersion: v1
data:
  password: cHdvVDZyWU9scHJWbXVpSw==
  username: ZWxhc3RpYw==
kind: Secret
metadata:
  annotations:
    meta.helm.sh/release-name: es
    meta.helm.sh/release-namespace: elastic
  creationTimestamp: "2025-03-11T05:33:10Z"
  labels:
    app: elasticsearch-master
    app.kubernetes.io/managed-by: Helm
    chart: elasticsearch
    heritage: Helm
    release: es
  name: elasticsearch-master-credentials
  namespace: elastic
  resourceVersion: "17774668"
  uid: a60fa5e8-a758-4b46-8f7a-e2d2a37f92d0
type: Opaque

Filebeat のインストール

修正済み fb-values.yaml を使用して Helm でインストールします。

helm install fb elastic/filebeat -n elastic -f fb-values.yaml

動作確認方法

Filebeat が DaemonSet として起動しているか確認

kubectl get pods -n elastic -l app=filebeat
kubectl logs -n elastic <filebeat-pod名>

Filebeat → Logstash へのログ転送確認

ssh ls-master
docker logs logstash  # または systemctl status logstash など

Elasticsearch にログが入っているか確認

Kibana がある場合は UI で確認可能。CLIの場合は以下で確認。

curl -X GET "http://elasticsearch:9200/_cat/indices?v"

参考資料