tzcole
Posts
-
How does Merge Duplicate Nodes work? -
How does Merge Duplicate Nodes work?Hi Victor,
I have included a screenshot of the Interfaces tab for one of the nodes of the Isilon cluster.
I also performed an SNMP walk, from within NetXMS, and exported to a .csv file. Searching the CSV, I was able to find support for both IP and Interface MIB.
It looks like the IP's which match the interface TAB are from the "ipAddrTable" of the IP MIB.
But all of the usable IP's (which the Isilon clients connect to) of the system are found in the "ipNetToMediaTable", also of the IP MIB. The IP addresses found in this table are NOT the ones listed on the Interfaces tab.
Cheers,

-
How does Merge Duplicate Nodes work?Hi,
I'm wondering how the merge duplicate nodes is intended to work? I have an Isilon (SNMP discovered), whose discovery appears as a large range of IP addresses. There are more IPs than nodes. This is part of the architecture to distribute the load and rebalance for node maintenance/failure. But each IP appears as it's own node. For simplicity I have explained a scaled down example below.
4 physical nodes (where node is a server) in a cluster. The cluster manages 20 IPs that are distributed across the nodes. Each node may have 5 IPs for clients to connect too. The Isilon distributes clients across the IP's via integrated DNS server and DNS delegation for the service name. Should a node fail, the IPs are re-distributed across the remaining nodes.
NetXMS will discover all 20 IPs and create nodes for each IP. But I don't have 20 nodes, in my example, I have 4. I have set NetworkDiscovery.MergeDuplicateNodes to 1, but still the nodes are duplicated for every IP in the cluster. "Sys Description" is unique for each node, so during discovery I end up with many IPs with the same "Sys Description" as a unique object in NetXMS. See the image below of Object Details -> Nodes list view. My Image shows an 8 node cluster. Notice that in the Sys Description column, the names are identical for each unique node. I have some obfuscation in the IPs and node "Sys Description" columns, but the point is that I have a unique ID for each IP, instead of for each node.
Image: See attachment.
I'm not sure how the Merge Duplicates works, but I would like there to be only one node with many IPs. I like that the subnets view under "Entire Network" shows each IP, but for this type of cluster each IP should point to the appropriate unique nodes object ID. In other words, merged.
Cheers,

-
NetXMS 2.2.9 releasedThanks Victor. Will look for 2.2.10.
Kind Regards,
tzcole -
NetXMS 2.2.9 releasedVictor,
Thanks for all the great work. I wanted to share that the md5 cksum doesn't match the .md5 file for 2.2.9.
$ cat netxms-2.2.9.tar.gz.md5 539837d11d3330cf83e92d5848f91511 - $ md5sum netxms-2.2.9.tar.gz 08735855737012f471cb290732023fbd netxms-2.2.9.tar.gzAlso, timestamp for .md5 is one day earlier than .gz file. Perhaps there was an update of the netxms-2.2.9.tar.gz file. Hopefully it's not a rogue source archive.
I retrieved the files using wget.-rw-r--r-- 1 nobody nobody 58616274 Sep 28 07:15 netxms-2.2.9.tar.gz -rw-r--r-- 1 nobody nobody 36 Sep 27 09:25 netxms-2.2.9.tar.gz.md5This triggered my pause to upgrade to 2.2.9.
Kind regards,
tzcole -
nxpush, DCI values and using Application provided timestampsI have some data which is slightly delayed from the source application. The data has it's own, and more accurate timestamp, that I would like to use when adding my DCI values in NetXMS. The reason for using this timestamp, is that the delay can vary from 30 seconds to up to 2 minutes. Also, this data can be delivered in large batches. I'm pre-processing the data, but need to use the applications timestamp for accurate data reporting.
I'm looking at nxpush and/or using the agent with a script to collect these as DCI values. I can't see anywhere if we are able to provide our own timestamp as opposed to NetXMS providing time.
Any thoughts or suggestions on this scenario?
Cheers,
-
NetXMS video tutorial seriesAdvanced videos would be welcome, perhaps even a small series just on scripting.
I've also been thinking of doing some videos, or at a minimum documentation for specific use cases.
I know on the MikroTik forums, a few users have been started discussion/threads on using NetXMS, since "The Dude" software they normally use seems to have been stalled for far too long. In fact, that is how I made my way to NetXMS.
Perhaps we may need to solicit some advanced/specific use case topics that people are interested in.
Cheers,
-
NetXMS video tutorial seriesTomas,
I viewed your videos yesterday. They are a very good introduction of the basics. I think it was a good choice to hint at the advanced topics while leaving them out of this "Basics" series.
Some feedback...
- Very Awesome "NetXMS" Intro. Clip...

