We were recently asked how to dynamically monitor folders with Icinga.
Several of our clients monitor folders whose names change from day to day. For example, suppose every day I want to see if there is a file named with the date of that particular day, or I’d like to see if there is a folder for the current day, etc. This need arises on the file servers that our customers normally manage with Windows Server.
We’ve found that one quick approach to solving this type of problem is to use Icinga DSL.
In the past, other colleagues of ours have used Icinga DSL for similar dynamic tasks. You can refer to this blog to find out more about Icinga DSL and how to use it:
We chose to use the command Invoke-IcingaCheckDirectory, which is used to check the directory and the files in a path using Powershell. This topic has also already been discussed in another recent blog:
So one solution is to follow these steps:
1: Duplicate command: duplicate the command Invoke-IcingaCheckDirectory
2. Change argument: click on the Arguments tab and change the path using for example this configuration shown in this screenshot:
How can we test the correct syntax and output of this Icinga DSL command?
It’s simple: you can use the Icinga Console. Open an SSH session on NetEye and type this command:
[root@neteyedemo ~]# icinga2 console Icinga 2 (version: r2.11.9-1) Type $help to view available commands. <1> => DateTime().format("c:\\%Y\\%m\\%d") "c:\\2021\\10\\20" <2> =>
Inside Icinga Console it’s possible to run Icinga DSL commands and see their output. In this simple example, we’ll check the Windows Directory on the Windows Server and verify the path with year month and day.
You can extend this example to files and folders of different types, and in general to other commands.
That’s the power of Icinga 2 DSL.