Skip to main content

Rule-based modular synchronizer for Checkmk, Netbox, Ansible, I-DOIT, Jira CMDB and 15+ other CMDB/monitoring systems

Project description

CMDBsyncer

A rule-based and modular system to synchronize hosts between Checkmk, Netbox, and other systems. The main goal is the complete organization of hosts based on CMDB systems with flexible rules and automation.

๐Ÿ”— Links

๐Ÿ“‹ Table of Contents

๐ŸŽฏ Overview

CMDBsyncer is a powerful, web-based tool designed to solve the complex challenge of managing host inventories across multiple IT management systems. Whether you're synchronizing between Checkmk, Netbox, I-DOIT, or other platforms, CMDBsyncer provides a unified approach with rule-based automation.

Key Benefits

  • Centralized Management: Single interface for all your CMDB synchronization needs
  • Rule-Based Logic: Flexible rules for host organization and attribute management
  • Multi-Platform: Support for 15+ systems including Checkmk, Netbox, Ansible, and more
  • Scalable: Tested with 140,000+ hosts
  • Secure: Built-in authentication, 2FA, and encryption of sensitive data

โšก Quick Start

Get started quickly using Docker Compose:

# Clone the repository
git clone https://github.com/your-username/cmdbsyncer.git
cd cmdbsyncer

# For production: check out the last released version.
# For testing the bleeding edge: stay on main.
git checkout stable

# Start the application
./helper up

# Access the container
./helper shell

# Create your first user
./helper create_user 'your-email@example.com'

# Access the web interface
# Open http://your-host:5003 in your browser

This runs a development version that you can use to test everything.

๐Ÿ“ธ Screenshots

Rules Configuration Rule-based synchronization configuration interface

Debug Options Comprehensive debug and testing options

๐Ÿš€ Main Functions

Core Features

  • ๐ŸŒ Web Interface - Complete web-based management with login, 2FA, and user management
  • โš™๏ธ Configuration Management - All configuration handled through the web interface (except initial installation)
  • ๐Ÿ”Œ Plugin API - Simple API to integrate custom data sources
  • ๐Ÿ› Debug Tools - Various debug options available via the ./cmdbsyncer command
  • ๐Ÿ” Security - Encryption of secrets and secure credential management
  • โฐ Scheduling - Built-in cron management for automated synchronization
  • ๐Ÿ“Š Monitoring - Integration with monitoring systems
  • ๐ŸŽฏ Template Support - Jinja2 templating for configuration and rules
  • ๐Ÿ”„ REST API - Full REST API for automation and integration
  • ๐Ÿค– MCP Server - Model Context Protocol server for Claude Desktop, Cursor, Cline & co. โ€” expose hosts, accounts, rules and cron over cmdbsyncer-mcp

Rule Engine

  • ๐Ÿ“ Attribute Control - Rules based on host attributes
  • โœ๏ธ Attribute Rewrites - Dynamic modification of host attributes
  • ๐Ÿ” Filters - Advanced filtering for hosts and attributes
  • โšก Action Rules - Automated actions in Ansible, Checkmk, Netbox, etc.

Ansible Integration

  • ๐Ÿ“‹ Inventory Source - Use CMDBsyncer as dynamic Ansible inventory

๐Ÿ”ง Supported Systems

Checkmk

Complete lifecycle management for monitoring systems

  • โœ… Host Management - Full host lifecycle (creation, labels, folders, deletion, rules)
  • ๐Ÿ“ˆ Scalability - Tested with more than 140,000 hosts
  • ๐Ÿท๏ธ Attribute Sync - Sync and update all host attributes, tags, and labels
  • โšก Performance - Full support of API bulk operations and multiprocessing
  • ๐Ÿ“ Folder Management - Complete Checkmk folder management with pool features
  • ๐Ÿ‘ฅ Groups - Creation of host, contact, and service groups
  • ๐ŸŽฏ Tags - Create host tags and host tag groups
  • ๐Ÿ“Š BI Integration - Create BI aggregations
  • ๐Ÿ“‹ Rules - Create all types of setup rules
  • ๐Ÿ”„ Updates - Smart update controls to prevent excessive changes
  • ๐Ÿค– Agents - Commands to activate configuration, bake and sign agents
  • ๐Ÿ‘ค User Management - Manage Checkmk users (create/delete/reset password)
  • ๐Ÿ“ฆ Inventory - Host attributes inventory for Ansible integration
  • ๐Ÿ” Password Store - Create and manage encrypted password entries
  • ๐ŸŽฏ DCD Rules - Create Data Collection Rules
  • ๐Ÿ” Version Detection - Automatic Checkmk version detection for correct API usage

