(Click to open topic with navigation)
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:
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:
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:
[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:
Install MongoDB.
[root]# zypper -n install mongodb-org
Enable and start MongoDB.
[root]# systemctl enable mongod.service [root]# systemctl start mongod.service
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.
[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
[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.
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
Restart MongoDB.
[root]# systemctl restart mongod.service
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.
[root]# zypper install moab-insight
insight.server = "<insight_server_ip_address>"
insight.command.port = 5568
insight.command.timeout.seconds = 5
In this example,
See Configuration in the Moab Web Services Reference Guide for more information on the MWS configuration properties.
[root]# systemctl restart tomcat.service
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.
[root]# systemctl enable insight.service
INSIGHTENDPOINT <hostname>[:<port>]
<hostname> is the server where Insight is located. <hostname> is required, <port> is optional.
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.
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.
[root]# systemctl restart moab.service
[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/
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.
[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