= bubbalog =Дневникът на моето стадо

Nagios monitoring на FreeBSD 8

Monday 09.11.2009 03:25 EEST · Публикувано от в = FreeBSD =

Преди няколко седмици се пробвах за втори път с внедрявяането на хостинг контрол панел и за пореден път се сблъсках с проблема на наблюдение на предоставяните услуги. Става дума за това, че по някакво стечение на обстоятелствата един от мейлите е запецнал на исхода и не можеше да се изпрати, от там нататък мейл сървъра пращаше локални мейли без проблем, но на външен сървър – ни пиема, ни предава. И тогава възникна въпроса – как да наблюдавам цялата система и да проверявам моментното и състояние?

Отговора беше лесен – Nagios една много интерсна система за мониторинг на цялата система. С две думи, това е система, която след инсталация и конфигурация на наблюдаваните услуги започва да извиква на определен период от време малки скриптове които се обръщат към определена услуга и според това как тя им отговори се формира моментното състояне, като цялата тази информация се извежда в удобен уеб интерфейс.А ако случайно настъпи проблемслед няколко проби дадения процес се маркира като “мъртъв” и администратора се оведомява по пощата за настъпилия проблем. В конкретния случай аз използвах този начин, но предполагам, че има начин това да се направи дори и с изпращане на SMS… нямам идея, но не това е темата на разговор.

Инсталацията разбира се запова от портовете. Представеното по-долу е базовата конфигурация която е достатъчна за да пуснете Nagios за наблюдение само на локалнатамашина и да разберете смисъла на конфигуриране, което ще помогне в един по-късен етап,  когато ще прилагате свои модули за наблюдение.

# cd /usr/ports/net-mgmt/nagios
# make install clean

а след края на инсталацията добавяме и следния ред в /etc/rc.conf

nagios_enable=”YES”

Следва настройката на самата система. Всички конфигурационни файлове се намират в /usr/local/etc/nagios

# cd /usr/local/etc/nagios

копирайте трите файла които са в тази директория както следва

# cp cgi.cfg-sample cgi.cfg
# cp nagios.cfg-sample nagios.cfg
# cp resource.cfg-sample resource.cfg

след което отидете в objects директорията и направете същото със следните файлове които са там:

# cd /usr/local/etc/nagios/objects
# cp commands.cfg-sample commands.cfg
# cp contacts.cfg-sample contacts.cfg
# cp localhost.cfg-sample localhost.cfg
# cp printer.cfg-sample printer.cfg
# cp switch.cfg-sample switch.cfg
# cp templates.cfg-sample templates.cfg
# cp timeperiods.cfg-sample timeperiods.cfg

След като приключите със всичко може да се започне с редактирането на всеки от нужните ни файлове:

  • cgi.cfg – описание на правата потребителите. Редактиранте всеки ред който съдържа nagiosadmin  с което искате име. Това ще е потребителя с който ще се логвате в системата и не е хубаво да остава с името по подразбирене от съображения за сигурност
  • commands.cfg – описание на командите които ще се изпълняват за всеки наблюдаван сървър, пълния списък на това което е заложено при инсталацията на Nagios може да намерите в /usr/local/libexec/nagios. Описват се в следния вид, като броя на аргументите зависи от това, колко такива искате да приложите про проверката на съответната услуга
    # ‘check_servicename’ command definition
    define command{
    command_name    check_servicename
    command_line    $USER1$/check_servicename -H $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$
    }
  • localhost.cfg – самия файл за наблюдение на локалната машина, самата команда се взима от файла commands.cfg. Аналогично, трябва да се създаде такъв файл за всяка машина която искате да наблюдавате. Всяка услуга която искате да наблюдавате се описва в следния вид:
    # Opisanie na uslugata.
    define service{
    use                local-service        ; Ime na modula
    host_name            localhost
    service_description        HTTP            ; tova se vijda v Web
    check_command            check_http!adg1!arg2!arg3
    }

Това са минималните 3 файла на които требва да обърнете внимание за да може да наблюдавате локалната машина. След като редактирате и напишете всичко нужно може да проверите дали всичко по самата конфигурация е наред със следната команда:

# nagios -v /usr/local/etc/nagios/nagios.cfg

Следващите стъпки са конфгурирането на сигурноста на системата и работата  и с Apache. Прибавете следното в края на httpd.conf

# NAGIOS alias
ScriptAlias /nagios/cgi-bin /usr/local/www/nagios/cgi-bin/
Alias /nagios/ /usr/local/www/nagios/
<Directory /usr/local/www/nagios>
AllowOverride AuthConfig
Order deny,allow
Allow from all
</Directory>
<Directory /usr/local/www/nagios/cgi-bin>
Options ExecCGI
</Directory>

Следващата стъпка е да защитите с парола директорията в която ще излиза Nagios, за да няма свободен достъп до нея. За целта създаваме в /usr/local/www/nagios един .htaccess файл със следното съдържание

AuthType Basic
AuthName “Nagios Lgin Form. Enter valid Username and Password!”
AuthUserFile “/mqsto/na/.htpasswd”
require valid-user

и създаваме съответния файл с парола

# htpasswd -c -b /mqsto/na/.htpasswd potrebitel parola

като приложените параметри означават следното:

-c –  параметър за създаване на нов файл. Ако файла вече съществъва параметъра може да се пропусне
-b – параметъра оказва за потребителя „potrebitel“ да се използва написаната в командния ред парола – в случая „parola“. Ако пропуснете този параметър ще излезе питане каква парола искате за потребителя.

Следва стартиране на Nagios и рестартиране на Apache за да си влезе вичко в релсите.

# /usr/local/etc/rc.d/nagios start
# /usr/local/etc/rc.d/apache22 graceful

Ако всичко е минало добре би трябвало на адрес http://sitename/nagios да ви поиска парола и при въвеждането на потребител и парола (които сте въвели предималко) да ви допусне до статистиките на уеб-интерфейса.

Screenshots:

2 коментара за “Nagios monitoring на FreeBSD 8”

  1. Иван says:

    Здравей. Браво за труда, който си положил при написването на статията. Сега си инсталирах софтуера на Убунту и започвам да го конфигурирам. Искам да наблюдавам windows-ки машини в локална мрежа, искам само да следя дали са онлайн. Задължително ли е да инсталирам на всяка от тях addon?

  2. Ами да ти кажа, отговора ми е малко на посоки в момента, защото с Windows не съм се пробвал, а и в момента се занмавам с друг проект и нямам работеща система с Nagios за да проверя… Реално Nagios-а наблюдава не дали системата е жива като система, а дали отделен процес е жив. За Windows дколкото ми хрумва това може да са шеринга, remote desktop, веб сървър, FTP или темподобни, а най-простоя вариант – с пинг. От там зависи как ще конфигнеш това в конфиг файла. Логчески ми се струва, че не би имало нужда изобщо да се инсталира каквото и да е допълнително на Windows-а, аа незнам, да не те излъжа…

Остави коментар

Писането на кирилица е задължително!
Коментари, които не са на кирилица ще бъдат изтрити без предупреждение.
Всеки коментари съдържащи 1 или повече линка, ще бъдат публикувани след одобрение.