#!/bin/bash if [ ! -e /home/stack/overcloudrc ]; then echo "/home/stack/overcloudrc not found." echo "exiting." exit fi source /home/stack/overcloudrc echo "Configuring controllers for logging." echo "" echo "Configuring glance-api..." for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do ssh $i sudo crudini --set /etc/glance/glance-api.conf DEFAULT use_syslog True; ssh $i sudo crudini --set /etc/glance/glance-api.conf DEFAULT syslog_log_facility LOG_LOCAL1 ; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "glance-api.conf use_syslog - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/glance/glance-api.conf DEFAULT use_syslog) ; echo "$RESPONSE"; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "glance-api.conf syslog_log_facility - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/glance/glance-api.conf DEFAULT syslog_log_facility) ; echo "$RESPONSE" ; done echo "" echo "Configuring glance-registry..." for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do ssh $i sudo crudini --set /etc/glance/glance-registry.conf DEFAULT use_syslog True; ssh $i sudo crudini --set /etc/glance/glance-registry.conf DEFAULT syslog_log_facility LOG_LOCAL1 ; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "glance-registry.conf use_syslog - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/glance/glance-registry.conf DEFAULT use_syslog) echo "$RESPONSE"; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: "; echo -n "glance-registry.conf syslog_log_facility - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/glance/glance-registry.conf DEFAULT syslog_log_facility); echo "$RESPONSE" ; done echo "" echo "Configuring ceilometer..." for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do ssh $i sudo crudini --set /etc/ceilometer/ceilometer.conf DEFAULT use_syslog True; ssh $i sudo crudini --set /etc/ceilometer/ceilometer.conf DEFAULT syslog_log_facility LOG_LOCAL4 ; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "ceilometer.conf use_syslog - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/ceilometer/ceilometer.conf DEFAULT use_syslog); echo "$RESPONSE"; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "ceilometer.conf syslog_log_facility - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/ceilometer/ceilometer.conf DEFAULT syslog_log_facility ); echo "$RESPONSE" ; done echo "" echo "Configuring cinder..." for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do ssh $i sudo crudini --set /etc/cinder/cinder.conf DEFAULT use_syslog True; ssh $i sudo crudini --set /etc/cinder/cinder.conf DEFAULT syslog_log_facility LOG_LOCAL2 ; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "cinder.conf use_syslog - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/cinder/cinder.conf DEFAULT use_syslog); echo "$RESPONSE"; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "cinder.conf syslog_log_facility - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/cinder/cinder.conf DEFAULT syslog_log_facility); echo "$RESPONSE" ; done echo "" echo "Configuring heat..." for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do ssh $i sudo crudini --set /etc/heat/heat.conf DEFAULT use_syslog True; ssh $i sudo crudini --set /etc/heat/heat.conf DEFAULT syslog_log_facility LOG_LOCAL5 ; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "heat.conf use_syslog - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/heat/heat.conf DEFAULT use_syslog); echo "$RESPONSE"; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "heat.conf syslog_log_facility - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/heat/heat.conf DEFAULT syslog_log_facility); echo "$RESPONSE" ; done echo "" echo "Configuring keystone..." for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do ssh $i sudo crudini --set /etc/keystone/keystone.conf DEFAULT use_syslog True; ssh $i sudo crudini --set /etc/keystone/keystone.conf DEFAULT syslog_log_facility LOG_LOCAL3 ; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "keystone.conf use_syslog - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/keystone/keystone.conf DEFAULT use_syslog); echo "$RESPONSE"; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "keystone.conf syslog_log_facility - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/keystone/keystone.conf DEFAULT syslog_log_facility); echo "$RESPONSE" ; done echo "" echo "Configuring neutron..." for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do ssh $i sudo crudini --set /etc/neutron/neutron.conf DEFAULT use_syslog True; ssh $i sudo crudini --set /etc/neutron/neutron.conf DEFAULT syslog_log_facility LOG_LOCAL4 ; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "neutron.conf use_syslog - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/neutron/neutron.conf DEFAULT use_syslog); echo "$RESPONSE"; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "neutron.conf syslog_log_facility - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/neutron/neutron.conf DEFAULT syslog_log_facility); echo "$RESPONSE" ; done echo "" echo "Configuring nova..." for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do ssh $i sudo crudini --set /etc/nova/nova.conf DEFAULT use_syslog True; ssh $i sudo crudini --set /etc/nova/nova.conf DEFAULT syslog_log_facility LOG_LOCAL0 ; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "nova.conf use_syslog - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/nova/nova.conf DEFAULT use_syslog); echo "$RESPONSE"; done for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "${i}: " ; echo -n "nova.conf syslog_log_facility - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/nova/nova.conf DEFAULT syslog_log_facility); echo "$RESPONSE" ; done echo "" echo "Setting up /etc/rsyslog.d/client.conf on controllers..." for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo $i ; cat client.conf | ssh heat-admin@$i "sudo sh -c 'cat > /etc/rsyslog.d/client.conf'" ; ssh heat-admin@$i 'sudo sed -i s/PORTNUM/50005/g /etc/rsyslog.d/client.conf'; done echo "" echo "Configuring compute nodes for logging" echo "" echo "Configuring nova..." for i in $( nova hypervisor-list | awk '/localdomain/ {print $4}' | sed s/.localdomain// | sort -V) ; do ssh $i sudo crudini --set /etc/nova/nova.conf DEFAULT use_syslog True ; ssh $i sudo crudini --set /etc/nova/nova.conf DEFAULT syslog_log_facility LOG_LOCAL0 ; done for i in $( nova hypervisor-list | awk '/localdomain/ {print $4}' | sed s/.localdomain// | sort -V) ; do echo -n "${i}: " ; echo -n "nova.conf use_syslog - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/nova/nova.conf DEFAULT use_syslog); echo "$RESPONSE"; done for i in $( nova hypervisor-list | awk '/localdomain/ {print $4}' | sed s/.localdomain// | sort -V) ; do echo -n "${i}: " ; echo -n "nova.conf syslog_log_facility - " ; RESPONSE=$(ssh $i sudo crudini --get /etc/nova/nova.conf DEFAULT syslog_log_facility); echo "$RESPONSE" ; done echo "Setting up /etc/rsyslog.d/client.conf on compute nodes..." for i in $( nova hypervisor-list | awk '/localdomain/ {print $4}' | sed s/.localdomain// | sort -V) ; do echo $i ; cat client.conf | ssh heat-admin@$i "sudo sh -c 'cat > /etc/rsyslog.d/client.conf'" ; ssh heat-admin@$i 'sudo sed -i s/PORTNUM/50004/g /etc/rsyslog.d/client.conf'; done echo "" echo "Configuring local node of logging..." echo "" echo "Configuring glance-api..." sudo crudini --set /etc/glance/glance-api.conf DEFAULT use_syslog True; sudo crudini --set /etc/glance/glance-api.conf DEFAULT syslog_log_facility LOG_LOCAL1 echo -n "glance-api.conf use_syslog: " ; RESPONSE=$(sudo crudini --get /etc/glance/glance-api.conf DEFAULT use_syslog) ; echo "$RESPONSE" echo -n "glance-api.conf syslog_log_facility: " ; RESPONSE=$(sudo crudini --get /etc/glance/glance-api.conf DEFAULT syslog_log_facility); echo "$RESPONSE" echo "" echo "Configuring glance-registry..." sudo crudini --set /etc/glance/glance-registry.conf DEFAULT use_syslog True; sudo crudini --set /etc/glance/glance-registry.conf DEFAULT syslog_log_facility LOG_LOCAL1 echo -n "glance-registry.conf use_syslog: " ; RESPONSE=$(sudo crudini --get /etc/glance/glance-registry.conf DEFAULT use_syslog); echo "$RESPONSE" echo -n "glance-registry.conf syslog_log_facility: " ; RESPONSE=$(sudo crudini --get /etc/glance/glance-registry.conf DEFAULT syslog_log_facility); echo "$RESPONSE" echo "" echo "Configuring ceilometer..." sudo crudini --set /etc/ceilometer/ceilometer.conf DEFAULT use_syslog True; sudo crudini --set /etc/ceilometer/ceilometer.conf DEFAULT syslog_log_facility LOG_LOCAL4 echo -n "ceilometer.conf use_syslog: " ; RESPONSE=$(sudo crudini --get /etc/ceilometer/ceilometer.conf DEFAULT use_syslog); echo "$RESPONSE" echo -n "ceilometer.conf syslog_log_facility: " ; RESPONSE=$(sudo crudini --get /etc/ceilometer/ceilometer.conf DEFAULT syslog_log_facility); echo "$RESPONSE" echo "" echo "Configuring heat..." sudo crudini --set /etc/heat/heat.conf DEFAULT use_syslog True; sudo crudini --set /etc/heat/heat.conf DEFAULT syslog_log_facility LOG_LOCAL5 echo -n "heat.conf use_syslog: " ; RESPONSE=$(sudo crudini --get /etc/heat/heat.conf DEFAULT use_syslog); echo "$RESPONSE" echo -n "heat.conf syslog_log_facility: " ; RESPONSE=$(sudo crudini --get /etc/heat/heat.conf DEFAULT syslog_log_facility); echo "$RESPONSE" echo "" echo "Configuring keystone..." sudo crudini --set /etc/keystone/keystone.conf DEFAULT use_syslog True; sudo crudini --set /etc/keystone/keystone.conf DEFAULT syslog_log_facility LOG_LOCAL3 echo -n "keystone.conf use_syslog: " ; RESPONSE=$(sudo crudini --get /etc/keystone/keystone.conf DEFAULT use_syslog); echo "$RESPONSE" echo -n "keystone.conf syslog_log_facility: " ; RESPONSE=$(sudo crudini --get /etc/keystone/keystone.conf DEFAULT syslog_log_facility); echo "$RESPONSE" echo "" echo "Configuring neutron..." sudo crudini --set /etc/neutron/neutron.conf DEFAULT use_syslog True; sudo crudini --set /etc/neutron/neutron.conf DEFAULT syslog_log_facility LOG_LOCAL4 echo -n "neutron.conf use_syslog: " ; RESPONSE=$(sudo crudini --get /etc/neutron/neutron.conf DEFAULT use_syslog); echo "$RESPONSE" echo -n "neutron.conf syslog_log_facility: " ; RESPONSE=$(sudo crudini --get /etc/neutron/neutron.conf DEFAULT syslog_log_facility); echo "$RESPONSE" echo "" echo "Configuring nova..." sudo crudini --set /etc/nova/nova.conf DEFAULT use_syslog True; sudo crudini --set /etc/nova/nova.conf DEFAULT syslog_log_facility LOG_LOCAL0 echo -n "nova.conf use_syslog: " ; RESPONSE=$(sudo crudini --get /etc/nova/nova.conf DEFAULT use_syslog); echo "$RESPONSE" echo -n "nova.conf syslog_log_facility: " ; RESPONSE=$(sudo crudini --get /etc/nova/nova.conf DEFAULT syslog_log_facility); echo "$RESPONSE" echo "" echo "Setting up /etc/rsyslog.d/client.conf on localhost..." sudo cp client.conf /etc/rsyslog.d/client.conf sudo sed -i s/PORTNUM/50001/g /etc/rsyslog.d/client.conf sudo chown root:root /etc/rsyslog.d/client.conf sudo chmod 644 /etc/rsyslog.d/client.conf echo "Restarting services on localhost..." sudo systemctl | awk '/openstack/ {print $1}' | xargs -n1 sudo systemctl restart sudo systemctl restart rsyslog echo "Checking that services on localhost are active:" sleep 1 sudo systemctl | awk '/openstack/ {print $1}' | xargs -n1 sudo systemctl status | grep "Active:" sleep 1 sudo systemctl status rsyslog echo "Restarting services on compute nodes..." for i in $( nova hypervisor-list | awk '/localdomain/ {print $4}' | sed s/.localdomain// | sort -V) ; do echo "restarting openstack-nova-compute on $i" ; ssh $i sudo systemctl restart openstack-nova-compute ; done for i in $( nova hypervisor-list | awk '/localdomain/ {print $4}' | sed s/.localdomain// | sort -V) ; do echo "restarting rsyslog on $i" ; ssh $i sudo systemctl restart rsyslog ; done echo "Checking that services on compute nodes are active:" for i in $( nova hypervisor-list | awk '/localdomain/ {print $4}' | sed s/.localdomain// | sort -V) ; do echo -n "$i : " ; ssh $i sudo systemctl status rsyslog | grep Active: ; done echo "Restarting services on controllers..." ssh $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | head -n 1) sudo pcs resource restart haproxy-clone for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}') ; do ssh $i sudo systemctl restart rsyslog ; done echo "Checking that services on control nodes are active:" ssh heat-admin@$(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | head -n 1) sudo pcs status | egrep -i 'stop|start' for i in $(nova host-list | awk '/consoleauth/ {split($2,a,"."); print a[1]}' | sort -V) ; do echo -n "$i : " ; ssh $i sudo systemctl status rsyslog | grep Active: ; done