Skip to content

Monitor

Monitor is an application, which displays standard and error Cluster Manager messages in GUI.

Monitoring consists of three microservices:

  • cluster-monitoring-admin-frontend-microservice (frontend),
  • cluster-monitoring-core-microservice (backend),
  • falcon-db-core-microservice (FalconDB database).

NOTE

FalconDB database does not need to be installed exclusively for the monitor. You can use already existing FalconDB on another server (this requires configuration changes).

To access the frontend application, go to http://${ip}:8020/_by_name/cluster-monitoring-admin-frontend-microservice/.

Monitoring UI

Monitoring UI

Configuration

To configure any microservice, untar it's package:

tar xf ${MICROSERVICE_PACKAGE}.tar.gz

And make the changes in the conf/conf.yaml file, specifically in the startJvmCommand variable.

Frontend Configuration

  • -Dlog-directory - logs directory (by default ${ont_app_logs_path}),
  • -Dhttp-port - HTTP port of the microservice (by default ${ont_port_1}, which means Onteon decides what the port is),
  • -Dis-local - boolean, which defines if the application is running standalone or on Onteon (value false, should not be changed),
  • -Dcore-microservice-url - URL of the monitoring core microservice (by default http://${ont_public_ip}:8020/_by_name/cluster-monitoring-core-microservice).

Backend Configuration

  • -Dlog-directory - logs directory (by default ${ont_app_logs_path}),
  • -Dhttp-port - HTTP port of the microservice (by default ${ont_port_1}, which means Onteon decides what the port is),
  • -Ddb-uris - URI to the FalconDB database (by default http://${ont_public_ip}:8021/_by_name/falcon-db-core-microservice),
  • -Dmessage-expiration-time-in-millis - time in milliseconds, defining what is the expiration time of a message, after which it will be removed from the database (by default 120000),
  • -Dclear-database-period-time-in-millis - time in milliseconds, defining how often the backend will check if the messages are expired and remove them from the database (by default 60000).

Installation

Onteon Control Center

Untar and install Onteon Control Center:

tar xf onteon-control-center-${OCC_VERSION}.tar.gz
sudo ./install.sh --authmock-base-url http://${IP}:8050

Onteon Node Manager

Untar and install Onteon Node Manager:

tar xf onteon-node-manager-${ONM_VERSION}.tar.gz
sudo ./install.sh --cluster-base-url http://${ONTEON_CONTROL_CENTER_IP}:8050

OnteonCLI

Install OnteonCLI:

dpkg -i onteon-cli-${OCLI_VERSION}.deb

Log in to OnteonCLI

Log in to OnteonCLI:

onteoncli login --cluster-url http://${ONTEON_CONTROL_CENTER_IP}:8050

Then, open the website from the output of login command and click OK.

Upload Application

Upload the application packages to Onteon.

onteoncli application-registry upload falcon-db-core-microservice-${FALCONDB_VERSION}.tar.gz
onteoncli application-registry upload cluster-monitoring-core-microservice-${BACKEND_VERSION}.tar.gz
onteoncli application-registry upload cluster-monitoring-admin-frontend-microservice-${FRONTEND_VERSION}.tar.gz

Create Application Instance

Before creating application instances, you need to list all the applications, to get theirs ids:

onteoncli application list

In the next step, get list of the nodes and also get chosen node id:

onteoncli node list

Finally, create the application instances:

# ${FALCONDB_ID} - id of falcon-db-core-microservice application
# ${BACKEND_ID} - id of cluster-monitoring-core-microservice application
# ${FRONTEND_ID} - id of cluster-monitoring-admin-frontend-microservice application
# ${NODE_ID} - id of node

onteoncli application-instance create ${FALCONDB_ID} ${NODE_ID}
onteoncli application-instance create ${BACKEND_ID} ${NODE_ID}
onteoncli application-instance create ${FRONTEND_ID} ${NODE_ID}

Start Application Instance

Get list of application instances and get their ids:

onteoncli application-instance list

Start application instances:

# ${FALCONDB_INSTANCE_ID} - id of falcon-db-core-microservice application instance
# ${BACKEND_INSTANCE_ID} - id of cluster-monitoring-core-microservice application instance
# ${FRONTEND_INSTANCE_ID} - id of cluster-monitoring-admin-frontend-microservice application instance

onteoncli application-instance start ${FALCONDB_INSTANCE_ID}
onteoncli application-instance start ${BACKEND_INSTANCE_ID}
onteoncli application-instance start ${FRONTEND_INSTANCE_ID}

Stop Application Instance

Get list of application instances and get their ids:

onteoncli application-instance list

Stop application instances:

# ${FALCONDB_INSTANCE_ID} - id of falcon-db-core-microservice application instance
# ${BACKEND_INSTANCE_ID} - id of cluster-monitoring-core-microservice application instance
# ${FRONTEND_INSTANCE_ID} - id of cluster-monitoring-admin-frontend-microservice application instance

onteoncli application-instance stop ${FALCONDB_INSTANCE_ID}
onteoncli application-instance stop ${BACKEND_INSTANCE_ID}
onteoncli application-instance stop ${FRONTEND_INSTANCE_ID}

Send Message via API

There are two types of messages:

  • standard - informational messages,
  • error - error messages.

Standard Message

URL

http://${ONTEON_NODE_MANAGER_IP}:8020/_by_name/cluster-monitoring-core-microservice/v1/addStandardMessage

Method

POST

Body

{
    "source": "${SOURCE}",
    "message": "${STANDARD_MESSAGE}"
}

where:

  • source - name of the server, which sends the message (for example: "10.10.10.1-Primary-Cluster-Manager"),
  • message - standard message content.

Example

curl --location 'http://${ONTEON_NODE_MANAGER_IP}:8020/_by_name/cluster-monitoring-core-microservice/v1/addStandardMessage' \
--header 'Content-Type: application/json' \
--data '{
    "source": "${SOURCE_IP}-Primary-Cluster-Manager",
    "message": "Hello World!"
}'

Error Message

URL

http://${ONTEON_NODE_MANAGER_IP}:8020/_by_name/cluster-monitoring-core-microservice/v1/addErrorMessage

Method

POST

Body

{
    "source": "${SOURCE}",
    "message": "${STANDARD_MESSAGE}"
}

where:

  • source - name of the server, which sends the message (for example: "10.10.10.1-Primary-Cluster-Manager"),
  • message - error message content.

Example

curl --location 'http://${ONTEON_NODE_MANAGER_IP}:8020/_by_name/cluster-monitoring-core-microservice/v1/addStandardMessage' \
--header 'Content-Type: application/json' \
--data '{
    "source": "${SOURCE_IP}-Primary-Cluster-Manager",
    "message": "Hello World!"
}'