We're excited to announce Squirro 2.6.0, released on April 3rd, 2018, based on Elasticsearch 6.2.2 and packed with new features and improvements

Contents

What's in the release?

New Features

Improvements

Bug Fixes

Added on May 8, 2018 (Build 112)

Added on May 16, 2018 (Build 116)

Added on May 25, 2018 (Build 121)

Added on May 30, 2018 (Build 125)

Added on June 6, 2018 (Build 126)

Added on June 14, 2018 (Build 127)

Installing and Upgrading

Squirro 2.6.0 contains two significant changes;

  • Pipeline 2.0 is now the default and only data processing pipeline in Squirro and is based on new and configurable Pipeline Workflows.
  • The provided Elasticsearch version is 6.2.2 (in Squirro 2.5.3 we had Elasticsearch version 5.6.0). This changes means we need to re-index existing Squirro projects, which may require extended periods of downtime.


Fresh Installation Instructions

Please follow the regular installation steps

Upgrade Instructions

Please ensure that your current version is the latest patch of 2.5.3. If you are on a version older than 2.5.3, please contact support.

Upgrading to Squirro 2.6.0 involves two major changes that will consume additional caution and time:

  1. The Pipeline 1.0 service is being fully replaced by Pipeline 2.0. Before the upgrade we recommend that you pause all sources, wait for incoming data to stop arriving, ensure that all keyword taggings have been applied, and only then proceed with the actual upgrade.
  2. Additionally, the upgrade will reindex the v8 elasticsearch indexes to new indexes with template version v9. This can take hours if your Squirro installation contains a large amount of data.


Estimating Your Upgrade Window: we roughly estimate that each 100K documents in a Squirro index take about 1 minute to migrate to the latest version. From the command line you can find out how many documents are in the index from by issuing commands like;

$ # Example of output from Elasticsearch on index status
$ curl http://localhost:9200/_cat/indices
green open squirro_v8_w6vldmrdt4qq6pvfphoeaa        SUKcwIRAQVuG_2sunFpbTQ 3 1   87790    336    3.3gb    1.6gb
green open squirro_v8_sdmv1va9qxw4xovqnl-pxw        hI_5ttd6Rcelc_29vB9JwQ 3 1   25241      0      1gb    547mb
green open squirro_v8_ignlqdyqsta1dqutozh0xg        B6NrCemiTceoRxAM5JpJmg 3 1  528962     66   16.4gb    8.2gb

$ # The command below takes the 7th column from above and sums to the total number of items in the index
$ curl http://localhost:9200/_cat/indices | awk '{sum += $7} END {print sum}'

