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

Материал из WiKi - UserSide
Нет описания правки
Нет описания правки
 
(не показано 12 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''ВНИМАНИЕ: Данный модуль является устаревшим и более не продаётся. Рекомендуется перейти на модуль [[usm_checker]]'''
{{activ}}
{{activ}}


'''USM_PING''' - это модуль для выявления абонентов/устройств в сети. Модуль пингует все IP-адреса из базы данных САП "UserSide" и обновляет дату активности откликнувшихся устройств/абонентов в системе.
'''USM_PING''' - ''это модуль для выявления активности абонентов/устройств в сети''
Одновременно с этим - после выполнения пингов - идёт анализ arp-таблицы и обновляется активность у тех адресов, которые найдены в arp-таблице, но не откликнулись на пинг. Такие ситуации возможны когда у абонента включен firewall/брандмауэр.


'''Данный модуль является заменой устаревшему модулю [[us_ping]]'''
'''Данный модуль является заменой устаревшему модулю [[us_ping]]'''
Строка 11: Строка 13:
'''Текущая версия:''' см. на странице: [[Модули]]
'''Текущая версия:''' см. на странице: [[Модули]]


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


Необходимые модули Perl:
Необходимые модули Perl:
DBI
  Time::Local
  Time::Local
  threads
  threads
  Thread::Queue
  Thread::Queue
Net::SSL
  Net::Ping
  Net::Ping
  Socket
  Socket
  FindBin
  FindBin
URI
URI::Escape
LWP::UserAgent
JSON
Data::Dumper
Общую информацию для всех модулей см. на странице: [[Модули]]
== Основные функции ==


'''Информацию по установке модуля''' и общую информацию для всех модулей см. на странице: [[Модули]]
* Модуль пингует все IP-адреса из базы данных ERP "UserSide" и обновляет дату активности откликнувшихся устройств/абонентов в системе
* После выполнения пинга - идёт анализ arp-таблицы и обновляется активность у тех адресов, которые найдены в arp-таблице, но не откликнулись на пинг. Такие ситуации возможны когда у абонента включен firewall/брандмауэр


Настройка модуля осуществляется в файле '''us_config.tmp'''
== Установка и настройка модуля ==


== Параметры ==
# Выделите отдельный каталог. Абсолютно произвольный. Лучше его не размещать в каталоге, доступном через web. Взаимодействие с ERP "UserSide" осуществляется средствами API по http/s-протоколу. Таким образом модуль полностью автономен и может работать на любом отдельном компьютере в любой подсети. Также создайте отдельный каталог для логов модуля. Не забудьте указать для него права на запись.
# Перенесите туда файлы из архива модуля. Пример файла конфигурации "usm_ping.conf-example" переименуйте в "usm_ping.conf". В нём выполните настройку параметров. Перечень возможных параметров указан ниже.
# Проверьте наличие дополнительных perl-пакетов, которые требуются для запуска модуля. Их список приведён выше. Если у вас они не установлены - модуль выдаст ошибку при запуске и perl-пакет необходимо будет установить ''(с помощью CPAN или PPM)''.
# В разделе "[[Настройка - Модули]]" включите работу с модулем usm_ping
# Запустите модуль руками
 
perl usm_ping.pl
 
Он должен запуститься и отработать без ошибок.


$zuserver - адрес сервера с UserSide
6. Впишите запуск модуля в системный cron, согласно рекомендациям ниже
$zusqlport - номер порта MySQL с базой данных UserSide
$zubase - имя базы данных UserSide
$zuuser - имя пользователя для доступа к базе UserSide
$zupass - пароль для доступа к базе UserSide
$zucp - кодировка базы UserSide
$zusqlport - порт подключения к базе данных ''(по-умолчанию 3306)''
$ps_logpath - путь к логам модуля
$zsilence - не выводить уведомления о работе модуля в консоль


$ps_binpath - путь к ARP
$ps_pingtype - тип пинга (по-умолчанию "tcp". Можно указать "icmp" или "udp")
$ps_onlydevice - флаг - пинговать только устройства ''(1/0)''
$ps_threadcount - к-во потоков для пинга ''(по-умолчанию 25)''
$zping_alt - альтернативный пинг ''(с помощью командной строки сервера)''
$zping_alt_str - параметры для альтернативного пинга в командной строке
$zchangemac - если модуль находит для IP-адреса MAC адрес, который неизвестен САП "UserSide" ''(в базе другой MAC-адрес)'', то старый MAC затирается новым
$zdiapazon_start - начальный IP-адрес для пинга ''(например: 192.168.0.1)''
$zdiapazon_finish - конечный IP-адрес для пинга ''(например: 192.168.255.255)''
$zcity_list - перечень населенных пунктов ''(tbl_adr_city.CODE)'' IP-адреса которых опрашивать ''(через запятую)''. 0 - объекты без адреса


== Рекомендации ==
'''Рекомендации:'''


Лучше всего себя зарекомендовала следующая схема:
Лучше всего себя зарекомендовала следующая схема:
* Создайте два отдельных каталога и положите туда два модуля us_ping со своими файлами конфигурации us_config.tmp. Также создайте два отдельных каталога для их логов
* Создайте два отдельных каталога и положите туда два модуля usm_ping со своими файлами конфигурации. Также создайте два отдельных каталога для их логов


  Модуль №1 - в файле конфигурации укажите параметры
  Модуль №1 - в файле конфигурации укажите параметры
  $ps_onlydevice = 1;
  $isOnlyDevice = 1;
  $ps_threadcount = 25;
  $threadCount = 25;
  Пропишите в системный cron запуск этого модуля с частотой запуска - ежеминутно
  Пропишите в системный cron запуск этого модуля с частотой запуска - ежеминутно


  Модуль №2 - в файле конфигурации укажите параметры
  Модуль №2 - в файле конфигурации укажите параметры
  $ps_onlydevice = 0;
  $isOnlyDevice = 0;
  $ps_threadcount = 50;
  $threadCount = 50;
  Пропишите в системный cron запуск этого модуля с частотой запуска - раз в 10 минут
  Пропишите в системный cron запуск этого модуля с частотой запуска - раз в 10 минут


* Таким образом первый модуль будет опрашивать ежеминутно только оборудование, которого во-первых немного ''(меньше чем абонентов)'', а во-вторых практически всё оборудование постоянно активно, в отличии от абонентов. Следовательно практически постоянно будет мониторится активность оборудования, а абоненты будут опрашиваться раз в 10 минут, что менее критично.
* Таким образом первый модуль будет опрашивать ежеминутно только оборудование, которого, во-первых, немного ''(меньше чем абонентов)'', а во-вторых практически всё оборудование постоянно активно, в отличии от абонентов. Следовательно практически постоянно будет мониториться активность оборудования, а абоненты будут опрашиваться раз в 10 минут, что менее критично.
 
== Параметры ==
 
Настройка модуля осуществляется в файле '''usm_ping.conf'''
 
$usUrl - URL к ERP "UserSide"
$usApiKey - [[API]]-ключ к ERP "UserSide"
$logsPath - Путь к каталогу для логов модуля
$isSilence - Флаг - скрывать уведомления в консоль при работе модуля
$citiesList - Перечень идентификаторов населенных пунктов ''(через запятую)'' IP-адреса которых опрашивать. 0 - объекты без адреса
$arpPath - Путь к ARP
$pingType - Тип пинга
$isOnlyDevice - Флаг - пинговать только устройства
$threadCount - Количество потоков для пинга
$ipRangeStart - Начальный IP-адрес для пинга
$ipRangeFinish - Конечный IP-адрес для пинга
$isChangeMac - Флаг - если модуль находит для IP-адреса MAC адрес, который неизвестен ERP "UserSide" ''(в базе другой MAC-адрес)'', то старый MAC затирается новым
$isAlternativePing - Флаг - альтернативный пинг ''(с помощью командной строки сервера)''
$alternativePingPath - Параметры для альтернативного пинга в командной строке
$allowNonRef - Флаг - включить режим JSON->allow_nonref ''(если возникают проблемы при работе по https-протоколу)''


== Замечания ==
== Замечания ==


* Если ping опрашивает не все действительно рабочие устройства, то рекомендуется попробовать менять значение параметра $ps_pingtype ''(см. выше)''
* Если ping опрашивает не все действительно рабочие устройства, то рекомендуется попробовать менять значение параметра $pingType ''(см. выше)''
* Также в зависимости от загрузки сервера и сетевой подсистемы возможны ситуации, когда операционная система "захлёбывается" от быстрого опроса множества устройств. Особенно, когда большое количество опрашиваемых устройств недоступно и не отвечает. В этой ситуации рекомендуется уменьшить значение параметра $ps_threadcount
* Также в зависимости от загрузки сервера и сетевой подсистемы возможны ситуации, когда операционная система "захлёбывается" от быстрого опроса множества устройств. Особенно, когда большое количество опрашиваемых устройств недоступно и не отвечает. В этой ситуации рекомендуется уменьшить значение параметра $threadCount

Текущая версия от 13:44, 6 апреля 2019

ВНИМАНИЕ: Данный модуль является устаревшим и более не продаётся. Рекомендуется перейти на модуль usm_checker


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

USM_PING - это модуль для выявления активности абонентов/устройств в сети

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


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

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

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

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

Time::Local
threads
Thread::Queue
Net::SSL
Net::Ping
Socket
FindBin
URI
URI::Escape
LWP::UserAgent
JSON
Data::Dumper

Общую информацию для всех модулей см. на странице: Модули

Основные функции

  • Модуль пингует все IP-адреса из базы данных ERP "UserSide" и обновляет дату активности откликнувшихся устройств/абонентов в системе
  • После выполнения пинга - идёт анализ arp-таблицы и обновляется активность у тех адресов, которые найдены в arp-таблице, но не откликнулись на пинг. Такие ситуации возможны когда у абонента включен firewall/брандмауэр

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

  1. Выделите отдельный каталог. Абсолютно произвольный. Лучше его не размещать в каталоге, доступном через web. Взаимодействие с ERP "UserSide" осуществляется средствами API по http/s-протоколу. Таким образом модуль полностью автономен и может работать на любом отдельном компьютере в любой подсети. Также создайте отдельный каталог для логов модуля. Не забудьте указать для него права на запись.
  2. Перенесите туда файлы из архива модуля. Пример файла конфигурации "usm_ping.conf-example" переименуйте в "usm_ping.conf". В нём выполните настройку параметров. Перечень возможных параметров указан ниже.
  3. Проверьте наличие дополнительных perl-пакетов, которые требуются для запуска модуля. Их список приведён выше. Если у вас они не установлены - модуль выдаст ошибку при запуске и perl-пакет необходимо будет установить (с помощью CPAN или PPM).
  4. В разделе "Настройка - Модули" включите работу с модулем usm_ping
  5. Запустите модуль руками
perl usm_ping.pl

Он должен запуститься и отработать без ошибок.

6. Впишите запуск модуля в системный cron, согласно рекомендациям ниже


Рекомендации:

Лучше всего себя зарекомендовала следующая схема:

  • Создайте два отдельных каталога и положите туда два модуля usm_ping со своими файлами конфигурации. Также создайте два отдельных каталога для их логов
Модуль №1 - в файле конфигурации укажите параметры
$isOnlyDevice = 1;
$threadCount = 25;
Пропишите в системный cron запуск этого модуля с частотой запуска - ежеминутно
Модуль №2 - в файле конфигурации укажите параметры
$isOnlyDevice = 0;
$threadCount = 50;
Пропишите в системный cron запуск этого модуля с частотой запуска - раз в 10 минут
  • Таким образом первый модуль будет опрашивать ежеминутно только оборудование, которого, во-первых, немного (меньше чем абонентов), а во-вторых практически всё оборудование постоянно активно, в отличии от абонентов. Следовательно практически постоянно будет мониториться активность оборудования, а абоненты будут опрашиваться раз в 10 минут, что менее критично.

Параметры

Настройка модуля осуществляется в файле usm_ping.conf

$usUrl - URL к ERP "UserSide"
$usApiKey - API-ключ к ERP "UserSide"
$logsPath - Путь к каталогу для логов модуля

$isSilence - Флаг - скрывать уведомления в консоль при работе модуля
$citiesList - Перечень идентификаторов населенных пунктов (через запятую) IP-адреса которых опрашивать. 0 - объекты без адреса
$arpPath - Путь к ARP
$pingType - Тип пинга
$isOnlyDevice - Флаг - пинговать только устройства
$threadCount - Количество потоков для пинга
$ipRangeStart - Начальный IP-адрес для пинга
$ipRangeFinish - Конечный IP-адрес для пинга
$isChangeMac - Флаг - если модуль находит для IP-адреса MAC адрес, который неизвестен ERP "UserSide" (в базе другой MAC-адрес), то старый MAC затирается новым
$isAlternativePing - Флаг - альтернативный пинг (с помощью командной строки сервера)
$alternativePingPath - Параметры для альтернативного пинга в командной строке
$allowNonRef - Флаг - включить режим JSON->allow_nonref (если возникают проблемы при работе по https-протоколу)

Замечания

  • Если ping опрашивает не все действительно рабочие устройства, то рекомендуется попробовать менять значение параметра $pingType (см. выше)
  • Также в зависимости от загрузки сервера и сетевой подсистемы возможны ситуации, когда операционная система "захлёбывается" от быстрого опроса множества устройств. Особенно, когда большое количество опрашиваемых устройств недоступно и не отвечает. В этой ситуации рекомендуется уменьшить значение параметра $threadCount