Exercise 5.3: Cannot get example for fluentd working as described
I followed the labs and the example to get fluentd forwarding the nginx logs would not work. The issue appeared to be with forwarding to the container's localhost.
There were a few of issues:
1. Fluentd does not appear to read the environment variable FLUENTD_ARGS so I had to overwrite the default path /fluentd/etc
2. The fluent.conf file match would not forward to localhost so I had to change it to stdout.
3. There is a mistake in the lab. The correct path for weblog-pv-storage should be /var/log/nginx, not /var/log.
Below is what I ended up with to get it going. Can you please help me understand why #1 and #2 didn't work as expected?
apiVersion: v1 kind: List items: - apiVersion: v1 kind: PersistentVolume metadata: name: weblog-pv labels: type: local spec: storageClassName: manual accessModes: - ReadWriteOnce hostPath: path: /tmp/weblog type: DirectoryOrCreate capacity: storage: 500Mi - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: weblog-pvc spec: storageClassName: manual accessModes: - ReadWriteOnce resources: requests: storage: 200Mi - apiVersion: v1 kind: ConfigMap metadata: name: fluentd-config data: fluent.conf: | <source> @type tail format none path /var/log/nginx/access.log tag count.format1 </source> <match *.**> @type stdout </match> - apiVersion: v1 kind: Pod metadata: name: sidecar-example labels: app: webserver spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 volumeMounts: - name: logging-vol mountPath: /var/log/nginx - name: fdlogger env: - name: FLUENTD_ARGS value: -c /etc/fluentd-config/fluent.conf image: fluent/fluentd volumeMounts: - name: logging-vol mountPath: /var/log/nginx - name: log-config # mountPath: /etc/fluentd-config mountPath: /fluentd/etc volumes: - name: logging-vol persistentVolumeClaim: claimName: weblog-pvc - name: log-config configMap: name: fluentd-config - apiVersion: v1 kind: Service metadata: name: sidecar-svc spec: selector: app: webserver type: NodePort ports: - name: sidecar-port port: 80 nodePort: 32000