Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel3
outlinetrue

Overview

In this section, the Automated Deployment method for Syndeia Cloud is presented. In the Automated Deployment method, Syndeia admins will run scripts that download and configure Syndeia Cloud and its infrastructure components - Cassandra, JanusGraph, Kafka, and Zookeeper. There is also an option Refer to run the automated scripts to only download and then install later. This is useful when working in an air-gapped environment.

(info) Syndeia admins must use either the Automated Deployment (presented here) or the Semi-Automated Deployment method. See the guidance on the parent page: Deployment Methods.

Prerequisites Summary

...

...

Supported OS deployed:

  1. Preferred and Recommended - RHEL/CentOS/Alma Linux v7.9+ with

    • Console and/or SSH access enabled

  2. Windows 2016+ with

    • Console and/or RDP access enabled

    • Port 9000 (HTTP) | 9443 (HTTPS) opened

...

Software: Compatibility Layer Components

  1. Linux:

    1. JRE/JDK (automatically installed during Cassandra installation)

  2. Windows:

    1. JRE/JDK installed ( (info) with JAVA_HOME set)

    2. Cygwin and required packages installed

    3. Apache Commons Daemon v1.2.3 downloaded & extracted to C:\cygwin64\opt\commons-daemon-1.2.3-bin-windows

...

Software: Infrastructure Components

  1. Apache Cassandra (automatically downloaded OR can use offline mode, see below)

  2. Janusgraph (automatically downloaded OR can use offline mode, see below)

  3. Apache Zookeeper (automatically downloaded OR can use offline mode, see below)

  4. Apache Kafka (automatically downloaded OR can use offline mode, see below)

  5. Syndeia Cloud (SC) media file .ZIPs downloaded : Download .ZIPs from password-protected links provided in the Intercax Helpdesk ticket where you originally requested your Syndeia Cloud license. Filenames for each are as follows.

    1. syndeia-cloud-3.5-SP1_cassandra_zookeeper_kafka_setup.zip

    2. syndeia-cloud-3.5-SP1_janusgraph_setup.zip

    3. syndeia-cloud-3.5-SP1.zip

Installation Logging

Info

Before proceeding with any deployment steps in the CLI it is highly recommended you first enable input & output logging as the shell does not do this by default.

Either enable (maximum) logging in your terminal of choice and/or use GNU script. See Appendix F6.1: Installation Logging for more details.

Offline Installation Mode (Optional)

If you are not in an offline environment, ex: air-gapped , & your server has internet access, simply skip to the next step.

