Fix logging collection in gates
Log retrieval was out of sync since repo split and from multinode gates. Many useful information retrieved before like ps, df, docker info, etc is not in kolla-ansible gates. Also, his change fix logs visualization to have colored view, allowing to easily identify errors. Change-Id: I948233e26ceb6efc58b962bcb4b710b3f006232b
This commit is contained in:
parent
ffc4fb3793
commit
52f73f4061
@ -1,16 +1,57 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
copy_logs() {
|
copy_logs() {
|
||||||
cp -rnL /var/lib/docker/volumes/kolla_logs/_data/* /tmp/logs/kolla/
|
set +o errexit
|
||||||
cp -rnL /etc/kolla/* /tmp/logs/kolla_configs/
|
LOG_DIR=$(readlink -f /tmp/logs)
|
||||||
cp -rvnL /var/log/* /tmp/logs/system_logs/
|
|
||||||
|
cp -rnL /var/lib/docker/volumes/kolla_logs/_data/* ${LOG_DIR}/kolla/
|
||||||
|
cp -rnL /etc/kolla/* ${LOG_DIR}/kolla_configs/
|
||||||
|
cp -rvnL /var/log/* ${LOG_DIR}/system_logs/
|
||||||
|
|
||||||
|
|
||||||
if [[ -x "$(command -v journalctl)" ]]; then
|
if [[ -x "$(command -v journalctl)" ]]; then
|
||||||
journalctl --no-pager -u docker.service > /tmp/logs/system_logs/docker.log
|
journalctl --no-pager > ${LOG_DIR}/system_logs/syslog.txt
|
||||||
|
journalctl --no-pager -u docker.service > ${LOG_DIR}/system_logs/docker.log
|
||||||
else
|
else
|
||||||
cp /var/log/upstart/docker.log /tmp/logs/system_logs/docker.log
|
cp /var/log/upstart/docker.log ${LOG_DIR}/system_logs/docker.log
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
sudo cp -r /etc/sudoers.d ${LOG_DIR}/system_logs/
|
||||||
|
sudo cp /etc/sudoers ${LOG_DIR}/system_logs/sudoers.txt
|
||||||
|
|
||||||
|
df -h > ${LOG_DIR}/system_logs/df.txt
|
||||||
|
free > ${LOG_DIR}/system_logs/free.txt
|
||||||
|
sudo parted -l > ${LOG_DIR}/system_logs/parted-l.txt
|
||||||
|
mount > ${LOG_DIR}/system_logs/mount.txt
|
||||||
|
env > ${LOG_DIR}/system_logs/env.txt
|
||||||
|
|
||||||
|
if [ `command -v dpkg` ]; then
|
||||||
|
dpkg -l > ${LOG_DIR}/system_logs/dpkg-l.txt
|
||||||
|
fi
|
||||||
|
if [ `command -v rpm` ]; then
|
||||||
|
rpm -qa > ${LOG_DIR}/system_logs/rpm-qa.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
# final memory usage and process list
|
||||||
|
ps -eo user,pid,ppid,lwp,%cpu,%mem,size,rss,cmd > ${LOG_DIR}/system_logs/ps.txt
|
||||||
|
|
||||||
|
# docker related information
|
||||||
|
(docker info && docker images && docker ps -a) > ${LOG_DIR}/system_logs/docker-info.txt
|
||||||
|
|
||||||
|
# Rename files to .txt; this is so that when displayed via
|
||||||
|
# logs.openstack.org clicking results in the browser shows the
|
||||||
|
# files, rather than trying to send it to another app or make you
|
||||||
|
# download it, etc.
|
||||||
|
|
||||||
|
# Rename all .log files to .txt files
|
||||||
|
for f in $(find ${LOG_DIR}/{system_logs,kolla,docker_logs} -name "*.log"); do
|
||||||
|
sudo mv $f ${f/.log/.txt}
|
||||||
|
done
|
||||||
|
|
||||||
|
sudo find ${LOG_DIR}/{system_logs,kolla,docker_logs} -iname '*.txt' -execdir gzip -f -9 {} \+
|
||||||
|
sudo find ${LOG_DIR}/{system_logs,kolla,docker_logs} -iname '*.json' -execdir gzip -f -9 {} \+
|
||||||
|
|
||||||
|
set +o errexit
|
||||||
}
|
}
|
||||||
|
|
||||||
check_failure() {
|
check_failure() {
|
||||||
|
Loading…
Reference in New Issue
Block a user