diff --git a/deploy/kubernetes/elastic-agent-standalone-kubernetes.yaml b/deploy/kubernetes/elastic-agent-standalone-kubernetes.yaml index aa65ebefd75..11d8cab4120 100644 --- a/deploy/kubernetes/elastic-agent-standalone-kubernetes.yaml +++ b/deploy/kubernetes/elastic-agent-standalone-kubernetes.yaml @@ -25,6 +25,143 @@ data: node: ${NODE_NAME} scope: node inputs: + - name: kubernetes-cluster-metrics + condition: ${kubernetes_leaderelection.leader} == true + type: kubernetes/metrics + use_output: default + meta: + package: + name: kubernetes + version: 0.2.8 + data_stream: + namespace: default + streams: + - data_stream: + dataset: kubernetes.apiserver + type: metrics + metricsets: + - apiserver + bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + hosts: + - 'https://${env.KUBERNETES_SERVICE_HOST}:${env.KUBERNETES_SERVICE_PORT}' + period: 30s + ssl.certificate_authorities: + - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + - data_stream: + dataset: kubernetes.event + type: metrics + metricsets: + - event + period: 10s + add_metadata: true + - data_stream: + dataset: kubernetes.state_container + type: metrics + metricsets: + - state_container + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_cronjob + type: metrics + metricsets: + - state_cronjob + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_deployment + type: metrics + metricsets: + - state_deployment + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_node + type: metrics + metricsets: + - state_node + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_persistentvolume + type: metrics + metricsets: + - state_persistentvolume + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_persistentvolumeclaim + type: metrics + metricsets: + - state_persistentvolumeclaim + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_pod + type: metrics + metricsets: + - state_pod + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_replicaset + type: metrics + metricsets: + - state_replicaset + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_resourcequota + type: metrics + metricsets: + - state_resourcequota + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_service + type: metrics + metricsets: + - state_service + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_statefulset + type: metrics + metricsets: + - state_statefulset + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_storageclass + type: metrics + metricsets: + - state_storageclass + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s - name: system-logs type: logfile use_output: default @@ -384,227 +521,6 @@ spec: hostPath: path: /var/log --- -apiVersion: v1 -kind: ConfigMap -metadata: - name: agent-deployment-datastreams - namespace: kube-system - labels: - k8s-app: elastic-agent -data: - # This part requires `kube-state-metrics` up and running under `kube-system` namespace - agent.yml: |- - outputs: - default: - type: elasticsearch - hosts: - - >- - ${ES_HOST} - username: ${ES_USERNAME} - password: ${ES_PASSWORD} - agent: - monitoring: - enabled: true - use_output: default - logs: true - metrics: true - inputs: - - name: kubernetes-cluster-metrics - type: kubernetes/metrics - use_output: default - meta: - package: - name: kubernetes - version: 0.2.8 - data_stream: - namespace: default - streams: - - data_stream: - dataset: kubernetes.apiserver - type: metrics - metricsets: - - apiserver - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - hosts: - - 'https://${env.KUBERNETES_SERVICE_HOST}:${env.KUBERNETES_SERVICE_PORT}' - period: 30s - ssl.certificate_authorities: - - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - data_stream: - dataset: kubernetes.event - type: metrics - metricsets: - - event - period: 10s - add_metadata: true - - data_stream: - dataset: kubernetes.state_container - type: metrics - metricsets: - - state_container - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_cronjob - type: metrics - metricsets: - - state_cronjob - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_deployment - type: metrics - metricsets: - - state_deployment - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_node - type: metrics - metricsets: - - state_node - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_persistentvolume - type: metrics - metricsets: - - state_persistentvolume - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_persistentvolumeclaim - type: metrics - metricsets: - - state_persistentvolumeclaim - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_pod - type: metrics - metricsets: - - state_pod - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_replicaset - type: metrics - metricsets: - - state_replicaset - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_resourcequota - type: metrics - metricsets: - - state_resourcequota - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_service - type: metrics - metricsets: - - state_service - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_statefulset - type: metrics - metricsets: - - state_statefulset - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_storageclass - type: metrics - metricsets: - - state_storageclass - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: elastic-agent - namespace: kube-system - labels: - app: elastic-agent -spec: - selector: - matchLabels: - app: elastic-agent - template: - metadata: - labels: - app: elastic-agent - spec: - serviceAccountName: elastic-agent - containers: - - name: elastic-agent - image: docker.elastic.co/beats/elastic-agent:7.11.0 - args: [ - "-c", "/etc/agent.yml", - "-e", - ] - env: - - name: ES_USERNAME - value: "elastic" - - name: ES_PASSWORD - value: "" - - name: ES_HOST - value: "" - - name: NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - # this is needed because we cannot use hostNetwork - - name: HOSTNAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - securityContext: - runAsUser: 0 - resources: - limits: - memory: 200Mi - requests: - cpu: 100m - memory: 100Mi - volumeMounts: - - name: datastreams - mountPath: /etc/agent.yml - readOnly: true - subPath: agent.yml - volumes: - - name: datastreams - configMap: - defaultMode: 0640 - name: agent-deployment-datastreams ---- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: diff --git a/deploy/kubernetes/elastic-agent-standalone/elastic-agent-standalone-daemonset-configmap.yaml b/deploy/kubernetes/elastic-agent-standalone/elastic-agent-standalone-daemonset-configmap.yaml index 17fa1c99dae..7459bb79a5a 100644 --- a/deploy/kubernetes/elastic-agent-standalone/elastic-agent-standalone-daemonset-configmap.yaml +++ b/deploy/kubernetes/elastic-agent-standalone/elastic-agent-standalone-daemonset-configmap.yaml @@ -25,6 +25,143 @@ data: node: ${NODE_NAME} scope: node inputs: + - name: kubernetes-cluster-metrics + condition: ${kubernetes_leaderelection.leader} == true + type: kubernetes/metrics + use_output: default + meta: + package: + name: kubernetes + version: 0.2.8 + data_stream: + namespace: default + streams: + - data_stream: + dataset: kubernetes.apiserver + type: metrics + metricsets: + - apiserver + bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token + hosts: + - 'https://${env.KUBERNETES_SERVICE_HOST}:${env.KUBERNETES_SERVICE_PORT}' + period: 30s + ssl.certificate_authorities: + - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + - data_stream: + dataset: kubernetes.event + type: metrics + metricsets: + - event + period: 10s + add_metadata: true + - data_stream: + dataset: kubernetes.state_container + type: metrics + metricsets: + - state_container + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_cronjob + type: metrics + metricsets: + - state_cronjob + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_deployment + type: metrics + metricsets: + - state_deployment + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_node + type: metrics + metricsets: + - state_node + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_persistentvolume + type: metrics + metricsets: + - state_persistentvolume + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_persistentvolumeclaim + type: metrics + metricsets: + - state_persistentvolumeclaim + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_pod + type: metrics + metricsets: + - state_pod + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_replicaset + type: metrics + metricsets: + - state_replicaset + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_resourcequota + type: metrics + metricsets: + - state_resourcequota + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_service + type: metrics + metricsets: + - state_service + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_statefulset + type: metrics + metricsets: + - state_statefulset + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s + - data_stream: + dataset: kubernetes.state_storageclass + type: metrics + metricsets: + - state_storageclass + add_metadata: true + hosts: + - 'kube-state-metrics:8080' + period: 10s - name: system-logs type: logfile use_output: default diff --git a/deploy/kubernetes/elastic-agent-standalone/elastic-agent-standalone-deployment-configmap.yaml b/deploy/kubernetes/elastic-agent-standalone/elastic-agent-standalone-deployment-configmap.yaml deleted file mode 100644 index 58a92665e4e..00000000000 --- a/deploy/kubernetes/elastic-agent-standalone/elastic-agent-standalone-deployment-configmap.yaml +++ /dev/null @@ -1,161 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: agent-deployment-datastreams - namespace: kube-system - labels: - k8s-app: elastic-agent -data: - # This part requires `kube-state-metrics` up and running under `kube-system` namespace - agent.yml: |- - outputs: - default: - type: elasticsearch - hosts: - - >- - ${ES_HOST} - username: ${ES_USERNAME} - password: ${ES_PASSWORD} - agent: - monitoring: - enabled: true - use_output: default - logs: true - metrics: true - inputs: - - name: kubernetes-cluster-metrics - type: kubernetes/metrics - use_output: default - meta: - package: - name: kubernetes - version: 0.2.8 - data_stream: - namespace: default - streams: - - data_stream: - dataset: kubernetes.apiserver - type: metrics - metricsets: - - apiserver - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token - hosts: - - 'https://${env.KUBERNETES_SERVICE_HOST}:${env.KUBERNETES_SERVICE_PORT}' - period: 30s - ssl.certificate_authorities: - - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - - data_stream: - dataset: kubernetes.event - type: metrics - metricsets: - - event - period: 10s - add_metadata: true - - data_stream: - dataset: kubernetes.state_container - type: metrics - metricsets: - - state_container - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_cronjob - type: metrics - metricsets: - - state_cronjob - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_deployment - type: metrics - metricsets: - - state_deployment - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_node - type: metrics - metricsets: - - state_node - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_persistentvolume - type: metrics - metricsets: - - state_persistentvolume - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_persistentvolumeclaim - type: metrics - metricsets: - - state_persistentvolumeclaim - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_pod - type: metrics - metricsets: - - state_pod - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_replicaset - type: metrics - metricsets: - - state_replicaset - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_resourcequota - type: metrics - metricsets: - - state_resourcequota - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_service - type: metrics - metricsets: - - state_service - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_statefulset - type: metrics - metricsets: - - state_statefulset - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s - - data_stream: - dataset: kubernetes.state_storageclass - type: metrics - metricsets: - - state_storageclass - add_metadata: true - hosts: - - 'kube-state-metrics:8080' - period: 10s diff --git a/deploy/kubernetes/elastic-agent-standalone/elastic-agent-standalone-deployment.yaml b/deploy/kubernetes/elastic-agent-standalone/elastic-agent-standalone-deployment.yaml deleted file mode 100644 index 0def8b88571..00000000000 --- a/deploy/kubernetes/elastic-agent-standalone/elastic-agent-standalone-deployment.yaml +++ /dev/null @@ -1,58 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: elastic-agent - namespace: kube-system - labels: - app: elastic-agent -spec: - selector: - matchLabels: - app: elastic-agent - template: - metadata: - labels: - app: elastic-agent - spec: - serviceAccountName: elastic-agent - containers: - - name: elastic-agent - image: docker.elastic.co/beats/elastic-agent:%VERSION% - args: [ - "-c", "/etc/agent.yml", - "-e", - ] - env: - - name: ES_USERNAME - value: "elastic" - - name: ES_PASSWORD - value: "" - - name: ES_HOST - value: "" - - name: NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - # this is needed because we cannot use hostNetwork - - name: HOSTNAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - securityContext: - runAsUser: 0 - resources: - limits: - memory: 200Mi - requests: - cpu: 100m - memory: 100Mi - volumeMounts: - - name: datastreams - mountPath: /etc/agent.yml - readOnly: true - subPath: agent.yml - volumes: - - name: datastreams - configMap: - defaultMode: 0640 - name: agent-deployment-datastreams