215 lines
4.6 KiB
YAML
215 lines
4.6 KiB
YAML
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: filebeat-config
|
|
namespace: kube-system
|
|
labels:
|
|
k8s-app: filebeat
|
|
data:
|
|
filebeat.yml: |-
|
|
filebeat.config:
|
|
modules:
|
|
path: ${path.config}/modules.d/*.yml
|
|
reload.enabled: false
|
|
|
|
# To enable hints based autodiscover, remove `filebeat.inputs` configuration and uncomment this:
|
|
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_cloud_metadata: ~
|
|
- drop_fields:
|
|
fields: ["ecs","agent","@version"]
|
|
|
|
filebeat.inputs:
|
|
- type: log
|
|
paths:
|
|
- /data/app_logs/*/*/logstash/*.log
|
|
json.keys_under_root: true
|
|
tags: ['json']
|
|
|
|
#All data to indexed to Elasticsearch
|
|
output.kafka:
|
|
hosts: ["10.2.0.12:30002","10.2.0.12:30003","10.2.0.12:30004"]
|
|
|
|
topic: 'beaconfire-logback-tcs'
|
|
partition.round_robin:
|
|
reachable_only: false
|
|
|
|
required_acks: 1
|
|
compression: gzip
|
|
max_message_bytes: 1000000
|
|
|
|
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: DaemonSet
|
|
metadata:
|
|
name: filebeat
|
|
namespace: kube-system
|
|
labels:
|
|
k8s-app: filebeat
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
k8s-app: filebeat
|
|
template:
|
|
metadata:
|
|
labels:
|
|
k8s-app: filebeat
|
|
spec:
|
|
serviceAccountName: filebeat
|
|
terminationGracePeriodSeconds: 30
|
|
hostNetwork: true
|
|
dnsPolicy: ClusterFirstWithHostNet
|
|
containers:
|
|
- name: filebeat
|
|
image: docker.elastic.co/beats/filebeat:7.16.3
|
|
args: [
|
|
"-c", "/etc/filebeat.yml",
|
|
"-e",
|
|
]
|
|
env:
|
|
- name: NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
securityContext:
|
|
runAsUser: 0
|
|
resources:
|
|
limits:
|
|
cpu: 200m
|
|
memory: 256Mi
|
|
requests:
|
|
cpu: 10m
|
|
memory: 64Mi
|
|
volumeMounts:
|
|
- name: config
|
|
mountPath: /etc/filebeat.yml
|
|
readOnly: true
|
|
subPath: filebeat.yml
|
|
- name: data
|
|
mountPath: /usr/share/filebeat/data
|
|
- name: app-logs
|
|
mountPath: /data/app_logs
|
|
readOnly: true
|
|
volumes:
|
|
- name: config
|
|
configMap:
|
|
defaultMode: 0640
|
|
name: filebeat-config
|
|
- name: app-logs
|
|
hostPath:
|
|
path: /data/app_logs
|
|
- name: data
|
|
hostPath:
|
|
# When filebeat runs as non-root user, this directory needs to be writable by group (g+w).
|
|
path: /var/lib/filebeat-data
|
|
type: DirectoryOrCreate
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: filebeat
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: filebeat
|
|
namespace: kube-system
|
|
roleRef:
|
|
kind: ClusterRole
|
|
name: filebeat
|
|
apiGroup: rbac.authorization.k8s.io
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: RoleBinding
|
|
metadata:
|
|
name: filebeat
|
|
namespace: kube-system
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: filebeat
|
|
namespace: kube-system
|
|
roleRef:
|
|
kind: Role
|
|
name: filebeat
|
|
apiGroup: rbac.authorization.k8s.io
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: RoleBinding
|
|
metadata:
|
|
name: filebeat-kubeadm-config
|
|
namespace: kube-system
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: filebeat
|
|
namespace: kube-system
|
|
roleRef:
|
|
kind: Role
|
|
name: filebeat-kubeadm-config
|
|
apiGroup: rbac.authorization.k8s.io
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRole
|
|
metadata:
|
|
name: filebeat
|
|
labels:
|
|
k8s-app: filebeat
|
|
rules:
|
|
- apiGroups: [""] # "" indicates the core API group
|
|
resources:
|
|
- namespaces
|
|
- pods
|
|
- nodes
|
|
verbs:
|
|
- get
|
|
- watch
|
|
- list
|
|
- apiGroups: ["apps"]
|
|
resources:
|
|
- replicasets
|
|
verbs: ["get", "list", "watch"]
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: Role
|
|
metadata:
|
|
name: filebeat
|
|
# should be the namespace where filebeat is running
|
|
namespace: kube-system
|
|
labels:
|
|
k8s-app: filebeat
|
|
rules:
|
|
- apiGroups:
|
|
- coordination.k8s.io
|
|
resources:
|
|
- leases
|
|
verbs: ["get", "create", "update"]
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: Role
|
|
metadata:
|
|
name: filebeat-kubeadm-config
|
|
namespace: kube-system
|
|
labels:
|
|
k8s-app: filebeat
|
|
rules:
|
|
- apiGroups: [""]
|
|
resources:
|
|
- configmaps
|
|
resourceNames:
|
|
- kubeadm-config
|
|
verbs: ["get"]
|
|
---
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: filebeat
|
|
namespace: kube-system
|
|
labels:
|
|
k8s-app: filebeat |