Назад | Перейти на главную страницу

Nagios в Docker - исходный IP-адрес SNAT для проблемы NRPE

Nagios Server работает в докер-контейнере. Он обращается для проверки хоста через NRPE, работающий на различных хостах в сети.

Хост докера - 10.10.100.100

Iptables разрешает входящий трафик только на TCP 5666 с 10.10.100.100 для входящих проверок NRPE

Проверка nrpe, поступающая от Nagios, успешно проходит через брандмауэр. Это докажет, что адрес источника пакета действительно 10.10.100.100.

Конфигурация NRPE включает:

server_port=5666
allowed_hosts=10.10.100.100

При выполнении вызова nrpe системный журнал NRPE сообщает:

Oct 20 18:42:32 dockerz01 nrpe[13382]: Allowing connections from: 10.10.100.100
Oct 20 18:42:59 dockerz01 nrpe[13411]: Host 172.20.0.2 is not allowed to talk to us!

Это означает, что пакет, отправленный в NRPE, будет иметь адрес источника 172.20.0.2 (который является IP-адресом контейнера Docker в сети моста докеров). Если да, то как он сможет пройти через брандмауэр ?!

Это не совсем понятно, и я немного озадачен

Конечно, установив allowed_hosts=172.20.0.2 в конфигурации NRPE обходит проблему, но это не является постоянным и действительно не решает проблему здесь.

Присылает ли Nagios что?думает'является IP-адресом «источника» в пакете NRPE, и по нему NRPE определяет адрес «источника»? Если да, то как это можно изменить? Что мне здесь не хватает? Моя цель - сделать хост Docker в качестве allowed_host, поскольку я знаю, что он статичен и не изменится.

На хосте с несколькими адресами вы можете выбрать, какой из них отправлять check_nrpe запросы от через -b вариант.

В твоем случае, -b 10.10.100.100

В остальном он просто следует правилам маршрутизации.