RHEL: 3. Install Graphlytic

1. Deploy plugin into Neo4j

Graphlytic requires some advanced features which are not delivered with Neo4j. There is plugin for Neo4j delivered with Graphlytic installation package. This plugin has to be copied into Neo4j.

Stop Neo4j if it is running. Copy file neo4j-gl-plugin.jar and into directory: <NEO4J_HOME>/plugins/.

Example:

$ sudo cp /tmp/neo4j-gl-plugin-<version>.jar /usr/share/neo4j/plugins/

To see what is the functionlity of plugin see Architecture.

2. Install Graphlytic

2.1. Install Graphlytic as service

After this installation Graphlytic will start automatically after operating system is started. Neo4j is required by Graphlytic so there is also need to install Neo4j as a service (see RHEL: 2. Install Neo4j)

Graphlytic application will be started by user 'graphlytic'. Create this user:

$ sudo useradd -M graphlytic
$ sudo usermod -L graphlytic

Copy Graphlytic installation file "graphlytic-<version>.tar.gz" into /tmp/.

Create directory structure:

$ sudo mkdir -p /usr/share/graphlytic /var/lib/graphlytic /var/log/graphlytic
$ sudo chown -R graphlytic:graphlytic /usr/share/graphlytic /var/lib/graphlytic /var/log/graphlytic

Copy installation file and unpack it:

$ sudo su graphlytic
graphlytic:$ cp /tmp/graphlytic-<version>.tar.gz /usr/share/graphlytic
graphlytic:$ cd /usr/share/graphlytic
graphlytic:$ tar zxvf graphlytic-<version>.tar.gz

Configure Graphlytic:

graphlytic:$ vi /usr/share/graphlytic/conf/graphlytic.conf

Edit this configuration file to contains these lines:

# where Graphlytic stores its data
main.dataDir=../data/
# where Graphlytic stores external widgets
main.widgetsDir=../widgets/
 
# url for HTTP or HTTPS connection to Neo4j REST
# do not comment this line. HTTP/HTTPS connection is mandatory for communication with Graphlytic Neo4j plugin
# you can use HTTPS url to use SSL but you need import Neo4j certificate into Java default truststore
neo4j.connector.http=http://localhost:7474
# url for Bolt connection to Neo4j
# comment this line to disable Bolt protocol communication and HTTP/HTTPS will be used for all communication with Neo4j
neo4j.connector.bolt=bolt://localhost:7687
# username for Neo4j connection
neo4j.connector.username=neo4j
# password for Neo4j connection
neo4j.connector.password=enter_real_password_for_neo4j_here

Configure starting script:

graphlytic:$ chmod a+x /usr/share/graphlytic/bin/graphlyticd
graphlytic:$ vi /usr/share/graphlytic/bin/graphlyticd

Edit this configuration file to use HTTP or HTTPS or both:

#!/bin/sh
 
# use this script with created service
 
# disable or enable HTTP/HTTPS. To disable comment od remove line
#HTTP_PORT=8080
HTTPS_PORT=8443

Copy init script and enable service:

$ sudo cp /usr/share/graphlytic/bin/graphlytic-init-rhel /etc/init.d/graphlytic
$ sudo chmod a+x /etc/init.d/graphlytic
$ sudo systemctl enable graphlytic.service

Check if service was enabled:

$ sudo find /etc/rc?.d/ -name "*graphlytic*"
 
expected result:
/etc/rc2.d/S99graphlytic
/etc/rc3.d/S99graphlytic
/etc/rc4.d/S99graphlytic
/etc/rc5.d/S99graphlytic