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 - Victor Kirhenshtein

#661
Announcements / NetXMS 3.8 version 3.8.226
March 15, 2021, 10:32:24 PM
Hi all!

New patch release for NetXMS 3.8 (version 3.8.226) is just published. Changed since previous release:

- Lower memory footprint of NXSL scripts
- Correct handling of agent policies by external subagents
- Added attribute "tunnel" to NXSL class "Node"
- Server runs configuration poll on node after agent upgrade
- File manager subagent does not register same root multiple times
- Fixed refresh issues in Object Details view
- Fixed visualization issues in switch port view
- Fixed incorrect root object filtering in dashboard elements "Event Monitor", "SNMP Trap Monitor", and "Syslog Monitor"
- Fixed issues:
        NX-2014 (Create NXSL property on node object that gives reference to each type of proxy)
        NX-2024 (Add "Max Wait Time" to Server.EventProcessors Internal Parameter Table)

Best regards,
Victor
#662
Hi,

you could choose OID right before doing actual SNMP request in script DCI - so no extra SNMP requests will be done. Like this:

switch($node->vendor)
{
   case "Mikrotik":
      switch($node->productName)
      {
         case "60ghz": oid = ".1.3.6.1.4.1.14988.1.1.1.8.1.6.1";
      }
      break;
   case "Ubiquity":
      switch($node->productName)
      {
         case "AirMAX": oid = ".1.3.6.1.4.1.41112.1.4.1.1.4.1";
         case "AirFiber": oid = ".1.3.6.1.4.1.41112.1.3.1.1.5.1";
      }
      break;
}

if (oid == null)
   return null;  // OID was not selected, null will mark DCI as unsupported

snmp = $node->createSNMPTransport();
if (snmp == null)
   abort;
return SNMPGetValue(snmp, oid);


This of course relies on correctly set vendor and product name values. This should be the case for Mikrotik devices, but may not be for Ubiquity - you should double check.

Alternative approach could be probing for different OIDs in configuration poll hook andd setting correct OID as node's custom attribute, and then use it in script DCI. For example:

HOOK::ConfigurationPoll:

oids = %( ".1.3.6.1.4.1.41112.1.4.1.1.4.1", ".1.3.6.1.4.1.41112.1.3.1.1.5.1", ".1.3.6.1.4.1.14988.1.1.1.8.1.6.1" );
snmp = $node->createSNMPTransport();
if (snmp != null)
{
   for(oid : oids)
   {
      if (SNMPGetValue(snmp, oid) != null)  // You may use more sophisticated checks here if needed
      {
          selectedOID = oid;
          break;
      }
   }
}
SetCustomAttribute($node, "WirelessCenterFrequencyOID", selectedOID);


and script DCI:

oid = GetCustomAttribute($node, "WirelessCenterFrequencyOID");
if (oid == null)
   return null;  // No OID selected, mark as unsupported
snmp = $node->createSNMPTransport();
if (snmp == null)
   abort;
return SNMPGetValue(snmp, oid);


Best regards,
Victor
#663
Общие вопросы / Q&A session
March 11, 2021, 12:40:53 PM
Наша сессия вопросов и ответов с разработчиками начнется сегодня в 14:00 EET. Для желающих подключиться и поучаствовать ссылка на конференцию:
https://radensolutions.my.webex.com/radensolutions.my/j.php?MTID=mdecc400a75a40ac65079cafccbc4e259
#664
General Support / Re: Alarm Browser Scroll
March 10, 2021, 08:37:48 PM
It could be limitation of framework we are using that cause scrolling reset on each refresh. But somebody from the team will check.

Best regards,
Victor
#665
Hi,

does Mikrotik switch support LLDP (that should allow NetXMS server to find connection between ProCurve and Mikrotik). DOes NetXMS server see correct FDB on Mikrotik switch? You can check that by right-click on it, and select Topology -> Forwarding database.
What is output f manual topology poll for both ProCurve and Mikrotik?

Best regards,
Victor
#666
Hi,

you should pass IP address of the node you are pinging to ping command. Try

ping %a

as command (%a will be expanded to primary IP address of the node where you start object tool).

Best regards,
Victor
#667
I see two options here:

1. Use regular expression for DCI matching in summary table to match all possible OID options. This will work only for summary tables though.

