Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Excerpt

Released on April 6, 2016.

New Features

Improvements

  • Search bar alignment and buttons improved

  • Better http HTTP and object cache management

  • Generate a stable item id identifier to improve bulk loading

  • Remove Save option from Search Bar widget

  • Remove foreground limit for significant terms widget

Bug Fixes

  • Fix sub items view in dashboard modal view

  • Set correct item creation date for bulk loading

  • Fix double quotes handling in facet values

  • Fix highlighting for proximity searches

  • Fix field search for language specific fields (e.g. title or body)

  • Use correct facets for heat-map facet value formatting

Updates

  • Updated Elasticsearch to version 2.2

Fresh Installation Instructions

When you follow the installation steps, please perform the following while you install the storage node. After you install the storage node, but before you bring up Elastic Search, do the following:

For a fresh installation on a single node, the number_of_shards and number_of_replicas need to be adjusted to the /etc/elasticsearch/elasticsearch.yml configuration file:

Code Block
# set number of shards to two
root$ echo index.number_of_shards: 2 >> /etc/elasticsearch/elasticsearch.yml

# set number of replicas to zero for single-node squirro setup
root$ echo index.number_of_replicas: 0 >> /etc/elasticsearch/elasticsearch.yml

In addition for fresh installations the following four elasticsearch related permissions need to be set manually like so:

Code Block
root$ chmod 644 /etc/elasticsearch/elasticsearch.yml
root$ chmod 644 /etc/elasticsearch/logging.yml
root$ chown elastic:elastic /var/lib/elasticsearch
root$ chown elastic:elastic /var/log/elasticsearch
root$ chown elastic:elastic /var/run/elasticsearch

These issues will be addressed with the upcoming release 2.3.3 .

Upgrade Instructions

Warning

As this version contains an update to a new major version of elasticsearchElasticsearch, it is only possible to directly upgrade from a Squirro version bigger than 2.3. If you are currently running a version smaller than 2.3 ., please upgrade to 2.3.1 first before you please contact support. 

Warning

This is not the latest version of Squirro. To upgrade to this version. Please follow the upgrade instructions on Squirro 2.2.0 - Release Notes, Squirro 2.2.6 - Release Notes and Squirro 2.3.0 - Release Notes, please ensure that you point the squirro yum repository to version '2.3.2' and not to 'latest'.

Note

If you are using Squirro in a Box, then there are additional steps involved. In this case, please contact support.

 

Step 1: Prepare the upgrade

It is not possible to update to this version without a service interruption.

The upgrade will re-index your data, therefore you need at least 50% of the disk space available on your storage nodes.

The order of the following steps is important, do not skip any step. If a step fails, do not continue before resolving the issue.

Step 2: Stop

squirro 

Squirro

On each cluster node, run:

Code Block
root$ monit allstop stopsqclusterd

 

Step 3: Update the

elasticsearch

Elasticsearch templates

On each storage node, one after the other, run:

Code Block
root$ rpm -Uvh --nodeps $(repoquery --location squirro-elasticsearch-templates)

 

This will update the templates and re-index all indices with the new mapping v6. This may take a while.  

Warning: Do not use yum update squirro-elasticsearch-templates as this tries to update elasticsearch Elasticsearch at the same time. 

Step 4: Update

elasticsearch

Elasticsearch

 

Code Block
root$ rpm -Uvh --nodeps $(repoquery --location elasticsearch)

Elasticsearch will not start as there are configuration conflicts between the two versions that need to be fixed manually:

 

Code Block
warning:
 
 /etc/elasticsearch/elasticsearch.yml created
as 
 as /etc/elasticsearch/elasticsearch.yml.rpmnew

warning:
 
 /etc/init.d/elasticsearch created
as 
 as /etc/init.d/elasticsearch.rpmnew

warning:
 
 /etc/sysconfig/elasticsearch created
