Skip to content

Support (Russian)

1.6k Topics 8.8k Posts

Вопросы по установке, настройке и использованию NetXMS на русском языке.

  • Делимся скриптами

    Pinned
    4
    0 Votes
    4 Posts
    44k Views
    A
    Cкрипт для перезагрузки свичей Edge-Core по SNMP. print "Trying reboot switch -> ".$node->name; println " snmpObjectId->".$node->snmpOID." ".$node->sysDescription; switch($node->snmpOID) { case ".1.3.6.1.4.1.259.6.10.94": print "ES3528M"; oid = "1.3.6.1.4.1.259.6.10.94.1.7.3.0"; break; case ".1.3.6.1.4.1.259.10.1.27.101": print "ECS3510-28T"; oid = "1.3.6.1.4.1.259.10.1.27.1.7.3.0"; break; /* case ".1.3.6.1.4.1.259.8.1.5": println "ES3510"; oid = ""; break; */ case ".1.3.6.1.4.1.259.10.1.27.102": print "ECS3510-52T"; oid = "1.3.6.1.4.1.259.10.1.27.1.7.3.0"; break; case ".1.3.6.1.4.1.259.8.1.11.101": print "ES3510MA"; oid = "1.3.6.1.4.1.259.8.1.11.1.7.3.0"; break; default: println "Unknown switch model!"; return 1; }println " > ResetOID=".oid; snmpTransport = CreateSNMPTransport($node); if ( snmpTransport == null ) return "Unable to connect"; returnValue = SNMPSet(snmpTransport,oid,"3","INTEGER"); if ( returnValue == null ) return "No response. Something went wrong."; if ( returnValue == 0 ) return "Unable to initiate reload. No SNMP Write Access?"; if ( returnValue == 1 ) return "Reload triggered."; Скрипт необходимо разместить в "Script Library" например с названием reboot_switch. Затем в "Object Tools" создать новый инструмент, например "Reboot switch Edge-Core" В поле "Script" указать "reboot_switch". Установить "птичку" на "Command generates output". Не помешает птичка в поле "Confirmation" с соответствующим вопросом (необязательно, но желательно).
  • 0 Votes
    1 Posts
    37k Views
    P
    Устанавливаем mysql (желательно вместе с MySQL Workbench) Создаем новую базу данных в mysql (можем назвать ее netxms) Открываем папку с конфигом netxms (D:\NetXMS\etc - у вас путь может отличаться) и переименовываем файл netxmsd.conf в netxmsd.old.conf Создаем новый netxmsd.conf,  в нем указываем: LogFile = D:\NetXMS\log.log - у вас может отличаться DBDriver = mysql.ddr - меняем sqlite.ddr на mysql.ddr DBServer = localhost - ip сервера mysql, в моем случае это тот же комп DBName = netxms - имя БД, созданной в mysql DBLogin = логин от БД DBPassword = пароль LogFailedSQLQueries = yes Затем, открываем cmd и прописываем путь к nxdbmgr(В моем случае это  cd D:\NetXMS\bin, жмем enter и пишем d: и снова enter) Прописываем команду для создания структуры в нашей БД (nxdbmgr init D:\NetXMS\lib\sql\dbinit_mysql.sql - путь к файлу указываем свой) Затем, если необходимо - nxdbmgr upgrade Последний шаг - nxdbmgr import D:\NetXMS\database\netxms_db (Путь к старой базе на sqlite) Все, ждем как закончится импорт.
  • Добавить для мониторинга свой параметр

    Pinned
    5
    0 Votes
    5 Posts
    57k Views
    D
    @victor said in Добавить для мониторинга свой параметр: @djaksons said in Добавить для мониторинга свой параметр: Хотел мониторить время работы от батарей но в программе нет переменной такого типа Имеется ввиду TIMETICKS? Это обычный unsigned integer. Поставьте соответствующий тип в DCI, и все будет собираться корректно. да спасибо я такой вариант не пробовал. Заработало! Ну все понеслась.
  • 0 Votes
    1 Posts
    44k Views
    S
    Способ организации массовой почтовой рассылки для NetXMS win32 (хотя аналогичный способ сработает и на других осях, но там как правило нет подобных проблем) на основе Gmail. Нам понадобиться Stunnel, который можно загрузить с одного из зеркал проекта Blat, который можно загрузить со страницы проекта. Ставим Stunnel как сервис, и меняем конфигурационный файл следующим образом. ; Sample stunnel configuration file for Win32 by Michal Trojnara 2002-2012 ; Some options used here may be inadequate for your particular configuration ; This sample file does *not* represent stunnel.conf defaults ; Please consult the manual for detailed description of available options ; ************************************************************************** ; * Global options * ; ************************************************************************** ; Debugging stuff (may useful for troubleshooting) debug = 7 output = stunnel.log ; Disable FIPS mode to allow non-approved protocols and algorithms ;fips = no ; ************************************************************************** ; * Service defaults may also be specified in individual service sections * ; ************************************************************************** ; Certificate/key is needed in server mode and optional in client mode cert = stunnel.pem ;key = stunnel.pem ; Authentication stuff needs to be configured to prevent MITM attacks ; It is not enabled by default! ;verify = 2 ; Don't forget to c_rehash CApath ;CApath = certs ; It's often easier to use CAfile ;CAfile = certs.pem ; Don't forget to c_rehash CRLpath ;CRLpath = crls ; Alternatively CRLfile can be used ;CRLfile = crls.pem ; Disable support for insecure SSLv2 protocol options = NO_SSLv2 ; Workaround for Eudora bug ;options = DONT_INSERT_EMPTY_FRAGMENTS ; These options provide additional security at some performance degradation ;options = SINGLE_ECDH_USE ;options = SINGLE_DH_USE ; ************************************************************************** ; * Service definitions (at least one service has to be defined) * ; ************************************************************************** ; Example SSL server mode services ;[pop3s] ;accept = 995 ;connect = 110 ;[imaps] ;accept = 993 ;connect = 143 ;[ssmtp] ;accept = 465 ;connect = 25 ; Example SSL client mode services ;[gmail-pop3] ;client = yes ;accept = 127.0.0.1:110 ;connect = pop.gmail.com:995 ;[gmail-imap] ;client = yes ;accept = 127.0.0.1:143 ;connect = imap.gmail.com:993 [gmail-smtp] client = yes accept = 127.0.0.1:25 connect = smtp.gmail.com:465 ; Example SSL front-end to a web server ;[https] ;accept = 443 ;connect = 80 ; "TIMEOUTclose = 0" is a workaround for a design flaw in Microsoft SSL ; Microsoft implementations do not use SSL close-notify alert and thus ; they are vulnerable to truncation attacks ;TIMEOUTclose = 0 ; vim:ft=dosini запускаем сервис. Для удобства использования Blat лучше распаковать в netXMS/var (в этом случае нам не придется писать длинные пути или добавлять переменные path) Теперь для удобства (можно и не делать прописав данный профиль в файле настроек, который будет описан ниже) создадим профиль для Blat, который сохранится в реестре. Для этого просто нужно запустить blat.exe со следующими параметрами. blat.exe -install smtp.google.com почтовый_ящик 3 587 gmail юзер пароль_к_ящику gmail здесь это имя профиля, который потом можно вызывать просто добавив к параметрам данный идентификатор, профилей может быть несколько. Далее создадим 2 файла adr.list (имя и расширения файла может быть любым, это просто текстовый файл) в нем буду хранится наши адреса в следующем формате [email protected] [email protected] [email protected] один адрес - одна строчка. Лишних пробелов и знаков желательно избегать. opt.list (имя и расширения файла может быть любым, это просто текстовый файл) В данном файле будут хранится настройки в следующем формате -f "имя отправителя" -p gmail -log blat.log -try 1 -ti 60 имя отправителя желательно использовать примерно такое NETXMS Server <ваш_ящик@gmail.ru> gmail здесь это имя профиля. В файл blat.log будут писаться логи. все, все приготовления завершены. теперь идём в  Action Configuration И создаем новый execute command on management server со следующим параметром blat.exe -tf adr.list -of opt.list -subject "Port down on %a!" -body "В %t порт номер %5 на коммутаторе %n был отключен." после идем в Even processing policy editor и на событие port down добавляем этот action. аналогичным образом создаем все требуемые action'ы Данный способ весьма гибок в настройках, так-как позволяет на лету менять списки рассылки либо настройки, даже из скрипта в самом netxms или ручками. udp1: некоторые опечатки и уточнения. версия первая, писал второпях, если кому нужны уточнения, то не стесняйтесь.
  • NetXMS FAQ/ЧаВо

    Pinned
    74
    0 Votes
    74 Posts
    361k Views
    R
    Здравствуйте. Построил карту. Но не пойму как удалять устаревшие связи. например настраивал коммутатор в одном месту он успел отобразится в XMS. Перенес его и он горит красным. и связь если её пытаюсь просто удалить с карты появляется снова
  • 0 Votes
    3 Posts
    200 Views
    E
    да, причина в размере war-файла. Увеличил лимит в manager, все получилось
  • Изменения в UI

    4
    3
    0 Votes
    4 Posts
    282 Views
    A
    Сообщение об успешном резолве в логе, скорее всего, вида "Node name resolved to ..." - это синхронизация имени ноды, а не резолв primary host name. Она работает в обратную сторону: имя объекта берётся из reverse DNS адресов интерфейсов или из SNMP sysName, поэтому срабатывает, даже если прямой записи для имени нет ни в одном DNS. Успешный резолв primary host name сразу заполняет primary IP, в логе это "IP address for node ... changed from ... to ...". SNMP при этом на самом деле не опрашивается. Все запросы идут на primary IP, и без него сервер проверки пропускает: configuration poll пишет "SNMP polling is not possible", status poll проверку SNMP не делает, проверка доступности ноды для нод без IP отключена. "SNMP status: Responding" и статус Normal - это состояние на момент, когда IP ещё был. Фактически нода не мониторится. С включённым Objects.Nodes.ClearIPAddressOnDNSFailure так же выпадут все ноды, чьё имя не резолвится с сервера NetXMS. Найти их можно по SYS_DNS_RESOLUTION_FAILED в event log или по Primary IP address "none". Вернуть - вписать в Primary host name резолвящееся имя или IP. По интерфейсу: в 6.x и 7.0 тут ничего не менялось. Primary host name всегда был на странице Communication в Properties. В 4.4 (2023) на Overview блок Communications, где показываются primary host name и IP, вынесли из General - видимо, его вы и помнили.
  • Путаница при совпадении подсетей

    2
    0 Votes
    2 Posts
    309 Views
    A
    Добрый день, На WAN-интерфейсе роутера нужно включить флаг "Exclude this interface from network topology" (свойства интерфейса → Polling). Адреса такого интерфейса не участвуют в привязке к подсетям, и на следующем configuration poll нода будет отвязана от 192.168.1.0/24. Важно: primary IP ноды должен быть адресом со стороны сети 123.x - если primary IP сам попадает в 192.168.1.0/24, нода останется в этой подсети. Имя меняется из-за Objects.Nodes.SyncNamesWithDNS: сервер делает reverse DNS для primary IP, а если записи нет - перебирает адреса всех интерфейсов, включая исключённые из топологии. В итоге берётся PTR для 192.168.1.100, т.е. имя внутреннего хоста с этим адресом. Решение - добавить PTR-запись для primary IP роутера, либо выключить Objects.Nodes.SyncNamesWithDNS и задать имена вручную (параметр глобальный, отдельного флага на ноду нет).
  • Языковой интерфейс.

    4
    0 Votes
    4 Posts
    10k Views
    A
    Добрый день, Английского language bundle в web UI нет - английские надписи это исходные строки. Если bundle для выбранного языка не найден, Java берёт локаль по умолчанию JVM, в которой работает web UI, - на Ubuntu с русской локалью это ru_RU. В итоге загружается русский перевод, а он неполный: переведённые строки показываются по-русски, остальные по-английски. Тикет на исправление: https://github.com/netxms/netxms/issues/3777 Решение - запустить JVM web интерфейса с английской локалью. Например, через systemd override сервиса, в котором развёрнут web UI (Tomcat, Jetty): systemctl edit tomcat10 # добавить: [Service] Environment="JAVA_TOOL_OPTIONS=-Duser.language=en -Duser.country=US" и перезапустить сервис. Отдельной серверной настройки языка по умолчанию в 6.2 нет: язык хранится в браузере (cookie) и по умолчанию English. После смены локали JVM английский интерфейс будет у всех пользователей, кроме тех, кто явно выбрал другой язык.
  • 0 Votes
    53 Posts
    136k Views
    A
    Автоматически — нет. У сервера есть проверка собственной связи (Beacon.Hosts), но к потере связи она привязывает только SYS_NODE_DOWN. SYS_NODE_UNREACHABLE от нод через тоннель и за прокси, а также SYS_NODE_UP и ваши icmp ok не коррелируются. На это завёл тикет: https://github.com/netxms/netxms/issues/3753 Настройками шквал "Node up" убирается так: В Server Configuration задать Beacon.Hosts — два-три внешних адреса через запятую (не шлюз локальной сети, он при пропаже интернета продолжит отвечать) — и перезапустить сервер. При потере связи со всеми адресами сервер генерирует SYS_NETWORK_CONN_LOST, при восстановлении — SYS_NETWORK_CONN_RESTORED; стандартные правила держат на это время аларм с ключом NET_CONN_LOST. Добавить правило на SYS_NETWORK_CONN_RESTORED, выше стандартного "Terminate NetXMS server network connection loss alarm when connection restored": действие DoNothing, Delayed by 15m, timer key UPLINK_RECOVERY. Из правил 26, 32 и 34 вынести Normal MailAlarm (вместе с его "Do not run if timer ... is active") в отдельное правило, стоящее непосредственно перед исходным: те же source и event, флаг "Accept correlated events" как у исходного, "Stop event processing" не включать. В исходном остаются Terminate alarms, DoNothing и Cancel timers. В каждом из трёх новых правил — filtering script:return FindAlarmByKey("NET_CONN_LOST") == null && CountScheduledTasksByKey("UPLINK_RECOVERY") == 0; Отдельное правило нужно потому, что скрипт в фильтре исходного правила отключил бы вместе с письмом и закрытие аларма, и отмену таймеров. Note: в течение 15 минут после восстановления связи письма "Node up" и "icmp ok" не отправляются вообще, в том числе от нод, которые в это время действительно поднялись. Алармы при этом закрываются как обычно.
  • DCI для параметра в реестре

    2
    0 Votes
    2 Posts
    49k Views
    A
    Добрый день, Метрика указана неверно. System.Registry.Value(*) — это шаблон из каталога метрик агента, а не готовая метрика: у неё два аргумента, путь к ключу и имя value. Для вашего случая: System.Registry.Value(HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers,{instance}) {instance} нужно добавить и в description, иначе все шесть DCI получатся с одинаковым именем. С литеральной * агент не может разобрать первый аргумент как корневой ключ и возвращает "unknown metric", поэтому созданные DCI сразу уходят в статус unsupported — в event log ноды должно быть шесть SYS_DCI_UNSUPPORTED. В Data Collection в режиме просмотра проверьте, что включён показ unsupported DCI. Instance discovery настроен правильно, external list здесь не нужен — System.Registry.Values(...) возвращает именно имена values. Отдельно: сам DCI, на котором настроен instance discovery, в режиме просмотра не отображается, в списке видны только созданные по нему DCI. Это ожидаемое поведение.
  • 0 Votes
    2 Posts
    17k Views
    A
    Ключ ни на что не влияет в работе программы — собирать без него правильно. Он добавляет в сборку только libipfix, библиотеку разбора NetFlow/IPFIX. Демон-коллектор nxflowd, для которого она предназначалась, в сборку не входит вообще, а сервер и консоль с flow-данными не работают: обработка так и не была реализована. В 7.0 ключ удалён вместе с кодом. Вместо собственного коллектора в 7.0 планируется интеграция с внешними анализаторами трафика, первый коннектор — ntopng: https://github.com/netxms/netxms/issues/3429
  • Ошибка при обновлении до версии 6.2.2

    5
    0 Votes
    5 Posts
    31k Views
    K
    Всё получилось, ровно так как вы и написали. Вариант с make install конечно, более привлекателен ) В конечном итоге: [root@AltTEST netxms-6.2.3]# nxdbmgr upgrade NetXMS Database Manager Version 6.2.3 Build 6.2-694-g766c57382a INFO: Server module WEBAPI skipped Upgrading database... Upgrading from version 62.35 to 62.36 Upgrading from version 62.36 to 62.37 Upgrading from version 62.37 to 62.38 Database upgrade succeeded Большое спасибо за помощь!
  • Filtering scripts в EPP

    9
    0 Votes
    9 Posts
    64k Views
    A
    Замена contains на like проблему не решила — оба регистрозависимы. В текущем виде фильтр не сработает ни на одной записи с кириллицей, а ASCII-записи ("7-zip", "adobe reader") это маскируют. Проверено на nxscript 6.2.0: s = "Средства Проверки Microsoft Edge"; s like "*Средства Проверки*" // true - регистр совпадает s like "*средства проверки*" // false - регистр не совпадает s.contains("Средства Проверки") // true s ilike "*средства проверки*" // true - ilike регистронезависим Регистронезависимый оператор — ilike, а не like. Среди методов строки аналога contains без учёта регистра нет, equalsIgnoreCase сравнивает строку целиком. Почему исходный вариант с contains выглядел нерабочим: по приложенному логу toLowerCase на вашем сервере отработал корректно — "агент администрирования kaspersky security center". Значит и contains работал, а пакеты из трейса (Kaspersky Security Center, Microsoft Edge) просто не входили в список из 60 записей, и правило отфильтровало их правильно. Исходный скрипт был в порядке. Деталь, которая здесь важнее: toLowerCase, toUpperCase, ilike и equalsIgnoreCase для не-ASCII зависят от локали процесса. LC_CTYPE подхватывается только если он есть в окружении, а systemd-юнит его не задаёт — при запуске из пакета netxmsd может работать в локали C. Тогда toLowerCase молча оставляет кириллицу без изменений, а ilike и equalsIgnoreCase на кириллице возвращают false, без записи в лог. Тикет на это: https://github.com/netxms/netxms/issues/3483 Проверка: println("Средства".toLowerCase()); // ожидается "средства" Если вывод пустой или регистр не изменился, локали нет — задаётся через LANG=C.UTF-8 в /etc/default/netxmsd. Для списка из 60 наименований надёжнее не приводить регистр вручную: либо сравнивать через ilike при рабочей локали, либо сопоставлять точным регистром через contains — второй вариант от локали не зависит вообще. Вариант с Mapping tables, предложенный выше, здесь удобнее обоих: список правится в Configuration без редактирования скрипта, GetMappingTableKeys() отдаёт его массивом.
  • Шторм аварий

    8
    0 Votes
    8 Posts
    20k Views
    S
    Но одно следствие проверьте: на свежей инсталляции стандартные события, правила EPP и темплейты уже существуют. Если на старом сервере вы меняли что-то стандартное — severity системных событий, дефолтные правила, — то при импорте без Replace эти изменения молча не применились, остались свежие дефолтные версии. ---------- Именно так и делал. Проверю
  • Параметр PhysicalDisk.SmartAttr

    6
    2
    0 Votes
    6 Posts
    58k Views
    S
    Опробую. Отпишу
  • Smart параметры

    9
    0 Votes
    9 Posts
    88k Views
    A
    Тикет закрыт, метрики доступны с 6.1.2: SmartAttrRaw, SmartAttrRawString, SmartAttrWorst, SmartAttrThreshold. Подробности в соседней теме: https://www.netxms.org/forum/oe-oo/parametr-physicaldisk-smartattr/ По исходному вопросу темы — error или пустое значение у PhysicalDisk.* при том, что smartctl из шелла работает — это отдельная проблема, обновлением не решается. Агент выполняет: smartctl --all -j <device> и отбрасывает результат, если вывод не разбирается как JSON или в нём отсутствует секция device. Типичные причины: smartctl отсутствует в PATH сервиса либо устройство недоступно с правами, под которыми запущен nxagentd. Причина фиксируется в логе агента при DebugTags=smartctl:6 — в лог попадают команда, messages от smartctl и конкретный отказ: invalid device name, failed to execute, timed out, error parsing JSON, device section missing. Note: PhysicalDisk.Devices использует smartctl --scan, поэтому пустая таблица — тот же симптом, а не отдельная проблема.
  • 0 Votes
    23 Posts
    128k Views
    V
    В 6.2.2 должно исправится.
  • Проблемы с подключением web и клиенту

    19
    0 Votes
    19 Posts
    72k Views
    A
    Очистил таблицу, сервер завелся нормально. Благодарю!
  • Ошибка при обновлении до 6.2.0

    2
    0 Votes
    2 Posts
    21k Views
    A
    Комрад на en части форума подсказал решение "на месте" https://www.netxms.org/forum/index.php?msg=35566