News:

We really need your input in this questionnaire

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Argonauts

#31
Добрый день.
Как можно проводить поиск по конкретным значениям какого-либо параметра в нодах?
В ветке Делимся скриптами сразу в шапке имелся скрипт поиска "в данном случае по snmp sysDescription коммутатора"
sub GetTree (nodeID)
{
Tree = FindObject(nodeID);
children = GetObjectChildren(Tree);

foreach (n : children)
{
    //println ("Name: " . n->name);
    if (n->name != null && classof(n) == "Node")
    {
        if (n->sysDescription ~= "^D-Link DES-3028" && n->comments == "")
    {   
        println ("Name: " . n->name . ", sysDescription: " . n->sysDescription . ", IP: " . n->ipAddr);
    }
}
GetTree(n->id);
  }
}

GetTree(2);
Который я попытался перенаправить на поиск нод, в которых Description на каком-то из интерфейсов имеет WAN.
sub GetTree (nodeID)
{
Tree = FindObject(nodeID);
children = GetObjectChildren(Tree);

foreach (n : children)
{
    //println ("Name: " . n->name);
    if (n->name != null && classof(n) == "Node")
    {
        if (n->interfaces.description ~= "WAN" && n->comments == "")
    {   
        println ("Name: " . n->name . ", interfaces.description: " . n->interfaces.description . ", IP: " . n->ipAddr);
    }
}
GetTree(n->id);
  }
}

GetTree(2);
Но оба скрипта падают в syntax error на линию 13. Что с того момента изменилось в синтаксе?
=================
Edited
В таком виде
sub GetTree(nodeID)
{
    Tree = FindObject(nodeID);
    children = GetObjectChildren(Tree);

    foreach (n : children)
    {
        if (n->name != null && classof(n) == "Node")
        {
            ifaces = n->interfaces;
            foreach (iface : ifaces)
            {
                if (iface->description ~= "WAN")
                {
                    println("Name: " , n->name , ", interface: " , iface->description , ", IP: " , iface->ipAddr);
                }
            }

            GetTree(n->id);
        }
    }
}

GetTree(2);
выполнение его проходит, но результат никакой не получается
*** FINISHED ***

Result:
#32
Общие вопросы / Re: FileSystem.Total
January 13, 2026, 11:27:07 AM
Теперь у меня другой вопрос
Как мне удалить все DCI, что я наплодил с созданием DCI под instance discovery? Со временем они появляются обратно ::)
#33
Общие вопросы / Re: FileSystem.Total
January 13, 2026, 11:25:20 AM
Вопрос снят. Что
WMI.Query(root\cimv2,SELECT * FROM Win32_LogicalDisk WHERE Name LIKE "'{instance}'", Size)Что
WMI.Query(root\cimv2,SELECT * FROM Win32_LogicalDisk WHERE Name LIKE '"{instance}"', Size)корректно отрабатывают
-_-
#34
Общие вопросы / Re: FileSystem.Total
January 13, 2026, 09:31:06 AM
Попытка реализовать этот момент через wmi запрос на win32_logicaldisk + внешний лист.
Запрос
WMI.Query(root\cimv2,SELECT * FROM Win32_LogicalDisk WHERE Name="'C:'", Size)В таком виде корректно запрашивается и выводится нужный показатель
Как мне оформить этот запрос для {instance}?
WMI.Query(root\cimv2,SELECT * FROM Win32_LogicalDisk WHERE Name LIKE "{instance}", Size)В созданном внешнем листе инфа лежит в виде X: - С:, D: и т.п.
Сам лист запрашивается через
ExternalList = LogicalDisk.DeviceID:powershell -NonInteractive -Command "Get-CimInstance -Namespace root\cimv2 -Query 'SELECT DeviceID FROM Win32_LogicalDisk WHERE DriveType=3' | Select-Object -ExpandProperty DeviceID"===========
WMI.Query(root\cimv2,SELECT * FROM Win32_LogicalDisk WHERE Name="'{instance}'", Size)Не работает, я так понимаю оно экранирует {instance} как строку, исключая переменную
WMI.Query(root\cimv2,SELECT * FROM Win32_LogicalDisk WHERE Name like '{instance}', Size)Не работает
WMI.Query(root\cimv2,SELECT * FROM Win32_LogicalDisk WHERE Name='{instance}', Size)Опять же нет
#35
Общие вопросы / FileSystem.Total
January 12, 2026, 11:54:31 AM
Добрый день

Как должно выглядеть создание DCI для получения объема логического диска? FileSystem.Total с instance discovery от шаблона Windows инстансы находит, dci по ним создаются - хоть и в нескольких экземплярах почему-то - но значений никаких не отдает, падает в Error. Параллельно с этим дефолтные DCI  процентного свободного места корректные значения имеют.
type = AgentReadParameter($node, "FileSystem.Type(" .. $1 .. ")");

if ((type == null) || (type == "") || (type == "CDFS")) 

   return false;