as 
 as /etc/sysconfig/elasticsearch.rpmnew

warning:
 
 /usr/lib/systemd/system/elasticsearch.service created
as 
 as /usr/lib/systemd/system/elasticsearch.service.rpmnew

 

Networking behaviour changed with ES2. Make sure you add Elasticsearch 2. In a multi-storagenode setup, make sure that the elasticsearch cluster network configuration is set up correctly. In a standard setup, adding the following to the /etc/elasticsearch/elasticsearch.yml file should work:

 

Code Block
network.bind_host: _
eth0
site_,
127.0.0.1
_local_
network.publish_host: _
eth0_ 
site_

For further help, please consult https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html

File permissions:

  • ensure Ensure /etc/elasticsearch/* is readable by the elastic user. 
  • Ensure that /var/log/elasticsearch/ is readable and writeable writable by the elastic user.

Resolve these issues and then start elasticsearch:

 

.

Remove the ES plugins as they are no longer compatible (new ones will be installed by yum update):

Code Block
root$ 
service elasticsearch start

 

Ensure elasticsearch is running before continuing. 
rm -rf /usr/share/elasticsearch/plugins/*

And last, index the percolation queries that could not be migrated automatically (only required if the file /tmp/elasticsearch/squirro_v5_filter.out exists):

Code Block
root$ curl -s -XPOST http://localhost:9200/_bulk --data-binary "@/tmp/elasticsearch/squirro_v5_filter.out"

 

Step 5: Update Elasticsearch plugins and all other packages

Code Block
root$ yum update 

Depending on your configuration,

ES

Elasticsearch might not come up until you updated a second

storagenode

storage node as it requires at least

one slave

two nodes to be present.

 

Step 5: Update elasticsearch plugins and all other packages

Code Block
root$ yum update 

Depending on your index size, the initial start of elasticsearch service will take a while as it migrates the index internally. 

Step 6: Upgrade Cluster Nodes

On each cluster node, run:

 
Code Block
languagebash
[squirro@clusternode01 ~] sudo yum update
[squirro@clusternode01 ~] sudo monit start all

 

root$ yum update
root$ yum reinstall squirro-python-squirro.api.topic

Resolve /etc/squirro/topic.ini.rpmnew

 

If you run Squirro in a multi-cluster-node environment you need to do the following additional steps on each cluster node:
Code Block
root$ mkdir -p /mnt/gv0/widgets
root$ chown -R sqtopic:squirro /mnt/gv0/widgets
root$ sed -e 's|^custom_widgets_directory = .*|custom_widgets_directory = /mnt/gv0/widgets/|' -i /etc/squirro/topic.ini
root$ sed -i -e 's/db_endpoint_discovery = false/db_endpoint_discovery = true/' /etc/squirro/topic.ini
root$ if [[ ! -L "/var/lib/squirro/topic/widgets" && -d "/var/lib/squirro/topic/widgets" ]]; then rm -ir /var/lib/squirro/topic/widgets; fi
root$ ln -s /mnt/gv0/widgets /var/lib/squirro/topic/widgets
root$ service sqtopicd restart

 

For the cluster node (or in a multi-cluster-node environment all cluster nodes), please run the following steps needed to exercise the new custom widgets extension with release 2.3.2

Code Block
root$ CUSTOM_WIDGET_SYMLINK="/opt/squirro/virtualenv/lib/python2.7/site-packages/squirro/integration/frontend/userapp/static/min/custom"
root$ if [[ -d "$CUSTOM_WIDGET_SYMLINK" && ! -L "$CUSTOM_WIDGET_SYMLINK" ]]; then rm -rf "$CUSTOM_WIDGET_SYMLINK"; fi
root$ ln -s /var/lib/squirro/topic/widgets "$CUSTOM_WIDGET_SYMLINK"

Then start Squirro again:

Code Block
root$ monit start sqclusterd
root$ monit restart sqfrontendd