Scheduling
downtime is extremely useful, if not essential, for the correct management of a
monitoring system.
What
exactly is downtime and what is the reason for having it?
“Downtime can be scheduled for planned server maintenance or any other targeted service outage you are aware of in advance.
Downtime suppresses notifications and can trigger other periods of downtime too. If the downtime was set by accident, or the duration exceeds the maintenance window(s), you can manually cancel the downtime.” [1]
Downtime can be scheduled manually from the NetEye4 web interface both for one or more hosts, and for one or more services, by indicating the start and end dates.
There is also the possibility to schedule downtime using the Icinga 2 API, and many customers have had the opportunity to integrate downtime into particular procedures such as backup scripts, cronjobs, or maintenance planning by users who do not have direct access to the NetEye 4 web interface.
A very interesting example has been implemented in Cembre SpA to make use of downtime that is completely automated within a script used by different teams for the shutdown and reboot of a Windows server.
This script must be run on a Windows host monitored by NetEye 4, and allows an administrator user to perform the following actions:
1 - Reboot and add Host Downtime
2 - Shutdown and add Host Downtime
3 - Abort Shutdown and remove Host Downtime4 - Add host downtime5 - Remove host downtime6 - Add single service downtime7 - exit
The
script was implemented in Powershell by Paolo Pintossi of Cembre SpA and is
available for download at the link at the bottom of this article. [2] Many thanks to Paolo for his collaboration and
his willingness to freely share the code.
Requirements
To use the script
you need to create a new Icinga 2 API user in the following file: /neteye/shared/icinga2/conf/icinga2/conf.d/api-users.conf[3]
Example:
[root@neteye conf.d]# cat api-users.conf/** * The ApiUser objects are used for authentication against the API. */object ApiUser "autodowntime" { password = "35vsdf5uf00cd41b6722sd6f" permissions = [ "objects/query/Host", "objects/query/Service", "objects/query/Downtime", "actions/acknowledge-problem", "events/*", "status/query", ]}
Finally
you will need to adapt the initial part of the script, indicating:
The Windows domain to complete the variable $serverHostName
Hi everybody. I’m Giuseppe and I was born in Milan in 1979. Since the early years of university, I was attracted by the Open Source world and operating system GNU\Linux. After graduation I had the opportunity to participate in a project of a startup for the realization of an Internet Service Provider. Before joining Würth Phoenix (now Würth IT Italy) as SI consultant, I gained great experience as an IT consultant on projects related to business continuity and implementation of open source software compliant to ITIL processes of incident, change and service catalog management. My free time is completely dedicated to my wife and, as soon as possible, run away from Milan and his caotic time and trekking discover our beautiful mountain near Lecco for relax and lookup the (clean) sky.
Author
Giuseppe Di Garbo
Hi everybody. I’m Giuseppe and I was born in Milan in 1979. Since the early years of university, I was attracted by the Open Source world and operating system GNU\Linux. After graduation I had the opportunity to participate in a project of a startup for the realization of an Internet Service Provider. Before joining Würth Phoenix (now Würth IT Italy) as SI consultant, I gained great experience as an IT consultant on projects related to business continuity and implementation of open source software compliant to ITIL processes of incident, change and service catalog management. My free time is completely dedicated to my wife and, as soon as possible, run away from Milan and his caotic time and trekking discover our beautiful mountain near Lecco for relax and lookup the (clean) sky.
Bug Fix We updated the version of GLPI in order to fix some relevant vulnerabilities. List of updated packages The following packages have been updated for NetEye 4.45: glpi, glpi-autosetup, glpi-configurator, glpi-neteye-config to version 10.0.22_neteye1.17.5-1.
Bug Fix in Tornado Module We solved an issue in Tornado's rule configuration where the action_name field in director actions was being cleared after saving and deploying. When users created a rule with a director action and filled in both Read More
Today we continue our journey into monitoring automation in NetEye. In my previous post we discussed the possibility of automating Business Processes. As you may remember, for those of us working on NetEye Cloud monitoring dozens of clients, it's important Read More
When performance degradation occurs within a complex system, understanding the root cause can be extremely challenging. If the issue happens sporadically, this difficulty increases even more. This is because modern systems involve numerous components that interact in complex ways. For Read More
At first glance, rebuilding an RPM may sound like a purely mechanical task: take a patch, rebuild the package, ship it. In reality, that small fix goes through a much longer journey that touches reliability, security, trust, and long-term maintainability. Read More