KsI-wiki online documents

Nagios check ftp

Материал из Ksimute

Перейти к: навигация, поиск

Создание пользователя pureftp и Чек для него nagios`е

Коробанов Сергей
Август 19, 2010


  1. Создаем системного пользователя
      #useradd nagios.test
      #passwd nagios.test
      
  2. Cоздаем пользователя ftp указываем, какой системный пользователь ему будет соответствовать. В нашем случае nagios.test
      #pure-pw useradd nagios.test -u nagios.test -d /home/nagios.test
      #pure-pw mkdb
      
  3. Ставим шэл /bin/false для nagios.test
  4. Создаем папку f/home/nagios.test/tp-reading-working-o.k. наш чек будет авторизоваться на сервере заходить в эту папку и это будет какбы признаком нормальной работы FTP в нашем случае. Можно конечно любые команды сделать RETR и т.n. Вообщем все дороги открыты :).

Теперь собственно сам чек

/usr/lib/nagios/plugins/check_ftp -H ftp.ksimute.trancom.ru -E -s "user nagios.test\npass nagiostestpassword\nCWD ftp-reading-working-o.k.\nQUIT\n" -d 2 -e "250 OK. Current directory is /ftp-reading-working-o.k." -M crit

А вот так выглядит сессия

 # /usr/lib/nagios/plugins/check_ftp -H ftp.ksimute.trancom.ru -E 
 -s "user nagios.test\npass   nagiostestpassword\nCWD ftp-reading-working-o.k.\nQUIT\n" 
 -d 2 -e "250 OK. Current directory is /ftp-reading-  working-o.k." -M crit
 
 FTP OK - 0.046 second response time on port 21 [220---------- Welcome to Pure-FTPd [privsep] [TLS] --------
 220-You are user number 1 of 50 allowed.
 220-Local time is now 13:44. Server port: 21.
 220-This is a private system - No anonymous login
 220 You will be disconnected after 15 minutes of inactivity.
 331 User nagios.test OK. Password required
 230-User nagios.test has group access to:  1005
 230 OK. Current directory is /
 250 OK. Current directory is /ftp-reading-working-o.k.
 221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
 221 Logout.]|time=0.045566s;;;0.000000;10.000000
 netmon2-1:/etc/nagios3/conf.d/manual/ftp-servers# 

В Случае неправильной test pattern получаем critical

 # /usr/lib/nagios/plugins/check_ftp -H ftp.ksimute.trancom.ru -E 
 -s "user nagios.test\npass nagiostestpassword\nCWD ftp-reading-working-o.k.\nQUIT\n"  
 -d 2 -e "Wrong test pattern" -M crit
 
 FTP CRITICAL - Unexpected response from host/socket: 220---------- Welcome to Pure-FTPd [privsep] [TLS] -----
 220-You are user number 1 of 50 allowed.
 220-Local time is now 13:46. Server port: 21.
 220-This is a private system - No anonymous login
 220 You will be disconnected after 15 minutes of inactivity.
 331 User nagios.test OK. Password required
 230-User nagios.test has group access to:  1005
 230 OK. Current directory is /
 250 OK. Current directory is /ftp-reading-working-o.k.
 221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
 221 Logout.|time=0.045694s;;;0.000000;10.000000

Разберем подробнее:

-E -обрабатывать \n Can use \n, \r, \t or \ in send or quit string. Must come before send or quit option. Default: nothing added to send, \r\n added to end of quit
-s -передаваемая строка (ну тут все понятно)
-d 2 -ждем 2 секунды ответ сервера посл передачи строки.
-e -ищем такую возвращаемую строку
-M crit -считать несовпадение строки критической ошибкой.

Есть еще вариант - скачать check_ftp с nagiosexchange которому можно user\password передавать опцией. Я об этом думал, когда не догадался дать время серверу на подумать т.е. -d 2 ну не хотел логиниться и точка :) :) Но это кривое решение, когда есть штатный плагин, который все умеет :), см. выше.