Skip to content

Channels Monitoring

Abstract

This chapter explains how to monitor channels.

Overview

The punch channel monitoring service is in charge of monitoring all the channels of a tenant. It computes and publishes an overall health status periodically in Elasticsearch documents, that can in turn be queried by an external supervision application. A standard Kibana dashboard is also available.

Configuration

The punch channels-monitoring application is a native punch application. You can deploy in a standard channel and run it in shiva.

Here is the punch standalone example: the channel_structure.yaml file is as follows

version: '6.0'
start_by_tenant: true
stop_by_tenant: true
applications:
- name: channels_monitoring
  runtime: shiva
  cluster: common
  command: channels-monitoring
  args:
  - channels_monitoring.yaml
  - --childopts
  - -Xms128m -Xmx256m
resources: []

The channels-monitoring application takes a single configuration file argument.

monitoring_interval: 30
elasticsearch:
  es_cluster_id: common
  es_platform_logs_index: platform-*logs-*
  es_topologies_metrics_index: mytenant-metrics-*
reporters:
- type: kafka

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

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

  • ssl_keystore_pass (string)

    Truststore password

  • ssl_keystore_location (string)

    Path to Keystore

  • ssl_truststore_pass (string)

    Keystore password

  • ssl_truststore_location (string)

    Path to Truststore

Try It

On a standalone , the channel monitoring service is included in the configuration of both the platform and mytenant tenants.

Simply start it as follows:

channelctl --tenant mytenant start --channel monitoring