Introduction

In today’s increasingly climate-aware world, environmental factors such as temperature, humidity, air quality, and severe weather events directly impact Platform Engineering, logistics, energy consumption, and field infrastructure. Despite its flexibility and power, Checkmk lacked native, contextualized support for real-time environmental data, particularly from specialized sources like astronomy, marine forecasts, or pollutant indices.

This gap sparked the creation of the Weather API Special Agent, a modular and scalable plugin designed to seamlessly integrate weather intelligence into Checkmk, enabling informed, real-time decisions across industries.


The challenge: Monitoring beyond the datacenter

Checkmk lacked native, real-time support for environmental data, which is increasingly important for operational resilience. This was especially true for specific domains like astronomy, marine weather, or air quality indices. The Weather API Special Agent fills this gap, allowing Checkmk users to integrate contextual weather insights directly into their monitoring workflows.


Architecture overview: Modular, intelligent, and extensible

The plugin is architected into three cohesive layers, ensuring clean separation of logic, robust execution and deep integration with the Checkmk ecosystem.

1. Collection & Parsing Layer – Domain-Specific Agent Sections
Each weather domain is handled by a dedicated module:

  • weather_current.py: Real-time conditions (temperature, humidity, UV index)
  • weather_forecast.py: Multi-day forecasts with rainfall, temperature ranges, and weather outlooks
  • weather_marine.py: Maritime forecasts ideal for coastal or naval operations
  • weather_air_quality.py: Pollution levels (PM2.5, CO, NO₂, O₃…) with health indices (EPA, DEFRA)
  • weather_alerts.py: : Official alerts (e.g., storms, extreme heat) as live monitorable services
  • weather_astronomy.py: Solar/lunar cycles, moon phase, daylight indicators

Each module is isolated and fault-tolerant, using fallback mechanisms to ensure resilience even in case of missing or inconsistent data.

2. Integration & Execution Layer – Dynamic and Secure

  • special_agent.py: : Defines the agent’s logic, validating parameters (via Pydantic) and dynamically building execution commands based on user configuration.
  • agent_weather_api.py:Core executor making API requests to endpoints like /current.json, /forecast.json, and parsing them into Checkmk-compatible structures with multilingual and filtered output options.

3. Configuration Layer – Flexible Rulesets and Server-Side Context
With full support for cmk.rulesets.v1 and cmk.server_side_calls.v1, users can configure the plugin entirely via Checkmk’s WATO interface:

  • Enabling/disabling modules
  • Monitoring targets (individual cities, districts, exclusions)
  • Forecast duration and filtering
  • Secure secrets and contextual help

This configuration layer provides granular control without coding, supporting different use cases per host or environment.

dashboard view showing multiple weather metrics


Inventory integration: Turning Checkmk into a climate dashboard

Beyond real-time checks, the plugin integrates with Checkmk’s InventoryPlugin, enriching the host inventory with:

  • Current weather and forecasts (ideal for planning)
  • Air quality insights (critical for outdoor hardware, IoT)
  • Astronomical data (relevant for solar panels, agriculture, automation)

This transforms the inventory into a strategic observability layer, contextualizing infrastructure with its physical environment.

map showing multiple city weather monitors inventory with environmental data by district inventory with environmental data by conditions


Geographic modes: Built for real-world use

Designed with location flexibility in mind, the plugin supports:

  • Manual mode: Monitor a single, chosen city
  • Predefined Portuguese cities: Seamless integration with Portugal’s geography
  • Multiple cities mode: Monitor a custom list of cities in parallel
  • District mode: Automatically monitor all cities in a district, excluding specific ones if desired

This geographic flexibility allows tailored monitoring across distributed or multi-site operations.


Visual intelligence: Real-time dashboards with NagVis

To elevate data visibility, the plugin integrates with NagVis for geographic dashboards, enabling:

  • District-level views (e.g., “Aveiro Weather”) with interactive maps
  • National climate monitoring (mainland + islands)
  • Hybrid dashboards combining weather and infrastructure metrics

Dashboards auto-update with current conditions and status indicators (OK/WARN/CRIT), enabling rapid, location-based decision-making.


Resilience by design

  • Each module functions independently: a failure in one doesn’t affect others
  • Robust parsing and validation ensure stability, with fallbacks for missing values
  • Logs provide deep visibility into execution and data transformation
  • CLI support enables local testing and development

Real-world applications

This plugin is already delivering tangible value across multiple sectors:

  • Datacenters & Telecoms: Auto-alerts for extreme heat, high humidity, wind risks
  • Logistics & Transportation: Route optimization based on visibility and weather conditions
  • Maritime Operations: Real-time sea state and tide forecasts for navigation and safety
  • Sustainability & ESG: Monitoring air quality for compliance and public safety initiatives

From weather to whatever — Checkmk can monitor it

This project is more than an advanced weather monitoring solution, it’s a proof of concept that showcases the true power and flexibility of Checkmk’s architecture.

By leveraging APIs, modular design, and native Checkmk integration points (rulesets, inventory, special agents), this plugin demonstrates that virtually any external data source can be transformed into actionable monitoring.

Elicarlos Dias
Elicarlos Dias

As a DevOps Consultant Trainee at Lynxmind, he is building a strong foundation in automation, CI/CD and cloud infrastructure. With a hands-on approach and a drive to grow, he supports the team in streamlining processes and enhancing system reliability.