This project aims to provide a set of probes for monitoring an iRODS infrastructure. These probes are designed for being used with Nagios, but are also compatible with other monitoring solutions like Shinken or Icinga.
To work correctly, the Nagios server should be able to access the iRODS infrastructure. To achieve this, the following steps have to be performed:
- Install the iRODS client software, as described in the irods package documentation.
- Configure the iRODS client by setting the
/var/spool/nagios/.irods/irods_environment.json
file accordingly to the iRODS user documentation. - Iniatilize the iRODS connection with the iinit command.
If iRODS is properly, the following command should not return any error:
# su - nagios -c ils
The installation is straightforward. Simply copy the probes in the Nagios plugins directory:
# cp plugins/* /usr/lib64/nagios/plugins/
# chown -R nagios /usr/lib64/nagios/plugins/check_irods_*
Once the probes are correctly installed, the Nagios configuration has to be modified to use them.
First, add the following command to Nagios:
define command{
command_name check_irods_icat_connections
command_line $USER3$/check_irods_icat_connections.sh
}
define command{
command_name check_irods_resource_all
command_line $USER3$/check_irods_resource_all.sh -H $HOSTNAME$ -r $ARG1$
}
define command{
command_name check_irods_passive
command_line $USER1$/check_dummy 3 "$ARG1$"
}
Then, create a service definition for each resource to monitor:
define service{
use service-template
hostgroup_name irods-resources
service_description org.irods.irods4.Resource-Iput
servicegroups irods-resource
check_command check_irods_passive!This metric is part of the iRODS-All bundle and cannot be executed indepentently
passive_checks_enabled 1
active_checks_enabled 0
}
define service{
use service-template
hostgroup_name irods-resources
service_description org.irods.irods4.Resource-Iget
servicegroups irods-resource
check_command check_irods_passive!This metric is part of the iRODS-All bundle and cannot be executed indepentently
passive_checks_enabled 1
active_checks_enabled 0
}
define service{
use service-template
hostgroup_name irods-resources
service_description org.irods.irods4.Resource-Irm
servicegroups irods-resource
check_command check_irods_passive!This metric is part of the iRODS-All bundle and cannot be executed indepentently
passive_checks_enabled 1
active_checks_enabled 0
}
And the following templates:
define host{
name irods-resource-template
use host-template
hostgroups irods-resources
icon_image irods.png
statusmap_image irods.gd2
register 0
}
define service{
name irods-resource-template
use service-template
service_description org.irods.irods4.Resource-All
servicegroups irods-resource
check_interval 60
retry_interval 15
register 0
}
This template can now be used to define a resource monitoring, like:
define host{
use irods-resource-template
host_name irods.example.org
alias iRODS Resource
address 192.168.1.2
contact_groups irods_admin
}
define service{
use irods-resource-template
host_name irods.example.org
check_command check_irods_resource_all!demoResc
}
The iRODS monitoring probes are released under the Apache License, Version 2.0.
The source code is hosted on the France-Grilles Github project.
Issues are managed through the Github ticketing system.