Ansible

Automation and configuration management

  • ๐Ÿ“‹ Inventory - Rule-based inventory source
  • ๐Ÿ–ฅ๏ธ Agent Management - Complete Checkmk agent management (Linux & Windows)
    • Installation and TLS registration
    • Bakery registration
  • ๐Ÿ—๏ธ Site Management - OMD site management (updates, creation)
    • Automatic Checkmk version downloads

Netbox

Network infrastructure management

  • ๐Ÿ”„ Bidirectional Sync - Rule-based export and import of devices and VMs
  • ๐Ÿ—๏ธ Auto-Creation - Automatic category creation
  • ๐Ÿ—บ๏ธ Infrastructure - Export sites, interfaces, IPAM data
  • ๐Ÿ‘ฅ Contacts - Contact management
  • ๐Ÿ“ Location Management - Comprehensive location handling

I-DOIT

IT documentation and CMDB

  • ๐Ÿ“Š Template-Based - Rule-based export and import using templates
  • ๐Ÿ”„ Bidirectional - Full import/export capabilities

Other Integrations

PRTG - Network monitoring

  • ๐Ÿ“ฅ Object Import - Import monitoring objects to sync with Checkmk

BMC Remedy - IT Service Management

  • ๐Ÿ“Š Limited Import - Basic import functionality

Cisco DNA - Network management

  • ๐ŸŒ Device Import - Import devices and interface information

CSV Files - Data management

  • ๐Ÿ“„ Host Management - Manage hosts based on CSV files
  • โž• Data Enhancement - Add additional information from CSV files

LDAP - Directory services

  • ๐Ÿ‘ฅ Object Import - Import objects from LDAP directories

REST APIs - Custom integrations

  • ๐Ÿ”Œ Custom APIs - Import from custom REST API endpoints

JSON - File-based data

  • ๐Ÿ“„ File Import - Import JSON file structures

Jira CMDB - Atlassian integration

  • โ˜๏ธ Cloud & On-Prem - Support for both deployment types
  • ๐Ÿ“ฅ Object Import - Import CMDB objects

JDISC - Network discovery

  • ๐Ÿ” Discovery Import - Import discovered objects

VMware - Virtualization

  • ๐Ÿ“Š Attribute Management - Import and export VM attributes
  • ๐Ÿ”„ Bidirectional - Full import/export to VMware VMs

Database Systems

  • MySQL - Import and inventory database tables
  • MSSQL/FreeTDS/ODBC - Support for all ODBC-based database connections

๐Ÿ› ๏ธ Installation

Prerequisites

  • Docker and Docker Compose
  • Python 3.11+ (for development)
  • Web browser (for the management interface)

Production Installation

  1. Clone the repository and pick a version

    git clone https://github.com/your-username/cmdbsyncer.git
    cd cmdbsyncer
    
    # Use the stable branch (last released version) for production:
    git checkout stable
    # โ€ฆor pin to a specific release tag for reproducible deployments:
    # git checkout v3.12.12
    

    See RELEASE.md for the full branching/versioning policy.

  2. Configure environment

    # Copy and edit configuration files
    cp docker-compose.prod.yml docker-compose.yml
    # Edit the configuration as needed
    
  3. Start the application

    docker-compose up -d
    
  4. Create admin user

    ./helper create_user 'admin@your-domain.com'
    

Development Installation

For development and testing purposes:

# Start development environment
./helper up

# Access container shell
./helper shell

