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

Материал из WiKi - UserSide
Нет описания правки
Нет описания правки
 
(не показано 16 промежуточных версий 3 участников)
Строка 1: Строка 1:
[[Usm_observer_EN|en]] | [[Usm_observer|ru]]
{{activ}}
{{activ}}


Строка 15: Строка 17:
'''Статус модуля:''' [http://userside.ua/price.php Платный]
'''Статус модуля:''' [http://userside.ua/price.php Платный]


Необходимые модули Perl:
''Для работы модуля необходим Python3 любой поддерживаемой на данный момент версии. Статус версий можно посмотреть здесь: "[https://devguide.python.org/versions/ Status of Python versions]". Рекомендуется использовать версию с состоянием "security" или "bugfix". Версии отмеченные как "end-of-life" не поддерживаются. Отмеченные как "feature" не рекомендуется использовать.''
  DBI
 
  Time::Local
Необходимые модули Python3:
  threads
PySNMP
Net::SNMP
 
  FindBin
Все зависимости устанавливаются автоматически. Для этого, находясь в каталоге модуля, выполните:
 
  pip3 install -r requirements.txt
 
== Установка модуля ==
 
Загрузите модуль на сервер в каталог модулей и выполните (Х.Х.Х - это номер текущей версии)
 
unzip usm_observer-vX.X.X.zip
  rm usm_observer-vX.X.X.zip
cd usm_observer
 
Обновите менеджер пакетов
 
pip3 install --upgrade pip
 
Теперь установите зависимости. Вы можете использовать [[Python_venv|виртуальную среду python]] с соответствующими исправлениями к приведенным далее командам, либо устанавливать все согласно этой инструкции глобально.
 
pip3 install --upgrade -r requirements.txt
 
Если это первоначальная установка - скопируйте файл примера конфигурации
 
cp settings.ini-example settings.ini
 
== Настройка модуля ==
 
Файл конфигурации '''settings.ini''' содержит два раздела с параметрами
 
Раздел '''api''' содержит параметры подключения к API USERSIDE:
 
* '''url''' - укажите здесь URL USERSIDE
* '''key''' - укажите здесь [[UserSide API Key|API-ключ]]
* '''ssl_verify''' - при необходимости отключения проверки SSL-сертификата, установите значение в '''no'''
 
Раздел '''log''' содержит параметры для журналирования работы модуля:
 
* '''path''' - путь к каталогу, в котором будет создан файл журнала
* '''level''' - уровень детализации: 1 - отладочный, 2 - информационный, 3 - предупреждения, 4 - ошибки, 5 - фатальные ошибки
* '''to_console''' - yes - выводить сообщения журнала в консоль, а не в файл; no - выводить сообщения журнала в файл
 
== Тестовый запуск ==
 
Чтобы проверить, что настройка выполнена верно, произведите ручной тестовый запуск. Для этого установите в settings.ini в разделе log значение level = 1 и to_console = yes и затем запустите модуль вручную, выполнив следующую команду:
 
  python3 usm_observer.py
 
Если модуль отработал корректно и корректно завершил работу, то установите значение level = 2 и to_console = no и настройте автоматический запуск модуля.
 
Если в процессе тестового ручного запуска были обнаружены ошибки, устраните их или обратитесь за помощью в нашу службу поддержки, используя тикет-систему в вашем личном кабинете клиента.
 
== Автоматический запуск ==
 
Настройте запуск в crontab следующим образом. Обратите внимание на перенаправление вывода - желательно, чтобы файлы, в которые перенаправляется вывод, располагались в том же каталоге, что и файл журнала модуля.
 
Добавьте в crontab строку, предварительно изменив путь к модулю:
 
  * *  * * *  root    python3 /path/to/module/usm_observer.py >> /var/log/userside/usm_observer_cron.log 2>>/var/log/userside/usm_observer_cron_error.log


'''Информацию по установке модуля''' и общую информацию для всех модулей см. на странице: [[Модули]]
Убедитесь, что модуль запускается. Для этого спустя минуту понаблюдайте за файлом журнала:


Настройка модуля осуществляется в файле '''us_config.tmp'''
tail -f /var/log/userside/usm_observer.log


== Параметры ==
Если модуль не запускается автоматически, возможно проблема в том, что в crontab отсутствуют пути к python3. Добавьте путь в переменную PATH файла crontab или же укажите полный путь к python3 в строке задания.


$zuserver - адрес сервера с UserSide
Узнать полный путь к python3 можно выполнив команду:
$zuuser - имя пользователя для доступа к базе UserSide
$zupass - пароль для доступа к базе UserSide
$zubase - имя базы данных UserSide
$ps_logpath - путь к логам модуля
$zsilence - не выводить уведомления о работе модуля в консоль
$zlost_count - не опрашивать неактивные устройства N-циклов запуска ''(в случае определения их неактивности)''. По-умолчанию: 5


== Запуск модуля ==
which python3


* Настройка - Модули - us_control - Включаем работу модуля
== Ротация файлов журнала ==


* Запускаем для теста модуль вручную и убедимся, что ошибок не возникает
Файлы журнала, создаваемые модулем, нуждаются в ротации. Для этого следует использовать стандартные инструменты ротации логов в операционной системе.


perl us_control.pl
Следующая настройка будет выполнять ротацию всех файлов *.log ежесуточно и хранить 7 архивных копий (за 7 дней)


* Далее настраиваем параметры, профили и устройства опроса ''(см. ниже)''
=== Ротация в FreeBSD ===


* После выполнения настройки - вновь вручную запускаем модуль и убедимся снова, что ошибок нет
В FreeBSD за ротацию отвечает демон newsyslog. Создайте файл /usr/local/etc/newsyslog.conf.d/userside, в который поместите следующую строку (не забудьте про путь, если Вы его изменили):


/var/log/userside/*.log            644  7      *    @T00  GJC


Опрос параметров выполняется в многопоточном режиме. По 500 параметров на поток.
=== Ротация в Linux ===
Модуль требуется прописать в системный cron с частотой запуска - ежеминутно. Если контролируемых параметров очень много, то разумным является менее частый запуск.


  * * * * * perl us_control.pl &> /dev/null
В Linux за ротацию отвечает демон logrotate. Создайте файл /etc/logrotate.d/userside, в который поместите следующий текст (не забудьте про путь, если Вы его изменили):
 
  /var/log/userside/*.log {
    rotate 7
    daily
    compress
    delaycompress
    missingok
    notifempty
}


== Логика работы ==
== Логика работы ==
Строка 71: Строка 132:
В случае, если модуль перестал запускаться - на главной странице для операторов, имеющих доступ в настройку системы, будет выводиться соответствующее сообщение
В случае, если модуль перестал запускаться - на главной странице для операторов, имеющих доступ в настройку системы, будет выводиться соответствующее сообщение


[[Файл:22.PNG|thumb|800px|center]]
[[Файл:12-1.PNG|thumb|800px|center]]
 
Если модуль выявит нарушение параметров, то кроме уведомления средствами связи, будет выведено также информационное сообщение на главной странице
 
[[Файл:23.PNG|thumb|800px|center]]


== Общая настройка ==
== Общая настройка ==


[[Файл:2014_12_03_22_39_56.png|thumb|800px|center]]
[[Файл:12-2.PNG|thumb|800px|center]]


Для начала требуется указать список контролируемых параметров и события, при которых считать, что значения этих параметров вышли из нормы.
Для начала требуется указать список контролируемых параметров и события, при которых считать, что значения этих параметров вышли из нормы.


[[Файл:2014_12_03_22_56_49.png|thumb|800px|center]]
[[Файл:12-3.PNG|thumb|800px|center]]


Параметры можно компоновать в профили опроса
Параметры можно компоновать в профили опроса
[[Файл:24.PNG|thumb|800px|center]]
[[Файл:2014_12_03_22_43_04.png|thumb|800px|center]]


Для всех параметров, которые опрашиваются на данный момент, можно посмотреть текущее состояние и наличие тревог
Для всех параметров, которые опрашиваются на данный момент, можно посмотреть текущее состояние и наличие тревог
[[Файл:2014_12_03_22_39_02.png|thumb|800px|center]]


Ведётся лог опроса параметров ''(не все значения, а только их изменения)'', который хранится в базе системы
Ведётся лог опроса параметров ''(не все значения, а только их изменения)'', который хранится в базе системы
[[Файл:2014_12_03_22_44_33.png|thumb|800px|center]]


Имеется также и текущий список опрашиваемых устройств
Имеется также и текущий список опрашиваемых устройств
[[Файл:29.PNG|thumb|800px|center]]


== Настройка в карточке устройства ==
== Настройка в карточке устройства ==

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

en | ru

Эта функция является одной из возможностью
обновления даты активности у объекта

usm_observer - это модуль для постоянного контроля средствами SNMP настраиваемых показателей у устройств и оповещения сотрудников и подразделений о фактах выхода значений этих показателей за пределы установленных значений.


Данный модуль является заменой устаревшему модулю us_control


Общие данные

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

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

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

Для работы модуля необходим Python3 любой поддерживаемой на данный момент версии. Статус версий можно посмотреть здесь: "Status of Python versions". Рекомендуется использовать версию с состоянием "security" или "bugfix". Версии отмеченные как "end-of-life" не поддерживаются. Отмеченные как "feature" не рекомендуется использовать.

Необходимые модули Python3:

PySNMP

Все зависимости устанавливаются автоматически. Для этого, находясь в каталоге модуля, выполните:

pip3 install -r requirements.txt

Установка модуля

Загрузите модуль на сервер в каталог модулей и выполните (Х.Х.Х - это номер текущей версии)

unzip usm_observer-vX.X.X.zip
rm usm_observer-vX.X.X.zip
cd usm_observer

Обновите менеджер пакетов

pip3 install --upgrade pip

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

pip3 install --upgrade -r requirements.txt

Если это первоначальная установка - скопируйте файл примера конфигурации

cp settings.ini-example settings.ini

Настройка модуля

Файл конфигурации settings.ini содержит два раздела с параметрами

Раздел api содержит параметры подключения к API USERSIDE:

  • url - укажите здесь URL USERSIDE
  • key - укажите здесь API-ключ
  • ssl_verify - при необходимости отключения проверки SSL-сертификата, установите значение в no

Раздел log содержит параметры для журналирования работы модуля:

  • path - путь к каталогу, в котором будет создан файл журнала
  • level - уровень детализации: 1 - отладочный, 2 - информационный, 3 - предупреждения, 4 - ошибки, 5 - фатальные ошибки
  • to_console - yes - выводить сообщения журнала в консоль, а не в файл; no - выводить сообщения журнала в файл

Тестовый запуск

Чтобы проверить, что настройка выполнена верно, произведите ручной тестовый запуск. Для этого установите в settings.ini в разделе log значение level = 1 и to_console = yes и затем запустите модуль вручную, выполнив следующую команду:

python3 usm_observer.py

Если модуль отработал корректно и корректно завершил работу, то установите значение level = 2 и to_console = no и настройте автоматический запуск модуля.

Если в процессе тестового ручного запуска были обнаружены ошибки, устраните их или обратитесь за помощью в нашу службу поддержки, используя тикет-систему в вашем личном кабинете клиента.

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

Настройте запуск в crontab следующим образом. Обратите внимание на перенаправление вывода - желательно, чтобы файлы, в которые перенаправляется вывод, располагались в том же каталоге, что и файл журнала модуля.

Добавьте в crontab строку, предварительно изменив путь к модулю:

* *   * * *   root    python3 /path/to/module/usm_observer.py >> /var/log/userside/usm_observer_cron.log 2>>/var/log/userside/usm_observer_cron_error.log

Убедитесь, что модуль запускается. Для этого спустя минуту понаблюдайте за файлом журнала:

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

Если модуль не запускается автоматически, возможно проблема в том, что в crontab отсутствуют пути к python3. Добавьте путь в переменную PATH файла crontab или же укажите полный путь к python3 в строке задания.

Узнать полный путь к python3 можно выполнив команду:

which python3

Ротация файлов журнала

Файлы журнала, создаваемые модулем, нуждаются в ротации. Для этого следует использовать стандартные инструменты ротации логов в операционной системе.

Следующая настройка будет выполнять ротацию всех файлов *.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
}

Логика работы

  • Каждый запуск модуль проверяет состояние SNMP-параметров у контролируемых устройств. Если значение параметра выходит за пределы допустимого, то считается, что произошла тревога. Тревожных параметров на устройстве может быть несколько. По каждому устройству, где был найден тревожный параметр или наоборот - параметр пришёл в норму - формируется электронное письмо и/или SMS для выбранного (на уровне каждого устройства) круга получателей
  • По каждому устройству формируется отдельное письмо/сообщение, в котором будут все параметры, состояние (тревога/норма) которых изменилось. В письме информация будет представлена развёрнуто, в SMS - компактно
  • Следующее сообщение будет прислано только в случае, если изменился вновь какой-то параметр
  • Если в процессе опроса будет выяснено, что опрашиваемое устройство неактивно (в процессе подключения к устройству произошла ошибка, либо возникла ошибка при съёме параметра), то это будет отмечено модулем и в следующие несколько циклов запуска (по-умолчанию: 5) это устройство опрашиваться не будет, чтобы не создавать задержек в опросе прочих параметров.
  • Для устройств, с которых удалось получить параметры - будет обновлена дата последней активности.
  • Если указан ошибочный параметр (OID), то при опросе устройства - на этом параметре опрос данного устройства будет прекращен.


В случае, если модуль перестал запускаться - на главной странице для операторов, имеющих доступ в настройку системы, будет выводиться соответствующее сообщение

Общая настройка

Для начала требуется указать список контролируемых параметров и события, при которых считать, что значения этих параметров вышли из нормы.

Параметры можно компоновать в профили опроса

Для всех параметров, которые опрашиваются на данный момент, можно посмотреть текущее состояние и наличие тревог

Ведётся лог опроса параметров (не все значения, а только их изменения), который хранится в базе системы

Имеется также и текущий список опрашиваемых устройств

Настройка в карточке устройства

При редактировании карточки оборудования доступен блок, в котором можно выбрать профиль опроса для данного устройства, указать какие-то отдельные параметры для опроса, что не входят в выбранный профиль и указать получателей сообщений о тревоге

В режиме просмотра блок модуля также выводится и из него есть возможность просмотреть текущее состояние параметров и лог изменения их состояния