kubectl get ingress
pod=`kubectl get pods -n ingress-nginx | grep controller | awk '{print $1}'`
check the CM has been applied
kubectl -n ingress-nginx exec -ti $pod -- bash
grep log_format nginx.conf
grep access_log nginx.conf
grep error_log nginx.conf
grep gzip nginx.conf
#grep brotli nginx.conf
^D
notice access and error logs to to std outputs
kubectl exec -ti $pod -n ingress-nginx -- bash
ls -lF /var/log/nginx/
^D
generate a few access logs with gzip enabled
curl --compressed -i --resolve hello-world.info:80:192.168.49.2 http://hello-world.info/
# -H "Accept-Encoding: gzip,deflate"
curl --compressed -i --resolve hello-world.info:80:192.168.49.2 http://hello-world.info/NO-EXIST
note nginx will discard vhosts that it doesn’t know about WITHOUT ANY LOG
#curl --compressed -i http://192.168.49.2/
one could try something nasty e.g. trying to talk SSL on 80/tcp but that doesn’t generate error log either
#curl --compressed -i --resolve hello-world.info:80:192.168.49.2 https://hello-world.info:80/
in the end there’s no easy way to generate error log on ingress-nginx. you will only get errors on an nginx server while trying to reach a file not found or some file with bad permissions.
let’s get root into minikube (minikube ssh isn’t enough)
docker exec -ti minikube bash
now let’s check the raw logs
cd /var/log/containers/
tail -F ingress-nginx-controller*log
kubectl get ingress
pod=`kubectl get pods -n ingress-nginx | grep controller | awk '{print $1}'`
access logs should show up as usual over there
kubectl logs $pod -n ingress-nginx | grep GET
kubectl logs -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx | grep GET
check that fluent-bit finds out about that log file and can reach the log server just fine (otherwise prints an error)
kubectl get pods | grep ^fluent
pod=`kubectl get pods | grep ^fluent | awk '{print $1}'`
kubectl logs $pod --tail=5
first let’s check local logs
kubectl exec -ti $pod -- bash
tail -F /var/log/fluent-bit.std.log
then check pod’s logs
kubectl logs $pod
and finally check the indexing dashboard (==> Discover) for the newly created index (index template need to exist beforehand) – you might also check the dynamic mappings that got generated on-the-fly on that index