With Checkmk version 2.1.0b1 the structure of the inventory data has been changed. It is currently not possible to transfer inventory to i-doit with CheckMK 2 add-on <=1.8
With version 1.8.1 the configuration must be adjusted.
Share information between i-doit and checkmk ## About
i-doit is a Web application for IT documentation and a CMDB (Configuration Management Database). This application is very useful to collect all your knowledge about the IT infrastructure you are dealing with.
checkmk is a software application for network monitoring.
Together both applications do one job very well: collecting and sharing knowledge about what is the current state of all your hosts and services in real-time and in which state each host and service should be. This is often essential for a professional and efficient IT service management (ITSM).
The application idoitcmk
closely connects i-doit with checkmk. A lot of information will be shared between them to reach the following goals:
- Write-once, read-many: Keep your documentation and configuration at one place.
- Easily compare the current state with the target state of all your hosts and services within your documentation.
- Configure your network monitoring based on your documentation
- Let your network monitoring collect essential information about hosts and re-use it in your documentation.
- Automate all the boring tasks a sysadmin doesn’t like.
We know each (IT) organization has different requirements and various processes. Due to this it is important to have a highly customizable application.
Documentation
- First steps
- Requirements
- Installation
- Usage
- Configuration
- Generate WATO configuration based on CMDB data
- Import inventory data into CMDB
- Match objects from i-doit with hosts from checkmk
- Read information from i-doit and checkmk
- Import agents types from checkmk to i-doit
- Sync contact groups between checkmk and i-doit
- Sync WATO folders between checkmk and i-doit
- Import monitoring sites from checkmk to i-doit
- Sync host tags between checkmk and i-doit
- i-doit Web GUI
- Frequently asked questions (FAQ)
Changelog
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
and this project adheres to Semantic Versioning.
1.8.1 - 2022-11-21
Fixes
- Adding compatibility to checkmk 2.1
1.8.0 - 2022-09-05
Added
- PHP 8.0 Compatibility
- Design Compatibility
Fixes
- Error message when synchronizing tags
- Synchronizing IPv6 IPs and networks generates an error message
1.7.1 - 2021-10-18
Added
- Pull IPv6 addresses from checkmk to i-doit
Fixed
- Add/fix CPU attributes from checkmk to i-doit
- Add/fix operating system attributes from checkmk to i-doit
1.7.0 - 2021-08-09
Added
- Implement merge strategy while pulling from checkmk to i-doit
Fixed
- Tags (static) Dropdown ‘Tag group’ attributes cannot be deleted
- CheckMK 2: Tags are not displayed with the tag group in reports
1.6.1 – 2021-06-15
Fixed
- Password and username must be specified (i-doit config)
- Filtering on attributes of category Check_MK (host) generates SQL error and list view does not work anymore
- Dynamic host tag “Location” cannot be set globally
- CheckMK 2 Plugin Pull: Validation errors in dialog related properties
- The live status configuration is not optional
- Checkmk responded with an error message: Check_MK exception: Invalid key(s): hostname
- Check_MK 2: Error Message strlen() expects parameter 1 to be string, null given
- Error in list views when add-on Check_MK 2 was deinstalled
- Operating system is not assigned
- No attributes are imported for applications
- Pull with the same Host as parent ends in a loop
1.6.0 – 2019-12-06
Added
pull
: Import software applicationspull
: New configuration settingpull.createUnknownSoftwareApplications
pull
: New configuration settingpull.attributes.C__CATG__APPLICATION
pull
: New configuration settingobjectTypes.softwareApplication
pull
/match
: Match objects and hosts by serial number configured by new itemserial
inpull.attributes
fetch-hosts
: Add new option--select
to select one or multiple attributes, ignore everything else (works only in
verbose mode)push
: Print last request to Checkmk API on failure as debug message
Changed
- Drop support for PHP version 5.6
- Mark PHP version 7.0 as deprecated
- Recommend PHP 7.3
- Re-name
Check_MK
toCheckmk
- Require PHP modules
hash
,sockets
andSPL
pull
: Do not warn about empty host tag IDs because they are allowed in Checkmkpull
: Ignore link local networking addresses and interfacespull
: Do not ignore a networking address which can’t be assigned to a networking portpush
: Create site if it’s set in i-doit (categoryCheckmk Host
) but not set in Checkmkpush
: Update site if it’s set in both i-doit and Checkmk but differspush
: Remove site if it isn’t set in i-doit but set in Checkmkmatch
: Warn about ignored objects or objects without unique identifiers
Fixed
fetch-hosts
/pull
: Fetch HW/SW inventory data for all hosts if configuration settingi-doit.limitBatchRequests
is
smaller than the number of hosts.match
/pull
/push
: Use primary category entry from categoryhostadress
to determine hostname used by Checkmkpull
: Do not import empty MAC addressespull
: Prevent validation error caused by unknown propertyentry
pull
: Print link to Checkmk if attribute “site” is availablepull
: Validate data type of each tag identifierpull
: Do not leave any host without an import strategy (create, overwrite, merge or ignore)pull
: Decide import strategy for each host based on matching and configuration settingspull
: Do not create objects which should be ignoredpush
: Use IPv4 address which is explicitly marked as primary- Web GUI: Add missing translations in English
1.5.1 – 2019-05-08
This is a bug fix release after we received tons of useful feedback from our users.
Important notices:
- Before installing/updating this add-on, please update to the latest version of i-doit (at least 1.12.2) and the API
add-on (at least 1.10.2). - Before using any other commands, run
sync-agents
first and check your i-doit objects for missing values in
categoryCheck_MK Host
, attributeAgent
.
Added
status
: Check installed versions of Check_MK 2 and API add-onsync-agents
: Cleanup agent types in i-doit which aren’t available in Check_MKsync-tags
: Validate tags in i-doit before pushing them to Check_MKpull
/push
: Add new configuration settings to identify required object types by their constants and objects by
their titlespull
: Print links to i-doit and Check_MK for each object (only in debug mode)
Changed
- Require i-doit >=1.12.2
- Require API add-on >=1.10.2
pull
/push
/sync-tags
/Extras > Check_MK 2 > Tags (static)
: Mark attributeTag ID
as optionalpull
: Skip empty tag identifierspull
: If model is given but vendor is unknown set vendor ton/a
(and vice versa)pull
: Support more bandwidth optionssync-agents
: Fetch agent types directly from Check_MK and do not rely on a pre-defined list of agent typessync-tags
: Do not allow to sync duplicate tag IDs, empty group titles or changed tag IDssync-tags
/sync-agents
: Include built-in host tag groups, for example: agent type, SNMP, IP address familyinit
: Do not force to configure most settings which have proper defaults; just ask nicely- Add performance boost while fetching objects from i-doit by tweaking API calls
- Replaced deprecated i-doit API methods
help
/--help
/-h
: Improve included documentation- Abort application run on any PHP error
- Category
Check_MK Host
: Print message if host/object not found - Category
Check_MK Host
: Remove link to command log (prevents 403 forbidden error message) fetch-hosts
/fetch-objects
/delete-hosts
: Exit with status code 2 if host/object not found- Build binary: Replace BZip2 with GZip compression after autoloading failed because of wrong checksums
Fixed
pull
: Fix API calls to prevent validation errors in attributesactive
,primary
andexport_ip
pull
: Avoid errors when archiving data in overwrite modepull
: Do not create new objects in i-doit if configuration settingpull.createObjects
is disabledpull
: Do not warn about missing host tags because they are dynamically created by i-doitpull
: Do not try to add network port with zero bandwidthpull
: Select proper attributes to import CPUspull
: Do not overwrite hostname selection in categoriesCheck_MK Host
andLivestatus
if object is updatedpull
/fetch-hosts
: Fix filtering by Check_MK site with option--include-site
pull
/match
: Do not try to match objects by unspecified hostname selection in categoryCheck_MK Host
pull
/push
/match
: Do not try to create already existing object which has a match with a hostpush
: Do not miss any host-related contact group if more than one group is assigned to an objectpush
: Do not push tag IDs in lower-casepush
: Validate possible identifiers before using one of thempush
: Do not push any object with option--include-ids
which is disabled for exportpush
: Add parents to existing host or overwrite current parents or remove them properlypush
: Add or remove alias to/from host properlypush
/fetch-objects
: Prevent error “Found invalid result for request in batch” if--include-ids
filters by
unknown objectssync-tags
: Do not forget to strip HTML tags from tag group title before syncing to Check_MK- Installation/update: Grant “Admin” group access to
Extras > Check_MK 2
in Web GUI Extras > Check_MK 2 > Tags (static)
: Edit/delete/sort static host tags in i-doitAdministration > Interfaces / external data > Monitoring > Check_MK 2
: Fix updating configuration settingsAdministration > CMDB settings > Dialog-Admin
: Make dialog+ attributesagent
,site
andWATO folder
available- Category
Check_MK Host
/Check_MK Tags
: Do not create duplicate assignments to object types after update - Category
Check_MK Host
: Write full command output incl. STDERR to log file - Category
Check_MK Tags
: Make “dynamic tags” and “CMDB tags” available in reports
1.5.0 – 2018-12-18
First public release 🎉
Important notes:
- Because of several major changes in i-doit we had to increase minimum versions of i-doit pro and API add-on.
- Please re-run
idoitcmk init
to update configuration settingpull.attributes
. - From now on, you need a valid license for this add-on. Download your license file from https://login.i-doit.com/.
Added
push
/pull
/match
: Validate hostname specified in i-doit- Add more pre-checks: Please do not use neither PHP version < 7.0.0 nor super-user “root”
Changed
- Require i-doit pro, at least version 1.12
- Require i-doit API add-on, at least version 1.10
- Enforce license check
- Remove dependency from legacy Check_MK add-on
- Migrate tag configuration from
Extras > Check_MK
toExtras > Check_MK 2
- Migrate category
Check_MK (Host) > Export parameter
toCheck_MK Host
- Migrate category
Check_MK (Host) > Host tags
toCheck_MK Tags
- Re-name category constant
C__CATG__CMK_DEF
toC__CATG__CMK2
- Re-name category constant
C__CATG__CMK_TAG
toC__CATG__CMK2_TAG
- Re-name category constant
C__CMDB__SUBCAT__NETWORK_PORT
toC__CATG__NETWORK_PORT
in configuration
settingpull.attributes
- Re-name category constant
C__CMDB__SUBCAT__NETWORK_INTERFACE_L
toC__CATG__NETWORK_LOG_PORT
in configuration
settingpull.attributes
Fixed
push
: Fix error while archiving category entriessync-folders
: Fix typospull
: Accept only EUI-48 MAC addresses (48-bit)
1.4.0 – 2018-11-05
Remember, remember, the fifth of November… 🎃
Added
push
: Add management board address to host based on a object-related remote management controllersync-tags
: Import host tags and host tag groups from i-doit into Check_MKsync-tags
: Filter objects to sync their dynamic CMDB tags with Check_MKsync-tags
: Do not re-import dynamic CMDB tags from Check_MK into i-doitsync-tags
: Activate (foreign) changes after adding new host tags to Check_MK
Fixed
- Fix error when installing add-on in i-doit admin center without parallel login to i-doit tenant
fetch-objects
: Print URL without PHP notice
1.3.0 – 2018-09-10
Important note: There are changes in the configuration settings. Re-configure your application with idoitcmk init
.
Added
push
: Validate regular expressions in configuration settingpush.autoTagging
status
: Test loaded PHP extensions- Make it optional to fetch “effective” attributes from hosts in Check_MK, but enable it by default
- Add new configuration setting
check_mk.webAPI.effectiveAttributes
(set totrue
by default) fetch-objects
: Print URL to each i-doit objectfetch-hosts
: Print URL to each Check_MK hostpush
/fetch-objects
: Increase performance dramatically if the only filter option is--include-ids
Changed
pull
: Ignore empty host tagspull
: Ignore host tag groupsaddress_family
andsnmp
(they are not available via Check_MK Web API call)
Fixed
push
: Do not ignore IP addresspush
/pull
/match
: Check for every object attribute whether it exists before matching it against host attributes- Configure individual proxy hosts for both i-doit JSON-RPC API and Check_MK Web API
- Verbose mode: Do not print that no objects have been found by blacklisted object types
1.2.0 – 2018-07-09
Important notice: Before installing/updating this add-on, please update your i-doit instance to the latest version (
currently 1.11).
Added
- Trigger
idoitcmk
commands within i-doit categoryCheck_MK (Host)
delete-hosts
: Delete hosts in Check_MKpush
: Activate all changes including foreign changes by configuration settingpush.activateForeignChanges
Changed
- Require i-doit pro, version 1.11 or higher
Fixed
push
,fetch-objects
: Increase performance when using option--include-type
push
,fetch-objects
: Include dynamic host tags
1.1.0 – 2018-05-24
Important notice: Default configuration has changed. Setting pull.identifier
has new value user-defined
.
See documentation for details.
Added
pull
: Import IPv4 addresses and network ports from GNU/Linux and other non-windows systemspull
: Add speed to network ports-v|--verbose
: Print number of API requestsmatch
: Match objects from i-doit with hosts from Check_MKpull
: Match object with host by user-defined value for attributeHostname
in
categoryCheck_MK (Host) > Export parameter
Fixed
pull
: Import right amount of CPU cores
1.0.0 – 2018-04-30
Added
pull
: Import CPU model, manufacturer and max. frequency
Changed
pull
: Do not enable monitoring via Livestatus if attribute “site” is not available for Check_MK host
Fixed
pull
: Prevent PHP warnings while accessing unknown information
0.10 – 2018-04-27
Important note: There are changes in the configuration settings. Re-configure your application with idoitcmk init
.
Added
pull
: Allow more than one IPv4 address per network adapterpull
: Assign IPv4 addresses to physical/logical network portspull
: Import information about (virtual) video cards/chips- New configuration setting
pull.attributes.C__CATG__GRAPHIC
; defaults totrue
Fixed
pull
: Sometimes host is missing in import cue when there is a match with an objectpull
: Do not forget to add primary IPv4 address to category “Check_MK (Host) > Export parameter”push
: Do not forget to add host tags based on configuration settingpush.autoTagging
sync-tags
: Incomplete host group tags may cause errors- Configuration setting
push.autoTagging
: Missing slashes in regular expressions
0.9 – 2018-04-25
Important note: There are changes in the configuration settings. Re-configure your application with idoitcmk init
.
Added
pull
: Look for IP address configuration in hardware/software inventory from Check_MKpull
: Assign IP addresses to proper subnets in i-doitpull
: Useipaddress
attribute as fallback if there are no addresses found in hw/sw inventorypull
: Create or update link in i-doit object to host in Check_MK- New configuration setting
pull.attributes.C__CATG__ACCESS
; defaults totrue
Changed
pull
: Convert drive capacity to proper unit
Fixed
- Let user overwrite (not merge) configuration settings
pull.identifier
andblacklistedObjectTypes
pull
: Do not ignore RAM, CPU sockets and cores
0.8 – 2018-04-19
Added
pull
: Add static host tags to i-doit objectspush
: Show more details if a host identifier is used by more than one i-doit object
Fixed
pull
: Prevent mismatches for i-doit objects and Check_MK hostspull
: Handle i-doit objects with missing attributes properly
0.7 – 2018-04-19
Important notes:
- Activate MK_Livestatus in Check_MK
- There are changes in the configuration settings. Re-configure your application with
idoitcmk init
.
Added
push
: Look for duplicate identifiers (object title, hostname, FQDN, user-defined) used by objects in i-doitstatus
: Check connection to MK_Livestatus and check Check_MK version- New configuration setting
roles.monitoring
to define i-doit role for contact groups assigned to objects
Changed
pull
: Removemerge
mode because it does not make sense for all categories which can be updated
Fixed
pull
: Archive entries for enabled categories onlypull
: Respectignore
modeinit
: Ask for configuration settingpull.updateObjects
0.6 – 2018-04-13
Added
status
: Print warning if configuration settingi-doit.url
looks insufficientpush
: Print warning if object is not enabled by attributeactive
in categoryCheck_MK (Host) > Export parameter
Fixed
push
: PHP warning is thrown while fetching a contact without specified rolepull
/fetch-hosts
: Prevent HTTP error code 414URI Too Long
while fetching hw/sw inventory data from Check_MK
0.5 – 2018-04-12
This release fixes several issues in required packages.
Changed
- Add requirements for PHP modules
bzip2
andphar
- Do not look for configuration settings in
/root/.idoitcmk/config.json
Fixed
- Avoid duplicates in configuration settings
- Remove backslashes from configuration settings
- Fix several problems while parsing responses from Check_MK Web API
0.4 – 2018-04-05
Added
fetch-objects
: Read information about objects from i-doitfetch-hosts
: Read information about hosts from Check_MK
Changed
- Decreased binary file size
0.3 – 2018-03-09
Fixed
help
/init
/configtest
/print-example-config
/print-config
/list
: Validation error for missing/invalid
configuration settings
0.2 – 2018-03-08
This release is dedicated to all women.
Added
push
: Use primary IP address if no other is givenpush
/pull
: Print more information what is going on when there is a huge amount of objects to be fetched from
i-doit- Print current configuration settings with command
print-config
- Validate configuration settings before any command is executed
Changed
push
: Continue even if any discovery of services failed
Fixed
pull
: Do not try to fetch objects by type from i-doit if there are no objects availablesync-folders
: Keep in mind WATO folders “/” and "" (empty string) are the samesync-folders
: PHP error when WATO folder is copied from i-doit to Check_MK
0.1 – 2018-03-05
First release!
Added
push
: Generate WATO configuration based on CMDB datapull
: Import inventory data into CMDBsync-agents
: Import agents types from Check_MK to i-doitsync-contact-groups
: Sync contact groups between Check_MK and i-doitsync-folders
: Sync WATO folders between Check_MK and i-doitsync-sites
: Import monitoring sites from Check_MK to i-doitsync-tags
: Import tag groups from Check_MK as static host tags to i-doitprint-example-config
: Print all configuration settings as an example- More commands:
help
,list
,init
,status
,configtest
,print-example-config
,build-test-environment