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 - normalcy

#31
Hi all, this is just a little papercut I've had that I wondered if anyone else has seen.

I've built a dashboard that contains a network map.  When I first open up NXMC and load the dashboard tab the network map element will refresh the status icons of the nodes, however the link colours (coloured by status) don't change from blue to to green until I open the network map by itself in its own tab.

Once that network map loads in its own tab correctly, if I go back to the dashboard tab and refresh it, the link status colours are green now.

Anyone else seen something similar?
#32
Thanks Victor, I guess thats a "$node->isPrinter != TRUE" for excluding printers that for some reason also get classified as routers too?
#33
I enabled debug logging on the server, manually bound a router node to the All Routers container with simplified stripped down auto-bind script from my first post and ran a configuration poll.  The autounbind event was triggered and my router removed again.

Below is debug log around the subsequent autounbind event.


root@netxms:/var/log# grep AUTOUNBIND netxmsd.1 -B40 -A20                                                                                                                                                                                                                                                           [11/4709]
2021.01.11 11:02:58.938 *D* [client.session.0   ] Sending compressed message CMD_POLLING_INFO (128 bytes)
2021.01.11 11:02:58.938 *D* [client.session.0   ] Message dump:
  ** 000000 | 00 5A 50 40 00 00 00 80 00 00 00 17 00 00 00 02 | .ZP@............
  ** 000010 | 00 00 00 88 78 DA 2D 8C B1 0A 83 40 10 44 AF 0B | [email protected]..
  ** 000020 | 08 D6 69 2C E6 03 F2 23 36 62 95 7E E3 0E 28 9C | ..i,...#6b.~..(.
  ** 000030 | BB E1 6E F1 FB 35 5E A6 79 C3 0C BC 94 D2 90 5A | ..n..5^.y......Z
  ** 000040 | 9E 7F E6 47 E3 7B 72 25 4C 76 62 11 33 0F 7C 88 | ...G.{r%Lvb.3.|.
  ** 000050 | CD 82 E5 5B 18 54 48 C5 21 79 53 8C 33 44 B5 B0 | ...[.TH.!yS.3D..
  ** 000060 | D6 17 CC 61 BC CE 70 5C 83 E7 83 BF BA 7A 8D 5B | ...a..p\.....z.[
  ** 000070 | D5 77 4D 7E 02 54 62 1F 38 00 00 00 00 00 00 00 | .wM~.Tb.8.......
  ** code=0x005A (CMD_POLLING_INFO) version=5 flags=0x0040 id=23 size=128 numFields=2
  ** 000000: [    28] INT32       23
  ** 000010: [   108] UTF8-STRING "Node name cannot be interpreted as valid IP address, no need to resolve to host name
"

2021.01.11 11:02:58.938 *D* [client.session.0   ] Sending message CMD_POLLING_INFO (96 bytes)
2021.01.11 11:02:58.938 *D* [client.session.0   ] Message dump:
  ** 000000 | 00 5A 50 00 00 00 00 60 00 00 00 17 00 00 00 02 | .ZP....`........
  ** 000010 | 00 00 00 1C 00 00 00 00 00 00 00 17 00 00 00 00 | ................
  ** 000020 | 00 00 00 6C 07 00 00 00 00 00 00 2E 55 70 64 61 | ...l........Upda
  ** 000030 | 74 69 6E 67 20 67 65 6E 65 72 61 6C 20 73 79 73 | ting general sys
  ** 000040 | 74 65 6D 20 68 61 72 64 77 61 72 65 20 69 6E 66 | tem hardware inf
  ** 000050 | 6F 72 6D 61 74 69 6F 6E 0D 0A 00 00 00 00 00 00 | ormation........
  ** code=0x005A (CMD_POLLING_INFO) version=5 flags=0x0000 id=23 size=96 numFields=2
  ** 000000: [    28] INT32       23
  ** 000010: [   108] UTF8-STRING "Updating general system hardware information
"

2021.01.11 11:02:58.939 *D* [poll.conf          ] ConfPoll(r02-brisbane.<stripped-out>.com.au): system hardware information: vendor=MikroTik product=CCR1036-12G-4S pcode=CCR1036-12G-4S version=6.46.7 serial=<stripped>
2021.01.11 11:02:58.939 *D* [poll.conf          ] Node::detectNodeType(r02-brisbane.<stripped-out>.com.au [1784]): SNMP node, driver name is MIKROTIK
2021.01.11 11:02:58.939 *D* [poll.conf          ] ConfPoll(r02-brisbane.<stripped-out>.com.au): detected node type: 1 (Physical)
2021.01.11 11:02:58.939 *D* [obj.lifecycle      ] NetObj::executeHookScript(r02-brisbane.<stripped-out>.com.au [1784]): hook script "Hook::ConfigurationPoll" is empty
2021.01.11 11:02:58.943 *D* [                   ] DataCollectionTarget::updateContainerMembership(): removing object 1784 "r02-brisbane.<stripped-out>.com.au" from container 2362 "All Routers"
2021.01.11 11:02:58.943 *D* [obj.relations      ] NetObj::deleteChild: this=All Routers [2362]; object=r02-brisbane.<stripped-out>.com.au [1784]
2021.01.11 11:02:58.943 *D* [obj.notify         ] Sending object change notification for All Routers [2362] (flags=0x00000008)
2021.01.11 11:02:58.943 *D* [obj.relations      ] NetObj::deleteParent: this=r02-brisbane.<stripped-out>.com.au [1784]; object=All Routers [2362]
2021.01.11 11:02:58.943 *D* [obj.notify         ] Sending object change notification for r02-brisbane.<stripped-out>.com.au [1784] (flags=0x00000008)
2021.01.11 11:02:58.944 *D* [obj.notify         ] Sending object change notification for All Routers [2362] (flags=0x00000000)
2021.01.11 11:02:58.944 *D* [obj.notify         ] Sending object change notification for All Routers [2362] (flags=0x00000000)
2021.01.11 11:02:58.944 *D* [obj.macro          ] NetObj::expandText(sourceObject=11199 template='Node %2 automatically unbound from container %4' alarm=0 event=13404393)
2021.01.11 11:02:58.944 *D* [event.corr         ] CorrelateEvent: event SYS_CONTAINER_AUTOUNBIND id 13404393 source netxms [11199]
2021.01.11 11:02:58.944 *D* [event.corr         ] CorrelateEvent: finished, rootId=0
2021.01.11 11:02:58.944 *D* [client.session.0   ] Sending message CMD_POLLING_INFO (120 bytes)
2021.01.11 11:02:58.944 *D* [client.session.0   ] Message dump:
  ** 000000 | 00 5A 50 00 00 00 00 78 00 00 00 17 00 00 00 02 | .ZP....x........
  ** 000010 | 00 00 00 1C 00 00 00 00 00 00 00 17 00 00 00 00 | ................
  ** 000020 | 00 00 00 6C 07 00 00 00 00 00 00 4B 46 69 6E 69 | ...l.......KFini
  ** 000030 | 73 68 65 64 20 63 6F 6E 66 69 67 75 72 61 74 69 | shed configurati
  ** 000040 | 6F 6E 20 70 6F 6C 6C 20 66 6F 72 20 6E 6F 64 65 | on poll for node
  ** 000050 | 20 72 30 32 2D 62 72 69 73 62 61 6E 65 2E 6E 61 |  r02-brisbane.na
  ** 000060 | 73 2E 6E 61 73 61 75 73 74 72 61 6C 69 61 2E 63 | s.<stripped-out>.c
  ** 000070 | 6F 6D 2E 61 75 0D 0A 00                         | om.au...
  ** code=0x005A (CMD_POLLING_INFO) version=5 flags=0x0000 id=23 size=120 numFields=2
  ** 000000: [    28] INT32       23
  ** 000010: [   108] UTF8-STRING "Finished configuration poll for node r02-brisbane.<stripped-out>.com.au
"

2021.01.11 11:02:58.944 *D* [client.session.0   ] Sending message CMD_POLLING_INFO (96 bytes)
2021.01.11 11:02:58.944 *D* [client.session.0   ] Message dump:
  ** 000000 | 00 5A 50 00 00 00 00 60 00 00 00 17 00 00 00 02 | .ZP....`........
  ** 000010 | 00 00 00 1C 00 00 00 00 00 00 00 17 00 00 00 00 | ................
  ** 000020 | 00 00 00 6C 07 00 00 00 00 00 00 2F 4E 6F 64 65 | ...l......./Node
  ** 000030 | 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 77 |  configuration w
  ** 000040 | 61 73 20 6E 6F 74 20 63 68 61 6E 67 65 64 20 61 | as not changed a
  ** 000050 | 66 74 65 72 20 70 6F 6C 6C 0D 0A 00 00 00 00 00 | fter poll.......
  ** code=0x005A (CMD_POLLING_INFO) version=5 flags=0x0000 id=23 size=96 numFields=2
  ** 000000: [    28] INT32       23
  ** 000010: [   108] UTF8-STRING "Node configuration was not changed after poll
"

2021.01.11 11:02:58.944 *D* [poll.conf          ] Finished configuration poll for node r02-brisbane.<stripped-out>.com.au (ID: 1784)
2021.01.11 11:02:58.944 *D* [event.proc         ] EVENT SYS_CONTAINER_AUTOUNBIND [65] at {0} (ID:13404393 F:0x0001 S:0 TAGS:"") FROM netxms: Node r02-brisbane.<stripped-out>.com.au automatically unbound from container All Routers
2021.01.11 11:02:58.945 *D* [client.session.0   ] Sending compressed message CMD_EVENTLOG_RECORDS (224 bytes)
2021.01.11 11:02:58.945 *D* [event.policy       ] EPP: processing event 13404393
2021.01.11 11:02:58.945 *D* [client.session.0   ] Sending message CMD_POLLING_INFO (32 bytes)
2021.01.11 11:02:58.945 *D* [client.session.0   ] Message dump:
  ** 000000 | 00 5A 50 00 00 00 00 20 00 00 00 17 00 00 00 01 | .ZP.... ........
  ** 000010 | 00 00 00 1C 00 00 00 00 00 00 00 00 00 00 00 00 | ................
  ** code=0x005A (CMD_POLLING_INFO) version=5 flags=0x0000 id=23 size=32 numFields=1
  ** 000000: [    28] INT32       0

2021.01.11 11:02:58.945 *D* [client.session.0   ] Message dump:
  ** 000000 | 00 0C 50 40 00 00 00 E0 00 00 00 00 00 00 00 0F | ..P@............
  ** 000010 | 00 00 01 80 78 DA 63 60 60 58 C7 00 01 8C 50 FA | ....x.c``X....P.
  ** 000020 | 12 33 90 10 00 62 26 A8 00 C3 99 8E 97 02 08 79 | .3...b&........y
  ** 000030 | 47 06 88 3C 58 3A FE F7 E2 43 50 3E 33 44 5A 7B | G..<X:...CP>3DZ{
  ** 000040 | 3F 94 CF 02 35 87 95 1D 22 11 E5 97 9F 92 AA 50 | ?...5..."......P
  ** 000050 | 64 60 A4 9B 54 94 59 9C 94 98 97 AA 97 97 58 0C | d`..T.Y.......X.
  ** 000060 | C2 89 A5 C5 25 45 89 39 99 89 7A C9 F9 B9 7A 89 | ....%E.9..z...z.
  ** 000070 | A5 0A 89 A5 25 F9 B9 89 25 99 C9 89 39 39 95 0A | ....%...%...99..
  ** 000080 | A5 79 49 F9 A5 79 29 0A 69 45 F9 B9 0A C9 F9 79 | .yI..y).iE.....y
  ** 000090 | 25 89 99 79 A9 45 0A 8E 39 39 0A 41 F9 A5 25 A9 | %..y.E..99.A..%.
#34
Has something changed with container auto-bind scripts in 3.7?

Since upgrading to 3.7 I just noticed that my containers with auto-bind scripts applied have stopped working (the nodes have been removed).

eg script:
if (
    $node->zoneUIN == 0 &&
    $node->isRouter == 1 &&
    $node->isPrinter != 1 &&
    GetCustomAttribute($node, "ignoreRouter") == null)
    {
      return true;
    }
return false;


But even a simpler version with Zone and other attribute checks removed:
if (
    $node->isRouter == 1)

    {
      return true;
    }
return false;


Will remove any bound node.

The relevant nodes have isRouter = Yes on the object details tab.

Same is happening to all atuo-bind containers (looking at isBridge, or isPrinter etc).
#35
Just wanted to bump on this topic to check if anyone has used the physical links feature and what for?
#36
Likewise if there was a way to enable the responsible users to be listed on the overview as well that would be cool.  One less trip to the node properties.
#37
Hi, just a suggestion.  Like the new layout of the object details overview in 3.4.

Could the commands box be moved over and under the capabilities box on the right?

Would give a little more room so the comments box could be visible, at the moment for me it is always pushed off screen.

Of course, the ultimate dream is to be able to adjust the layout of the overview by dragging the boxes into our own preferred order :D

Thanks for the update all.
#38
Hi I just wondered if anyone is using the "physical links" feature introduced in 3.1? Anyone got an example of how they're using it? I'm guessing its still early days on this feature?

I seem to get a yellow "error getting physical link list (Access Denied)" on every panel on every object that tries to view the physical links tab.  If I try to create a test link on the object physical links tab I also get access denied error.  However if I create a test link from Configuration > physical links, that works and shows up on objects.  I can't see any missing permissions in access control of user/group/object.  Also on the object's tab, the physical links sub-tab is missing an icon.

The other thing I'm trying to understand is how to use it properly. 

If I have devices linked as follows:



PC --> Patchpanel A/1 --> switch 0/1



Is the idea that you need to create 2x physical links for each side of the patch panel?

eg:

  • Link A: PC LAN interface -> Rack 1: Patch A/1 BACK
  • Link B: Rack 1: Patch A/1 FRONT -> Switchport 0/1 interface

Feature requests:

  • Will this feature integrate with the "find switchport" to include the physical links?
  • Could there eventually be a "layer-1" topology map as there is with layer-2 and layer-3 maps?  It would be great to potentially see all the cable joins in a relationship from switch to end device. I guess that would need a 'physical link' from a wall-plate to device as well as the rack side.
#39
Since upgrading to 3.0 I notice that network map link bend points seem to be a bit wonky.

If you insert or move a bend point the link label no longer closely follows the path of the link.  Instead it stays close to the original 'direct mode' path of the link before the bend point was inserted.  In 2.x it used to stay attached to the path.

Dragging bend points or adding removing sometimes seems to snap the link itself back to being direct mode although the bend point circles will stay in place.  This then flickers back and forth sometimes.

I found bend points useful to map diverse VPN paths between two locations and separate them enough to read the labels clearly.

I assume its a client console issue?  Although the two screenshots show two maps generated in the java console and web console so issue is common to both.

NXCM: 3.0.224
Server: 3.0.2292

Edit: created NX-1691
#40
Hi, I could only try status polls as configuration polls were unavailable as the node was classed as unreachable.  Any other nodes polled would only say that the proxy was unreachable.

It is directly reachable through an L2TP VPN.  Tried with or without dst-nat on the client router (currently no nat from server to agent as non-overlapping IP space).

Tried both creating the node in the zone and setting as node proxy or moving into the zone from root zone. 

So far since adding ZoneUIN to agent config its been holding steady for a few hours now.  The only mention in the docs regarding that attribute I can find is with regard to syslog source mapping?
#41
I think I've got this working now, just testing to be sure.

Looks like I have to specify an undocumented ZoneUIN value in the agent? 

https://github.com/netxms/netxms/blob/85ad72844ebe7361d714efac575e8f69f15517cb/src/agent/core/nxagentd.cpp#L337

At least after setting that and restarting and then moving the agent into the zone it now seems to have kept the connection working.
#42
Looking at the query in postgres we have a large syslog table (>20GB), and it seems the main issue is the scan back through all timestamps by default when right clicking on a zone or subnet and choosing syslog:



netxms=# explain SELECT msg_timestamp,source_object_id,zone_uin,facility,severity,hostname,msg_tag,msg_text FROM syslog WHERE msg_id<=399610423 AND (source_object_id IN (45902, 45930, 45940, 45948, 45953, 45967, 46061, 46106, 46107, 46109)) ORDER BY msg_timestamp DESC LIMIT 1000;
                                                                    QUERY PLAN
---------------------------------------------------------------------------------------------------------------------------------------------------
Limit  (cost=0.57..15744.67 rows=1000 width=160)
   ->  Index Scan Backward using idx_syslog_msg_timestamp on syslog  (cost=0.57..18440640.31 rows=1171273 width=160)
         Filter: ((msg_id <= 399610423) AND (source_object_id = ANY ('{45902,45930,45940,45948,45953,45967,46061,46106,46107,46109}'::integer[])))
(3 rows)



If I manually build a search in the syslog window its a much shorter scan (and a lightly different query constructed):


netxms=# explain SELECT msg_timestamp,source_object_id,zone_uin,facility,severity,hostname,msg_tag,msg_text FROM syslog WHERE msg_id<=399611781 AND ((source_object_id = 45948) OR (source_object_id = 45940) OR (source_object_id = 45930) OR (source_object_id = 46109) OR (source_object_id = 46107) OR (source_object_id = 46106)) AND (msg_timestamp BETWEEN 1569333600 AND 1569419999) ORDER BY msg_timestamp DESC LIMIT 1000;
                                                                                                           QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Limit  (cost=0.57..1418.03 rows=48 width=160)
   ->  Index Scan Backward using idx_syslog_msg_timestamp on syslog  (cost=0.57..1418.03 rows=48 width=160)
         Index Cond: ((msg_timestamp >= 1569333600) AND (msg_timestamp <= 1569419999))
         Filter: ((msg_id <= 399611781) AND ((source_object_id = 45948) OR (source_object_id = 45940) OR (source_object_id = 45930) OR (source_object_id = 46109) OR (source_object_id = 46107) OR (source_object_id = 46106)))
(4 rows)




Could there be a preference to set a default date range for syslog/event log searches (so that any right click of a container/subnet/zone defaults to say 1 day or 1 week).  Or could you not immediately execute the search when right clicking and instead take you to the populated syslog search window to allow you to enter a time range?

Or is there some index-fu that could speed this up?

Not sure what the most usable approach is here.

Cheers.
#43
If I select a single node and right click to get to syslog it loads really quickly.  If I right click on a container or subnet and view syslog it never seems to complete.  I haven't looked at the SQL but I assume there are missing indexes for container/subnet and its doing a full table scan?

I came across this old thread talking about adding the indexes to source: https://www.netxms.org/forum/feature-requests/syslog-table-index/

Is it feasible to add one to containers and/or subnets too?

Cheers.
#44
Hi have upgraded to 3.0.2292 and am trying to create a node in a zone and set it as the zone proxy and it doesn't seem to work if the proxy is in the zone.

eg: I have zone 1 and 2.  Netxms server is in zone 1.  If I create the proxy node in zone 1 and set it as the zone proxy for zone 2 (the old way as I understand it) then I can successfully poll all zone 2 nodes and things like the internal topology show the connection going via the proxy.

If I create the node in zone 2 as a zone proxy (or move the node into the zone 2) then the proxy itself can't be reached in a status poll and the whole zone goes unreachable.

My understanding is that the new way is to create the proxy for the zone inside that actual zone?  Doesn't seem to be working for me.

Have tried setting the zone 2 proxy to be its own proxy for polling/services and also tried the netxms server proxy.  Only thing that works is to put the proxy in the root zone 1 as we used to.
#45
Is this something Grafana would be useful for?  Keep the NetXMS access for ops internal and then publish zone specific dashboards to Grafana for customers? 

I suppose in the future the WebAPI might allow someone to write a customer focused client interface?

Has anyone done something like that now?