В общем нужно было проверять Nagios’ом не только порт фтп на удаленном хосте, но и работоспособность определенного аккаунтa FTP. Т.е. чтобы check_ftp заходил на FTP сервер и логинился под определенным юзером.

Существующая утилитка check_ftp из набора Nagios Plugins на момент написания статьи не умела делать логин. Точнее утилитки как таковой там и нет, там просто стоит симлинк check_ftp -> check_tcp.

По сему утилитка была написана на Perl с использованием Nagios::Plugin и Net::FTP.

Может так же использоваться как пример написания Nagios Plugins на Perl в виду простоты кода.

Сырец: http://www.pentarh.com/files/check_ftp_login

Пользоваться так.

1. Скопировать в диру с плагинами Nagios

2. Поставить чмод 755

3. Убедиться что стоят перловые модули Net::FTP и Nagios::Plugin (т.е. запустить утилитку и если все ок, она выдаст USAGE)

4. Прописать команду в commands.cfg:

define command{
   command_name    check_ftp_login
   command_line    $USER1$/check_ftp -H '$ARG1$' -u '$ARG2$' -p '$ARG3$'
}

5. Юзать, например так

define service{
   use             remote-service
   host_name ВАШХОСТ
   service_description FTP LOGIN
   check_command   check_ftp_login!ftp.foobar.com!FTP_LOGIN!FTP_PASSWORD
   normal_check_interval       10
}