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

From Wiki
 
(5 intermediate revisions by the same user not shown)
Line 29: Line 29:
== Create Index ==
== Create Index ==


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


= Configure Domino to send posts =
= Configure Domino to send posts =
Line 42: Line 42:
  STATPUB_DELTA_METRIC_FORMAT="$Name$.Delta":$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$
  STATPUB_HEADERS=X-My-Domino-Srv:'''<DOMINO_SERVER_NAME>'''$Newline$Content-Type: application/json$Newline$Accept: application/json$Newline$
* Tip: [[HCL Domino: STATPUB_URI send metrics to a url or a file]]


The result is a single post to the target containing all the statistics in json format
The result is a single post to the target containing all the statistics in json format
Line 58: Line 60:


When i have a Dashboard, i will share on Github.
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='''<nowiki>http://elastic:changeme@<HOSTNAME of Elasticsearh:9200>/domino/dstats</nowiki>'''
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 =
= Create Kibana Dashboard =
Line 64: Line 80:


* [[Lotus Domino: Redirect Console Output to file and run a shell]]
* [[Lotus Domino: Redirect Console Output to file and run a shell]]
* [[HCL Domino: STATPUB URI send metrics to a url or a file]]


* [[Lotus Domino e Notes|  More articles about IBM Domino e Notes]]
* [[Lotus Domino e Notes|  More articles about IBM Domino e Notes]]

Latest revision as of 12:27, 11 August 2020

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