If you are in an air-gapped environment, or wish to do an offline installation, you can pre-download all media files for the full stack to make it easier to batch transfer everything at once into your secure environment. Once copied over, the pre-setup scripts will automatically use the provided media in your home directory instead of downloading it from the Internet:

  1. Windows-only: Pre-download JRE/JDK setup package to your home folder

  2. Windows-only: Pre-download Cygwin required packages (for offline package installation, select the “Download Without Installing” option in the Cygwin wizard, then select the packages listed on step 5 of the “Download, Install, & Configure Cygwin” section of the Cygwin page, complete the wizard, the selected pacakges will be downloaded to a folder named after the Download Site you selected (starting with http...) in your user’s Downloads directory (by default, may want to change it to the home folder to be consistent with the other component downloads).

    Image Removed
  3. Windows-only: Pre-download Apache Commons Daemon (will download to your home folder). In a Cygwin Terminal, run:

    Code Block
    languagebash
    cd ~/syndeia-cloud-3.5_cassandra_zookeeper_kafka_setup/bin
    ./Apache_Commons/install_as_Commons_service_windows.bash -d
  4. Pre-download SC infrastructure packages via the commands below. In a (Cygwin) Terminal, run:

    Code Block
    languagebash
    cd ~/syndeia-cloud-3.5_cassandra_zookeeper_kafka_setup/bin
    ./syndeia-cloud-3.5_cassandra_pre-setup.bash -d # this will also automatically download OpenJDK + yum-plugin-versionlock (+ wget + python if necessary)
    ./syndeia-cloud-3.5_zookeeper_pre-setup.bash -d
    ./syndeia-cloud-3.5_kafka_pre-setup.bash -d
    cd ~/syndeia-cloud-3.5_janusgraph_setup/bin
    ./syndeia-cloud-3.5_janusgraph_pre-setup.bash -d
  5. Pre-download SC media (links provided in your Intercax IHD ticket) to your home folder.

  6. Copy over everything above in batch to your secure enclave / SCIF via whatever IT Security process you have to your home folder. (warning) IMPORTANT: Ensure all media is placed in the same directory it was originally downloaded to- the home folder, ie: ~/!

Steps

Windows-only: Software Compatibility Layer Installation

  1. JRE/JDK installed ( (info) with JAVA_HOME set)

  2. Cygwin and required packages installed: Proceed through the Cygwin Setup Instructions for Windows (2012-R2 x64) steps.

Note, if you had elected to do the Offline Mode Installation, on the 2nd screenshot of step 4, please instead select the “Install from Local Directory” option (see screenshot below):

  • Image Removed

3. Apache Commons Daemon v1.2.3 downloaded & extracted to C:\cygwin64\opt\commons-daemon-1.2.3-bin-windows

Extract SC Media

  1. Launch a Terminal with bash (ensure you are in your home directory)
    (info) for Windows Cygwin (and Linux!), this means ~/ NOT C:\Users\...

  2. Unzip all SC packages:

    Code Block
    languagebash
    unzip syndeia-cloud-3.5*.zip

Apache Cassandra

  1. cd to the cassandra_zookeeper_kafka_setup package’s bin directory:

    Code Block
    languagebash
    cd ~/syndeia-cloud-3.5_cassandra_zookeeper_kafka_setup/bin
  2. Run the Apache Cassandra pre-setup script:

    Code Block
    languagebash
    ./syndeia-cloud-3.5_cassandra_pre-setup.bash

Verification:

Verify Cassandra is up and functioning by running nodetool status:
If you are on Linux:

Code Block
languagebash
nodetool status

If you are on Windows:

Code Block
languagebash
cd /opt/apache-cassandra-current/bin/
./nodetool.bat status

...

Code Block
languagebash
Datacenter: dc1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address       Load       Tokens       Owns (effective)  Host ID                               Rack
UN  192.168.1.3   644.57 KiB 256          100.0%            141c21db-4f79-476b-b818-ee6d2da16d7d  rack1

Apache Zookeeper (ZK)

  1. Run the Apache Zookeeper (ZK) pre-setup script:

    Code Block
    languagebash
    ./syndeia-cloud-3.5_zookeeper_pre-setup.bash

Verification

  1. Verify Zookeeper is up and functioning by running zkCli.sh:

    Code Block
    languagebash
    sudo -u zookeeper /opt/zookeeper-current/bin/zkCli.sh -server localhost:2181

    You should get output similar to the following:

    Code Block
    languagebash
    Connecting to localhost:2181
    Welcome to ZooKeeper!
    JLine support is enabled
    
    WATCHER::
    
    WatchedEvent state:SyncConnected type:None path:null
    [zk: localhost:2181(CONNECTED) 0]

Apache Kafka

  1. Run the Apache Kafka pre-setup script:

  • Code Block
    languagebash
    ./syndeia-cloud-3.5_kafka_pre-setup.bash

    (warning) Kafka on Windows - Be advised that with Kafka on Windows, there is a known issue with Kafka “log”-cleanup operations and the settings for that have been disabled per Kafka, Windows, Logs, and KAFKA-1194 . Please familiarize yourself with this article to ensure you understand the storage ramifications due to this limitation on Windows.

Verification

  1. Verify Kafka is up and functioning by creating a test topic, producer with test events and a consumer that replays them:

    Code Block
    /opt/kafka-current/bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

    … producer:

    Code Block
    /opt/kafka-current/bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
    Code Block
    Test event1
    Test event2

    … consumer:

    Code Block
    /opt/kafka-current/bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092

    You should see:

    Code Block
    Test event1
    Test event2

JanusGraph (JG)

  1. cd to the janusgaph_setup package’s bin directory:

    Code Block
    languagebash
    cd ~/syndeia-cloud-3.5_janusgraph_setup/bin
  2. Run the JanusGraph (JG) pre-setup script:

    Code Block
    languagebash
    ./syndeia-cloud-3.5_janusgraph_pre-setup.bash
  3. Run the (main) JanusGraph (JG) setup script, depending on your chosen OS, ie:
    If you are on Linux:

    Code Block
    languagebash
    ./syndeia-cloud-3.5_janusgraph_setup.bash

    If you are on Windows:

Code Block
languagebash
./syndeia-cloud-3.5_janusgraph_setup_windows.bash
Info

Note, the current password for the Cassandra admin when installed via the pre-setup script is the Cassandra project’s documented default, ie: cassandra, we recommend changing this via CQLSH once SC deployment has been successfully completed (see Appendix B2.11 for instructions on how to do this), especially if the Cassandra node will (eventually) be exposed in a multi-node topology.

Verification:

  1. Verify JG is up and functioning by running the Gremlin client, depending on your chosen OS, ie:
    If you are on Linux:

    Code Block
    languagebash
    /opt/janusgraph-current/bin/gremlin.sh

    If you are on Windows:

    Code Block
    languagebash
    /opt/janusgraph-current/bin/gremlin.bat

    Then execute the following commands after it starts up:

    Code Block
    :remote connect tinkerpop.server conf/remote.yaml session
    :remote console
    graph = ConfiguredGraphFactory.open('syndeia_cloud_graph');
    // should return: ==>standardjanusgraph[cql:[cassandra.mydomain.com]]
    g = graph.traversal();
    g.V();
    g.E();
    // The last 2 commands above should not return any results since the graph (syndeia_cloud_graph) is empty - no vertices or edges.

Syndeia Cloud (SC)

  1. cd to the syndeia-cloud package’s bin directory:

    Code Block
    languagebash
    cd ~/syndeia-cloud-3.5-SP1/bin
  2. Run the Syndeia Cloud (SC) pre-setup script:

    Code Block
    languagebash
    ./syndeia-cloud-3.5_install_pre-setup.bash

    (info) During execution, you will be prompted to set credentials for JMX monitoring. By default Syndeia Cloud has been configured with JMX enabled & the script will prompt to set a reader & read-write credentials. If you do not wish to use JMX, you can do so pre or post-SC setup via the steps in Appendix C3.6).

  3. Run the (main) Syndeia Cloud (SC) setup script, depending on your chosen OS, ie:

  • If you are on Linux:

    Code Block
    languagebash
    ./syndeia-cloud-3.5_install.bash

    If you are on Windows:

    Code Block
    languagebash
    ./syndeia-cloud-3.5_install_windows.bash