# Create test user  
./helper create_user 'test@example.com'

# Access at http://localhost:5003

MCP (Model Context Protocol)

CMDBsyncer ships an MCP server that lets LLM clients (Claude Desktop, Cursor, Cline, โ€ฆ) read and write syncer state directly. It boots in CLI mode (no web stack) and authenticates with HTTP Basic; access is gated by the mcp api_role on the user. SSE/HTTP transport authenticates per request and requires HTTPS (mirrors the REST API's gate).

# 1. Install the MCP SDK โ€” ships in the [extras] pip extra
pip install 'cmdbsyncer[extras]'

# 2. Run the server โ€” usually configured into your MCP client, but you can
#    also pipe it manually:
cmdbsyncer-mcp --user admin@your-domain.com --password '****'

# 3. Or pass credentials via env vars (handy for client config):
export CMDBSYNCER_API_USER=admin@your-domain.com
export CMDBSYNCER_API_PASSWORD='****'
cmdbsyncer-mcp

Example claude_desktop_config.json snippet:

{
  "mcpServers": {
    "cmdbsyncer": {
      "command": "cmdbsyncer-mcp",
      "env": {
        "CMDBSYNCER_API_USER": "admin@your-domain.com",
        "CMDBSYNCER_API_PASSWORD": "****"
      }
    }
  }
}

Inside Docker the server is preinstalled โ€” set MCPSERVER_ENABLED=1 (optionally MCPSERVER_PORT=8765) in your compose file and the container entrypoint starts the SSE listener for you. Map port 8765 if you want to expose it. Per-request Basic Auth applies the same way.

Tools exposed: host CRUD, inventory write, account read, rule export/import, autorules trigger, cron status & trigger, log read. See docs.cmdbsyncer.de โ€” MCP for the full catalog.

๐Ÿ“‹ Requirements

System Requirements

  • Memory: Minimum 2GB RAM, recommended 4GB+
  • Storage: Minimum 10GB free space
  • Network: HTTPS access to target systems (Checkmk, Netbox, etc.)

Supported Target Systems

  • Checkmk: All current versions (automatic detection)
  • Netbox: v2.8+
  • Ansible: v2.9+
  • I-DOIT: v1.12+
  • And many more - see full compatibility matrix

๐Ÿค Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow existing code style
  • Add tests for new features
  • Update documentation as needed
  • Test with multiple target systems

Git Hooks

The repository ships a pre-commit hook in .githooks/ that refreshes application/buildinfo.txt, runs pylint on staged Python files, and executes the unit-test suite before each commit. Activate it once per clone:

git config core.hooksPath .githooks

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ†˜ Support


โญ If you find this project helpful, please give it a star! โญ

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cmdbsyncer-4.0.3.tar.gz (411.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cmdbsyncer-4.0.3-py3-none-any.whl (481.1 kB view details)

Uploaded Python 3

File details

Details for the file cmdbsyncer-4.0.3.tar.gz.

File metadata

  • Download URL: cmdbsyncer-4.0.3.tar.gz
  • Upload date:
  • Size: 411.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for cmdbsyncer-4.0.3.tar.gz
Algorithm Hash digest
SHA256 6b2735e0a126564e260b73524e64467f337e1bab600c6c985d21b339c6d886e8
MD5 e3229c1a063c191d2e44c5b342f295a8
BLAKE2b-256 b3a20fc1d908d6e1f5fdb47e2cf09f7790b89fdc8fad88bd903a58c8b27c82f7

See more details on using hashes here.

File details

Details for the file cmdbsyncer-4.0.3-py3-none-any.whl.

File metadata

  • Download URL: cmdbsyncer-4.0.3-py3-none-any.whl
  • Upload date:
  • Size: 481.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for cmdbsyncer-4.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b59b5617b86ee28fece7d606bc0b13f3cc8403402f08bde3bf2b44432f3435e6
MD5 a3dc706ccb7128c358dda6750e72d62f
BLAKE2b-256 5d030dfaf910d85ae8bb0bb8baa424d5f93058b7641e360cc8f16e345bf33056

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page