@@ -16,45 +16,39 @@ data:
1616
1717 metricbeat.autodiscover:
1818 providers:
19+ - type: kubernetes
20+ scope: cluster
21+ node: ${NODE_NAME}
22+ unique: true
23+ templates:
24+ - config:
25+ - module: kubernetes
26+ hosts: ["kube-state-metrics:8080"]
27+ period: 10s
28+ add_metadata: true
29+ metricsets:
30+ - state_node
31+ - state_deployment
32+ - state_replicaset
33+ - state_pod
34+ - state_container
35+ - state_cronjob
36+ - state_resourcequota
37+ - state_statefulset
38+ # Uncomment this to get k8s events:
39+ #- event
40+ - module: kubernetes
41+ metricsets:
42+ - apiserver
43+ hosts: ["https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}"]
44+ bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
45+ ssl.certificate_authorities:
46+ - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
47+ period: 30s
1948 # To enable hints based autodiscover uncomment this:
2049 #- type: kubernetes
2150 # node: ${NODE_NAME}
2251 # hints.enabled: true
23- # Uncomment the following to enable leader election provider that handles
24- # singleton instance configuration across the Daemonset Pods of the whole cluster
25- # in order to monitor some unique data sources, like kube-state-metrics.
26- # When enabling this remember to also delete the Deployment or just set the replicas of the
27- # Deployment to 0.
28- #- type: kubernetes
29- # scope: cluster
30- # node: ${NODE_NAME}
31- # unique: true
32- # # identifier: <lease_lock_name>
33- # templates:
34- # - config:
35- # - module: kubernetes
36- # hosts: ["kube-state-metrics:8080"]
37- # period: 10s
38- # add_metadata: true
39- # metricsets:
40- # - state_node
41- # - state_deployment
42- # - state_replicaset
43- # - state_pod
44- # - state_container
45- # - state_cronjob
46- # - state_resourcequota
47- # - state_statefulset
48- # # Uncomment this to get k8s events:
49- # #- event
50- # - module: kubernetes
51- # metricsets:
52- # - apiserver
53- # hosts: ["https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}"]
54- # bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
55- # ssl.certificate_authorities:
56- # - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
57- # period: 30s
5852
5953 processors:
6054 - add_cloud_metadata:
@@ -224,138 +218,6 @@ spec:
224218 path : /var/lib/metricbeat-data
225219 type : DirectoryOrCreate
226220---
227- apiVersion : v1
228- kind : ConfigMap
229- metadata :
230- name : metricbeat-deployment-config
231- namespace : kube-system
232- labels :
233- k8s-app : metricbeat
234- data :
235- metricbeat.yml : |-
236- metricbeat.config.modules:
237- # Mounted `metricbeat-daemonset-modules` configmap:
238- path: ${path.config}/modules.d/*.yml
239- # Reload module configs as they change:
240- reload.enabled: false
241-
242- processors:
243- - add_cloud_metadata:
244-
245- cloud.id: ${ELASTIC_CLOUD_ID}
246- cloud.auth: ${ELASTIC_CLOUD_AUTH}
247-
248- output.elasticsearch:
249- hosts: ['${ELASTICSEARCH_HOST:elasticsearch}:${ELASTICSEARCH_PORT:9200}']
250- username: ${ELASTICSEARCH_USERNAME}
251- password: ${ELASTICSEARCH_PASSWORD}
252- ---
253- apiVersion : v1
254- kind : ConfigMap
255- metadata :
256- name : metricbeat-deployment-modules
257- namespace : kube-system
258- labels :
259- k8s-app : metricbeat
260- data :
261- # This module requires `kube-state-metrics` up and running under `kube-system` namespace
262- kubernetes.yml : |-
263- - module: kubernetes
264- metricsets:
265- - state_node
266- - state_deployment
267- - state_replicaset
268- - state_pod
269- - state_container
270- - state_cronjob
271- - state_resourcequota
272- - state_statefulset
273- # Uncomment this to get k8s events:
274- #- event
275- period: 10s
276- host: ${NODE_NAME}
277- hosts: ["kube-state-metrics:8080"]
278- #- module: kubernetes
279- # metricsets:
280- # - apiserver
281- # hosts: ["https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}"]
282- # bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
283- # ssl.certificate_authorities:
284- # - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
285- # period: 30s
286- ---
287- # Deploy singleton instance in the whole cluster for some unique data sources, like kube-state-metrics
288- apiVersion : apps/v1
289- kind : Deployment
290- metadata :
291- name : metricbeat
292- namespace : kube-system
293- labels :
294- k8s-app : metricbeat
295- spec :
296- # Set to 0 if using leader election provider with the Daemonset
297- replicas : 1
298- selector :
299- matchLabels :
300- k8s-app : metricbeat
301- template :
302- metadata :
303- labels :
304- k8s-app : metricbeat
305- spec :
306- serviceAccountName : metricbeat
307- hostNetwork : true
308- dnsPolicy : ClusterFirstWithHostNet
309- containers :
310- - name : metricbeat
311- image : docker.elastic.co/beats/metricbeat:8.0.0
312- args : [
313- " -c" , "/etc/metricbeat.yml",
314- " -e" ,
315- ]
316- env :
317- - name : ELASTICSEARCH_HOST
318- value : elasticsearch
319- - name : ELASTICSEARCH_PORT
320- value : " 9200"
321- - name : ELASTICSEARCH_USERNAME
322- value : elastic
323- - name : ELASTICSEARCH_PASSWORD
324- value : changeme
325- - name : ELASTIC_CLOUD_ID
326- value :
327- - name : ELASTIC_CLOUD_AUTH
328- value :
329- - name : NODE_NAME
330- valueFrom :
331- fieldRef :
332- fieldPath : spec.nodeName
333- securityContext :
334- runAsUser : 0
335- resources :
336- limits :
337- memory : 200Mi
338- requests :
339- cpu : 100m
340- memory : 100Mi
341- volumeMounts :
342- - name : config
343- mountPath : /etc/metricbeat.yml
344- readOnly : true
345- subPath : metricbeat.yml
346- - name : modules
347- mountPath : /usr/share/metricbeat/modules.d
348- readOnly : true
349- volumes :
350- - name : config
351- configMap :
352- defaultMode : 0640
353- name : metricbeat-deployment-config
354- - name : modules
355- configMap :
356- defaultMode : 0640
357- name : metricbeat-deployment-modules
358- ---
359221apiVersion : rbac.authorization.k8s.io/v1
360222kind : ClusterRoleBinding
361223metadata :
0 commit comments