Running HCL Detect
Starting and stopping HCL Detect
Starting HCL Detect requires two steps.
First, we must ensure that the environment of the current shell is properly configured. This is accomplished by invoking the script that performs this task:
$ ./<installation-location>/drive/bin/environment_setter
Modifying the PATH environment variable in the user's .bashrc file
The environment_setter
script loads the user's
.bashrc
file (if it exists) and, subsequently,
validates that the execution environment is not modified inadvertently with
respect to the needs of HCL
Detect.
Specifically, the environment_setter
validates that the
executables for the Java Virtual Machine (java
) and the
Python interpreter (python
) are consistent with the ones
needed by HCL
Detect.
In case an inconsistency is flagged due to a modification of the user's
PATH
environment variable in .bashrc
,
an error message will be emitted and two corrective alternatives are
possible.
If it happens to be an irrelevant/unintended misconfiguration, you can simply
eliminate it from your .bashrc
file.
If the original behavior needs to be preserved, this can be accomplished by
conditionally making the following modification to the PATH
environment variable:
if [[ -z ${HCL_PRODUCT:-} ]]; then
export PATH=<path_to_custom_python>:<path_to_custom_jdk>:$PATH
fi
HCL_PRODUCT
is an environment variable defined by HCL
Detect in the new
instance of the Bash shell the environment_setter
starts.
By checking for this environment variable and conditionally updating the
PATH
variable only when it is not defined, the
conflicting settings will not affect HCL
Detect's runtime
environment. Yet, when a regular shell is instantiated, those
PATH
settings will still remain active.
Next, we start all of the HCL Detect services:
$ <installation-location>/drive/bin/services_manager start
At this point, it is possible to open a browser on any computer with access to
the server where HCL Detect is installed and access its web user
interface by pointing the browser to the appropriate URL:
https://HCL.acme.com/drive
.
If everything has worked correctly, you will be presented with the initial setup workflow, whereby an administration password will be configured as well as other initialization steps.
If you cannot access the HCL Detect UI, the Testing and troubleshooting the web proxy installation section provides a few troubleshooting instructions that will help you ensure that your configuration is correct.
Finally, we can stop the HCL Detect services:
$ <installation-location>/drive/bin/services_manager stop
Advanced options when starting and stopping Detect
HCL Detect can be started using the
services_manager
script located at
$HCL_HOME/bin
.
This script can be used to configure various parameters associated with the execution of the HCL Detect platform. A list of available parameters can be obtained as follows:
$ cd $HCL_HOME
$ ./bin/services_manager --help
usage: services_manager [-h] [-a] [-c path] [-i id] [-k] [-o [app [app ...]]]
[-r] [-p] [-s] [-t] [-u uri]
operation
The 'services_manager' application is part of HCL Detect 1.2.0 (build id:
HCLadmin@ubdev.HCL.com - commit id:
465f0374ffc53c20139e54ed9575ef81505c8ca3)
positional arguments:
operation specifies the operation to be performed, one of:
'start_applications', 'start', 'stop', 'check',
'stop_applications'
optional arguments:
-h, --help show this help message and exit
-a, --disable-fastpast
indicates that FastPast should not be checked (when
checking the status of Detect services), started (when
starting the Detect services), or stopped (when
stopping the Detect services) (default: False)
-c path, --drive-config-file path
specifies the path of the HCL Detect
configuration file (default: None)
-i id, --instance-id id
specifies the instance identifier to use (default:
None)
-k, --disable-kafka
indicates that Kafka should not be checked (when
checking the status of the services), started (when
starting the services), or stopped (when stopping the
services) (default: False)
-o [app [app ...]], --applications-to-run [app [app ...]]
specifies the list of Detect applications to use (by
default, all of them are used)
-r, --disable-pinpoint
indicates that PinPoint should not be checked (when
checking the status of the services), started (when
starting the services), or stopped (when stopping the
services) (default: False)
-p, --disable-campaign-actuator
indicates that Campaign Acturator should not be checked
(when checking the status of the services), started
(when starting the services), or stopped (when
stopping the services) (default: True)
-s, --disable-segment-updater
indicates that Segment Updater should not be checked
(when checking the status of the services), started
(when starting the services), or stopped (when
stopping the services) (default: False)
-t, --disable-tomcat indicates that Tomcat should not be checked (when
checking the status of the services), started (when
starting the services), or stopped (when stopping the
services) (default: False)
-u uri, --instance-uri uri
specifies the instance URI to use (default: None,
indicating that a self-managed Name Service will be
started and used)
The user responsible for managing HCL Detect (typically
HCLadmin
) can start HCL Detect using the
following command:
$ ./bin/services_manager start
Starting Name Service
--- running as process id 27981
--- instance URI is 'redis://10.0.2.15:34549/HCLadmin'
Starting Kafka
--- running Kafka as process id 27991
--- running Zookeeper as process id 27983
Starting FastPast
--- running as process id 27994
--- waiting for FastPast to initialize (done)
Starting PinPoint
--- running as process id 27995
--- waiting for PinPoint to initialize (done)
Starting Tomcat
--- running as process id 28051
--- waiting for HCL Drive to initialize.................. (done)
Starting application 'Segment Updater'
--- running as process id 28181
Starting feed applications: 'Topup Demo', 'Mobile Usage'
Starting application 'Topup Demo'
--- running as process id 28193
Starting application 'Mobile Usage'
--- running as process id 28209
After its execution, the HCL
Detect web-based user
interface is accessible by opening the
http://<hostname>:8080/Detect
URL in a
browser.
HCL Detect can be stopped by invoking the following command:
$ ./bin/services_manager stop
Stopping feed applications: 'Topup Demo', 'Mobile Usage'
Stopping application 'Topup Demo'
--- waiting for application 'Topup Demo' to terminate.
--- stopped process id 28193
Stopping application 'Mobile Usage'
--- waiting for application 'Mobile Usage' to terminate.
--- stopped process id 28209
Stopping application 'Segment Updater'
--- waiting for application 'Segment Updater' to terminate.
--- stopped process id 28181
Stopping Tomcat
--- waiting for Tomcat to terminate.
--- stopped process id 28051
Stopping PinPoint
--- waiting for PinPoint to shutdown its servers.
--- waiting for PinPoint to terminate.
--- stopped process id 27995
Stopping FastPast
--- waiting for FastPast to shutdown its servers.
--- waiting for FastPast to terminate.
--- stopped process id 27994
Stopping Kafka
--- waiting for Kafka to terminate.
--- stopped process id 27991
--- waiting for Zookeeper to terminate.
--- stopped process id 27983
Stopping the Name Service
--- stopped process id 27981
Once the stop sequence is complete, the web-based user interface is not available anymore.
The sample services_manager
invocation we used earlier starts up
all applications available as part of your installation. The HCL
Detect administrator
user can, of course, make use of the other parameters associated with the
script. For instance, in order to start the services only with a single
application named Topup Demo
(assuming it is available as part
of your installation), the following command can be used:
$ ./bin/services_manager start -o 'Topup Demo'
Starting Name Service
--- running as process id 28730
--- instance URI is 'redis://10.0.2.15:57173/HCLadmin'
Starting Kafka
--- running Kafka as process id 28741
--- running Zookeeper as process id 28735
Starting FastPast
--- running as process id 28743
--- waiting for FastPast to initialize (done)
Starting PinPoint
--- running as process id 28744
--- waiting for PinPoint to initialize (done)
Starting Tomcat
--- running as process id 28798
--- waiting for HCL Drive to initialize.................. (done)
Starting application 'Segment Updater'
--- running as process id 28896
Starting feed applications: 'Topup Demo'
Starting application 'Topup Demo'
--- running as process id 28903
While the detailed status of the HCL Detect services can be examined
via the web-based user interface, the services_manager
script
can also be used to get a brief status of all services. An example invocation is
as follows:
$ ./bin/services_manager check
Kafka is UP
Zookeeper is UP
FastPast is UP
PinPoint is UP
Tomcat is UP
application 'Segment Updater' is UP
application 'Topup Demo' is UP
application 'Mobile Usage' is DOWN
While the services are up, the services_manager
script can be
used start and stop individual applications. For instance, the following command
can be used to start the ‘Mobile Usage' application:
$ ./bin/services_manager start_applications -o 'Mobile Usage'
Starting feed applications: 'Mobile Usage'
Starting application 'Mobile Usage'
--- running as process id 29058
A running application can be stopped in a similar way. For instance, the following command can be used to stop the ‘Mobile Usage' application:
$ ./bin/services_manager stop_applications -o 'Mobile Usage'
Stopping feed applications: 'Mobile Usage'
Stopping application 'Mobile Usage'
--- waiting for application 'Mobile Usage' to terminate.
--- stopped process id 29058