Support
F5 WAF for NGINX adheres to the support policy detailed in the following knowledge base article: K000140156.
For questions or assistance with installing, troubleshooting, or using F5 WAF for NGINX, contact support through the MyF5 Customer Portal.
As part of opening a support ticket, you will be asked to collect troubleshooting information for a customer support engineer.
The steps involved depend on your deployment type.
Get the operating system information:
cat /etc/os-release > system_version.txt && uname -r >> system_version.txt && cat /proc/version >> system_version.txt
Collect the package versions:
cat /opt/app_protect/VERSION /opt/app_protect/RELEASE > package_versions.txt
You may need a different command depending on the operating system.
# Alpine Linux
apk info -vv | grep -E 'nginx|app-protect' > package_versions.txt
# Debian / Ubuntu
apt list --installed | grep -E 'nginx|app-protect' > package_versions.txt
# RHEL / Amazon Linux / Oracle Linux
rpm -qa nginx* app-protect* > package_versions.txt
Create a list of files called tarball-targets.txt:
system_version.txt
package_versions.txt
/var/log/app_protect/*
/var/log/nginx/*
/etc/nginx.conf
# Add any additional policy or log configuration files
Create a tarball using the list of files:
tar cvfz logs.tgz `cat tarball-targets.txt`
Use docker compose to create log files:
sudo docker compose logs > docker_compose_logs.txt
If a centralized logging system such as the ELK stack is used, you should retrieve them in CSV format instead:
sudo docker compose logs > docker_compose_logs.csv
Add the log files to a tarball:
tar cvfz logs.tgz docker_compose_logs.txt
In the following steps, replace <example-ns>
with the namespace you used to deploy F5 WAF for NGINX.
Verify the pods in your deployment:
kubectl get pods -n <example-ns>
Use the following script to collect logs from every pod, which will create a timestamped directory with files after each pod and container:
#!/bin/bash
set -x
# Define the namespace variable
NAMESPACE="<example-ns>"
# Define a directory to store log files
log_dir="k8s_logs_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$log_dir"
# Loop through all pods and containers, saving logs to timestamped directories
for pod in $(kubectl get pods -n $NAMESPACE -o=name | sed 's|pod/||g'); do
for container in $(kubectl get pod/$pod -n $NAMESPACE -o=jsonpath='{.spec.containers[*].name}'); do
kubectl logs $pod -c $container -n $NAMESPACE > "${log_dir}/${pod}_${container}_logs.txt"
done
done
Once the log files have been saved, run the following command to create a tarball:
tar cvfz logs.tgz .
Attach the tarball named logs.tgz to your support ticket.