179 lines
4.0 KiB
YAML
179 lines
4.0 KiB
YAML
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: filebeat-config
|
|
namespace: logging
|
|
data:
|
|
filebeat.yml: |-
|
|
http.enabled: true
|
|
filebeat.inputs:
|
|
- type: container
|
|
paths:
|
|
- /var/log/containers/*.log
|
|
processors:
|
|
- add_kubernetes_metadata:
|
|
in_cluster: true
|
|
host: ${NODE_NAME}
|
|
matchers:
|
|
- logs_path:
|
|
logs_path: "/var/log/containers/"
|
|
filebeat.autodiscover:
|
|
providers:
|
|
- type: kubernetes
|
|
host: ${NODE_NAME}
|
|
hints.enabled: true
|
|
hints.default_config:
|
|
type: container
|
|
paths:
|
|
- /var/log/containers/*${data.kubernetes.container.id}.log
|
|
processors:
|
|
- add_host_metadata:
|
|
- drop_fields:
|
|
fields:
|
|
- stream
|
|
ignore_missing: true
|
|
- rename:
|
|
fields:
|
|
- from: "kubernetes.node.name"
|
|
to: "source"
|
|
- from: "kubernetes.pod.name"
|
|
to: "pod"
|
|
- from: "stream"
|
|
to: "stream"
|
|
- from: "kubernetes.labels.app"
|
|
to: "app"
|
|
- from: "kubernetes.namespace"
|
|
to: "namespace"
|
|
ignore_missing: true
|
|
- drop_fields:
|
|
fields:
|
|
- agent
|
|
- container
|
|
- ecs
|
|
- host
|
|
- kubernetes
|
|
- log
|
|
- "@metadata"
|
|
ignore_missing: true
|
|
output.logstash:
|
|
hosts: ["graylog-logstash:5044"]
|
|
#output.console:
|
|
# pretty: true
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: DaemonSet
|
|
metadata:
|
|
name: filebeat
|
|
namespace: logging
|
|
spec:
|
|
updateStrategy:
|
|
type: RollingUpdate
|
|
rollingUpdate:
|
|
maxUnavailable: 100%
|
|
selector:
|
|
matchLabels:
|
|
app: filebeat
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: filebeat
|
|
spec:
|
|
serviceAccountName: filebeat
|
|
containers:
|
|
- name: filebeat
|
|
image: docker.elastic.co/beats/filebeat:7.17.6
|
|
args:
|
|
- -c
|
|
- /etc/filebeat.yml
|
|
- -e
|
|
securityContext:
|
|
runAsUser: 0
|
|
env:
|
|
- name: NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
ports:
|
|
- containerPort: 5066
|
|
resources:
|
|
limits:
|
|
memory: 200Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 100Mi
|
|
volumeMounts:
|
|
- name: filebeat-config
|
|
mountPath: /etc/filebeat.yml
|
|
readOnly: true
|
|
subPath: filebeat.yml
|
|
- name: data
|
|
mountPath: /usr/share/filebeat/data
|
|
- name: varlibdockercontainers
|
|
mountPath: /var/lib/docker/containers
|
|
readOnly: true
|
|
- name: varlog
|
|
mountPath: /var/log
|
|
readOnly: true
|
|
volumes:
|
|
- name: filebeat-config
|
|
configMap:
|
|
defaultMode: 0600
|
|
name: filebeat-config
|
|
- name: varlibdockercontainers
|
|
hostPath:
|
|
path: /var/lib/docker/containers
|
|
- name: varlog
|
|
hostPath:
|
|
path: /var/log
|
|
- name: data
|
|
hostPath:
|
|
path: /var/lib/filebeat-data
|
|
type: DirectoryOrCreate
|
|
tolerations:
|
|
- operator: "Exists"
|
|
effect: "NoExecute"
|
|
- operator: "Exists"
|
|
effect: "NoSchedule"
|
|
---
|
|
apiVersion: rbac.authorization.k8s.io/v1
|
|
kind: ClusterRoleBinding
|
|
metadata:
|
|
name: logging-filebeat
|
|
subjects:
|
|
- kind: ServiceAccount
|
|
name: filebeat
|
|
namespace: logging
|
|
roleRef:
|
|
kind: ClusterRole
|
|
name: filebeat
|
|
apiGroup: rbac.authorization.k8s.io
|
|
---
|
|
apiVersion: v1
|
|
kind: ServiceAccount
|
|
metadata:
|
|
name: filebeat
|
|
namespace: logging
|
|
labels:
|
|
app: filebeat
|
|
---
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: NetworkPolicy
|
|
metadata:
|
|
name: filebeat
|
|
spec:
|
|
podSelector:
|
|
matchLabels:
|
|
app: filebeat
|
|
policyTypes:
|
|
- Ingress
|
|
- Egress
|
|
egress:
|
|
- to:
|
|
- podSelector:
|
|
matchLabels:
|
|
app: graylog
|
|
ports:
|
|
- protocol: TCP
|
|
port: 5044
|