IT Monitoring

Are you aware how much downtime can cost your business?

Focus on your business

Now you can focus on what is truly important in your business knowing that systems, applications and networks are proactively monitored and any issues will be identified before they become critical.

The Check_MK Monitoring System is a complete IT monitoring solution that delivers deep insight into networks, systems and applications wherver they may be: on-premise, physical, virtual or somewhere in the cloud.

Focus on your business

Automatic Service Detection


Check_MK automatically discovers all of the elements to be monitored on all of your systems whether they are on-premise or in the cloud. This unique feature will save you considerable time and effort with configuration.

How much time are you spending configuring your monitoring systems? Automatic service detection gives you agility like never before. With Check_MK you can focus your energy on more important tasks.

You stay in control at all times with the most flexible rules engine in the field.

High Performance

Getting instant visibility and insight into your infrastructure does not have to be a performance bottleneck. In fact, with Check_MK performance is not affected due to the efficient design of the agent and the server components.

With a unique design you can rest assured that Check_MK will keep a watchful eye on 100 or 100000 systems just the same. Compare that with the other monitoring solutions and you will quickly realise that Check_MK does much more for less.

High Performance

Batteries Included

Everything included

With over 700 self configuring checks included that cover the most important metrics, you will find everything that is necessary to power your entire monitoring platform. All the checks support automatic service discovery so you know its a breeze to get started.

With more checks being added weekly you can rest assured that your future systems will be covered as well.


Spearhead is the Premier Check_MK partner for Romania and we work directly with the developers of Check_MK to provide officially-supported OMD-Packages.

Subscribers receive access to the Check_MK secure Download Area where you will find official packages with all versions of the Check_MK Monitoring System - specially-matched to suit all individual Enterprise-Linux versions.


Check_MK is sold on a yearly subscription based on the number of monitored services. A service is a unique metric such as one CPU or one system process.

3,000 Number of monitoredservices

€ 600

7,000 Numărul serviciilor monitorizate

€ 1100

15,000 Numărul serviciilor monitorizate

€ 1800

30,000 Numărul serviciilor monitorizate

€ 2800

60,000 Numărul serviciilor monitorizate

€ 4400

100,000 Numărul serviciilor monitorizate

€ 5800

If you require more than 100.000 services please contact us.

Support Contracts

Need a little help with the Check_MK Monitoring System, including the Nagios, OMD, PNP4Nagios and NagVis components?

We work directly with the developers to provide impeccable services and support. We also develop and maintain a series of our own add-ons/plugins. We would be delighted to discuss your requirements.

Contact us to get a customized proposal for your specific requirements.


We have put together an open source documentation project that we hope will help you get started with Check_MK. You can view the documentation here.

Check_MK via the Cloud

Our coud enabled Check_MK monitoring system is ready to use within minutes. If you are looking for a quick and easy way to gain insight and visibility into your systems and applications we can provide the Check_MK Monitoring System as a service.

Delivered via the cloud we are available in all corners of the world. In a matter of minutes you can get fine grained metrics.

A demo will be avialable shortly until then give us a shout and we'de love to show you what we have done.

History of Werks

The software development of Check_MK is organized in so called Werks. A Werk is any change or bug fix that has influence on the user's experience.

Konstantin Büttner [ Tue, 21 Nov 2017 17:06:30 +0000 (18:06 +0100)] 
Fix typo

Change-Id: I533d717ec504ef266a7974a24f8a0d09bc878dd7

Konstantin Büttner [ Mon, 20 Nov 2017 13:35:16 +0000 (14:35 +0100)] 
5519 ddn_s2a_errors, ddn_s2a_faultsbasic, ddn_s2a_faultsbasic.bootstatus, ddn_s2a_faultsbasic.cachecoh, ddn_s2a_faultsbasic.disks, ddn_s2a_faultsbasic.dualcomm, ddn_s2a_faultsbasic.ethernet,, ddn_s2a_faultsbasic.pingfault,, ddn_s2a_faultsbasic.temp, ddn_s2a_stats,, ddn_s2a_stats.readhits, ddn_s2a_statsdelay, ddn_s2a_uptime, ddn_s2a_version: Suite of checks to monitor DDN S2A storage devices