return true;
#36
Общие вопросы / Re: Wireless controller
January 12, 2026, 11:46:51 AM
Уточню у руководства и отпишусь
#37
Общие вопросы / Wireless controller
December 18, 2025, 06:21:45 AM
Доброго дня!

С какими контроллерами сейчас есть возможность взаимодействовать, только физическими или виртуальные тоже доступны? Хотел потрогать Wireless Domain фичу
На Ubuntu 24.04.2 LTS развернут контроллер Unifi-controller 9.5.21-31260-1, подкинул на него агента, но как Wireless Controller он не распознается.
Как и AP от них же не всегда распознаются как Wireless AP - UAP-LR, UAP-AC-Mesh, UAP-LR, U6+, UAP-AC-Lite
UAP-AC-Lite я видел ноды, что определялись как W.AP
#38
Общие вопросы / Re: Smart параметры
December 16, 2025, 11:56:47 AM
И агент и сервер обновлены до 5.2.8
#39
Отправил логи в пм
#40
Общие вопросы / Re: Smart параметры
December 16, 2025, 10:10:31 AM
Поставил smartmontools 7.5 релиз
Metric PhysicalDisk.SmartAttr(/dev/sda, Raw_Read_Error_Rate) - Dci значений никаких не отдает, error в поле Value
PhysicalDisk.Devices - Table, так же не отдает ничего
PhysicalDisk.SmartStatus(/dev/sda) - Dci, так же не отдает ничего
smartctl --scan отдает
/dev/sda -d ata # /dev/sda, ATA device
/dev/sdb -d ata # /dev/sdb, ATA device
В системе стоит 2шт Sata SSD
smartctl -H /dev/sda вполне отрабатывает
SMART overall-health self-assessment test result: PASSED
Как и запросы конкретных параметром из shell на самой машине проходят нормально

Скрин DCI


Или мб в конфиге агента нужно прописать дополнительно что-то?
#41
Общие вопросы / Smart параметры
December 09, 2025, 05:35:02 AM
Добрый день.
NetXMS Server Version 5.2.8 Build 5.2-506-g7d4137c08a
NXCP: 5.62.1.53 (AES-256, 3DES, AES-128)
Built with: g++ (Ubuntu 13.2.0-23ubuntu4) 13.2.0


Какие требования к использованию параметров DCI PhysicalDisk.SmartAttr и PhysicalDisk.SmartStatus?
Я пробовал создать DCI с запросом PhysicalDisk.SmartAttr(0,5), PhysicalDisk.SmartAttr(0,05), PhysicalDisk.SmartAttr(*), с другими id физ дисков - никакой инфы от них не получается, в поле Value ERROR.
В админ гуйде кроме инфы в Appendix не нашел ничего.
Инфа запрашивается с Windows 10 машины, агент стоит со всеми возможными сабагентами

https://www.netxms.org/forum/oe-oo/smart-moto/msg4743/#msg4743
Этот тред особо не помог, т.к. указанным синтаксисом инфы кроме ERROR не выходит
#42
Развернуто на ВМ с Ubuntu Server 24.04.3. На одной машине база, сервер, веб-морда
16 потоков
20Gb выделенной ОЗУ
4Gb свап, но особо не видел, чтобы в него много сливалось
База postgreSQL с timescale, но такой затык со сканом был и на старой базе до конверта в timescale.

NetXMS Server Version 5.2.7 Build 5.2-484-g5df9cb5911
NXCP: 5.62.1.53 (AES-256, 3DES, AES-128)
Built with: g++ (Ubuntu 13.2.0-23ubuntu4) 13.2.0
#43
Quote from: Filipp Sudanov on November 10, 2025, 12:53:59 PMПопробуйте, пожалуйста, на 5.2.7, там был один фикс на тему дискавери (https://track.radensolutions.com/issue/NX-2594)
В какой-то момент так же остановился процесс
Active discovery poller is RUNNING
Address ranges:
   192.168.16.1-192.168.16.254          completed
   10.3.1.1-10.3.254.254                completed
   10.6.1.1-10.6.254.254                processing
   10.8.1.1-10.8.254.254                pending
   192.168.1.1-192.168.36.254           pending
#44
Общие вопросы / Filter script для epp
November 18, 2025, 05:57:18 AM
Добрый день!
Пытаюсь отфильтровать пакеты, по которым мне не нужны алармы. В условия EPP 42 добавил
use Package_filter;Сам скрипт выглядит так
sub main() {
    packageName = tolower($alarm->key);
   
   
    if(contains(packagename, "7-zip") ||
       contains(packagename, "adobe reader")) {
        nxlog(4, "FILTER: Blocked package - " . $alarm->key);
        return false;
    }
   
    return true;
}

Но алармы все продолжают плодиться. Что я сделал неверно в скрипте?
#45
На странице по ссылке впринципе нет упоминания "Registry". Мы в один документ попадаем?

Можно пример как оно должно выглядеть например для получения значения ключа HostName по пути HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters  ?