1
1
#! /bin/bash
2
2
3
- # NOTE(mgoddard): This has been adapted from tests/get_logs.sh in Kolla
4
- # Ansible .
3
+ # NOTE(mgoddard): This has been adapted from
4
+ # roles/kayobe-diagnostics/files/get_logs.sh in Kayobe .
5
5
6
6
# Environment variables:
7
7
# $LOG_DIR is the directory to copy logs to.
8
- # $CONFIG_DIR is the directory to copy configuration from.
9
- # $PREVIOUS_CONFIG_DIR is the directory to copy previous configuration, prior
10
- # to an upgrade, from.
11
8
9
+ # TODO: Make this script more robust and use set -e.
12
10
set +o errexit
11
+ set -u
13
12
14
13
copy_logs () {
15
- cp -rnL /var/lib/docker/volumes/kolla_logs/_data/* ${LOG_DIR} /kolla/
16
- if [[ -d ${CONFIG_DIR} ]]; then
17
- cp -rnL ${CONFIG_DIR} /etc/kayobe/* ${LOG_DIR} /kayobe_configs
18
- cp -rnL ${CONFIG_DIR} /etc/kolla/* ${LOG_DIR} /kolla_configs
19
- cp -rnL /etc/kolla/* ${LOG_DIR} /kolla_node_configs
20
- # Don't save the IPA images.
21
- rm ${LOG_DIR} /kayobe_configs/kolla/config/ironic/ironic-agent.{kernel,initramfs}
22
- rm ${LOG_DIR} /kolla_configs/config/ironic/ironic-agent.{kernel,initramfs}
23
- rm ${LOG_DIR} /kolla_node_configs/ironic-http/ironic-agent.{kernel,initramfs}
24
- rm ${LOG_DIR} /kolla_node_configs/ironic-tftp/ironic-agent.{kernel,initramfs}
25
- fi
26
- if [[ -n ${PREVIOUS_CONFIG_DIR} ]] && [[ -d ${PREVIOUS_CONFIG_DIR} ]]; then
27
- mkdir -p ${LOG_DIR} /previous_{kayobe,kolla}_configs
28
- cp -rnL ${PREVIOUS_CONFIG_DIR} /etc/kayobe/* ${LOG_DIR} /previous_kayobe_configs
29
- cp -rnL ${PREVIOUS_CONFIG_DIR} /etc/kolla/* ${LOG_DIR} /previous_kolla_configs
30
- # NOTE: we can't save node configs in /etc/kolla for the pervious
31
- # release since they'll have been overwritten at this point.
32
- # Don't save the IPA images.
33
- rm ${LOG_DIR} /previous_kayobe_configs/kolla/config/ironic/ironic-agent.{kernel,initramfs}
34
- rm ${LOG_DIR} /previous_kolla_configs/config/ironic/ironic-agent.{kernel,initramfs}
35
- fi
14
+ mkdir -p ${LOG_DIR} /{docker_logs,kolla_node_configs,system_logs}
15
+
16
+ cp -rnL /etc/kolla/* ${LOG_DIR} /kolla_node_configs
17
+ # Don't save the IPA images.
18
+ rm ${LOG_DIR} /kolla_node_configs/ironic-http/ironic-agent.{kernel,initramfs}
19
+ rm ${LOG_DIR} /kolla_node_configs/ironic-tftp/ironic-agent.{kernel,initramfs}
36
20
37
21
if [[ -d /opt/kayobe/etc/kolla ]]; then
22
+ mkdir -p ${LOG_DIR} /kolla_build_configs
38
23
cp -rnL /opt/kayobe/etc/kolla/* ${LOG_DIR} /kolla_build_configs/
39
24
fi
40
25
41
26
cp -rvnL /var/log/* ${LOG_DIR} /system_logs/
42
27
43
- if [[ -x " $( command -v journalctl) " ]]; then
44
- journalctl --no-pager > ${LOG_DIR} /system_logs/syslog.txt
45
- journalctl --no-pager -u docker.service > ${LOG_DIR} /system_logs/docker.log
46
- journalctl --no-pager -u vbmcd.service > ${LOG_DIR} /system_logs/vbmcd.log
47
- journalctl --no-pager -u NetworkManager.service > ${LOG_DIR} /system_logs/NetworkManager.log
48
- else
49
- cp /var/log/upstart/docker.log ${LOG_DIR} /system_logs/docker.log
50
- fi
28
+ journalctl --no-pager > ${LOG_DIR} /system_logs/syslog.log
29
+ journalctl --no-pager -u docker.service > ${LOG_DIR} /system_logs/docker.log
30
+ journalctl --no-pager -u vbmcd.service > ${LOG_DIR} /system_logs/vbmcd.log
31
+ journalctl --no-pager -u NetworkManager.service > ${LOG_DIR} /system_logs/NetworkManager.log
51
32
52
33
if [[ -d /etc/sysconfig/network-scripts/ ]]; then
53
34
cp -r /etc/sysconfig/network-scripts/ ${LOG_DIR} /system_logs/
@@ -81,6 +62,9 @@ copy_logs() {
81
62
ip route > ${LOG_DIR} /system_logs/ip-route.txt
82
63
ip route show table all > ${LOG_DIR} /system_logs/ip-route-all-tables.txt
83
64
ip rule list > ${LOG_DIR} /system_logs/ip-rule-list.txt
65
+ pvs > ${LOG_DIR} /system_logs/pvs.txt
66
+ vgs > ${LOG_DIR} /system_logs/vgs.txt
67
+ lvs > ${LOG_DIR} /system_logs/lvs.txt
84
68
85
69
iptables-save > ${LOG_DIR} /system_logs/iptables.txt
86
70
@@ -106,42 +90,35 @@ copy_logs() {
106
90
107
91
# Bifrost: grab config files and logs from the container.
108
92
if [[ $( docker ps -q -f name=bifrost_deploy) ]]; then
93
+ mkdir -p ${LOG_DIR} /bifrost
109
94
for service in dnsmasq ironic-api ironic-conductor ironic-inspector mariadb nginx rabbitmq-server; do
110
- mkdir -p ${LOG_DIR} /kolla /$service
95
+ mkdir -p ${LOG_DIR} /bifrost /$service
111
96
docker exec bifrost_deploy \
112
- systemctl status $service -l -n 10000 > ${LOG_DIR} /kolla /$service /${service} -systemd-status.txt
97
+ systemctl status $service -l -n 10000 > ${LOG_DIR} /bifrost /$service /${service} -systemd-status.txt
113
98
docker exec bifrost_deploy \
114
- journalctl -u $service --no-pager > ${LOG_DIR} /kolla /$service /${service} -journal.txt
99
+ journalctl -u $service --no-pager > ${LOG_DIR} /bifrost /$service /${service} -journal.txt
115
100
done
116
101
docker exec -it bifrost_deploy \
117
- journalctl --no-pager > ${LOG_DIR} /kolla /bifrost-journal.log
102
+ journalctl --no-pager > ${LOG_DIR} /bifrost /bifrost-journal.log
118
103
for d in dnsmasq.conf ironic ironic-inspector nginx/nginx.conf; do
119
104
docker cp bifrost_deploy:/etc/$d ${LOG_DIR} /kolla_node_configs/bifrost/
120
105
done
121
- docker cp bifrost_deploy:/var/log/mariadb/mariadb.log ${LOG_DIR} /kolla /mariadb/
106
+ docker cp bifrost_deploy:/var/log/mariadb/mariadb.log ${LOG_DIR} /bifrost /mariadb/
122
107
fi
123
108
124
109
# IPA build logs
125
110
if [[ -f /opt/kayobe/images/ipa/ipa.stderr ]] || [[ -f /opt/kayobe/images/ipa/ipa.stdout ]]; then
126
- mkdir -p ${LOG_DIR} /kayobe
127
- cp /opt/kayobe/images/ipa/ipa.stderr /opt/kayobe/images/ipa/ipa.stdout ${LOG_DIR} /kayobe /
111
+ mkdir -p ${LOG_DIR} /ipa
112
+ cp /opt/kayobe/images/ipa/ipa.stderr /opt/kayobe/images/ipa/ipa.stdout ${LOG_DIR} /ipa /
128
113
fi
129
114
130
115
# Overcloud host image build logs
131
116
if [[ -f /opt/kayobe/images/deployment_image/deployment_image.stderr ]] || [[ -f /opt/kayobe/images/deployment_image/deployment_image.stdout ]]; then
132
- mkdir -p ${LOG_DIR} /kayobe
133
- cp /opt/kayobe/images/deployment_image/deployment_image.stderr /opt/kayobe/images/deployment_image/deployment_image.stdout ${LOG_DIR} /kayobe /
117
+ mkdir -p ${LOG_DIR} /deployment_image
118
+ cp /opt/kayobe/images/deployment_image/deployment_image.stderr /opt/kayobe/images/deployment_image/deployment_image.stdout ${LOG_DIR} /deployment_image /
134
119
fi
135
120
136
- # Rename files to .txt; this is so that when displayed via
137
- # logs.openstack.org clicking results in the browser shows the
138
- # files, rather than trying to send it to another app or make you
139
- # download it, etc.
140
- for f in $( find ${LOG_DIR} /{system_logs,kolla,docker_logs} -name " *.log" ) ; do
141
- mv $f ${f/ .log/ .txt}
142
- done
143
-
144
- chmod -R 777 ${LOG_DIR}
121
+ chown -R stack: ${LOG_DIR}
145
122
}
146
123
147
124
copy_logs
0 commit comments