
Integrating IBM Spectrum Archive EE with Icinga MonitoringBy Nils Haustein
I have created a program that checks various IBM Spectrum Archive EE components, analyses the state and prints the result. This program can be integrated as remote plugin with an Icinga monitoring server. In this blog article I explain the program and show the integration with Icinga version 1 and Nagios Remote Plugin Executor (NRPE). The IBM Spectrum Archive EE components being checked and analyzed are:
The program is published on github.com at: http The program is based on IBM Spectrum Archive EE version 1.3 and uses on the eeadm command to obtain the status of the components in JSON format. To analyze the JSON output I use the tool jq (htt
SyntaxThis program can be invoked with one parameter at a time and performs the appropriate checks: Syntax: ./ch Options:
The program returns OK, WARNING or ERROR along with the appropriate return 0, 1 or 2 respectively. Upon WARNING and ERROR messages the program prints the components and status. Only one option can be specified at a time. The combination of multiple options in one call of the program does not work. The program can be used standalone or it can be integrated with an external Icinga or Nagios monitoring server.
Installation and prerequisitesClone the github repo and transfer the chec Download the jq tool and install it on the Spectrum Archive nodes as well. Enter the installation path of the jq tool into the chec Once this has been done execute the chec
Integration with IcingaIcinga allows to monitor infrastructure and services. The Icinga architecture is client and server based. The server is the Icinga server providing the graphical user interface and the option to configure monitored objects such as host groups, hosts and services. The hosts to be monitored are the Spectrum Archive nodes. The services are checked with the chec The client is the IBM Spectrum Archive nodes being monitored. The communication between the server and the client can be based on Nagios Remote Plugin Executor (NRPE). This requires to install and configure NRPE on the Spectrum Archive nodes. More information about NRPE: http
Prepare the clientIn order to monitor the Spectrum Archive nodes using NRPE the NRPE packages and optionally the Nagios-plugins have to be installed and configured. These packages need to be installed on all Spectrum Archive to be monitored. There are different ways to install NRPE and Nagios plugins. Red Hat does not include these packages in the standard installation repository, but they can be downloaded from other sources (e.g. rpmfind). The following packages should be installed: nrpe, nagios-common, nagios-plugin An alternative way for installing NRPE and nagios-plugins can be found here: http After the installation of NRPE has finished, notice some important path and configuration files:
Edit the NRPE configuration file (e.g. /etc incl
The chec 1. In the NRPE-configuration file (/et comm
2. Add the NRPE-user to the sudoer configuration: %NRPE ALL=(ALL) NOPASSWD: /usr
Now copy the executable program chec Switch to the NRPE-user and test if the program works under the sudo context: # /usr/bin/sudo chec Note, if you are not able to switch to the NRPE-user you may have to specify a login shell for the user (temporarily).
Create the NRPE-configuration for the Spectrum Archive specific checks using this program as a remote plugin. Note, the allowed_hosts must include the IP address of your Icinga server. Each check has a name given in [] which executes a particular command, such as /usr allo
Find an example of the NRPE configuration in the github repo Now start and enable the NRPE service and check the status: Continue with the configuration of the monitored objects on the Icinga server.
Configure Icinga serverI used a docker container running Icinga. The default configuration of the Icinga server is located in /etc/Icinga. The default location for the object definition is in /etc First check that the Icinga server can communicate with the Spectrum Archive nodes using NRPE. For this purpose the check_NRPE plugin of the server can be used. The default location is: /us # /usr
This command should return the NRPE version. If this is not the case investigate the problem. Likewise you can execute a remote check: # /usr This command should also return an appropriate response
If the NRPE communication and remote commands work then allow external commands by opening the Icinga configuration file (/et chec
Now configure the objects for the Spectrum Archive nodes. It is recommended to create a new file in directory /etc define hostgroup {
define host {
define host {
define service {
define service { define service {
define service {
define service {
define service {
define service {
define service {
Find an example of the object definition in the github repo. Once the object definition has been done and store in default object location /etc/Icinga/objects restart the Icinga process using systemctl or init.d. Afterwards logon to the Icinga GUI and enjoy the Spectrum Archive nodes being monitored. Here is an screenshot example: http
Of course, you can and should add more checks to the Spectrum Archive nodes. How about performing some checks for the underlying IBM Spectrum Scale software? Alex Saupp and Achim Christ have created a repo to perform checks on Spectrum Scale components (htt Have fun trying that code. Please forgive me using the outdated Icinga 1 object definitions, this was all I had available for testing. Perhaps you can migrate and test the Icinga 2 definitions and contribute to the github repo.
|