Usm iferr

Материал из WiKi - UserSide

usm_iferr - модуль для периодического опроса (по SNMP) счетчиков ошибок на интерфейсах оборудования. Это позволяет видеть устройства с ошибками на интерфейсах (как в разрезе интерфейсов так и с количеством проблемных интерфейсов по каждому из устройств). Также строится дельта прироста ошибок за сутки и за неделю, что позволяет видеть устройства где проблемы продолжаются прямо сейчас.

Язык модуля: Python

Текущая версия: см. на странице: Модули

Статус модуля: Платный

Описание

При каждом запуске модуль получает от Userside 50 (по умолчанию) узлов, которые необходимо опросить, выполняет опрос и возвращает результат в Userside. Если все узлы в итерации доступны и содержат верные настройки, то одна итерация занимает около 2..3 секунд. Опрос производится в асинхронном режиме (сначала формируются 50 SNMP-запросов и одновременно отправляются в сеть, затем модуль ожидает ответы и обрабатывает их, либо определяет ошибки).

Можно запускать параллельно несколько копий модуля, чтобы ускорить процесс. Также можно увеличивать количество узлов в одной асинхронной итерации (по умолчанию 50) до тех пор, пока сетевая подсистема справляется. Мы всё же рекомендуем использовать значение 50 для параметра number_of_nodes, определяющего количество узлов в итерации.


Требования

  • Python 3.4
  • USERSIDE 3.13.53+

Установка

Установите Python и менеджер пакетов pip

sudo apt install -y python3 python3-dev python3-pip

Скачайте архив, извлеките из него каталог с файлами модуля (это следует делать также и при обновлении). Вы можете использовать виртуальную среду python с соответствующими исправлениями к приведенным далее командам, либо устанавливать все согласно этой инструкции глобально. Перейдите в этот каталог и установите зависимости, введя следующую команду:

sudo pip3 install --upgrade -r requirements.txt

Затем, если это первоначальная установка, скопируйте файл settings.ini-example с именем settings.ini

sudo cp settings.ini-example settings.ini

Отредактируйте этот файл:

Укажите верные значения для секции api - URL вашего USERSIDE и API-ключ. Там же указывается значение параметра number_of_nodes (по умолчанию = 50) - это количество узлов, которое обработает модуль за один запуск.

Запуск

Выполните ручной запуск модуля

python3 usm_iferr.py

В консоль отобразится журнал работы модуля. Убедитесь, что модуль работает корректно (ошибок нет, все узлы, которые должны быть доступны, были опрошены модулем без ошибок, информация отправлена в userside без ошибок), после чего снова отредактируйте файл settings.ini, указав в секции [log] для параметра to_console значение no, а для параметра level значение 2. Также может понадобится указать путь для формирования файла логов в параметре path. Если в работе модуля возникли ошибки - постарайтесь устранить их или обратиться в нашу службу поддержки за помощью.

Автоматический запуск

После того, как проверка ручного запуска модуля завершена и в конфиг внесены все необходимые изменения, добавьте задание в системный cron для автоматического запуска модуля. Периодичность запуска зависит от общего количества узлов в вашей сети и от значения параметра number_of_nodes в конфиге модуля. Старайтесь подобрать периодичность таким образом, чтобы все узлы вашей сети были опрошены за приблизительно 15 минут, если вам важна оперативность получения информации об ошибках на интерфейсах.

Запись в cron выглядит привычным образом:

*/5 *  * * *  root   python3 /path/to/module/usm_iferr.py > /dev/null

Дождитесь, пока будет выполнена хотябы одна интерация модуля, затем проверьте содержимое файла лога:

tail -f /var/log/userside/usm_iferr.log

Есть файл лога не создался после того, как модуль должен был отработать, обратитесь к системному журналу операционной системы для выявления проблемы с запуском этого процесса в планировщике.

Помните, что в FreeBSD нужно указать полный путь к интерпретатору python3, либо же прописать его в переменную PATH файла /etc/crontab