...

суббота, 1 марта 2014 г.

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


сегодня в 14:00


Была у меня цель в любой момент времени узнавать состояние всех серверов и систем на экране телефона.

Мониторинг 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://ift.tt/NFs8X7');
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://ift.tt/r5ut6F" version="2.0">
<channel>
<pubDate><TMPL_VAR NAME="pd"></pubDate>
<link>http://ift.tt/NFsbSJ;
<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://ift.tt/NFsbSJ;
</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://ift.tt/NFsbSJ;
</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://ift.tt/NFsbSJ;
</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 — вывел на главный экран результат работы.

И так же в настройках к нему, поставил обновление раз в минутку.

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


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





Свежий взгляд

на бег


протестируй кроссовки

нового поколения




Стань

первоиспытателем!


Скачай Windows Server 2012 R2

и выиграй почетную футболку!


Скачать




Автоматизированное

продвижение сайтов




  • 50% экономии на ссылках

  • Запуск проекта за 10 минут

  • Вывод и удержание в ТОП 10



Подробнее




Новый 3G-планшет Login 2



2790 р.*


*Условия акции на www.megafon.ru

Подробнее




Разрабатываешь

приложения для бизнеса?


Участвуй в конкурсе



Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий