Skip to content

Channels Monitoring

Abstract

This chapter explains how to configure a Shiva task running the channels monitoring service.

Overview

The punch platform channel monitoring service is in charge of monitoring all channels running through metrics analysis. The overall health status is published periodically in Elasticsearch documents, that can be queried by an external supervision if needed, and that can be displayed using a standard Kibana dashboard.

Configuration

The PunchPlatform Channel Monitoring service is a task that is run in the Shiva task scheduler. This requires first to add the following job to the channel channel_structure.json descriptor file:

{
    "type": "shiva",
    "name": "channels-monitoring",
    "command": "channels-monitoring",
    "args": [
        "channels-monitoring.json"
    ],
    "cluster": "common",
    "shiva_runner_tags": [
        "standalone"
    ]
}

Along with an channels-monitoring.json file to define your settings. This files contains the following fields:

{
  "monitoring_interval": 10,
  "elasticsearch": {
    "es_cluster_id": "es_search",
    "es_platform_logs_index": "platform-logs-*",
    "es_topologies_metrics_index": "mytenant-metrics-*"
  },
  "reporters": [
    {
      "type": "elasticsearch",
      "cluster_name": "es_search",
      "index_name": "mytenant-channels-monitoring"
    }
  ]
}

This sample configuration means that all channels will be monitored every 10 seconds.

Tip

Remember that if you update your configuration, you must restart your channel and save your configuration.

Parameters

Mandatory

  • monitoring_interval (integer)

    The interval in seconds between two health check of services.

  • elasticsearch.es_cluster_id (string)

    The cluster where all logs and metrics data are stored.

  • elasticsearch.es_platform_logs_index (string)

    Index where to get logs information.

  • elasticsearch.es_topologies_metrics_index (string array)

    Index where to get metrics information.

Security Parameters

{
  "monitoring_interval": 10,
  "elasticsearch": {
    "es_cluster_id": "es_search",
    "es_platform_logs_index": "platform-*logs-*",
    "es_topologies_metrics_index": "mytenant-metrics-*"
    "credentials": {
      "user": "bob",
      "password": "pass"
    },
    "ssl": false 
  }
}
  • credentials.user (string)

    Username to authenticate to ES cluster. Needs credentials.password configuration.

  • credentials.password (string)

    Password to authenticate to ES cluster. Needs credentials.user configuration.

  • credentials.token (string)

    Token string to authenticate to ES cluster. Needs credentials.token_type configuration.

  • credentials.token_type (string)

    Token type used to authenticate to ES cluster. Needs credentials.token configuration.

  • ssl (Boolean)

    If true, encrypt the connection to the ES cluster with TLS

  • ssl_private_key (String)

    Path to the client's private key for TLS connection

  • ssl_certificate (String)

    Path to the client's public key for TLS connection

  • ssl_trusted_certificate (String)

    Path to the client's CA file for TLS connection

Try It

On a standalone deployment, the Channel monitoring service is included in the configuration of the admin channel. To activate the Channel Monitoring service, you must ensure that the admin channel is started.

channelctl --tenant mytenant start --channel admin