Verification

On the server and/or your local machine, launch a web browser & check the following to validate that the application is correctly running:  

  1. http://<syndeia_server_FQDN>:9000 should give you:  

    Image Removed

    (info) To log in as the default administrator and create users, see the User Management section.

  2. Once logged in, please verify you see:

    1. a bar graph gets rendered (and not a never-ending spinner followed by an error message) on the Dashboard home page and

    2. the installed version shows correctly under Help > About in the sidebar.

Tip

Congratulations! You have a running Syndeia Cloud instance.

Review the following sections to learn about monitoring the services and locating service logs.

How to Manage Services & Check Logs

Services

Linux

Services are all managed using systemd’s systemctl command with a verb, ie: status, start, stop, restart, followed the service name, ie: cassandra, janusgraph, zookeeper, kafka, sc-SC-short-service-name(s) (or sc-* to reference all SC services). For more information run systemctl --help and/or man systemctl .

Example usage for Cassandra, Zookeeper, Kafka, JanusGraph, and Syndeia Cloud follows:

Apache Cassandra

  • To check the summary status:

    Code Block
    sudo systemctl status cassandra
  • To start the service:

    Code Block
    sudo systemctl start cassandra
  • To stop the service:

    Code Block
    sudo systemctl stop cassandra
  • To restart the service:

    Code Block
    sudo systemctl restart cassandra

