HP Sim Monitoring
A check Plugin that connects to the HP SIM Database and fetches the needed fields to display the Errors and States of SIM in Icinga.
Requirements:
On the Icinga Host you need:
Perl and modules (DBI, Getopt::Long,POSIX)
Database connector (freetds)
check_sim_healthstatus.pl
check_sim_eventstatus.pl
Icinga or Nagios
On the SIM host(s) you need:
SQL Server Management Studio Express to create the necessary views (available for free) A SQL Express database user with sufficient rights to access the views Two additional Views in HP SIM Database (Maybe you could also create them on the fly with the plugin) The Views
The check_sim Plugins rely on internal views of HP SIMs SQL Database. To create them use SQL Server Management Studio Express to connect to your HP SIM Database and create the following new views by right click on the “Views†folder in your SQL Object Browser beneath the “Insight_v50… †database
SIM Healthstatus (HS):
SELECT Name, OverallStatus, timestamp FROM dbo.devices
and save as icinga_status_health
SIM Eventstatus (ES):
SELECT dbo.R_Inventory.DeviceKey, dbo.R_Inventory.DeviceName, dbo.simAggrStatus.evStatus, dbo.devices.timestamp FROM dbo.R_Inventory INNER JOIN dbo.simAggrStatus ON dbo.R_Inventory.DeviceKey = dbo.simAggrStatus.DeviceKey INNER JOIN dbo.devices ON dbo.R_Inventory.DeviceKey = dbo.devices.DeviceKey
and save as icinga_status_event
Database connector FreeTDS:
To establish a database connection to MySQL (Express) Server you need the connector tool freetds. In my case on Ubuntu Linux you can install the following packages out of the apt repository
aptitude install freetds-bin freetds-common freetds-dev libdbd-freetds
After installation you need to add a new database connector configuration in /etc/freetds.conf
[hpsim]
host = ip/hostname of your HP SIM Database host
port = 1433
tds version = 7.0
The Icinga command definition
HP Systems Insight Manager:
define command {
command_name check_sim_event
command_line $USER1$/check_sim_eventstatus.pl --server=$ARG1$
}
define command {
command_name check_sim_health
command_line $USER1$/check_sim_healthstatus.pl --server=$ARG1$
}
The Icinga service definition:
define service{
use generic-service
host_name somehost
service_description HP SIM EventStatus somehost
check_command check_sim_event!somehost
}
define service{
use generic-service
host_name somehost
service_description HP SIM HealthStatus somehost
check_command check_sim_health!somehost
}
Testing:
To test if the plugin is working and the database connection can be established simply run the following command:
/path/to/plugin/check_sim_healthstatus.pl --all=y
Full Guide:
For the full usage and installation guide checkout the Documentation