So estimate with downtime >= (# total documents / 100000) * 60 seconds


Additionally if you are using Squirro in a Box, additional steps are involved. In this case we also ask you to contact support.



CentOS 6 / RHEL 6


# Pause all sources in the user interface

# Ensure the latest 2.5.3 patch release has been applied
STORAGE_NODE_VERSION=$(yum list installed squirro-storage-node | grep squirro-storage-node | sed -e "s/[^ ]* \+//" -e "s/ \+[^ ]*//")
if [ "$STORAGE_NODE_VERSION" \< "2.5.3-4109" ]; then
    echo "SQUIRRO-STORAGE-NODE PACKAGE VERSION $STORAGE_NODE_VERSION TOO LOW - PLEASE UPGRADE TO THE LATEST SQUIRRO 2.5.3 PATCH RELEASE FIRST" 1>&2
    exit 1
fi

CLUSTER_NODE_VERSION=$(yum list installed squirro-cluster-node | grep squirro-cluster-node | sed -e "s/[^ ]* \+//" -e "s/ \+[^ ]*//")
if [ "$CLUSTER_NODE_VERSION" \< "2.5.3-4113" ]; then
    echo "SQUIRRO-CLUSTER-NODE PACKAGE VERSION $CLUSTER_NODE_VERSION TOO LOW - PLEASE UPGRADE TO THE LATEST SQUIRRO 2.5.3 PATCH RELEASE FIRST" 1>&2
    exit 1
fi

for service in $(ls /etc/monit.d/sq*d | sed -e "s|^.*/||" | grep -v "sqclusterd" | grep -v "sqtopicproxyd"); do monit stop $service; done
# wait for `monit summary` to indicate that all but 6 services are stopped
yum update squirro-storage-node-users
yum update elasticsearch
# the following may take a while, so please wait until all index migrations are done
yum update squirro-storage-node
yum update squirro-cluster-node-users
yum update squirro-*
monit monitor all

# Resume the sources paused in the beginning


CentOS 7


# Pause all sources in the user interface

# Ensure the latest 2.5.3 patch release has been applied
STORAGE_NODE_VERSION=$(yum list installed squirro-storage-node | grep squirro-storage-node | sed -e "s/[^ ]* \+//" -e "s/ \+[^ ]*//")
if [ "$STORAGE_NODE_VERSION" \< "2.5.3-4109" ]; then
    echo "SQUIRRO-STORAGE-NODE PACKAGE VERSION $STORAGE_NODE_VERSION TOO LOW - PLEASE UPGRADE TO THE LATEST SQUIRRO 2.5.3 PATCH RELEASE FIRST" 1>&2
    exit 1
fi

CLUSTER_NODE_VERSION=$(yum list installed squirro-cluster-node | grep squirro-cluster-node | sed -e "s/[^ ]* \+//" -e "s/ \+[^ ]*//")
if [ "$CLUSTER_NODE_VERSION" \< "2.5.3-4113" ]; then
    echo "SQUIRRO-CLUSTER-NODE PACKAGE VERSION $CLUSTER_NODE_VERSION TOO LOW - PLEASE UPGRADE TO THE LATEST SQUIRRO 2.5.3 PATCH RELEASE FIRST" 1>&2
    exit 1
fi

for service in $(ls /lib/systemd/system/sq*d.service | sed -e "s|^.*/||" | grep -v "sqclusterd" | grep -v "sqtopicproxyd"); do echo "Stopping $service"; systemctl stop $service; done
# the output of following statement should indicate that all sq*d services but sqclusterd and sqtopicproxyd are stopped:
for service in $(ls /lib/systemd/system/sq*d.service | sed -e "s|^.*/||"); do echo "Status of $service"; systemctl status $service; done

yum update squirro-storage-node-users
yum update elasticsearch
# the following may take a while, so please wait until all index migrations are done
yum update squirro-storage-node
systemctl daemon-reload
yum update squirro-cluster-node-users
yum update squirro-*
for service in $(ls /lib/systemd/system/sq*d.service | sed -e "s|^.*/||"); do echo "Starting $service"; systemctl start $service; done

# Resume the sources paused in the beginning




On the one cluster node, shut down most of the Squirro services like so:

CentOS 6 / RHEL 6


CLUSTER_NODE_VERSION=$(yum list installed squirro-cluster-node | grep squirro-cluster-node | sed -e "s/[^ ]* \+//" -e "s/ \+[^ ]*//")
if [ "$CLUSTER_NODE_VERSION" \< "2.5.3-4113" ]; then
    echo "SQUIRRO-CLUSTER-NODE PACKAGE VERSION $CLUSTER_NODE_VERSION TOO LOW - PLEASE UPGRADE TO THE LATEST SQUIRRO 2.5.3 PATCH RELEASE FIRST" 1>&2
    exit 1
fi

# Pause all sources in the user interface

for service in $(ls /etc/monit.d/sq*d | sed -e "s|^.*/||" | grep -v "sqclusterd" | grep -v "sqtopicproxyd"); do monit stop $service; done
# wait for `monit summary` to indicate that all but 6 services are stopped


CentOS 7


CLUSTER_NODE_VERSION=$(yum list installed squirro-cluster-node | grep squirro-cluster-node | sed -e "s/[^ ]* \+//" -e "s/ \+[^ ]*//")
if [ "$CLUSTER_NODE_VERSION" \< "2.5.3-4113" ]; then
    echo "SQUIRRO-CLUSTER-NODE PACKAGE VERSION $CLUSTER_NODE_VERSION TOO LOW - PLEASE UPGRADE TO THE LATEST SQUIRRO 2.5.3 PATCH RELEASE FIRST" 1>&2
    exit 1
fi

# Pause all sources in the user interface

for service in $(ls /lib/systemd/system/sq*d.service | sed -e "s|^.*/||" | grep -v "sqclusterd" | grep -v "sqtopicproxyd"); do echo "Stopping $service"; systemctl stop $service; done
# the output of following statement should indicate that all sq*d services but sqclusterd and sqtopicproxyd are stopped:
for service in $(ls /lib/systemd/system/sq*d.service | sed -e "s|^.*/||"); do echo "Status of $service"; systemctl status $service; done


Upgrade the one storage node by running:

CentOS 6 / RHEL 6


# Ensure the latest 2.5.3 patch release has been applied
STORAGE_NODE_VERSION=$(yum list installed squirro-storage-node | grep squirro-storage-node | sed -e "s/[^ ]* \+//" -e "s/ \+[^ ]*//")
if [ "$STORAGE_NODE_VERSION" \< "2.5.3-4109" ]; then
    echo "SQUIRRO-STORAGE-NODE PACKAGE VERSION $STORAGE_NODE_VERSION TOO LOW - PLEASE UPGRADE TO THE LATEST SQUIRRO 2.5.3 PATCH RELEASE FIRST" 1>&2
    exit 1
fi

yum update squirro-storage-node-users
yum update elasticsearch
yum update squirro-storage-node
# this may take a while, wait until all index migrations are done


CentOS 7


# Ensure the latest 2.5.3 patch release has been applied
STORAGE_NODE_VERSION=$(yum list installed squirro-storage-node | grep squirro-storage-node | sed -e "s/[^ ]* \+//" -e "s/ \+[^ ]*//")
if [ "$STORAGE_NODE_VERSION" \< "2.5.3-4109" ]; then
    echo "SQUIRRO-STORAGE-NODE PACKAGE VERSION $STORAGE_NODE_VERSION TOO LOW - PLEASE UPGRADE TO THE LATEST SQUIRRO 2.5.3 PATCH RELEASE FIRST" 1>&2
    exit 1
fi

yum update squirro-storage-node-users
yum update elasticsearch
yum update squirro-storage-node
systemctl daemon-reload
# this may take a while, wait until all index migrations are done


Upgrade the one cluster node by running:

CentOS 6 / RHEL 6


yum update squirro-cluster-node-users
yum update squirro-*
monit monitor all

# Resume the sources paused in the beginning


CentOS 7


yum update squirro-cluster-node-users
yum update squirro-*
for service in $(ls /lib/systemd/system/sq*d.service | sed -e "s|^.*/||"); do echo "Starting $service"; systemctl start $service; done
# wait for the following statement to indicate that all sq*d services are started
for service in $(ls /lib/systemd/system/sq*d.service | sed -e "s|^.*/||"); do echo "Status of $service"; systemctl status $service; done

# Resume the sources paused in the beginning




Upgrading clusters of Squirro nodes to release 2.6.0 is very involved. Please contact Squirro support for assistance.

On each cluster node, shut down most of the Squirro services like so:

CentOS 6 / RHEL 6


CLUSTER_NODE_VERSION=$(yum list installed squirro-cluster-node | grep squirro-cluster-node | sed -e "s/[^ ]* \+//" -e "s/ \+[^ ]*//")
if [ "$CLUSTER_NODE_VERSION" \< "2.5.3-4113" ]; then
    echo "SQUIRRO-CLUSTER-NODE PACKAGE VERSION $CLUSTER_NODE_VERSION TOO LOW - PLEASE UPGRADE TO THE LATEST SQUIRRO 2.5.3 PATCH RELEASE FIRST" 1>&2
    exit 1
fi

# Pause all sources in the user interface

for service in $(ls /etc/monit.d/sq*d | sed -e "s|^.*/||" | grep -v "sqclusterd" | grep -v "sqtopicproxyd"); do monit stop $service; done
# wait for `monit summary` to indicate that all services but sqclusterd and sqtopicproxyd are stopped


CentOS 7


CLUSTER_NODE_VERSION=$(yum list installed squirro-cluster-node | grep squirro-cluster-node | sed -e "s/[^ ]* \+//" -e "s/ \+[^ ]*//")
if [ "$CLUSTER_NODE_VERSION" \< "2.5.3-4113" ]; then
    echo "SQUIRRO-CLUSTER-NODE PACKAGE VERSION $CLUSTER_NODE_VERSION TOO LOW - PLEASE UPGRADE TO THE LATEST SQUIRRO 2.5.3 PATCH RELEASE FIRST" 1>&2
    exit 1
fi

# Pause all sources in the user interface

for service in $(ls /lib/systemd/system/sq*d.service | sed -e "s|^.*/||" | grep -v "sqclusterd" | grep -v "sqtopicproxyd"); do echo "Stopping $service"; systemctl stop $service; done
# wait for the following statement to indicate that all services but sqclusterd and sqtopicproxyd are stopped
for service in $(ls /lib/systemd/system/sq*d.service | sed -e "s|^.*/||"); do echo "Status of $service"; systemctl status $service; done



Upgrade every storage nodes by running:

CentOS 6 / RHEL 6


# Ensure the latest 2.5.3 patch release has been applied
STORAGE_NODE_VERSION=$(yum list installed squirro-storage-node | grep squirro-storage-node | sed -e "s/[^ ]* \+//" -e "s/ \+[^ ]*//")
if [ "$STORAGE_NODE_VERSION" \< "2.5.3-4109" ]; then
    echo "SQUIRRO-STORAGE-NODE PACKAGE VERSION $STORAGE_NODE_VERSION TOO LOW - PLEASE UPGRADE TO THE LATEST SQUIRRO 2.5.3 PATCH RELEASE FIRST" 1>&2
    exit 1
fi

yum update squirro-storage-node-users
yum update elasticsearch


CentOS 7


# Ensure the latest 2.5.3 patch release has been applied
STORAGE_NODE_VERSION=$(yum list installed squirro-storage-node | grep squirro-storage-node | sed -e "s/[^ ]* \+//" -e "s/ \+[^ ]*//")
if [ "$STORAGE_NODE_VERSION" \< "2.5.3-4109" ]; then
    echo "SQUIRRO-STORAGE-NODE PACKAGE VERSION $STORAGE_NODE_VERSION TOO LOW - PLEASE UPGRADE TO THE LATEST SQUIRRO 2.5.3 PATCH RELEASE FIRST" 1>&2
    exit 1
fi

yum update squirro-storage-node-users
yum update elasticsearch


and then do it on one of the storage node and make sure that the Elasticsearch health is green before proceeding to further nodes. If the Elasticsearch health is not green, please refrain from updating other storage nodes and contact Squirro support.
This step usually take long time as it needs to migrate old indices to indices in new template, so make sure start this command in a screen section to avoid disconnection during update.

CentOS 6 / RHEL 6


screen
yum update squirro-storage-node


CentOS 7


screen
systemctl daemon-reload
yum update squirro-storage-node



Upgrade each cluster nodes by running:

CentOS 6 / RHEL 6

First run the following on all cluster nodes one at a time:

yum update squirro-cluster-node-users
yum update squirro-python-squirro.service.cluster

Followed by running the following on all cluster nodes one at a time:

yum update squirro-*
monit monitor all

# Resume the sources paused in the beginning


CentOS 7


yum update squirro-cluster-node-users
yum update squirro-*
for service in $(ls /lib/systemd/system/sq*d.service | sed -e "s|^.*/||"); do echo "Starting $service"; systemctl start $service; done

# Resume the sources paused in the beginning