Состояние всех серверов на экране телефона в режиме онлайн

от автора

Была у меня цель в любой момент времени узнавать состояние всех серверов и систем на экране телефона.
Мониторинг Nagios по умолчанию проверяет 4 раза сервис и присылает уведомление в случае проблем ( В среднем 7-15 минут до прихода письма).
Но мне хотелось иметь возможность убедится, что «все ок» в любую секунду, даже если я не за компом и не лазить в почту лишний раз.

Скриншоты с результатами работы


Для этой цели я накидал вот такой perl — скрипт:

#!/usr/bin/perl use strict; use Data::Dumper;  use CGI; use Nagios::Scrape; use HTML::Template; use POSIX qw(strftime);  my $foo = Nagios::Scrape->new(username => 'nagiosadmin', password => YOUR_PASSWORD, url =>  'http://127.0.0.1/nagios/cgi-bin/status.cgi'); my @service_alerts = $foo->get_service_status(); my @host_alerts = $foo->get_host_status();   my $status = @service_alerts + @host_alerts; my $t = HTML::Template->new( filehandle => \*DATA, die_on_bad_params => 0 ); my $pubDate = POSIX::strftime( "%a, %d %b %Y %H:%M:00 +0400", localtime ); $t->param( service_alerts => \@service_alerts , host_alerts => \@host_alerts , status => $status , pd => $pubDate  );  print "Content-type: application/xml  \n\n"; print $t->output();  __DATA__ <?xml version="1.0" encoding="utf-8"?> <rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"> <channel> <pubDate><TMPL_VAR NAME="pd"></pubDate> <link>http://ya.ru</link> <TMPL_UNLESS status>                 <title>OK</title>                 <description>OK - all</description>                 <item>                         <title>ALL OK</title>                         <description>                                 ALL OK <TMPL_VAR NAME="pd">                         </description>                         <link>http://ya.ru</link>                 </item> <TMPL_ELSE>                 <title>NOT OK</title>                 <description>NOT OK</description> </TMPL_UNLESS> <TMPL_LOOP service_alerts>         <item>                 <title>SERVICE alert - <TMPL_VAR NAME="host"></title>                 <description>                         <TMPL_VAR NAME="information">; attempts - <TMPL_VAR NAME="attempts">; service_type - <TMPL_VAR NAME="service">; Downtime - <TMPL_VAR NAME="duration">;                         LastCheck - <TMPL_VAR NAME="time">;                 </description>                 <link>http://ya.ru</link>         </item> </TMPL_LOOP> <TMPL_LOOP  host_alerts>         <item>                 <title>HOST  alert - <TMPL_VAR NAME="host"></title>                 <description>                         <TMPL_VAR NAME="information">; attempts - <TMPL_VAR NAME="attempts">; Downtime - <TMPL_VAR NAME="duration">;                         LastCheck - <TMPL_VAR NAME="time">;                 </description>                 <link>http://ya.ru</link>         </item> </TMPL_LOOP>  </channel> </rss> 

Далее:

  1. Положил его в папку /var/www/cgi-bin
  2. Указал свои логины и пароли от nagios
  3. Дал ему права на выполнение:
    chmod 750 nagios_status_rss.cgi

Затем указал ссылку на мой скрипт андроидному приложению Simple RSS Widget.
Simple RSS Widget — вывел на главный экран результат работы.
И так же в настройках к нему, поставил обновление раз в минутку.

На этом все. Велосипед готов.

Теперь если кто-нибудь мне звонит, когда я в оффлайне и говорит, что у него «не работает», то я з знаю, что причина в сервере или у клиента.

ссылка на оригинал статьи http://habrahabr.ru/post/214273/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *