Skip to content

Instantly share code, notes, and snippets.

@identw
Created September 24, 2025 12:48
Show Gist options
  • Save identw/25dc99ce7906adc03f28b2d45a776157 to your computer and use it in GitHub Desktop.
Save identw/25dc99ce7906adc03f28b2d45a776157 to your computer and use it in GitHub Desktop.
fluent-bit configs
[SERVICE]
Daemon Off
Flush 1
Log_Level info
Parsers_File /fluent-bit/etc/parsers.conf
Parsers_File /fluent-bit/etc/conf/custom_parsers.conf
HTTP_Server On
HTTP_Listen 0.0.0.0
HTTP_Port 2020
Health_Check On
[INPUT]
Name tail
Path /var/log/containers/*.log
multiline.parser multiline_nodejs_exception, multiline_php_slowlog, multiline_php_error, multiline_json, multiline_with_indent
Tag kube.loki.*
Mem_Buf_Limit 96MB
Buffer_Chunk_Size 256KB
Buffer_Max_Size 4MB
Skip_Long_Lines On
Skip_Empty_Lines On
DB /var/log/tail_k8s_loki.db
[INPUT]
Name systemd
Tag host.*
Systemd_Filter _SYSTEMD_UNIT=kubelet.service
Read_From_Tail On
DB /var/log/tail_systemd.db
[FILTER]
Name parser
Match kube.*
Key_name log
Parser custom_cri
[FILTER]
Buffer_Size 1MB
Name kubernetes
Match kube.loki.*
Kube_Tag_Prefix kube.loki.var.log.containers.
Kube_URL https://kubernetes.default:443
Kube_CA_File /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
Merge_Log Off
#Merge_Log_Key log_struct
Keep_Log Off
K8S-Logging.Parser On
K8S-Logging.Exclude On
Use_Kubelet On
Kubelet_Port 10250
Kubelet_Host ${HOST_IP}
Tls.verify Off
[FILTER]
Name lua
Match kube.loki.*
Script discovery_fields.lua
Call cb
[FILTER]
Name rewrite_tag
Match kube.loki.*
Rule $tag ^(kube_nginx_ingress_stdout)$ kube_nginx_ingress_stdout false
[OUTPUT]
Name loki
Match kube.loki.*
Host ${LOKI_HOST}
Port ${LOKI_PORT}
Tls On
Tls.verify On
Labels cluster=${CLUSTER_NAME}
Structured_metadata pod=$kubernetes['pod_name'],APP_NAMESPACE=$app_namespace,REQUEST_ID=$request_id
Label_map_path /fluent-bit/etc/conf/kubernetes_labels_map.json
Line_format json
Drop_single_key raw
Remove_keys _p,kubernetes,time,request_id
http_user ${LOKI_USERNAME}
http_passwd ${LOKI_PASSWORD}
[OUTPUT]
Name loki
Match kube_nginx_ingress_stdout
Host ${LOKI_HOST}
Port ${LOKI_PORT}
Tls On
Tls.verify On
Labels cluster=${CLUSTER_NAME}
Structured_metadata pod=$kubernetes['pod_name'],VHOST=$log['VHOST'],HTTP_STATUS=$log['HTTP_STATUS'],APP_NAMESPACE=$log['APP_NAMESPACE'],REQUEST_ID=$log['REQUEST_ID']
Label_map_path /fluent-bit/etc/conf/kubernetes_labels_map.json
Line_format json
Drop_single_key raw
Remove_keys _p,kubernetes,tag,time,request_id
http_user ${LOKI_USERNAME}
http_passwd ${LOKI_PASSWORD}
[OUTPUT]
Name loki
Match kube.loki.*
Host ${VLS_HOST}
Port ${VLS_PORT}
Tls On
Tls.verify On
Uri /insert/loki/api/v1/push
Labels cluster=${CLUSTER_NAME}
Structured_metadata pod=$kubernetes['pod_name'],APP_NAMESPACE=$app_namespace,REQUEST_ID=$request_id
Line_format json
Drop_single_key raw
Label_map_path /fluent-bit/etc/conf/kubernetes_labels_map.json
Remove_keys _p,kubernetes,time,request_id
Http_user ${VLS_USERNAME}
Http_passwd ${VLS_PASSWORD}
[OUTPUT]
Name loki
Match kube_nginx_ingress_stdout
Host ${VLS_HOST}
Port ${VLS_PORT}
Tls On
Tls.verify On
Uri /insert/loki/api/v1/push
Labels cluster=${CLUSTER_NAME}
Structured_metadata pod=$kubernetes['pod_name'],VHOST=$log['VHOST'],HTTP_STATUS=$log['HTTP_STATUS'],APP_NAMESPACE=$log['APP_NAMESPACE'],REQUEST_ID=$log['REQUEST_ID']
Line_format json
Drop_single_key raw
Label_map_path /fluent-bit/etc/conf/kubernetes_labels_map.json
Remove_keys _p,kubernetes,tag,time,request_id
Http_user ${VLS_USERNAME}
Http_passwd ${VLS_PASSWORD}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment