You are here: RPM Installation > Installation and Configuration > Installing Insight

3.11 Installing Moab Insight

This topic contains instructions on how to install Moab Insight (Insight).

Because Insight accumulates data for one cluster at a time, one Insight Server (daemon) should service one Moab instance.

Moab Workload Manager and Insight both tend to heavily consume system resources. Therefore, Adaptive Computing requires that the Insight Server and the Moab Workload Manager Server run on different hosts. For these installation instructions, the "Moab Server Host" refers to one host and the "Insight Server Host" refers to another host.

In this topic:

3.11.1 Open Necessary Ports

If your site is running firewall software on its hosts, you will need to configure the firewall to allow connections to the necessary ports.

Location Ports Functions When Needed
Insight Server Host 5568 Insight Server Port Always
Moab MongoDB Database Host 27017 Moab MongoDB Server Port Always
Insight MongoDB Database Host 27017 Insight MongoDB Server Port Always
Moab Server Host 5574 Moab Data Port Always
Moab Server Host 5575 Moab Reliability Port Always

See 2.11 Opening Ports in a Firewall for general instructions and an example of how to open ports in the firewall.

3.11.2 Dependencies, Packages, or Client Installations

In this section:

3.11.2.A Install Java

Install the Linux x64 RPM version of Oracle® Java® 8 Runtime Environment.

Oracle Java 8 Runtime Environment is the recommended Java environment, but Oracle Java 7 is also supported. All other versions of Java, including OpenJDK/IcedTea, GNU Compiler for Java, and so on cannot run Insight.

On the Insight Server Host, do the following:

  1. Install the Linux x64 RPM version of Oracle Java SE 8 JRE.
    1. Go to the to the Oracle Java download page.
    2. Copy the URL for the Linux x64 RPM version, and run the following command:
      [root]# ln -s /usr/sbin/update-alternatives /usr/sbin/alternatives
      [root]# rpm -Uh <URL>

3.11.2.B Install and Configure MongoDB