Apache Zookeeper

  • To check the summary status:

    Code Block
    sudo systemctl status zookeeper
  • To start the service:

    Code Block
    sudo systemctl start zookeeper
  • To stop the service:

    Code Block
    sudo systemctl stop zookeeper
  • To restart the service:

    Code Block
    sudo systemctl restart zookeeper

Apache Kafka

  • To check the summary status:

    Code Block
    sudo systemctl status kafka
  • To start the service:

    Code Block
    sudo systemctl start kafka
  • To stop the service:

    Code Block
    sudo systemctl stop kafka
  • To restart the service:

    Code Block
    sudo systemctl restart kafka

JanusGraph

  • To check the summary status:

    Code Block
    sudo systemctl status janusgraph
  • To start the service:

    Code Block
    sudo systemctl start janusgraph
  • To stop the service:

    Code Block
    sudo systemctl stop janusgraph
  • To restart the service:

    Code Block
    sudo systemctl restart janusgraph

Syndeia Cloud

Syndeia Cloud 3.5 is defined by two sets of services:

  1. SC 3.5 Core Services: sc-store, sc-auth, sc-graph, sc-web-gateway

  2. SC 3.5 Integration Services: sc-aras, sc-artifactory, sc-bitbucket, sc-collaborator, sc-confluence, sc-doors, sc-github, sc-gitlab, sc-jama, sc-jira, sc-restful, sc-sysmlv2, sc-testrail, sc-twcloud, sc-volta, sc-wc

Panel
panelIconIdatlassian-light_bulb_on
panelIcon:light_bulb_on:
panelIconText:light_bulb_on:
bgColor#DEEBFF

To perform an operation on all services at once, you can use the wildcard sc-* to match all of the above

  • To check the summary status for a specific service, ex: web-gateway:

    Code Block
    sudo systemctl status sc-web-gateway
  • To start a specific service, ex: web-gateway:

    Code Block
    sudo systemctl start sc-web-gateway
Panel
panelIconIdatlassian-light_bulb_on
panelIcon:light_bulb_on:
panelIconText:light_bulb_on:
bgColor#DEEBFF

To start all services with dependencies, use the specially defined SC group, use sc.target

  • To stop a service, ex: web-gateway:

    Code Block
    sudo systemctl stop sc-web-gateway
  • To restart a service, ex: web-gateway:

    Code Block
    sudo systemctl restart sc-web-gateway

Windows

Services are all managed using Windows NT Service Control Manager (SCM) services.msc Control Panel applet OR in a shell (CMD.EXE or Cygwin Terminal) via the sc.exe command with a verb, ie: query[ex], start, stop, followed the service name, ie: cassandra, janusgraph, zookeeper, kafka, sc-SC-short-service-name(s) (or sc-* to reference all SC services).

(info) Note, there is no restart verb for sc.exe so you will need to perform a stop followed by a start (or just use the Control Panel applet).

For more information on Windows' sc.exe usage run sc.exe /?

Example usage for Cassandra, Zookeeper, Kafka, JanusGraph, and Syndeia Cloud follows:

Apache Cassandra

  • To check the summary status:

    Code Block
    sc.exe queryex cassandra
  • To start the service:

    Code Block
    sc.exe start cassandra
  • To stop the service:

    Code Block
    sc.exe stop cassandra

Apache Zookeeper

  • To check the summary status:

    Code Block
    sc.exe queryex zookeeper
  • To start the service:

    Code Block
    sc.exe start zookeeper
  • To stop the service:

    Code Block
    sc.exe stop zookeeper

Apache Kafka

  • To check the summary status:

    Code Block
    sc.exe queryex kafka
  • To start the service:

    Code Block
    sc.exe start kafka
  • To stop the service:

    Code Block
    sc.exe stop kafka

