Как отслеживать динамические сетевые интерфейсы с MRTG? (* Никс)
Каждый раз, когда я перезагружаю свой туннель OpenVPN, он увеличивает номер интерфейса и разбивает график MRTG для интерфейса.
IF-MIB::ifName.76 = STRING: tun_w
после перезапуска:
IF-MIB::ifName.77 = STRING: tun_w
Есть ли способ это исправить?
2 ответа
Напишите скрипт, который восстанавливает вашу конфигурацию MRTG при каждом перезапуске интерфейса. Кроме того, настройте конфигурацию MRTG, чтобы настроить интерфейс на основе IP-адреса. В частности, если вы используете cfgmaker
построить свой конфиг, а затем передать --ifref=ip
вариант, предполагая, что ваш IP-адрес соответствует. Если ваш IP не согласован, проверьте на странице руководства другие опции ifref, чтобы узнать, применимы ли они к вашим настройкам.
Что делать, если файлы conf редактируются вручную?
В основном файле конфигурации, который вы создали вручную, используйте директиву include для включения другого файла конфигурации. Что-то вроде Include: vpn-interface.cfg
, Затем обновите этот фрагмент конфигурации с помощью сценария, который происходит при запуске / перезапуске VPN.
Поскольку вы используете OpenVPN, вы можете использовать параметры OpenVPN --up-restart
, --up
, --ipchange
, а также --down
опции для ссылки на скрипт, который обновляет файл конфигурации для этого VPN.
Составьте свой скрипт, который запускается всякий раз, когда интерфейс
При создании файла MRTG cfg не идентифицируйте интерфейс по номеру. Вместо этого идентифицируйте его по ifName или подобному.
Например, это идентифицирует устройство по ifName,
Target[tun_w]: #tun_w:public@router
Если ifName не является уникальным, попробуйте ifDescr (используйте отступ, чтобы избежать пробелов или двоеточий в описании):
Target[tun_w]: \tun_w:public@router
В качестве альтернативы используйте ifType (префикс с%) или адрес Ethernet (префикс с!)
Один из них должен позволить вам однозначно идентифицировать интерфейс, несмотря на то, что его ifIndex часто меняется.