Getting "event_agent_id_status auth_metadata_missing" error while sending logs from standalone elasticagent

I am trying to send the logs from my AKS cluster into Elasticsearch the log that I am getting is "event.agent_id_status auth_metadata_missing" in my kibana even after all the volume mounts are done correctly

here's my configmap for standalone elastic agent

# For more information https://www.elastic.co/guide/en/fleet/current/running-on-kubernetes-standalone.html
apiVersion: v1
kind: ConfigMap
metadata:
  name: agent-node-datastreams
  namespace: elastic
  labels:
    k8s-app: elastic-agent-standalone
data:
  agent.yml: |-
    outputs:
      default:
        type: elasticsearch
        protocol: https
        ssl.verification_mode: 'none'
        allow_older_versions: true
        hosts:
          - >-
            ${ES_HOST}
        username: ${ES_USERNAME}
        password: ${ES_PASSWORD}
        indices:
        - index: "Bhrugu-audit-alias"
          when:
            and:
              - has_fields: ['fields.k8s.component']
              - equals:
                  fields.k8s.component: "audit"
        - index: "test-audit"
          when:
            and:
              - has_fields: ['fields.k8s.component']
              - equals:
                  fields.k8s.component: "audit"
        - index: "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}"
          when.not:
            has_fields: ['kubernetes.namespace']
    agent:
      monitoring:
        enabled: true
        use_output: default
        logs: true
        metrics: false
    providers.kubernetes:
      node: ${NODE_NAME}
      scope: node
      #Uncomment to enable hints' support
      #hints.enabled: true
    inputs:
      - name: system-logs
        type: logfile
        use_output: default
        meta:
          package:
            name: system
            version: 0.10.7
        data_stream:
          namespace: filebeat
        streams:
          - data_stream:
              dataset: audit
              type: logfile
            paths:
              - /var/log/*.log
            exclude_files:
              - .gz$
          #   multiline:
          #     pattern: ^\s
          #     match: after
          #   processors:
          #     - add_fields:
          #         target: ''
          #         fields:
          #           ecs.version: 1.12.0
          - data_stream:
              dataset: container
              type: logfile
            paths:
              - /var/log/containers/*.log
            exclude_files:
              - .gz$
            multiline:
              pattern: ^\s
              match: after
            #add_metadata: true
            processors:
              - add_fields:
                  target: ''
                  fields:
                    ecs.version: 1.12.0
              # - add_kubernetes_metadata:
              #     host: ${NODE_NAME}
              #     matchers:
              #       - logs_path:
              #           logs_path: "/var/log/containers/"
      

all the comments line have been added and removed but the error still persists.

Here's the daemonset file

---
# For more information refer https://www.elastic.co/guide/en/fleet/current/running-on-kubernetes-standalone.html
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: elastic-agent-standalone
  namespace: elastic
  labels:
    app: elastic-agent-standalone
spec:
  selector:
    matchLabels:
      app: elastic-agent-standalone
  template:
    metadata:
      labels:
        app: elastic-agent-standalone
    spec:
      # Tolerations are needed to run Elastic Agent on Kubernetes control-plane nodes.
      # Agents running on control-plane nodes collect metrics from the control plane components (scheduler, controller manager) of Kubernetes
      tolerations:
        - key: node-role.kubernetes.io/control-plane
          effect: NoSchedule
        - key: node-role.kubernetes.io/master
          effect: NoSchedule
      serviceAccountName: elastic-agent-standalone
      hostNetwork: true
      dnsPolicy: ClusterFirstWithHostNet
      containers:
        - name: elastic-agent-standalone
          image: docker.elastic.co/beats/elastic-agent:8.4.3
          args: [
            "-c", "/etc/elastic-agent/agent.yml",
            "-e",
          ]
          env:
            # The basic authentication username used to connect to Elasticsearch
            # This user needs the privileges required to publish events to Elasticsearch.
            - name: FLEET_ENROLL_INSECURE
              value: "1"
            - name: ES_USERNAME
              value: <CORRECT USERNAME NOT DEFAULT WHICH CAN PUBLISH TO ES>
            # The basic authentication password used to connect to Elasticsearch
            - name: ES_PASSWORD
              value:  <MY CORRECT PASSWORD>  
            # The Elasticsearch host to communicate with
            - name: ES_HOST
              value: "<MY CORRECT HOST IP>
            - name: NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: spec.nodeName
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: STATE_PATH
              value: "/etc/elastic-agent"
          securityContext:
            runAsUser: 0
          resources:
            limits:
              memory: 700Mi
            requests:
              cpu: 100m
              memory: 400Mi
          volumeMounts:
            - name: datastreams
              mountPath: /etc/elastic-agent/agent.yml
              readOnly: true
              subPath: agent.yml
            - name: proc
              mountPath: /hostfs/proc
              readOnly: true
            - name: cgroup
              mountPath: /hostfs/sys/fs/cgroup
              readOnly: true
            - name: varlogcontainers
              mountPath: /var/log/containers
              readOnly: true
            - name: varlogpods
              mountPath: /var/log/pods
              readOnly: true
            - name: varlibdockercontainers
              mountPath: /var/lib/docker/containers
              readOnly: true
            - name: kubenodevarlogs
              mountPath: /var/lib/host/log
              readOnly: true
            # - name: varlog
            #   mountPath: /var/log
            #   readOnly: true
            - name: etc-full
              mountPath: /hostfs/etc
              readOnly: true
            - name: var-lib
              mountPath: /hostfs/var/lib
              readOnly: true 
      volumes:
        - name: datastreams
          configMap:
            defaultMode: 0640
            name: agent-node-datastreams
        # Uncomment if using hints feature
        #- name: external-inputs
        #  emptyDir: {}
        - name: proc
          hostPath:
            path: /proc
        - name: cgroup
          hostPath:
            path: /sys/fs/cgroup
        - name: varlogcontainers
          hostPath:
            path: /var/log/containers
        - name: varlogpods
          hostPath:
            path: /var/log/pods
        - name: varlibdockercontainers
          hostPath:
            path: /var/lib/docker/containers
        - name: kubenodevarlogs
          hostPath:
            path: /var/log
        # The following volumes are needed for Cloud Security Posture integration (cloudbeat)
        # If you are not using this integration, then these volumes and the corresponding
        # mounts can be removed.
        - name: etc-full
          hostPath:
            path: /etc
        - name: var-lib
          hostPath:
            path: /var/lib
        

and this is the log that i get in kibana for path /var/log/containers


but it's same for all the other inputs, and there are no datastreams getting generated for either path

2 Likes

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.