JanusGraph

  • To check the summary status:

    Code Block
    sc.exe queryex janusgraph
  • To start the service:

    Code Block
    sc.exe start janusgraph
  • To stop the service:

    Code Block
    sc.exe stop janusgraph

Syndeia Cloud

Syndeia Cloud 3.5 is defined by two sets of services:

  1. SC 3.5 Core Services: sc-store, sc-auth, sc-graph, sc-web-gateway

  2. SC 3.5 Integration Services: sc-aras, sc-artifactory, sc-bitbucket, sc-collaborator, sc-confluence, sc-doors, sc-github, sc-gitlab, sc-jama, sc-jira, sc-restful, sc-sysmlv2, sc-testrail, sc-twcloud, sc-volta, sc-wc

Panel
panelIconIdatlassian-light_bulb_on
panelIcon:light_bulb_on:
panelIconText:light_bulb_on:
bgColor#DEEBFF
  • To perform an operation on all services at once, you can use the following for loop (where ___ = the verb you wish to perform, ie: start , stop , queryex:

    Code Block
    for i in sc-{store,auth,graph,web-gateway,aras,artifactory,bitbucket,collaborator,confluence,doors,github,gitlab,jama,jira,restful,sysmlv2,testrail,twcloud,volta,wc}; do sc ___ $i; done;
  • To check the summary status for a specific service, ex: web-gateway:

    Code Block
    sc.exe queryex sc-web-gateway
  • To start a specific service, ex: web-gateway:

    Code Block
    sc.exe start sc-web-gateway
  • To stop a service, ex: web-gateway:

    Code Block
    sc.exe stop sc-web-gateway

Logs & Monitoring

Linux

Logs on Linux can be viewed using the journalctl command, ex: sudo journalctl -xeu service-name, ie: cassandra, janusgraph, zookeeper, kafka, sc-SC-short-service-name(s)

Panel
panelIconIdatlassian-light_bulb_on
panelIcon:light_bulb_on:
panelIconText:light_bulb_on:
bgColor#DEEBFF

To tail a particular service’s logs add the f switch to the journalctl command, ie: sudo journalctl -xfeu service-name, or use the sudo tail -f /path/to/service.log command.

Raw log files are located in the following locations:

Apache Cassandra

Code Block
/var/log/cassandra/system.log

Apache Zookeeper

Zookeeper creates a log file of the form zookeeper-accountName -server-serverFQDN .log

This is cumbersome, so for simplicity we have created a symlink to it as zookeeper.log

Code Block
/opt/zookeeper-current/logs/zookeeper.log

Apache Kafka

Apache Kafka generates several files with the extension .log in its logs folder

(warning) Most of these files constitute Kafka’s DB, the only one that is of concern for diagnostics/troubleshooting is the one named server.log

Code Block
/opt/kafka-current/logs/server.log

JanusGraph

Code Block
/opt/janusgraph-current/logs/gremlin-server.log

Syndeia Cloud

For single-node deployments, one can use the common logs directory with symlinks to every service’s logs folder (this is useful is say one wishes to quickly archive all logs to submit for troubleshooting)

Code Block
/opt/icx/syndeia-cloud-current/logs

For an individual service’s logs, log files will be under:

Code Block
/opt/icx/syndeia-cloud-current/$service_name-impl-3.5/logs/$service_name.log

… where $service_name = any one from the below two sets of services:

  1. SC 3.5 Core Services: sc-store, sc-auth, sc-graph, sc-web-gateway

  2. SC 3.5 Integration Services: sc-aras, sc-artifactory, sc-bitbucket, sc-collaborator, sc-confluence, sc-doors, sc-github, sc-gitlab, sc-jama, sc-jira, sc-restful, sc-sysmlv2, sc-testrail, sc-twcloud, sc-volta, sc-wc

Windows

Logs on Windows rely on raw log files (there is no journal system).

For every service there are four types of log files generated:

  1. Apache Commons: stdout

  2. Apache Commons: stderr

  3. Apache Commons: commons-daemon

  4. Application/Component: Log file(s) from the application/component itself.

The first three will always be present, and depending on the service, the last one(s) may be created too.

These files are located in the following locations:

(info) Note, on Windows, the base Cygwin Unix file paths below are all mapped to the Windows filesystem directory C:\cygwin64

Apache Cassandra

Apache Cassandra will create an application/component log file called system.log in its logs folder

Code Block
/opt/apache-cassanrdra-current/logs/

Apache Zookeeper

Zookeeper creates a log file of the form zookeeper-accountName -server-serverFQDN .log

This is cumbersome, so for simplicity we have created a symlink to it as zookeeper.log

Code Block
/opt/zookeeper-current/logs/

Apache Kafka

Apache Kafka will create many application/component log files with the extension .log in its logs folder

(warning) Most of these files constitute Kafka’s DB, the only one that is of concern for diagnostics/troubleshooting are the Apache Commons' prefixed ones and the one named server.log

Code Block
/opt/kafka-current/logs/

JanusGraph

JanusGraph will create an application/component log file called gremlin-server.log in its logs folder

Code Block
/opt/janusgraph-current/logs/

Syndeia Cloud

For single-node deployments, one can use the common logs directory with symlinks to every service’s logs folder (this is useful is say one wishes to quickly archive all logs to submit for troubleshooting)

Code Block
/opt/icx/syndeia-cloud-current/logs

For an individual service’s logs, log files will be under:

Code Block
/opt/icx/syndeia-cloud-current/$service_name-impl-3.5/logs/$service_name.log

… where $service_name = any one from the below two sets of services:

  1. SC 3.5 Core Services: sc-store, sc-auth, sc-graph, sc-web-gateway

  2. SC 3.5 Integration Services: sc-aras, sc-artifactory, sc-bitbucket, sc-collaborator, sc-confluence, sc-doors, sc-github, sc-gitlab, sc-jama, sc-jira, sc-restful, sc-sysmlv2, sc-testrail, sc-twcloud, sc-volta, sc-wc

Troubleshooting

The pre-setup scripts have been tested on the documented platforms so most scripts should execute reliably (ideally flawlessly).

However having said that, it’s always possible that:

  • you may have missed a step (or steps)

  • you have a non-standard environment

  • there’s a genuine bug

If you do experience any issues, please perform the following before opening that Helpdesk ticket:

  1. Review the output: if you notice an error, 🛑 stop! 🖐 VS simply moving forward (this is one of the reasons trace mode was (currently) left enabled VS hiding the output).

  2. Uninstall & try again: Try following the below instructions to reset to a clean state and start over (in case a step (or steps) were missed) :

Uninstall

Note

WARNING: The following will uninstall SC and all dependencies

Save the below file named SC_stack_uninstall.bash to /opt/, set execute permission on it (ie: chmod ug+x), then run it from a bash Terminal, ie: ./SC_stack_uninstall.bash (on Windows this would be a Cygwin Terminal, on Linux this would be a bash shell prompt)

View file
nameSC_stack_uninstall.bash

Tips

...

Ensure you DON’T run ANY of the setup scripts with root or sudo!

...

Ensure you DO have enough space allocated to /opt, /var, /tmp ( (info) check via sudo df -h ),

...

Ensure you DON'T have a noexec mount option for /tmp ( (info) check via mount , note, it may not be directly under / and could be a sub-dir under / ).

...

Ensure you DO have enough CPU cores, ie: check via:

Code Block
languagebash
cores=$(tail -28 /proc/cpuinfo | grep processor | awk '{ print $3 }'); cores=$((cores+1)); echo $cores

If that # is < the minimum requirements (8 cores for SC 3.4. 11 for SC 3.5), please bump this up value.

...

following pages to get started.

There is also an option to first download Syndeia Cloud and its infrastructure components, and then run the automated scripts to install. This is useful when deploying Syndeia in an air-gapped environment. Refer to the following page to get started with Offline installation for Linux/Windows.

(info) Syndeia admins must use either the Automated Deployment (presented here) or the Semi-Automated Deployment method. See the guidance on the parent page: Deployment Methods.