Usm iferr
usm_iferr - модуль для периодического опроса (по SNMP) счетчиков ошибок на интерфейсах оборудования. Это позволяет видеть устройства с ошибками на интерфейсах (как в разрезе интерфейсов так и с количеством проблемных интерфейсов по каждому из устройств). Также строится дельта прироста ошибок за сутки и за неделю, что позволяет видеть устройства где проблемы продолжаются прямо сейчас.
Язык модуля: Python
Текущая версия: см. на странице: Модули
Статус модуля: Платный
Описание
При каждом запуске модуль получает от Userside 50 (по умолчанию) узлов, которые необходимо опросить, выполняет опрос и возвращает результат в Userside. Если все узлы в итерации доступны и содержат верные настройки, то одна итерация занимает около 2..3 секунд. Опрос производится в асинхронном режиме (сначала формируются 50 SNMP-запросов и одновременно отправляются в сеть, затем модуль ожидает ответы и обрабатывает их, либо определяет ошибки).
Можно запускать параллельно несколько копий модуля, чтобы ускорить процесс. Также можно увеличивать количество узлов в одной асинхронной итерации (по умолчанию 50) до тех пор, пока сетевая подсистема справляется. Мы всё же рекомендуем использовать значение 50 для параметра number_of_nodes, определяющего количество узлов в итерации.
Требования
- Python - Для работы модуля необходим Python3 любой поддерживаемой на данный момент версии. Статус версий можно посмотреть здесь: "Status of Python versions". Рекомендуется использовать версию с состоянием "security" или "bugfix". Версии отмеченные как "end-of-life" не поддерживаются. Отмеченные как "feature" не рекомендуется использовать.
- 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
Ротация файлов журнала
Файлы журнала, создаваемые модулем, нуждаются в ротации. Для этого следует использовать стандартные инструменты ротации логов в операционной системе.
Следующая настройка будет выполнять ротацию всех файлов *.log ежесуточно и хранить 7 архивных копий (за 7 дней)
Ротация в FreeBSD
В FreeBSD за ротацию отвечает демон newsyslog. Создайте файл /usr/local/etc/newsyslog.conf.d/userside, в который поместите следующую строку (не забудьте про путь, если Вы его изменили):
/var/log/userside/*.log 644 7 * @T00 GJC
Ротация в Linux
В Linux за ротацию отвечает демон logrotate. Создайте файл /etc/logrotate.d/userside, в который поместите следующий текст (не забудьте про путь, если Вы его изменили):
/var/log/userside/*.log { rotate 7 daily compress delaycompress missingok notifempty }