These checks use the agent_ddn_s2a datasource program.

Change-Id: Ib0ed7c1978c14134f561024b06a381618be040f2

Lars Michelsen [ Tue, 21 Nov 2017 15:32:46 +0000 (16:32 +0100)] 
Fixed side effect of data source tests: debug mode was left enabled

Change-Id: Ica5c385d4b329a923b8eee3023fdfebffd69bc66

Konstantin Büttner [ Tue, 21 Nov 2017 14:48:32 +0000 (15:48 +0100)] 
5520 FIX rstcli, rstcli.pdisks: Fix broken parse function

Some unexpected lines in the corresponding agent section could lead to
neither check nor discovery working (ie crashing). This has been fixed
for all known cases.

Change-Id: Ibdcea18161f05dec47f1fc50c348873e11f7ba5b

Lars Michelsen [ Tue, 21 Nov 2017 14:38:43 +0000 (15:38 +0100)] 
Minor wording / output improvements

Change-Id: Ief084eade837ba64c682e19e6997b828b658749c

Lars Michelsen [ Tue, 21 Nov 2017 14:28:21 +0000 (15:28 +0100)] 
5535 Check_MK hosts can now use multiple agents

It is now possible to configure multiple Check_MK agents for a single host.

With this change, you can now configure e.g. a ESX VCenter to use the ESX special agent
together with the regular Check_MK agent installed on the monitored host.

All existing hosts remain using their existing configuration after an update. Also
new hosts only use a single Check_MK agent using the already existing logic where
a) The Check_MK agent was contacted via TCP or b) a configured data source program
(special agent or other program invocation) was used.

The new feature can be enabled by changing the host attribute (on hosts or folders)
"Check_MK Agent" to e.g. "Contact Check_MK agent and all datasource programs". This
will make Check_MK use all data sources matching on this host instead of just picking
the first matching one. There is also an alternative option "Use all enabled datasources"
available which can be used to execute only the data sources matching the host.

On the way to this change we have changed server previously existing things:

    <li>The host tag group <tt>agent</tt> has been split into multiple tag groups to be
    more flexible.</li>
    <li>The tag group <tt>ping</tt> and <tt>snmp</tt> have been added and provide the options
    which were previously available in the single <tt>agent</tt> attribute.</li>
    <li>All these tag groups are treated as <i>builtin</i> tag groups defined by Check_MK
    (can not be modified anymore).</li>
    <li>Existing configurations of hosts/folders will be translated seamlessly into the new
    <li>During updates your site will only apply the changes above in case you have an unmodified
    <tt>agent</tt> tag group. In case you have modified it in any way, these changes will not
    be applied and you won't be able to use the changes introduced with this werk. You will then
    have to clean up your local changes. Once you delete your local tag group "agent", the
    builtin one will be used automatically.</li>
    <li>The <i>Edit host</i> dialog has split up into more independent sections, the new ones
    are <i>Address</i> and <i>Data sources</i> to better visualize the relation of the different

<i>Please note:</i> In case you are using the Web-API calls to create or modify hosts or folders
while setting attributes we changed with this change, you may have to change your API calls.

Change-Id: I54cd61a6ccb662faf456348fbb6f2243c3c21457

Lars Michelsen [ Tue, 21 Nov 2017 09:42:23 +0000 (10:42 +0100)] 
Fixed several tests after code and functional cleanups

Change-Id: Ia5fade7790f75a2cddc6c82130a5542e158927cd

Lars Michelsen [ Tue, 21 Nov 2017 08:41:23 +0000 (09:41 +0100)] 
Moved functions to better places

  * Now that the data structure is getting clearer the main function
    for gathering the data of a host get_host_sections() can be
    moved to the DataSources() object.
  * Moved get_section_content_for_check() that prepares the section_content
    for a check/inventory plugin to MultiHostSections() object.

