1.2.9 - the luminosity branch¶
v1.2.9-luminosity - October 30, 2018
Security update and minor bug fixes¶
- Secuirty update - update Python requests library to 2.20.0 for CVE-2018-18074.
A manual update of the requests version is possible in-situ without needed to
deploy the full release, in your venv simply activate the venv and run
bin/pip2.7 install requests==2.20.0
- Minor bug fixes are described below.
Changes from v1.2.8¶
- Bumped version to v1.2.9
- A fix mirage issue when slack alert tuples were added where the hours_to_resolve was interpolating to hours_to_resolve = “t” from the metric_vars (2618)
- Added date and time info so you do not have to mouseover the slack message to determine the time at which the alert came in (2618)
- SQL update. Changed anomalies anomalous_datapoint column data type from DECIMAL(18,6) to DECIMAL(65,6) for very long numbers (2638)
- Updated docs, some typos and docstrings in settings.py (2642)
- Update requests dependency to 2.22.0 (2652) CVE-2018-18074
Update notes¶
- NOTE: If you are running v1.x you CANNOT upgrade from v1.x directly to v1.2.9
- You can only upgrade to v1.2.9 from v1.2.8
- There is a change to the DB and a SQL update
- There are no functional changes to settings.py other than some changes to docstrings
How to update from v1.2.8¶
- Update the pip requests dependency for CVE-2018-18074, e.g.
PYTHON_MAJOR_VERSION="2.7"
PYTHON_VIRTUALENV_DIR="/opt/python_virtualenv"
PROJECT="skyline-py2714"
cd "${PYTHON_VIRTUALENV_DIR}/projects/${PROJECT}"
source bin/activate
bin/"pip${PYTHON_MAJOR_VERSION}" install requests==2.20.0
deactivate
# Restart all Skyline services
# Restart Apache
- Download the new release tag or clone/update to get it to a temp location, ready to be deployed.
NEW_SKYLINE_VERSION="v1.2.9-stable-luminosity" # Your new Skyline version
OLD_SKYLINE_VERSION="v1.2.8-stable-luminosity" # Your old Skyline version
CURRENT_SKYLINE_PATH="/opt/skyline/github/skyline" # Your Skyline path
NEW_SKYLINE_PATH="${CURRENT_SKYLINE_PATH}.${NEW_SKYLINE_VERSION}" # Your new Skyline path
mkdir -p "$NEW_SKYLINE_PATH"
cd "$NEW_SKYLINE_PATH"
git clone https://github.com/earthgecko/skyline .
git checkout "$NEW_SKYLINE_VERSION"
- Create the new settings.py from your existing settings.py as there are no changes between v1.2.8 and v1.2.9.
# Create the settings.py from your existing settings.py as there are no
# changes between v1.2.8 and v1.2.9
cat "${CURRENT_SKYLINE_PATH}/skyline/settings.py" > "${NEW_SKYLINE_PATH}/skyline/settings.py"
- Stop Skyline Ionosphere and Panorama services.
- Backup your Skyline database.
- Apply the SQL update to your Skyline database as per described below, change the below variables as appropriate to your set up.
BACKUP_DIR="/tmp" # Where you want to backup the DB to
MYSQL_USER="<YOUR_MYSQL_USER>"
MYSQL_HOST="127.0.0.1" # Your MySQL IP
MYSQL_DB="skyline" # Your MySQL Skyline DB name
# Backup DB
mkdir -p $BACKUP_DIR
mysqldump -u$MYSQL_USER -p $MYSQL_DB > $BACKUP_DIR/pre.v1.2.9.$MYSQL_DB.sql
# Update DB
mysql -u$MYSQL_USER -p $MYSQL_DB < "${NEW_SKYLINE_PATH}/updates/sql/luminosity-v1.2.9-stable.sql
- Stop all the Skyline services and ensure any service controls such as monit, supervisor or systemd do not start them again, (change as appropriate for your set up) e.g.
# Stop all other Skyline services
SKYLINE_SERVICES="horizon
analyzer
mirage
crucible
boundary
ionosphere
luminosity
panorama
webapp"
for i in $SKYLINE_SERVICES
do
/etc/init.d/$i stop
done
- Move your current Skyline directory to a backup directory and move the new Skyline v1.2.9 with your new settings.py from the temp location to your working Skyline directory, (change your paths as appropriate) e.g.
mv "$CURRENT_SKYLINE_PATH" "/opt/skyline/github/skyline.$OLD_SKYLINE_VERSION"
mv "$NEW_SKYLINE_PATH" "$CURRENT_SKYLINE_PATH"
- Start the all Skyline services (change as appropriate for your set up) e.g.
# Start all other Skyline services
SKYLINE_SERVICES="panorama
luminosity
horizon
analyzer
mirage
crucible
boundary
ionosphere
webapp"
for i in $SKYLINE_SERVICES
do
/etc/init.d/$i start
done
# RESTART Apache if it was not restarted when requests was updated above
- Check the logs
# How are they running
tail -n 20 /var/log/skyline/*.log
# Any errors - each app
find /var/log/skyline -type f -name "*.log" | while read skyline_logfile
do
echo "#####
# Checking for errors in $skyline_logfile"
cat "$skyline_logfile" | grep -B2 -A10 -i "error ::\|traceback" | tail -n 60
echo ""
echo ""
done