Monitor in a Box

Open Source monitoring without the pain

What's in the box
Hero top image Hero bottom image

Why Monitor in a Box?

At, we wanted a monitoring solution based on open-source software to ensure that our application performance is acceptable to our customers and our infrastructure is healthy. Our desired monitoring solution needed to provide:


Orchestration for Dynamic Infrastructure

There should be one single, centralized, revision-controlled specification for which metrics to collect and from which vantage points to collect them.

The entire monitoring stack should come up with one command. Updates should be applicable with one command and testable in a virtualized staging environment.

The monitoring system should detect changes in a dynamic infrastructure: Any change we make to our infrastructure should be detected from the ground-truth of our application and system infrastructure footprint. Any changes not made by us (e.g. a host loses IP connectivity or a process dies) should be detected as such, and not confused with an intentional change.


Metric Collection and Thresholds

Collect and maintain a history of both application performance and infrastructure health metrics.

Site Monitoring Tools

A sensible collection of widely relevant metrics should be collected by default. Warning and failure thresholds (for which notifications are generated) should be defined over every metric, where possible, by default.


A Useful Dashboard

Provide sensible default visualizations of both nominal and ordinal data. Queries should be supported over the metrics and interactive plots generated for all historical data, all in the browser.

As former networking researchers, we felt it imperative that all visualizations, plots and figures yield insights as efficiently as possible. One should be able to drill down in the browser to understand what's going on, and it should look beautiful, be responsive, and take advantage of modern web technologies.


Response Coordination

Provide sensible default alert and notification criterion for the collected metrics.

Support not only email alerts, but also modern team chat software like Slack or RocketChat.


Sensible Security

Confidentiality and Authenticity: All communications, metrics collection, notifications, must be authenticated and encrypted by default.

Availability and Robustness: Ensure no silent failures as long as any system is running. The monitoring solution should monitor itself and components should fail gracefully and never fail silently. Built-in support for out-of-band notifications.

Isolation: The code executed by each system under monitoring is immutable to the monitoring system; The monitoring system can not execute arbitrary code on the systems under monitor. Only the master collection system exposes listening TCP socket to the network.

Easy-to-reason-about failure modes: When a metric fails to be reported to the master within a regular interval, it is considered failed.


Simplicity To Get Started

It should not be necessary to spend a full day reading documentation before you have your first working example setup.

We wanted to have a simple, yet meaningfully illustrative running example monitoring solution, which we could then study and adapt to our specific needs.

The problem that we and others experienced is that these goals are not simple to achieve. So we created Monitor in a Box to bring us closer to this ideal solution.

What's in the box?


Monitor in a Box uses Ansible to create a monitoring infrastructure. Ansible is a configuration management system that enables declarative and imperative orchestration of computing infrastructure using playbooks and roles. We provide you with playbooks and roles that we created and also a staging environment that uses Vagrant in which you can run everything on a set of virtual machines to test it out.

Icinga Master

The Icinga2 Master monitoring server collects the metrics from the Satellites and issues notifications so you can react to problems. The status of your infrastructure is visualized in Icingaweb2, while historical data visualization is provided by Grafana.

Icinga Satellite

A Satellite is a system that runs a monitoring agent which reports all of its metrics to an Icinga Master. In production, each host of your infrastructure will become a satellite.

This is the only part of our system that interacts with your existing infrastructure and we specifically designed it to be minimally invasive.

Get started in 10 minutes

1. Create your VMs:

git clone && cd examples && vagrant up
Instalation instructions - step 1

2. Set them up:

ansible-playbook -i inventory playbook-mib.yml
Instalation instructions - step 2

3. See it running:

Instalation instructions - step 3


  Free Pro Managed
Installer Linux or MacOS Linux or MacOS Linux or MacOS
Icinga2 Master Ubuntu 14.04 Ubuntu 14.04, 16.04, CentOS 7 We run it for you
Icinga2 Satellite Ubuntu 14.04 Ubuntu 14.04, 16.04, Debian 7, 8, CentOS 7 Same as Pro Plan with unlimited satellites
Support GitHub Issues Email Premium Support
Graphite / Graphana
Let's Encrypt
  Fork on GitHub Contact Us
Please activate Javascript for purchase.

By clicking "Buy now" you agree to the Terms & Conditions

Frequently Asked Questions


Do I need to use Ansible?

Generally yes. Monitor in a Box requires Ansible to setup each of the components. However, we intentionally keep the icinga satellite role - the only part of MIB that touches your existing infrastructure - as simple as possible so that it can easily ported to another configuration management system.

Do I need to use Docker?

No, you don't. We provide a Docker image as a simple way to obtain all dependencies required for the installer environment.

Do I need to use Vagrant?

No, you don't. We provide Vagrantfiles as a convenient to set up a Monitor in a Box in a staging environment.


How familiar do I need to be with Ansible, Icinga2 and/or Grafana?

We designed Monitor in a Box to provide a useful and meaningfully illustrative monitoring solution out-of-the-box, so that you don't need any experience to get started. That said, the more specific you customize your monitoring, the more detailed an understanding of these components you will need.

How can I integrate Monitor in a Box with my existing production infrastructure?

First, you will need to set-up add a new, dedicated host that will act as an Icinga master. Secondly, you will need to apply the Ansible satellite roles to your production hosts. Detailed instructions are provided in the included

Do you have a sandbox for testing the set-up?

We provide you with Vagrant files that help you to quickly set-up a testing environment on your local machine. The tests directory of the Pro version contains Vagrantfiles for all supported operating systems.


How do I get updates?

For the Pro version, updates will be made available to you via the download URL provided to you at checkout. Our open source components are maintained on GitHub.

Were can I get support?

If your support need refers to an open source component feel free to open an issue on GitHub. For Pro version support contact us via email from the email address you provided during checkout.

What is your refund policy?

We issue refunds for digital products within 30 days of the original purchase of the product. See our Terms & Conditions for more information.


We are a team of experienced software engineers who have been working together in Berlin since 2013.

See what we can do for you
This website uses cookies. By closing this banner or continuing to browse otherwise, you agree to the use of cookies. More details
Fork me on GitHub