Support
F5 WAF for NGINX adheres to the support policy detailed in the following MyF5 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.