Skip to content

Commit 9dbfa03

Browse files
authored
Merge pull request fluent#6 from Yolean/out-kafka-rest
Add example of kafka-rest
2 parents b91b986 + a32359a commit 9dbfa03

File tree

3 files changed

+170
-0
lines changed

3 files changed

+170
-0
lines changed

fluent-bit-config-kafka-rest.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
kind: ConfigMap
2+
metadata:
3+
name: fluent-bit-config-kafka-rest
4+
namespace: kube-system
5+
apiVersion: v1
6+
data:
7+
fluent-bit.conf: |-
8+
[SERVICE]
9+
Flush 1
10+
Daemon Off
11+
Log_Level info
12+
Parsers_File parsers.conf
13+
14+
[INPUT]
15+
Name tail
16+
Tag kube.*
17+
Path /var/log/containers/*.log
18+
Parser docker
19+
DB /var/log/flb_kube.db
20+
Mem_Buf_Limit 5MB
21+
22+
[FILTER]
23+
Name kubernetes
24+
Match kube.*
25+
Kube_URL https://kubernetes.default.svc:443
26+
Merge_JSON_Log On
27+
28+
[OUTPUT]
29+
Name kafka-rest
30+
Match *
31+
Host ${KAFKA_REST_HOST}
32+
Port ${KAFKA_REST_PORT}
33+
Time_Key @timestamp
34+
Tag_Key _fluent-tag
35+
Include_Tag_Key On
36+
Tag_Key My_Tag_Key
37+
Topic ${KAFKA_TOPIC}
38+
# Partition 0
39+
# Message_Key abc
40+
41+
parsers.conf: |-
42+
[PARSER]
43+
Name apache
44+
Format regex
45+
Regex ^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$
46+
Time_Key time
47+
Time_Format %d/%b/%Y:%H:%M:%S %z
48+
49+
[PARSER]
50+
Name apache2
51+
Format regex
52+
Regex ^(?<host>[^ ]*) [^ ]* (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$
53+
Time_Key time
54+
Time_Format %d/%b/%Y:%H:%M:%S %z
55+
56+
[PARSER]
57+
Name apache_error
58+
Format regex
59+
Regex ^\[[^ ]* (?<time>[^\]]*)\] \[(?<level>[^\]]*)\](?: \[pid (?<pid>[^\]]*)\])?( \[client (?<client>[^\]]*)\])? (?<message>.*)$
60+
61+
[PARSER]
62+
Name nginx
63+
Format regex
64+
Regex ^(?<remote>[^ ]*) (?<host>[^ ]*) (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^\"]*?)(?: +\S*)?)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$
65+
Time_Key time
66+
Time_Format %d/%b/%Y:%H:%M:%S %z
67+
68+
[PARSER]
69+
Name json-test
70+
Format json
71+
Time_Key time
72+
Time_Format %d/%b/%Y:%H:%M:%S %z
73+
74+
[PARSER]
75+
Name docker
76+
Format json
77+
Time_Key time
78+
Time_Format %Y-%m-%dT%H:%M:%S.%L
79+
Time_Keep On
80+
81+
[PARSER]
82+
Name syslog
83+
Format regex
84+
Regex ^\<(?<pri>[0-9]+)\>(?<time>[^ ]* {1,2}[^ ]* [^ ]*) (?<host>[^ ]*) (?<ident>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9]+)\])?(?:[^\:]*\:)? *(?<message>.*)$
85+
Time_Key time
86+
Time_Format %b %d %H:%M:%S

fluent-bit-daemonset-kafka-rest.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
apiVersion: extensions/v1beta1
2+
kind: DaemonSet
3+
metadata:
4+
name: fluent-bit
5+
namespace: kube-system
6+
labels:
7+
k8s-app: fluent-bit-logging
8+
version: v1
9+
kubernetes.io/cluster-service: "true"
10+
spec:
11+
template:
12+
metadata:
13+
labels:
14+
k8s-app: fluent-bit-logging
15+
version: v1
16+
kubernetes.io/cluster-service: "true"
17+
spec:
18+
containers:
19+
- name: fluent-bit
20+
image: fluent/fluent-bit:0.12-dev
21+
env:
22+
- name: KAFKA_REST_HOST
23+
value: rest.kafka.svc.cluster.local
24+
- name: KAFKA_REST_PORT
25+
value: "80"
26+
- name: KAFKA_TOPIC
27+
value: fluent-bit
28+
command:
29+
- /fluent-bit/bin/fluent-bit
30+
- -c
31+
- /fluent-bit/etc/fluent-bit.conf
32+
resources:
33+
limits:
34+
memory: 100Mi
35+
requests:
36+
cpu: 100m
37+
memory: 100Mi
38+
volumeMounts:
39+
- name: config
40+
mountPath: /fluent-bit/etc
41+
- name: varlog
42+
mountPath: /var/log
43+
- name: varlibdockercontainers
44+
mountPath: /var/lib/docker/containers
45+
readOnly: true
46+
- name: minikube
47+
mountPath: /mnt/sda1/var/lib/docker/containers
48+
readOnly: true
49+
terminationGracePeriodSeconds: 10
50+
volumes:
51+
- name: config
52+
configMap:
53+
name: fluent-bit-config-kafka-rest
54+
- name: varlog
55+
hostPath:
56+
path: /var/log
57+
- name: varlibdockercontainers
58+
hostPath:
59+
path: /var/lib/docker/containers
60+
- name: minikube
61+
hostPath:
62+
path: /mnt/sda1/var/lib/docker/containers

testpod.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
name: testpod-fluentbit-kafka
5+
namespace: default
6+
spec:
7+
containers:
8+
- name: kafkacat
9+
image: solsson/kafkacat@sha256:1266d140c52cb39bf314b6f22b6d7a01c4c9084781bc779fdfade51214a713a8
10+
command:
11+
- bash
12+
- -ec
13+
- >
14+
cd /usr/local/bin;
15+
echo '#!/bin/bash' > logs-cat;
16+
chmod +x logs-cat;
17+
echo "kafkacat -b kafka-0.broker.kafka.svc.cluster.local:9092 -C -t fluent-bit -o end" >> logs-cat;
18+
19+
echo "Won't cat logs to stdout because it would create an infinite loop of log aggregation.";
20+
echo "Instead run something like:";
21+
echo "kubectl -n default exec -ti testpod-fluentbit-kafka -- logs-cat";
22+
tail -f /dev/null;

0 commit comments

Comments
 (0)