On the Insight MongoDB Database Host, do the following:

  1. Install MongoDB.

    [root]# zypper -n install mongodb-org
  2. Enable and start MongoDB.

    [root]# systemctl enable mongod.service
    [root]# systemctl start mongod.service
  1. Add the required MongoDB users to the Insight MongoDB and Moab MongoDB; regardless of whether they share a host.

    The passwords used below (secret1, secret3, and secret4 are examples. Choose your own passwords for these users.

    • Insight MongoDB (on the Insight MongoDB Database host)
      [root]# mongo
      > use admin
      > db.createUser({"user": "admin_user", "pwd": "secret1", "roles": ["root"]})
      
      > use insight
      > db.createUser({"user": "insight_user", "pwd": "secret4", "roles": ["dbOwner"]})
      > db.createUser({"user": "mws_user", "pwd": "secret3", "roles": ["read"]})
      									
      > exit
    • Moab MongoDB (on the Moab MongoDB Database host)
      [root]# mongo
      > use admin
      > db.auth("admin_user", "secret1")
      
      > use moab
      > db.createUser({"user": "insight_user", "pwd": "secret4", "roles": ["read"]})
      
      > exit

    Because the admin_user has read and write rights to the admin database, it also has read and write rights to all other databases. See Control Access to MongoDB Instances with Authentication for more information.

  1. Set MongoDB Configuration Options.

    By default, /etc/mongod.conf sets net.bindIp to 127.0.0.1. You will need to change this setting if the MongoDB server needs to be accessible from other hosts or from other interfaces besides loopback. See https://docs.mongodb.com/manual/reference/configuration-options/#net-options for more information.

    Edit the /etc/mongod.conf configuration file on both the Insight node and Moab Head node as follows.

    # Sample /etc/mongod.conf file
    net:
      port: 27017
      # bindIp: 127.0.0.1
    processManagement:
      fork: true
      pidFilePath: /var/run/mongodb/mongod.pid
    security:
      authorization: enabled
    storage:
      dbPath: /var/lib/mongo
      journal:
        enabled: true
    systemLog:
      destination: file
      logAppend: true
      path: /var/log/mongodb/mongod.log
  2. Restart MongoDB.

    [root]# systemctl restart mongod.service

3.11.3 Install Insight

You must complete the tasks to install the dependencies, packages, or clients before installing Insight Server. See 3.11.2 Dependencies, Packages, or Client Installations.

If your configuration uses firewalls, you must also open the necessary ports before installing Insight Server. See 3.11.1 Open Necessary Ports.

These instructions contain steps to edit the /opt/insight/etc/config.groovy file.

Commented out values in the config.groovy file are not necessarily the default values.

It is recommended that anytime you edit the config.groovy file that you first stop Insight, edit the file and then restart Insight.

  1. If you have not already done so, complete the steps to prepare the Insight Server Host. See 3.3 Preparing for RPM Installs for more information.
  2. On the Insight Server Host, install the Insight RPM.
    [root]# zypper install moab-insight
  3. If you are using MWS, on the MWS Server Host, do the following:
    1. Add or edit the following parameters in the /opt/mws/etc/mws-config.groovy file to specify connection information for the Insight Server.
      insight.server = "<insight_server_ip_address>"
      insight.command.port = 5568
      insight.command.timeout.seconds = 5

      In this example,

      • <insight_server_ip_address> represents the DNS name for the host on which the Insight Server is running.
      • the default Insight command port number (5568) is used.

      See Configuration in the Moab Web Services Reference Guide for more information on the MWS configuration properties.

    2. Restart Tomcat.
      [root]# systemctl restart tomcat.service
  4. Configure Insight's connection to the Insight MongoDB database and the Moab MongoDB database. On the Insight Server Host, edit /opt/insight/etc/config.groovy as follows:
    mongo.host="<insight mongo host>"
    mongo.port=<insight mongo port>
    mongo.username="insight_user"
    mongo.password="secret4"
    
    moab.mongo.host="<moab mongo host>"
    moab.mongo.port=<moab mongo port>
    moab.mongo.username="insight_user"
    moab.mongo.password="secret4"

    Use mongo.host="localhost" when the Insight MongoDB resides on the Insight Server Host (strongly recommended).

    "secret4" is the password you specified when installing the mongoDB. See 3.11.2.B Install and Configure MongoDB.

    The following characters must be escaped in strings in the /opt/insight/etc/config.groovy and /opt/mws/etc/mws-config.groovy files (such as when used in a password): \ (backslash), " (double quote), ' (single quote), $ (dollar sign). Example: mongo.password="my\$cool\$password". It is recommended that you avoid using these characters.

  5. On the Insight Server Host, verify that Insight runs on startup.
    [root]# systemctl enable insight.service
  6. On the Moab Server Host, configure Moab's connection to Insight.
    1. In /opt/moab/etc/moab.cfg, configure the INSIGHTENDPOINT parameter so that Moab can connect to Insight. See Moab Parameters in the Moab Workload Manager Administrator Guide for parameter information.
      INSIGHTENDPOINT <hostname>[:<port>]

      <hostname> is the server where Insight is located. <hostname> is required, <port> is optional.

    2. If you have not done so already when installing MWS, in /opt/moab/etc/moab-private.cfg file, configure the MESSAGEQUEUESECRETKEY parameter so that Moab can connect to Insight. See Secure communication using secret keys.

      MESSAGEQUEUESECRETKEY <secret key>

      The <secret key> is required when updating the Insight configuration file later in this procedure.

    3. Check (and possibly remove) the contents of /opt/moab/spool/insight_store directory.

      [root@seeleyn-reporting3 insight_store]# ls -lh /opt/moab/spool/insight_store/
      total 146M
      -rw------- 1 root root 129M Mar 14 13:27 mwm_rmd_CABhYI.ps
      -rw------- 1 root root 2.8M Mar 13 16:28 mwm_rmd_l3F967.ps
      -rw------- 1 root root  15M Mar 14 15:14 mwm_rmd_MIaZqI.ps
      -rw------- 1 root root 183K Mar 14 15:14 mwm_rmd_MoK9w0.ps
      -rw-r--r-- 1 root root  925 Mar 14 15:14 mwm_rmd.ps

      If you see files prefixed with mws_rmd this means most likely Moab was previously configured to send messages to Insight and has stored these old messages in files. If this is the first time you have started Insight then Moab will attempt to send all old messages to Insight before it sends current messages. If you have a lot of messages it can take Insight a long time to process them all. Currently running jobs will not show up in the Insight database until all the old messages are processed. If you do not care about the old messages you can simply stop Moab and delete the files in this directory.

      [root]# systemctl stop moab.service
      [root]# rm /opt/moab/spool/insight_store/*.ps

      If you are concerned you may have deleted messages you did not intend, be aware that Moab has a database containing information on all current jobs, and you can easily sync Insight with Moab's database. See 5.222.2 Sync Insight Database with Moab Database for more information.

    4. Restart Moab in order for the new configuration parameters to take effect.
      [root]# systemctl restart moab.service
    5. Verify that Moab is properly configured to connect to Insight.
      [root]# mdiag -S | grep Insight

      You should see something similar to the following:

      ZeroMQ Insight connection is bound on port 5574 (reliability port 5575) on host * using Insight endpoint <the insight hostname displays here>:5568
      encryption is on)
      ZeroMQ Insight reliable message delivery is using store file(s) up to 1024 MB in /opt/moab/spool/insight_store/
  7. On the Insight Server Host, configure the moab.host and messageQueue.secretKey parameters in the Insight configuration file /opt/insight/etc/config.groovy.
    moab.host = "<moab server>"
    messageQueue.secretKey = "<secret key>"

    The <secret key> must match the secret key configured in moab-private.cfg on the Moab server for the MESSAGEQUEUESECRETKEY configuration parameter.

  8. On the Insight Server Host, start Insight.
    [root]# systemctl start insight.service

    The first time you start Insight it will take a minute or two to create the database schema. Although 'service insight start' will quickly return OK, it is not safe to terminate Insight while this initialization is taking place. Rebooting or terminating Insight during this initialization may cause the database to not be initialized correctly.

    You will know it is safe to reboot or terminate Insight if you see the following line in /opt/insight/log/insight.log.

    2014-12-11T18:36:08.059-0700    main    INFO    com.ace.insight.app.Application 0           Started Application in 89.502 seconds (JVM running for 89.882)

Related Topics 

© 2017 Adaptive Computing