Installation

In the Kohn release, Holmes could either be deployed as an analytics application of DCAE along with the whole ONAP or be deployed in a standalone mode for the sake of saving resources.

If a user wants to deploy Holmes using Helm, please refer to the OOM manual for help.

In case a user want to deploy Holmes independently, the steps for the installation is as follows.

Prerequisites

  1. MSB must be installed and started. The user knows the IP address of the MSB API gateway service.

  2. PostgreSQL must be installed and started. For the guidance on how to run a PostgreSQL, please refer to Offical Repository of PostgreSQL.

    While setting up PostgreSQL, a database and a user named ‘holmes’ must be created. The corresponding password shuold be set to ‘holmespwd’. Otherwise, Holmes could not be started up successfully.

Steps

  1. Start the rule management module of Holmes using the command below:

    sudo docker run --name holmes-rule-management -p 9101:9101 -p 9104:9104 -p 9201:9201 -d -e URL_JDBC=$DB_IP -e MSB_IAG_SERVICE_HOST=$MSB_IAG_IP -e MSB_IAG_SERVICE_PORT=$MSB_IAG_PORT -e HOST_IP=$HOST_IP -e ENABLE_ENCRYPT=false -v $LOCAL_PATH_THAT_STORES_THE_CONFIG_FILES:/opt/hrmrules nexus3.onap.org:10001/onap/holmes/rule-management:10.0.2

  2. Start the engine manamgement module of Holmes using the command below:

    sudo docker run --name holmes-engine-management -p 9102:9102 -d -e URL_JDBC=$DB_IP -e MSB_IAG_SERVICE_HOST=$MSB_IAG_IP -e MSB_IAG_SERVICE_PORT=MSB_IAG_PORT -e HOST_IP=$HOST_IP -e ENABLE_ENCRYPT=false -v $LOCAL_PATH_THAT_STORES_THE_CONFIG_FILES:/opt/hemtopics  nexus3.onap.org:10001/onap/holmes/engine-management:10.0.2

All the interactions between Holmes and other ONAP components are routed by MSB. In order to register Holmes itself to MSB, the users have to specify the IP address of the host using the HOST_IP variable. Please note that the HOST_IP should be the IP address of the host, rather than the IP address of the containers (of which the IP address is allocated by the docker daemon). ENABLE_ENCRYPT specifies whether HTTPS is enabled. When it is set to “false”, only the HTTP schema is allowed. Otherwise, only HTTPS is allowed. LOCAL_PATH_THAT_STORES_THE_CONFIG_FILES specifies the place where corresponding configuration files are stored. The configuration files should be organized as files for the rule management module and files for the engine management module (only cfy.json is needed in the standalone mode).

Check the Status of Holmes

After the installation, you have to check whether Holmes is alive or not using the health-check API.

  1. Use curl http://${msb-ip}:${msb-port}/api/holmes-rule-mgmt/v1/healthcheck or any other tools (e.g. Postman) to check whether the rule management module of Holmes has been spun up and registered to MSB successfully.

  2. Use curl http://${msb-ip}:${msb-port}/api/holmes-engine-mgmt/v1/healthcheck or any other tools (e.g. Postman) to check whether the engine management module of Holmes has been spun up and registered to MSB successfully.

If the response code is 200 and the response body is true, it’s telling the user that everything is fine. Otherwise, you have to take a look at the logs to check whether there are any errors and contact the Holmes team for help.