get-node-logs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/bin/bash
  2. set -x
  3. LOG_DIR=$(mktemp -d)
  4. trap "{ rm -rf $LOG_DIR }" EXIT
  5. SYSTEMD_SERVICES=("dnsmasq NetworkManager atomic-openshift-node origin-node")
  6. since_docker="24h"
  7. since_systemd="24 hour ago"
  8. # Dump systemd services logs
  9. for name in ${SYSTEMD_SERVICES} ; do
  10. dump_file_path=${LOG_DIR}/${name}.log
  11. journalctl -u ${name}.service --since "${since_systemd}" > $dump_file_path
  12. done
  13. # Dump command output
  14. ip a > ${LOG_DIR}/ip_a.log
  15. netstat -antu > ${LOG_DIR}/netstat_antu.log
  16. dmesg > ${LOG_DIR}/dmesg.log
  17. route -n > ${LOG_DIR}/route_n.log
  18. ss -ntpl > ${LOG_DIR}/ss_ntpl.log
  19. cat /etc/resolv.conf > ${LOG_DIR}/resolve_conf.log
  20. df -h > ${LOG_DIR}/df_h.log
  21. vmstat 2 20 > ${LOG_DIR}/vmstat_2_20.log
  22. mount > ${LOG_DIR}/mount.log
  23. for table in filter nat; do
  24. iptables -t $table -nvL > ${LOG_DIR}/iptables_$table.log
  25. done
  26. # Dump system journal
  27. journalctl --since "${since_systemd}" > ${LOG_DIR}/journalctl.log
  28. # Dump sdn container logs
  29. uid=$(docker ps -l -a --filter "label=io.kubernetes.container.name=sdn" --format '{{ .Label "io.kubernetes.pod.uid" }}')
  30. if [[ ! -z "${uid}" ]]; then
  31. container=$(docker ps -l -a -q --filter "label=io.kubernetes.pod.uid=${uid}" --filter "label=io.kubernetes.container.name=sdn")
  32. docker logs --since ${since_docker} "${container}" >& ${LOG_DIR}/sdn.log
  33. fi
  34. prefix=osa_node_$(hostname)_$(date +%Y%m%d%H%M%S)
  35. tar -czPf $prefix.tar.gz --xform="s|^$LOG_DIR|$prefix|" $LOG_DIR
  36. echo $prefix.tar.gz