Introduction
In most monitoring environments, maps are still static. Markers are placed manually. Changes require manual updates. Visual layers are disconnected from real-time data.
This project changes that.
Using Checkmk as the data collection layer, I built a system that automatically creates, updates, and removes geographic objects based on wildfire data.
Each fire becomes a dynamic object with live metadata, location, and status, all generated and managed without user intervention.
The result is a continuously updating geographic layer that reflects the real state of the field.
How it works
A custom Checkmk special agent collects structured data from fogos.pt.
The data includes location, operational resources, timestamps, and status.
A Python module processes this information and writes directly into a geographic database.
For each incident, the system:
- Validates GPS coordinates
- Assigns a unique ID
- Creates a new object with structured metadata
- Updates the object as new data arrives
- Deletes it when no longer relevant
This keeps the map in sync with the real world without manual configuration.

Why this matters
The value is not in consuming data. The value is in transforming it into automated, real-time geographic visibility.
By embedding this logic inside a Checkmk-based monitoring workflow, the map becomes a live reflection of field activity.
It is not just a visual reference but an operational tool that adapts to the data as it changes.
What you see
The images show wildfire incidents automatically positioned on the map:
- Each object is color-coded by severity and includes contextual metadata.
- No markers were placed manually.
- No visual elements were configured by hand.
- Everything is generated by automation.

Components
agent_fogos_tabela.pyis a Checkmk special agent that collects and structures the data.worldmap_sync.pyhandles object creation, updates, and removal using Python.
The system integrates directly into Checkmk’s plugin and discovery structure.
If you work with monitoring, geospatial data, or need dynamic field visibility powered by Checkmk, I’d be happy to exchange ideas.