Metricbeat Kibana의 Stack Monitroing 연동

2025. 2. 9. 22:47k8s/EFK

ConfigMap: metricsets에 ingest_pipeline를 설정
api key는 encoding된 값이 아닌, ID:PASSWORD로 넘겨야 함

apiVersion: v1
kind: ConfigMap
metadata:
  namespace: {namespace}
  name: metricbeat
data:
  metricbeat.yml: |
    metricbeat.config.modules:
      path: ${path.config}/modules.d/*.yml
      reload.enabled: true

    setup.template.settings:
      index.number_of_shards: 5
      index.codec: best_compression

    setup.kibana:
      host: "{url}:{port}"

    output.elasticsearch:
      hosts: ["{domain}:{port}"]
      protocol: "{http || https}"
      api_key: "{api key id}:{api key password}"
  elasticsearch-xpack.yml: |
    - module: elasticsearch
      xpack.enabled: true
      period: 10s
      hosts: ["{domain}:{port}"]
      api_key: "{api key id}:{api key password}"
      ssl.verification_mode: none
      metricsets:
      	# 이게 제일 중요함
        - ingest_pipeline

Volum mount

          volumeMounts:
            - name: config
              mountPath: /usr/share/metricbeat/metricbeat.yml
              subPath: metricbeat.yml
            - name: config
              mountPath: /usr/share/metricbeat/modules.d/elasticsearch-xpack.yml
              subPath: elasticsearch-xpack.yml
      volumes:
        - name: config
          configMap:
            name: metricbeat