Change-Id: I068be0c614c5087200f19b920fad6a5d207088b4

Lars Michelsen [ Mon, 20 Nov 2017 12:13:17 +0000 (13:13 +0100)] 
Fix some naming conventions related to agents/checking

  * section_name      : The identifier for a section of monitoring data
  * check_plugin_name : The identifier for a Check_MK check plugin
  * active_check_name : The identifier of a active check plugin
  * host_sections     : Object managing parsed data received from data sources
  * section_content   : A list of lists (Agent: list of rows splitted by separators)

Change-Id: I281deae6bee2885540560b033aed7d42908d5d1f

Lars Michelsen [ Mon, 20 Nov 2017 12:10:22 +0000 (13:10 +0100)] 
Fixed merging sections from cluster nodes for cluster hosts together

Change-Id: Idd0ba73da88cf7e2411bb28dbfff588281f64198

Lars Michelsen [ Fri, 17 Nov 2017 12:57:56 +0000 (13:57 +0100)] 
Added helpful message when viewing the service discovery page of clusters which have no services

Change-Id: I475d48498d6c86b942dd70e255bdb7b882cbddc7

Lars Michelsen [ Fri, 17 Nov 2017 12:48:32 +0000 (13:48 +0100)] 
Cleaned up discovery code

* Separated data gathering from doing the discovery
* Performance: Reduced duplicate data gathering on service discovery
  page of WATO
* Moved data gathering (including all caching options) to top level
* Moved IP address resolution to top level which makes it much
  clearer in which situations IP addresses are set by caller or not

Change-Id: Ied8ee8fa417743047ddd325a4adf83e5fcb79c0e

Lars Michelsen [ Fri, 17 Nov 2017 11:23:38 +0000 (12:23 +0100)] 
Updated bug entries #3014

Change-Id: I6dd1fc936953c041538035fae4b2ab4d8b2ddb93

Lars Michelsen [ Fri, 17 Nov 2017 11:08:47 +0000 (12:08 +0100)] 
Improved logging of cache file writing

Change-Id: I1dcbf452de38ae3bc56969e053fccc3e7ed8ddd2

Lars Michelsen [ Fri, 17 Nov 2017 10:10:34 +0000 (11:10 +0100)] 
Moved persisted info update logic to DataSource()

Change-Id: I8496b2a0ffadfa89734db2a6a0247178250b01f8

Lars Michelsen [ Fri, 17 Nov 2017 09:57:15 +0000 (10:57 +0100)] 
Updated bug entries #3013

Change-Id: Ice1940b193defefa70f64cd1376eb13cc8806264

Lars Michelsen [ Fri, 17 Nov 2017 09:24:48 +0000 (10:24 +0100)] 
5436 FIX Fixed logical problem with SNMP check interval rule

The rule was previously configured for each individual check. This was not really
correct, because the SNMP data is fetched for main checks and their sub checks
together. This means that you can not define inidividual SNMP checks intervals for
these checks.

The ruleset "Check intervals for SNMP checks" has now been changed to work with the
"section names" instead of inidividual checks.

Change-Id: I56f00bd5e49f4bf791801da94740b0329eb83671

Lars Michelsen [ Thu, 16 Nov 2017 12:15:14 +0000 (13:15 +0100)] 
Minor output cleanups

Change-Id: I992376394f1f390e8fcec3048f0cd5b172568ce6

Lars Michelsen [ Thu, 16 Nov 2017 11:22:57 +0000 (12:22 +0100)] 
Fixed handling of edge case on service discovery page with snmp check interval configured

Change-Id: I1c1133ebd225b212c1e1e8891c1753b22758ba0d

Lars Michelsen [ Thu, 16 Nov 2017 08:02:57 +0000 (09:02 +0100)] 
Cleanup cache handling of data sources

* Removed modification of configuration options
* Refactored cache read function
* Improved verbose logging of cache usage decisions
* Use better names for cache influencing attributes

Change-Id: Ic0853bfc53a57e7bf114b9a3c94e77100fea810c