Gather Contact Information Of Each Host And Service In Nagios

Gather contact information of each host and service in Nagios Doesn’t have to be hard. Read this tips and tricks to make your work easier.

Scenario: Nagios Core / Nagios XI has installed and configured as per the requirements and alerting has been enabled for contacts and contact groups, few months later your Manager / Management team asked you to provide information about hosts and services contact information like which host alerts is going to which user ( Each and every host and service alerts and there associated contacts and contact groups).

In above scenario if you want to collect / gather all the information about hosts /services and their associated contacts it is an hectic task. we have to go to each and every file and write host name, service name and its associated contacts and contact groups.

Assume if you have 1000 Hosts and Ten thousand services it may take 4days to collect and consolidate all the information together.

In this article i am going to explain easy way, we can collect and consolidate with in 30minutes of time

Gather Contact Information Of Each Host And Service In Nagios

first step login to your nagios server using SSH service (Putty).

Below path is for NagiosXI version

[Nagios@ArkIT ~]$ cd /usr/local/nagios/etc/hosts/
[Nagios@ArkIT ~]$ cat * |grep -E "host_name|contact" > /tmp/hosts

[Nagios@Arkit ~]$ cd /usr/local/nagios/etc/services/
[Nagios@ArkIT ~]$ cat * |grep -E "host_name|service_description|contact" > /tmp/services

Below path is for Nagios Core ( If your environment is customized then use appropriate path )

[NagiosCore@ArkIT ~]$ cd /usr/local/nagios/etc/objects/[NagiosCore@ArkIT ~]$ cat * |grep -E "host_name|contact" > /tmp/hosts
[NagiosCore@ArkIT ~]$ cat * |grep -E "host_name|service_description|contact" > /tmp/services

Now we have collected the hosts / services and associated contacts and contact groups but the data is not in a proper way, data format will be as shown below

       host_name                       Server1.arkit.co.in
        contacts                        aravi
        contact_groups                  DL-Linux
        host_name                       Server2.arkit.co.in
        contacts                        kumar
        contact_groups                  DL-windows
        host_name                       Server3.arkit.co.in
        contacts                        ramana,aravi
        contact_groups                  DL-Administrator,IT-Team

We required hosts output like below

Server1.arkit.co.in aravi,DL-LinuxServer2.arkit.co.in kumar,DL-windowsServer3.arkit.co.in ramana,aravi,DL-Administrator,IT-Team

We required services output like below

Server1.arkit.co.in Ping aravi,DL-LinuxServer1.arkit.co.in CPU Load aravi,DL-LinuxServer2.arkit.co.in Ping Kumar,DL-WindowsServer2.arkit.co.in Web Server DL-webteam,kumar,ramana

To do this i have made few scripts which will do our job in less time, to generate host contacts use below script

[Nagios@ArkIT tmp]$ export output=; while read line; do if [[ "$line" =~ "host_name" ]]; then export output="${output}\n"; fi; export output="${output}, $line"; done < /tmp/hosts && echo -e $output | sed 's/^, \?//' | sed '/^$/d' > /tmp/comahosts

To Generate Services contacts information use below script

[Nagios@ArkIT tmp]$ export output=; while read line; do if [[ "$line" =~ "service_description" ]]; then export output="${output}\n"; fi; export output="${output}, $line"; done < /tmp/services && echo -e $output | sed 's/^, \?//' | sed '/^$/d' > /tmp/comaservices

After running above scripts our data will be available in /tmp/comahosts and /tmp/comaservices files, just open them in Excel file delimiter comma separated

Replace host_name, contacts, contact_groups and service_description with blank

That’s your excel sheet ready with all the information.

Gather contact information of each host and service in Nagios

conclusion

We can easily collect Nagios hosts /services contact, contact group information using above method in quick way.

Thanks for the read please do comment your feedback on comment section

 

Thanks for your wonderful Support and Encouragement