- Audio for the Intro is louder than your narration.
- On the "Basics 2.1: Installing for Linux" at 05:04", your terminal, using terminal-colors, is showing blue text on black background, which is hard to read. Yes, I know it's not relevant text, since you replace it, but it would help give a "Newbie" to NetXMS a sense of direction, that his "Default" file matches what you show in the video.
I had to dig deep to find any criticism, so I hope you take that as a complement to your much appreciated work.

Kind regards.
Cheers,
Tim - Very Awesome "NetXMS" Intro. Clip...
-
Linux Agent : Disk Performance Collection and Instance DiscoveryAll,
Ok, I've successfully put in place an "ExternalList" property for generating my BlockDevices list. I currently have this in my Server Managed Agent Configuration file, but I'll probably move it to a Policy later on.
The Line I've added in the "Configuration File" is.
ExternalList = BlockDevices:/bin/ls -1 /sys/block | /bin/egrep -v "loop|ram" | /bin/sort -n | /usr/bin/tr "\!" "/"I don't care for the "loop|ram" entries, so I filter them out, sort them, and provide some cleanup with tr.
The reason for my use of the /usr/bin/tr command is to convert the HP Raid device entries to a proper parseable path. (i.e. something that will resolve under the /dev directory structure.) Without the cleanup the output shows an exclamation mark in the middle, as shown here.
# /bin/ls -1 /sys/block | /bin/egrep -v "loop|ram" | /bin/sort -n cciss!c0d0 dm-0 dm-1 dm-2 dm-3 sr0The /usr/bin/tr command converts it to a slash, which will resolve relative to /dev.
# /bin/ls -1 /sys/block | /bin/egrep -v "loop|ram" | /bin/sort -n | /usr/bin/tr "\!" "/" cciss/c0d0 dm-0 dm-1 dm-2 dm-3 sr0Then in my Template -> Data Collection Configuration, for my System.IO.ReadRate(*) parameter, I've configured the Instance Discovery property as follows.
Instance discovery method = Agent List List name = BlockDevicesMany of those System.IO.* parameters require a Block Device be provided, relative to the /dev directory.
This is working for me on Oracle and CentOS Linux 6.5, using HP Physicals and XenServer VMs. Check if you have entries in your /sys/block directory structure for compatibility.
Cheers,
-
Linux Agent : Disk Performance Collection and Instance DiscoveryOk, Thank you. I will give this a try and report back on my results.
Cheers,
-
Linux Agent : Disk Performance Collection and Instance DiscoveryVictor,
Early on I looked at that. Does "System.IO.ReadRate(*)" work with filesystems? From what I gleaned from the code, it seems to want a 'Disk', that could be found under /dev. Looking at the Disk IO is more in line with what I'm looking for.
Cheers,
-
Linux Agent : Disk Performance Collection and Instance DiscoveryHi,
Thank you for a great product.
I'm setting up some Disk IO monitoring for some Linux hosts. I've been successful in pulling the data, using an explicit disk name.
In my Data Collection Configuration, on the General Tab, in Data->Parameter I'm using...
System.IO.ReadRate("xvda")I'm wanting to make this dynamic in my Template. I've been reviewing the wiki and the forum, looking for the right way to do Instance Discovery for a List of Disks. At the present, I've only setup the Agent on a Linux host, and I've not configured any SNMP on servers yet. I've been unable to find anything that points to a List/Table from the agent with this data. If nothing native exists, then I'm thinking that I'll need to leverage an "External List".
1. For this type of Data Collection, is Agent best, or should I examine SNMP? What are others doing here?
2. Am I correct in assuming that there isn't an Agent List/Table with a list of 'Disks'?
3. Are 'External Lists' my best option?Thank you and Kind Regards.
Cheers,
Tim