The Service Proxy for Kubernetes (SPK) Fluentd logging Pod is an open source data collector that can be configured to receive logging data from the SPK Controller, Service Proxy Traffic Management Microkernel (TMM), and Distributed Session State Managment (dSSM) Pods. To create log file directories for each of the SPK Pods, Fluentd must bind to a Kubernetes persistence volume.
This document guides you through understanding, configuring and deploying the f5-fluentd logging container.
When installing Fluentd, a Service object is created to receive logging data on TCP service port 54321, and forward the data to Fluentd on TCP service port 24224.
Example Fluentd Service:
Name: f5-toda-fluentd Namespace: spk-utilities IP: 10.109.102.215 Port: <unset> 54321/TCP Endpoints: 10.244.1.75:24224
Example Fluentd integration:
Log file locations¶
Fluentd collects logging data in the following log files:
Note: To modify the TMM logging level, review the tmm_cli section of the Debug Sidecar overview.
Prior to installing Fluentd, ensure you have:
Use the following steps to the install the f5-fluentd container.
Change into local directory with the SPK files, and list the files in the tar directory:
In this example, the SPK files are in the spkinstall directory:
ls -1 tar
In this example, Fluentd Helm chart is named f5-toda-fluentd-1.8.29.tgz:
cwc-0.4.15.tgz f5-cert-gen-0.2.4.tgz f5-dssm-0.22.12.tgz f5-toda-fluentd-1.8.29.tgz f5ingress-5.0.29.tgz spk-docker-images.tgz
Create a new Project for the f5-fluentd container:
Note: This Project can also be used by the dSSM Database Pods in the next integration stage.
oc new-project <project>
In this example, a new Project named spk-utilities is created:
oc new-project spk-utilities
Create a Helm values file named fluentd-values.yaml, and set the
image: repository: <registry> persistence: enabled: true storageClass: "<name>"
In this example, Helm pulls the f5-fluentd image from registry.com, and the container will bind to the storageClass named managed-nfs-storage:
image: repository: registry.com persistence: enabled: true storageClass: "managed-nfs-storage"
Optional: Add the following parameters to the values file to collect logging data from the Controller and dSSM Pods:
# Collect logging from the Ingress Controller Pod f5ingress_logs: enabled: true stdout: true # Collect logging from the dSSM Pods dssm_logs: enabled: true stdout: true # Configuration for sentinel logs dssm_sentinel_logs: enabled: true stdout: true
Install the f5-fluentd container and save the Fluentd hostname for the Controller installation:
helm install f5-fluentd tar/f5-toda-fluentd-1.8.29.tgz -f fluentd-values.yaml
Note: In this example, the Fluentd hostname is f5-toda-fluentd.spk-utilities.svc.cluster.local.:
FluentD hostname: f5-toda-fluentd.spk-utilities.svc.cluster.local. FluentD port: "54321"
The f5-fluentd container should now be successfully installed:
oc get pods
In this example, the Fluentd Pod STATUS is Running:
NAME READY STATUS f5-toda-fluentd-8cf96967b-jxckr 1/1 Running
Fluentd should also be bound to the persistent volume:
oc get pvc
In this example, the Fluentd Pod PVC displays STATUS as Bound:
NAME STATUS VOLUME STORAGECLASS f5-toda-fluentd Bound pvc-7d36b530-b718-466c-9b6e-895e8f1079a2 managed-nfs-storage
After installing the Controller and dSSM Pods, you can use the following steps to view the logs in the
Log in to the fluentd container:
oc exec -it deploy/f5-toda-fluentd -n <project> -- bash
In this example, the container is in the spk-utilities Project:
oc exec -it deploy/f5-toda-fluentd -n spk-utilities -- bash
Change to the main logging directory, and list the subdirectories:
cd /var/log/f5; ls
In this example, logging directories are present for the f5ingress, f5-tmm, f5-dssm-db, and f5-dssm-sentinel Pods:
f5-dssm-db-0 f5-dssm-db-1 f5-dssm-db-2 f5-dssm-sentinel-0 f5-dssm-sentinel-1 f5-dssm-sentinel-2 f5-ingress-f5ingress f5-tmm
Change into one of the subdirectories, for example f5-dssm-db-0:
View the logs using the more command:
more -d dssm.log
Continue to one of the following steps listed by installation precedence: