Usm iferr: различия между версиями

Материал из WiKi - UserSide
Нет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
[[Usm_iferr_EN|en]] | [[Usm_iferr|ru]]
'''usm_iferr''' - модуль для периодического опроса ''(по SNMP)'' счетчиков ошибок на интерфейсах оборудования. Это позволяет видеть устройства с ошибками на интерфейсах ''(как в разрезе интерфейсов так и с количеством проблемных интерфейсов по каждому из устройств)''. Также строится дельта прироста ошибок за сутки и за неделю, что позволяет видеть устройства где проблемы продолжаются прямо сейчас.
'''usm_iferr''' - модуль для периодического опроса ''(по SNMP)'' счетчиков ошибок на интерфейсах оборудования. Это позволяет видеть устройства с ошибками на интерфейсах ''(как в разрезе интерфейсов так и с количеством проблемных интерфейсов по каждому из устройств)''. Также строится дельта прироста ошибок за сутки и за неделю, что позволяет видеть устройства где проблемы продолжаются прямо сейчас.


Строка 26: Строка 28:


== Требования ==
== Требования ==
* Python 3.5
* Python - ''Для работы модуля необходим Python3 любой поддерживаемой на данный момент версии. Статус версий можно посмотреть здесь: "[https://devguide.python.org/versions/ Status of Python versions]". Рекомендуется использовать версию с состоянием "security" или "bugfix". Версии отмеченные как "end-of-life" не поддерживаются. Отмеченные как "feature" не рекомендуется использовать.''
* USERSIDE 3.13.53+
* USERSIDE 3.13.53+



Текущая версия от 11:05, 18 октября 2024

en | ru

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
}