Table of Contents
Monitoring Setup
This describes the basic setup of an Icinga instance to be used for monitoring GxFS Storage Appliances. This howto describes the setup for KIT envoronemnt but can be adapted easily to other environments. For monitoring the NetApp devices NetApp Santricity Webproxy services is needed. This tool provides an interface to get the status of NetApp devices via CLI commands. Functionality is provided by a java application, where the systems need to be registered. After that the current status and be taken via HTTP.
Icinga
basic setup
- setup yum repository to get icinga packages directly. Yum info to be plaed in /etc/yum.repo.d/icinga.repo
[icinga-stable-release] name=ICINGA (stable release for epel) baseurl=http://packages.icinga.com/epel/$releasever/release/ enabled=1 gpgcheck=1 gpgkey=http://packages.icinga.com/icinga.key
- install icinga related packages
yum install icinga icinga-doc icinga-gui icinga-gui-config
The checks to be used by Icinga will be installed as well from the repository.
yum install nagios-plugins*
Some dependencies need to be solved while installing the plugins. This can be done package by package or yum can be configured to use temporarily all available/known repositories. To achieve this behaviour /etc/yum/pluginconf.d/search-disabled-repos.conf
need to edited and notify_only
need to be set to 0
.
sed s/notify_only=0/notify_only=1/ /etc/yum/pluginconf.d/search-disabled-repos.conf
Icinga configuration
- add user to be authenticated by Webserver machanism.
[root@LSDF-gxfsadmin ~]# htpasswd /etc/icinga/passwd user1 New password: Re-type new password: Adding password for user user1 [root@LSDF-gxfsadmin ~]#
- add gxfs server configuration files to /etc/icinga/objects/gxfs-server.cfg
sample configuration for LSDF can be found here: gxfs-server.cfg
- add gxfs-server.cfg config file to master Icinga config file
- check Icinga syntax of config files before restaring icinga
/usr/bin/icinga -v /etc/icinga/icinga.cfg
NetApp webservices proxy
basic setup
This NetApp tool provides an http interface to monitor or configure NetApp Storage devices. In our case it is just used to get the current status informatio form the NetApp boxes and trigger an alarm in case it turns from optimal to degraded. Current version is 2.0 and is available from the usual NetApp download site: http://mysupport.netapp.com/NOW/download/software/eseries_webservices/2.00.X000.0007/
- download software
- chmod +x webservice-02.00.7000.0007.bin
- ./webservice-02.00.7000.0007.bin
- accept license agreements and changes pathes and settings if needed
If the webservices confuses to start redhat-lsb-core
might be the cause. Doing yum install redhat-lsb-core
' solved the problem.
- systemctl start web_services_proxy
- use a browser and connect to
https://172.18.93.129:8443/
. This shows just a overview html page. - browse to /docs/ and here into the API specification
- a website is displayed, where all available commands are visible.
- the systems need to be registered, which can be done here or via script:
[root@LSDF-gxfsadmin webproxy]# cat add_lsdf_arrays.sh curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ "id": "lsdf-40-101", "controllerAddresses": "172.18.93.130" }' 'http://rw:rw@172.18.93.129:8090/devmgr/v2/storage-systems' curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ "id": "lsdf-41-101", "controllerAddresses": "172.18.93.137" }' 'http://rw:rw@172.18.93.129:8090/devmgr/v2/storage-systems' curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ "id": "lsdf-42-101", "controllerAddresses": "172.18.93.144" }' 'http://rw:rw@172.18.93.129:8090/devmgr/v2/storage-systems' [root@LSDF-gxfsadmin webproxy]# bash add_lsdf_arrays.sh {"id":"lsdf-40-101","alreadyExits":false,"alreadyExists":false}{"id":"lsdf-41-101","alreadyExits":false,"alreadyExists":false}{"id":"lsdf-42-101","alreadyExits":false,"alreadyExists":false}[root@LSDF-gxfsadmin webproxy]# [root@LSDF-gxfsadmin webproxy]#
setup JSON check
- get check_http_json.py script from https://github.com/drewkerrigan/nagios-http-json/blob/master/check_http_json.py
- place this script to /usr/lib64/nagios/plugins/check_http_json.py