Author Archive for Marius Hein

Coming soon: Icinga Web 0.9.1 beta new features

With just a few days till release, everything on the Icinga Web timeline is going to plan. To whet your appetite we have a few new features as promised:

Compound commands: Simply check the tick boxes for whichever hosts, services or groups you would like to simultaneously send a command to.

Persistence: Views and filters are automatically saved to reappear when you return and can be renamed for future reference.

Extra flexible user settings: Above and beyond the classic contact group restriction, confine who can access custom variables, initiate commands, view specific host and service groups. Even categorise cronks and views for specific user groups.

Status icons:
See at a glance if checks, notifications and event handlers have been enabled / disabled, if hosts are in downtime or acknowledged.

Hope you are looking forward to them as much as we do. As always, your views and feedback are welcome.

  • Share/Bookmark

Icinga demo move

We’re moving our demo systems to a new place. This needs a couple of hours, sorry for the downtime.

Affected systems:

The systems are up and running again. Happy testing!

Kind Regards,

Marius.

  • Share/Bookmark

A peek behind the Icinga web interface

Icinga_webinterface5screenshot3 You’ve probably already seen the paparazzi shots, but the real sneak preview is here. In the lead up to the Alpha release, we’ve put a lot of work in to the web interface – so we want your thoughts on our progress and plans. So, the Icinga web interface in a nutshell:

Ajax paradigm

We believe the major advantage of an Ajax driven web interface is that refreshes are only made to the relevant page areas as opposed to the entire page. Thus program load is significantly reduced while being also much more flexible. We expect this to also lead to faster search and configuration change times.

Widget architecture

We took some inspiration from iGoogle and Apple dashboards to design the web interface with flexibility and user customisation in mind. So Icinga’s interface is a loose collection of components we call Cronks which sit in a few containers (border, north, east and centre columns) on an open layout.

Cronks can be dragged and dropped around the screen, shown, hidden, minimised, resized and customised. Essentially widgets, these mini Javascript applications interact with the server to receive data and other information on user demand. They generally display specific and minimal information, which makes them also easily extensible. We like them because they break down check results into manageable chunks to be displayed when wanted, instead of overwhelming the user with a screen full of 20 different pieces of blinking information.

So these Cronks can be dragged and dropped into panels, tabs and containers much alike gadgets on an iGoogle page or Apple dashboard, offering the user flexible control over their interface.

Bildschirmfoto-ICINGA - Shiretoko02 Icinga_webinterface2 screenshot1

Growl-like pop up notifications

Similar to the Apple notifier, balloons emerge on the browser margins to directly inform the user of changes. This kind of global notification system offers multiple notifications from multiple sources – which we believe is perfect for monitoring.

ExtJS, Json and CSS

Behind all the features on screen we have endeavoured to create a flexible and open layout from the outset which has been easily achieved with CSS and ExtJS Javascript library. In our opinion, ExtJS is one of the best libraries around, offering many features, while being easily extensible and independent of external libraries. Json was naturally our choice for data exchange between the server (PHP, Agavi), framework and Cronks, being itself native Javascript.

The thinking behind the Icinga web interface was flexibility, speed and customisability. We wanted to give the user the freedom to mould their interface to suit their needs. Let us know if you think we’re on the right track in the comments.

  • Share/Bookmark

Ode to Agavi

Closing into the 14 day rush to the next Icinga release 0.8.2, we had a moment to reflect on our coding madness. As a developer, the one thing that makes such work easier is the choice of a good framework. And that is why we take our hats off to our trusty Agavi framework.

Why Agavi? It was no hard choice. As an open source, PHP 5, object oriented framework, it met all our web interface needs.

Thanks to its very strict Model-view-controller architectural pattern, we have very clean, testable and easily extensible code. By separating user input from application actions and from the interface view, there is much less complexity in the design architecture which leads to greater flexibility and easier extension. Less complexity and not to mention PHP open Icinga to a much larger developer community.

Extensibility is also built in through its modular structure which is perfect for all the Icinga addons that will no doubt come in time. Addons can be easily integrated into the frontend, added on as modules.

Icinga Web Architecture – a home for an Addon

Icinga Web Architecture – a home for an Addon

Unlike other frameworks which restrict which components can be used, Agavi is highly flexible and leaves most implementation choices the developer. So at the end of the day we have complete control over the code. It’s independence from database abstractions and multi-language support further enhances to Icinga’s flexibility, making it accessible to diverse users.

As Agavi is an active project, we trust it can only get better. Most recently, Agavi’s improvements to its build system and its integration of the Phing (Phing is not GNU make) makes coding that bit faster. And if you notice that ever ticking counter on the right, you would understand why.

  • Share/Bookmark