HCL Domino: Publish Domino Statistics to Elasticsearch and create a Dashboard with Kibana

From Wiki
Important: This is document is in Draft, i still working on this.

In Domino 10 has a new functionality that pushes the server statistics to a defined target via HTTP Post.

See this link for details:

In this article, i will explain how to do this using Domino, Elasticsearch and Kibana

Configure Elasticsearch and Kibana

Install Elasticsearch and Kibana using Docker

Create file index_creation.json

{
  "mappings": {
      "properties": {
         "host":        { "type": "text" },
         "s_timestamp": { "type": "date", "format": "epoch_millis" }
      }
  }
}
 

Create Index

curl -X PUT "http://<HOSTNAME_ELASTICSEARCH>:9200/domino"  -H 'Content-type: application/json' -d @index_creation.json

Configure Domino to send posts

You must define the following notes.ini variables:

STATPUB_ENABLE=1
STATPUB_DATA_HEAD={"host":"<DOMINO_SERVER_NAME>","s_timestamp":"$Timestamp$","metrics":{
STATPUB_URI=http://<HOSTNAME of Elasticsearh:9200>/domino/dstats
STATPUB_DATA_TAIL=}}
STATPUB_METRIC_FORMAT="$Name$":$Value$
STATPUB_DELTA_METRIC_FORMAT="$Name$.Delta":$Value$
STATPUB_HEADERS=X-My-Domino-Srv:<DOMINO_SERVER_NAME>$Newline$Content-Type: application/json$Newline$Accept: application/json$Newline$

The result is a single post to the target containing all the statistics in json format

{
"host": "myserver",
"timestamp": "1581518363",
"metrics": {
   "ADMINP.DirectoryDocumentsModified": 1,
   "ADMINP.RelativeResponsesAdded": 6,
   "ADMINP.RelativeResponsesAdded.Delta":0,
   "ADMINP.ReplicasCreated": 4,
   .....
   }
}

When i have a Dashboard, i will share on Github.

Tips for authenticated Elasticsearch

In my environemnt, the elasticsearch has the following username and password:

elastic:changeme

To set password you can define in url:

STATPUB_URI=http://elastic:changeme@<HOSTNAME of Elasticsearh:9200>/domino/dstats

Or encode using https://www.base64encode.org/ and define on header

STATPUB_HEADERS=X-My-Domino-Srv:<DOMINO_SERVER_NAME>$Newline$Content-Type: application/json$Newline$Accept: application/json$Newline$Authorization: Basic ZWxhc3RpYzpjaGFuZ2VtZQ==$Newline$

Create Kibana Dashboard

See Also/Ver também