Monitoring

1. Introduction

Monitoring is essential for maintaining a healthy, reliable, and performant OpenCRVS installation. The OpenCRVS monitoring suite provides comprehensive visibility into infrastructure health, application performance, and system behavior.

OpenCRVS comes with a pre-installed suite of tools for monitoring and debugging a live installation. The Elastic Stack is used to monitor the infrastructure, applications, and dependencies, and also for sending alerts on application errors and system health. All of these tools are accessed using Kibana, a free and open user interface that lets you access all your Elasticsearch data, including metrics, logs, and other monitoring information.

<aside> ℹ️

Server-hosted environments only — These tools are only available for server-hosted environments and are not part of the development environment.

</aside>


2. Monitoring features

OpenCRVS monitoring provides the following core capabilities:

  • Reading and searching application logs — view detailed logs from all services to debug issues and understand system behavior.

  • Infrastructure performance insights — monitor disk space, CPU, and memory usage to know when to scale up.

  • Application Performance Monitoring (APM) — track service performance, detect bottlenecks, and identify errors.

  • Automated alerting — receive notifications for application errors and infrastructure health issues.

  • Request tracing — follow requests through multiple services to understand the full lifecycle.


3. Getting started with Kibana

Once the environment is installed, the monitoring suite can be accessed using the kibana.<your_domain> URL.

Login credentials

The login credentials are the ones you used as KIBANA_USERNAME and KIBANA_PASSWORD as part of the deployment, or the username "elastic" and ELASTICSEARCH_SUPERUSER_PASSWORD.


4. Monitoring tools

OpenCRVS uses several specialized tools as part of the monitoring stack:

4.1 Metricbeat

Metricbeat gets installed on all host machines in your infrastructure. Its sole purpose is to collect data about the network, the host machines, and the Docker environment. The data is stored in the OpenCRVS Elasticsearch database.

This data can be viewed by navigating to ObservabilityMetrics and selecting either Inventory or Metrics Explorer. The data can be visualized, grouped, and filtered in these views.

4.2 Application Performance Monitoring (APM)

The OpenCRVS monitoring stack comes with a pre-installed Application Performance Monitoring tool (APM). This tool collects performance metrics, errors, and HTTP request information from each of the services in the OpenCRVS stack.

You can find this tool in Kibana by navigating to ObservabilityAPMServices. This tool can be used to:

  • Catch anomalies such as errors happening inside the services

  • Detect bottlenecks in the architecture

  • Identify which services should be scaled up

4.3 Logstash

Logstash receives log entries in GELF format from all OpenCRVS services and writes them into the Elasticsearch database.

These logs can be viewed in real-time from ObservabilityLogsStream or through APM.

<aside> ⏰

Log retention — By default, OpenCRVS stores all logs for three days before they are removed.

</aside>


5. Monitoring topics

The following pages provide detailed guidance on specific monitoring topics:

Learn how to access, search, and trace application logs to debug issues and understand system behavior.

Monitor critical infrastructure metrics such as disk space, CPU usage, and memory consumption to proactively manage resources.

Establish daily monitoring practices and understand the built-in alerts to maintain a healthy installation.

Configure custom alerts to notify you when critical conditions occur, ensuring rapid response to issues.


6. Read more

Last updated