Плагин Nagios check_email_delivery не разрешает cnames

Я использую подключаемый модуль Nagios check_email_delivery для мониторинга электронной почты. , а в некоторых случаях и для проверки состояния программного обеспечения. Теперь мы перемещаем все наши внутренние почтовые серверы в Office 365 и обнаружили, что эта команда:

./check_imap_receive_epn -H outlook.office365.com -U [email protected] -P password --ssl -s SUBJECT -s $ARG1$ -w 1200 -c 1800

Результат:

IMAP RECEIVE CRITICAL - Could not connect to outlook.office365.com port 993: IO::Socket::INET6 configuration failederror:00000000:lib(0):func(0):reason(0) at ./check_imap_receive_epn line 93.

ОДНАКО! Кажется, работает преобразование cname в IP-адрес. Пример:

./check_imap_receive_epn -H 157.56.239.201 -U [email protected] -P password --ssl -s SUBJECT -s $ARG1$ -w 1200 -c 1800

В результате:

IMAP RECEIVE OK - 5 seconds, 1 found, 1 deleted

Я думаю, что проблема вызвана здесь:

my $socket = IO::Socket::SSL->new(PeerAddr=>"$imap_server:$imap_port", %ssl_args);

Где $imap_server не разрешается правильно. Какие-либо предложения? >.‹


person 666jfox777    schedule 24.12.2013    source источник
comment
Похоже, вы сами ответили на свой вопрос: возможно, разрешение имен не работает?   -  person codnodder    schedule 25.12.2013
comment
Разрешение имен работает — я могу разрешить DNS-имя с помощью ping, dig, nslookup... Мне нужно решение, которое я могу поместить в "$imap_server:$imap_port", чтобы преобразовать outlook.office365.com в полученный IP-адрес.   -  person 666jfox777    schedule 25.12.2013
comment
Возможно, что-то вроде это или это. Но не совсем.   -  person 666jfox777    schedule 25.12.2013
comment
Я также могу подтвердить, что разрешение записи работает нормально.   -  person 666jfox777    schedule 25.12.2013


Ответы (1)


поскольку установлен IO::Socket::INET6, IO::Socket::SSL будет использовать его как базовый класс. IO::Socket::INET6 сначала пытается получить адрес IPv6 (например, запись DNS AAAA), в то время как ping и т. д. часто пытаются использовать только IPv4 (обычно для IPv6 используется ping6). Поэтому, если ваша настройка IPv6 нарушена, вы можете не заметить этого с помощью инструментов, предназначенных только для IPv4. Пожалуйста, проверьте:

  • dig outlook.office365.com AAAA — это должно дать вам адреса IPv6. Если у вас нет IPv6, он вообще не должен давать никаких записей и NOERROR, но некоторые неисправные распознаватели вместо этого возвращают NXDOMAIN
  • если вы получите адрес IPv6, попробуйте подключиться к нему, например. perl -MIO::Socket::INET6 -e 'IO::Socket::INET6->new("[2a01:111:f400:9800::6]:993") или die $!' Если вы получаете сообщение об ошибке, ваша настройка IPv6 нарушена, например. преобразователь возвращает записи IPv6, даже если вы не можете связаться с хостами по IPv6
person Steffen Ullrich    schedule 25.12.2013