2. Create script DCI that will request correct OID depending on device type. For example:


oid = ".1.3.6.1.2.1.1.1.0";
snmp = $node->createSNMPTransport();
if (snmp == null)
   abort;
return SNMPGetValue(snmp, oid);


You can replace direct OID assignment in first line with actual logic for selecting correct OID.

Best regards,
Victor
#668
Your syntax is wrong - you should use -> operator for accessing object properties (dot is string concatenation). Also, brackets denote capture group in regular expression, you should escape them with backslashes.


return $node->productName ~= "ePMP3000 \\(FCC\\)";


should work.

Best regards,
Victor
#669
General / Re: Error while building the console
March 08, 2021, 11:08:34 AM
Hello!

We have updated repository with forked Zest version and it seems to break build of older versions. To fix it you should hard set versions of Zest plugins in product file. The following patch should fix it:

diff --git a/src/java/netxms-eclipse/Product/nxmc.product b/src/java/netxms-eclipse/Product/nxmc.product
index 2cdd05dee0..79a110983b 100644
--- a/src/java/netxms-eclipse/Product/nxmc.product
+++ b/src/java/netxms-eclipse/Product/nxmc.product
@@ -597,9 +597,9 @@ Copyright (c) 2003-2020 Raden Solutions
       <plugin id="org.eclipse.ui.workbench.texteditor.nl_pt_BR" fragment="true"/>
       <plugin id="org.eclipse.ui.workbench.texteditor.nl_ru" fragment="true"/>
       <plugin id="org.mozilla.javascript"/>
-      <plugin id="org.netxms.gef4.zest.core"/>
-      <plugin id="org.netxms.gef4.zest.jface"/>
-      <plugin id="org.netxms.gef4.zest.layouts"/>
+      <plugin id="org.netxms.gef4.zest.core" version="2.0.6"/>
+      <plugin id="org.netxms.gef4.zest.jface" version="2.0.6"/>
+      <plugin id="org.netxms.gef4.zest.layouts" version="2.0.6"/>
       <plugin id="org.netxms.ui.base"/>
       <plugin id="org.netxms.ui.eclipse.actionmanager"/>
       <plugin id="org.netxms.ui.eclipse.agentmanager"/>


Best regards,
Victor
#670
What if you run full configuration poll on it manually? Also, do this node respond to ping or it is only accessible via SNMP?

Best regards,
Victor
#671
You can encode such password with nxencpasswd tool. For example:


nxencpasswd dbuser dbpass#123


will produce string


MKGI20iIOABe/NdxPN/ZMjCyW8ng20jLMLJbyeDbSMs=


which you can use as value for DBPassword parameter.

Best regards,
Victor
#672
Announcements / NetXMS 3.8 version 3.8.193
March 04, 2021, 09:38:11 PM
Hi all!

NetXMS 3.8 patch release 3.8.193 is just published. It is must have update for Timescale DB users as it fixes critical compatibility issue with Timescale DB 2.x.
Full change log:

- Fixed Timescale DB 2.x compatibility issues
- New methods isDirectChild, isDirectParent, isChild, isParent in NXSL class "NetObj"
- New NXSL function GetCurrentTimeMs
- Fixed possible server crash when agent tunnel is closing
- Always use UTF-8 instead of current system character encoding for exported CSV files
- Fixed process handle leak in Windows agent when external parameter providers are used
- Westerstrand SNMP device driver can read device geolocation
- NXSL function PollerTrace works in autobind filter scripts and instance discovery filter scripts
- Improved diagnostic output for manually started polls
- Improved network map tooltip data update

Best regards,
Victor
#673
For zoned environments probably the only way is to use filtering script that will check allowed ranges per zone. Mapping tables or custom attributes on zone objects can be used to store allowed or forbidden ranges.
But in general I think we need per zone address range filters, probably implemented as zone object properties.

Best regards,
Victor
#674
Most likely server processes already queued discovery tasks. Restart of netxmsd should fix it.

Best regards,
Victor
#675
General Support / Re: Millisecond resolution in NXSL
March 02, 2021, 10:09:42 PM
Currently it's not possible. I just added new function for that - GetCurrentTimeMs(). It will be available in next patch release.

Best regards,
Victor