Add Fluent Bit configuration for log collection
- Introduced Fluent Bit resources including FluentBit, Parser, Output, FluentBitConfig, and ClusterInput. - Configured default resource requests and limits for Fluent Bit. - Set up JSON parser with customizable time key and format. - Established output forwarding to Fluentd service in the logging system. - Enabled conditional deployment based on the `fluentbit.enabled` value in Helm chart. Signed-off-by: zhenyus <zhenyus@mathmast.com>
This commit is contained in:
parent
0de22b2623
commit
358f131809
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,126 @@
|
|||||||
|
---
|
||||||
|
apiVersion: fluentd.fluent.io/v1alpha1
|
||||||
|
kind: ClusterOutput
|
||||||
|
metadata:
|
||||||
|
name: freeleaps-logging-system-loki
|
||||||
|
labels:
|
||||||
|
fluentd-default-output: "true"
|
||||||
|
spec:
|
||||||
|
outputs:
|
||||||
|
- loki:
|
||||||
|
url: http://loki-gateway.freeleaps-logging-system
|
||||||
|
lineFormat: json
|
||||||
|
insecure: true
|
||||||
|
extractKubernetesLabels: true
|
||||||
|
---
|
||||||
|
apiVersion: fluentd.fluent.io/v1alpha1
|
||||||
|
kind: Fluentd
|
||||||
|
metadata:
|
||||||
|
name: fluentd
|
||||||
|
namespace: freeleaps-logging-system
|
||||||
|
spec:
|
||||||
|
globalInputs:
|
||||||
|
- forward:
|
||||||
|
bind: "0.0.0.0"
|
||||||
|
port: 24224
|
||||||
|
fluentdCfgSelector:
|
||||||
|
matchLabels:
|
||||||
|
fluentd-default-config: "true"
|
||||||
|
replicas: 2
|
||||||
|
workers: 1
|
||||||
|
image: kubesphere/fluentd:v1.17
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 1Gi
|
||||||
|
limits:
|
||||||
|
cpu: 1
|
||||||
|
memory: 2Gi
|
||||||
|
affinity:
|
||||||
|
podAntiAffinity:
|
||||||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
- labelSelector:
|
||||||
|
matchExpressions:
|
||||||
|
- key: app.kubernetes.io/name
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- fluentd
|
||||||
|
topologyKey: "kubernetes.io/hostname"
|
||||||
|
envVars:
|
||||||
|
# Node information
|
||||||
|
- name: K8S_NODE_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: spec.nodeName
|
||||||
|
- name: K8S_NODE_IP
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: status.hostIP
|
||||||
|
# Pod information
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: POD_NAMESPACE
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
- name: POD_IP
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: status.podIP
|
||||||
|
buffer:
|
||||||
|
disableBufferVolume: true
|
||||||
|
---
|
||||||
|
apiVersion: fluentd.fluent.io/v1alpha1
|
||||||
|
kind: ClusterInput
|
||||||
|
metadata:
|
||||||
|
name: fluentd-receiver
|
||||||
|
labels:
|
||||||
|
fluentd-default-input: "true"
|
||||||
|
spec:
|
||||||
|
inputs:
|
||||||
|
- forward:
|
||||||
|
bind: 0.0.0.0
|
||||||
|
port: 24224
|
||||||
|
---
|
||||||
|
apiVersion: fluentd.fluent.io/v1alpha1
|
||||||
|
kind: ClusterFilter
|
||||||
|
metadata:
|
||||||
|
name: fluentd-metadata-appender
|
||||||
|
labels:
|
||||||
|
fluentd-default-filter: "true"
|
||||||
|
spec:
|
||||||
|
filters:
|
||||||
|
- recordTransformer:
|
||||||
|
enableRuby: true
|
||||||
|
records:
|
||||||
|
- key: fluentd_pod_name
|
||||||
|
value: ${ENV["POD_NAME"] || "unknown"}
|
||||||
|
- key: fluentd_pod_ip
|
||||||
|
value: ${ENV["POD_IP"] || "unknown"}
|
||||||
|
- key: fluentd_pod_namespace
|
||||||
|
value: ${ENV["POD_NAMESPACE"] || "unknown"}
|
||||||
|
- key: fluentd_node_name
|
||||||
|
value: ${ENV["K8S_NODE_NAME"] || "unknown"}
|
||||||
|
- key: fluentd_node_ip
|
||||||
|
value: ${ENV["K8S_NODE_IP"] || "unknown"}
|
||||||
|
---
|
||||||
|
apiVersion: fluentd.fluent.io/v1alpha1
|
||||||
|
kind: FluentdConfig
|
||||||
|
metadata:
|
||||||
|
name: freeleaps-logging-fluentd-pipeline
|
||||||
|
namespace: freeleaps-logging-system
|
||||||
|
labels:
|
||||||
|
fluentd-default-config: "true"
|
||||||
|
spec:
|
||||||
|
clusterFilterSelector:
|
||||||
|
matchLabels:
|
||||||
|
fluentd-default-filter: "true"
|
||||||
|
clusterOutputSelector:
|
||||||
|
matchLabels:
|
||||||
|
fluentd-default-output: "true"
|
||||||
|
clusterInputSelector:
|
||||||
|
matchLabels:
|
||||||
|
fluentd-default-input: "true"
|
||||||
|
---
|
||||||
3811
cluster/manifests/freeleaps-logging-system/loki/values.yaml
Normal file
3811
cluster/manifests/freeleaps-logging-system/loki/values.yaml
Normal file
File diff suppressed because it is too large
Load Diff
@ -11,3 +11,4 @@ azure-disk-csi-driver,https://raw.githubusercontent.com/kubernetes-sigs/azuredis
|
|||||||
descheduler,https://kubernetes-sigs.github.io/descheduler/,force-update
|
descheduler,https://kubernetes-sigs.github.io/descheduler/,force-update
|
||||||
kubernetes-dashboard,https://kubernetes.github.io/dashboard/,force-update
|
kubernetes-dashboard,https://kubernetes.github.io/dashboard/,force-update
|
||||||
grafana,https://grafana.github.io/helm-charts,force-update
|
grafana,https://grafana.github.io/helm-charts,force-update
|
||||||
|
fluent,https://fluent.github.io/helm-charts,force-update
|
||||||
|
|||||||
@ -0,0 +1,72 @@
|
|||||||
|
{{- if .Values.fluentbit.enabled }}
|
||||||
|
apiVersion: fluentbit.fluent.io/v1alpha2
|
||||||
|
kind: FluentBit
|
||||||
|
metadata:
|
||||||
|
name: {{ .Release.Name }}-log-collector
|
||||||
|
namespace: {{ .Release.Namespace | quote }}
|
||||||
|
spec:
|
||||||
|
image: {{ .Values.fluentbit.image | quote }}
|
||||||
|
imagePullPolicy: {{ .Values.fluentbit.imagePullPolicy | quote }}
|
||||||
|
fluentBitConfigName: {{ .Release.Name }}-log-collector-config
|
||||||
|
resources:
|
||||||
|
{{- if .Values.fluentbit.resources }}
|
||||||
|
{{- toYaml .Values.fluentbit.resources | nindent 4 }}
|
||||||
|
{{- else }}
|
||||||
|
requests:
|
||||||
|
cpu: 50m
|
||||||
|
memory: 128Mi
|
||||||
|
limits:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 512Mi
|
||||||
|
{{- end }}
|
||||||
|
---
|
||||||
|
apiVersion: fluentbit.fluent.io/v1alpha2
|
||||||
|
kind: Parser
|
||||||
|
metadata:
|
||||||
|
name: {{ .Release.Name }}-log-parser
|
||||||
|
namespace: {{ .Release.Namespace | quote }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: {{ .Release.Name }}-log-collector
|
||||||
|
spec:
|
||||||
|
json:
|
||||||
|
timeKey: {{ .Values.fluentbit.timeKey | quote }}
|
||||||
|
timeFormat: {{ .Values.fluentbit.timeFormat | quote }}
|
||||||
|
---
|
||||||
|
apiVersion: fluentbit.fluent.io/v1alpha2
|
||||||
|
kind: Output
|
||||||
|
metadata:
|
||||||
|
name: {{ .Release.Name }}-log-output
|
||||||
|
namespace: {{ .Release.Namespace | quote }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: {{ .Release.Name }}-log-collector
|
||||||
|
spec:
|
||||||
|
match: "*"
|
||||||
|
forward:
|
||||||
|
host: fluentd.freeleaps-logging-system
|
||||||
|
port: 24224
|
||||||
|
---
|
||||||
|
apiVersion: fluentbit.fluent.io/v1alpha2
|
||||||
|
kind: FluentBitConfig
|
||||||
|
metadata:
|
||||||
|
name: {{ .Release.Name }}-log-collector-config
|
||||||
|
namespace: {{ .Release.Namespace | quote }}
|
||||||
|
spec:
|
||||||
|
inputSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: {{ .Release.Name }}-log-collector
|
||||||
|
outputSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: {{ .Release.Name }}-log-collector
|
||||||
|
parserSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: {{ .Release.Name }}-log-collector
|
||||||
|
---
|
||||||
|
apiVersion: fluentbit.fluent.io/v1alpha2
|
||||||
|
kind: ClusterInput
|
||||||
|
metadata:
|
||||||
|
name: {{ .Release.Name }}-log-collector-input
|
||||||
|
spec:
|
||||||
|
tail:
|
||||||
|
path: {{ .Values.fluentbit.logPath | quote }}
|
||||||
|
parser: {{ .Release.Name }}-log-parser
|
||||||
|
{{- end }}
|
||||||
@ -4,6 +4,20 @@ global:
|
|||||||
nodeSelector: {}
|
nodeSelector: {}
|
||||||
dashboard:
|
dashboard:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
fluentbit:
|
||||||
|
enabled: true
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 50m
|
||||||
|
memory: 128Mi
|
||||||
|
limits:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 512Mi
|
||||||
|
image: kubesphere/fluent-bit:v4.0-debug
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
timeKey: record.repr
|
||||||
|
timeFormat: "%Y-%m-%dT%H:%M:%S.%LZ"
|
||||||
|
logPath: /app/log/authentication/*.log
|
||||||
authentication:
|
authentication:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
image:
|
image:
|
||||||
|
|||||||
@ -7,6 +7,20 @@ dashboard:
|
|||||||
name: freeleaps-prod-authentication-dashboard
|
name: freeleaps-prod-authentication-dashboard
|
||||||
title: Authentication Service Dashboard
|
title: Authentication Service Dashboard
|
||||||
metricsPrefix: freeleaps_authentication
|
metricsPrefix: freeleaps_authentication
|
||||||
|
fluentbit:
|
||||||
|
enabled: false
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 50m
|
||||||
|
memory: 128Mi
|
||||||
|
limits:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 512Mi
|
||||||
|
image: kubesphere/fluent-bit:v4.0-debug
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
timeKey: record.repr
|
||||||
|
timeFormat: "%Y-%m-%dT%H:%M:%S.%LZ"
|
||||||
|
logPath: /app/log/authentication/*.log
|
||||||
authentication:
|
authentication:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
image:
|
image:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user