collectd: использование динамического IP для сетевого плагина
Я настроил сервер, который собирает статистику других серверов. Я использую сетевой плагин collectd, поэтому я настроил сеть плагинов, настроив прослушиватель.
В моей сети я могу использовать частный IP для "Сервер" в конфигурации. Все работает. Один из этих серверов является удаленным сервером, доступ к которому возможен только через Интернет. Таким образом, сервер настроен на отправку данных на DNS-адрес (см. Фрагмент конфигурации). После запуска сервиса collectd на этом сервере он работает отлично. Если я получаю новый динамический IP-адрес для своего соединения, удаленный сервер не отправляет данные в коллекцию. Только если я перезапущу collectd на удаленном сервере, он работает до тех пор, пока IP-адрес не будет изменен снова.
На мой взгляд плагин разрешает DNS-адрес только один раз при запуске. Есть ли возможность решить мою проблему без перезапуска службы collectd?
конфигурации:
<Plugin network>
# # client setup:
Server "name.of.server" "25826"
</Plugin>
1 ответ
Есть ли возможность решить мою проблему без перезапуска службы collectd?
Этот вопрос был задан также семь лет назад. Но до сих пор нет обходного пути для этого ограничения, кроме перезапуска collectd.
См. Также похожую проблему github: сетевой плагин не подключается автоматически с динамическим IP-адресом
Сетевой плагин использует UDP, поэтому никакого реального "соединения" не происходит. Исправление этого означало бы выполнение поиска DNS для каждого пакета значений, передаваемых по сети, что было бы компромиссом по производительности.
Я думаю, что это проблема, которую вы также видите с другими системами "клиент-сервер", использующими эту настройку? Не можете ли вы уведомить сборник об изменении IP-адреса сервера? Или cron перезагрузка collectd в момент истечения срока аренды DHCP? Или использовать плагин AMQP для отправки значений на сервер без риска потери? Я уверен, что мы можем представить другие решения для того, что действительно похоже на проблему настройки сети.