Nagios check ftp
Материал из Ksimute
Создание пользователя pureftp и Чек для него nagios`е
Коробанов Сергей
Август 19, 2010
- Создаем системного пользователя
#useradd nagios.test #passwd nagios.test
- Cоздаем пользователя ftp указываем, какой системный пользователь ему будет соответствовать. В нашем случае nagios.test
#pure-pw useradd nagios.test -u nagios.test -d /home/nagios.test #pure-pw mkdb
- Ставим шэл /bin/false для nagios.test
- Создаем папку 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 ну не хотел логиниться и точка :) :) Но это кривое решение, когда есть штатный плагин, который все умеет :), см. выше.