Хотите развернуть filebeat с тремя определениями журнала вместе. Отправка на разные цели вывода.
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: filebeat
labels:
k8s-app: filebeat
spec:
selector:
matchLabels:
k8s-app: filebeat
template:
metadata:
labels:
k8s-app: filebeat
spec:
serviceAccountName: filebeat
terminationGracePeriodSeconds: 30
containers:
- name: filebeat
image: docker.elastic.co/beats/filebeat:7.10.0
args: [
"-c", "/etc/logs1.yml",
"-c", "/etc/logs2.yml",
"-c", "/etc/logs3.yml",
"-e",
]
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
securityContext:
runAsUser: 0
resources:
limits:
memory: 200Mi
requests:
cpu: 100m
memory: 100Mi
volumeMounts:
- name: config-logs1
mountPath: /etc/logs1.yml
subPath: filebeat-logs1.yml
readOnly: true
- name: config-logs2
mountPath: /etc/logs2.yml
subPath: logs2.yml
readOnly: true
- name: config-logs3
mountPath: /etc/logs3.yml
subPath: logs3.yml
readOnly: true
- 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: config-logs1
configMap:
defaultMode: 0600
name: configmap-logs1
- name: config-logs2
configMap:
defaultMode: 0600
name: configmap-logs2
- name: config-logs3
configMap:
defaultMode: 0600
name: configmap-logs3
- name: varlibdockercontainers
hostPath:
path: /var/lib/docker/containers
- name: varlog
hostPath:
path: /var/log
- name: data
hostPath:
path: /var/lib/filebeat-data
type: DirectoryOrCreate
карта конфигурации logs1
data:
filebeat-logs1.yml: |-
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/logs1.json
output.logstash:
hosts: ["logstash-logs1.default.svc.cluster.local:5044"]
карта конфигурации logs2
data:
filebeat-logs2.yml: |-
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/logs2.json
output.logstash:
hosts: ["logstash-logs2.default.svc.cluster.local:5044"]
карта конфигурации logs3
data:
filebeat-logs3.yml: |-
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/logs3.json
output.logstash:
hosts: ["logstash-logs3.default.svc.cluster.local:5044"]
Когда каждый файл журнала изменяется, каждый раз он отправляется только на третий вывод log3 logstash-logs3.default.svc.cluster.local:5044
. Но может получить данные всех трех файлов logs1.json/logs2.json/logs3.json.
Не может ли filebeat использовать несколько выходных данных в этом случае на одной машине?
У вас может быть столько входов, сколько вы хотите, но вы можете иметь только один выход, вам нужно будет отправлять свои журналы в один журнал, а оттуда вы можете отправлять их в другие места.
Filebeat не поддерживает одновременную отправку одних и тех же данных на несколько серверов logstash. Для этого вам нужно запустить несколько экземпляров Filebeat с разными конфигурациями сервера logstash.
Это ограничение плагина вывода Filebeat.
Чтобы запустить несколько экземпляров filebeat на одном хосте, вы можете перейти по этой ссылке
будет ли одновременно работать отправка данных на сервер Logstash и вывод на консоль?
output.logstash:
hosts: ["localhost:5044"]
output.console:
Что-то вроде этого..