Blog Entries

30. 07. 2019 Angelo Rosace Development, NetEye

How To: Using the Elastic Watcher Feature to React to Failed Logon Attempts (Part 1)

The introduction of the new Elastic Features (formerly, X-Pack packages) for the Elastic Stack added many new functionalities to the previous implementation in Net-Eye. One of them is the Watcher feature. Let’s discuss a use case based on this feature. Imagine you as a user want to somehow trigger a webhook alert every time something… Read More

18. 06. 2019 MarinovMihail Development, NetEye

Go pprof – How to Understand Where There is Memory Retention

Recently I had to face a problem concerning a daemon written in Go that was consuming all available memory – causing critical and unpredictable situations for all the other components of the system. The first alarm came from NetEye: There was something that was requesting more and more memory. It was easy to understand which… Read More

29. 03. 2019 Gianluca Piccolo Development, NetEye

NetEye 4 and the Continuous Localization with Weblate

As a software developer, working with translations has always been a pain.Non-technical people like translators cannot work directly on translation files due to their rules and the file syntax. In my professional career I’ve tried many times to include translators into the workflow, but the time we spent solving the bugs they introduced was more… Read More

20. 02. 2019 Thomas Forrer Development, NetEye


As we do every year, we participated again this year at FOSDEM, the largest conference on free and open source software in Europe.  Apart from having really nice conversations and grabbing many stickers 🙂 , we attended many very inspiring talks this year, too.

27. 12. 2018 Charles Callaway Development, NetEye

Research & Development – A New User Guide Process (Part 4)

Software grows.  So do software teams.  To avoid getting slow and rusty over time, teams need to constantly assess their progress, improve where they can, and make necessary changes when warranted. The NetEye R&D team is no exception. Back when NetEye was smaller, we wrote documentation when time allowed, typically after new features had already… Read More

27. 12. 2018 Michele Santuari Development, NetEye

Research & Development – Poker Planning (Part 3)

I described in a prior blog post the so-called Backlog which is used not only by the Research & Development team but also by the other teams in the System Integration unit. The Backlog Refinement meeting is focused on the prioritization and re-ordering of tasks, and this activity cannot be achieved without properly estimating effort. In this… Read More

21. 12. 2018 Gianluca Piccolo Development, NetEye

NetEye 4 PSR-7 implementation

When talking about data transmission the main thing to take care is that both sides communicate in the same language. The sender must be sure to send only stuff that the receiver can understand. The receiver must know how to interpret the request and to process an intelligible response for the sender. Let me introduce… Read More

17. 12. 2018 Valentina Da Rold Development, NetEye

IPL Turns NetEye 4 Development Upside Down

We are witnessing a deep transformation within the NetEye 4 core: Icinga Web 2 will move from the Zend Framework to a totally new library called IPL (Icinga PHP Library).  This change is already underway in the NetEye 4.3 release with the new version of the Director module.  The Icinga team has already partially introduced… Read More

05. 12. 2018 Valentina Da Rold Development, NetEye

How to create a new ZendForm element for Icinga Web 2

In one of the latest releases of the EventHandler module for NetEye 4 we introduce, for the first time, a completely customized form element.  In order to satisfy certain EventHandler usage constraints, we needed to create a drop-down element that allows the user to enter a custom value in addition to choosing one of the… Read More

05. 12. 2018 Michele Santuari Development, NetEye

Research & Development – Backlog (Part 2)

We described in a prior blog post how the Research & Development team has adopted a full Agile approach.  Although the basic principles remain unchanged and all team members have embraced a mindset of self-organization and team collaboration, in recent years new challenges have arisen that require continuous improvements in our methodologies. In particular, in this blog post we… Read More

13. 11. 2018 Benjamin Gröber Configuration Management, Development, Linux, NetEye

How We Leveraged DRBD 9 Autopromote for a Simplified Pacemaker Cluster Layout

Historically, NetEye Clusters were configured with DRBD as Master/Slave resources.  This led to the following rather cumbersome resource configuration for an N-node cluster: $SERVICE_drbd_master ( x 1 ) $SERVICE_drbd_master_clone ( x N ) $SERVICE_drbd_fs $SERVICE_virt_ip $SERVICE Note: $SERVICE serves as a placeholder for any Cluster Service running in NetEye 4. At least ten constraints were… Read More

25. 09. 2018 Valentina Da Rold Development, NetEye

How to Integrate an External jQuery Plugin in Icinga Web 2

As already mentioned in my other blog posts, NetEye 4 is based on Icinga Web 2, a powerful PHP framework. During the development of some of our custom NetEye modules for Icinga Web 2, we needed to include some new, custom jQuery plugins to create a neat new effect in the GUI.  For example, with… Read More

25. 09. 2018 Benjamin Gröber Development, NetEye, Uncategorized

How to Add/Rename an Icinga2 Satellite

Infrastructures get reorganized, organizations grow and naming conventions change. Icinga2 nodes can reliably trust each other by following the guidelines for certificate generation and building a dedicated certificate chain.  Certificates rely on hostnames and DNS, which aren’t usually subject to changes, but it does happen sometimes. What then? First of all, all certificates in NetEye’s… Read More

09. 07. 2018 Valentina Da Rold Development, NetEye

Introducing Pagination for Grafana Scripted Dashboards

The new release of NetEye 4 brings with it the Grafana scripted dashboard concept. If you have lots of metric names, it can be annoying to have to constantly create new dashboards.  But if they change in a defined pattern (e.g., new servers), you can use scripted dashboards to create those dashboards dynamically using JavaScript. … Read More

28. 06. 2018 Benjamin Gröber Development, NetEye, Uncategorized

DRBD 9 Multi-Slave Mesh Network Quickstart Guide

DRBD 9  allows configurations to have multi node replication without stacking. In this post I will briefly describe how to define a multi-node DRBD resource, and highlight the differences for pacemaker cluster integration.