This article assumes that the NetXMS agent is used to monitor the node.
While monitoring using SNMP is absolutely possible, this article does not cover is, as monitoring using the agent is much easier (due to inherent difficulties and particularities of SNMP).
CPU-related agent parameters are located under "System.CPU.*".
Usually, monitoring these should be sufficient:
|System.CPU.Count||CPU core count|
|System.CPU.LoadAvg||1 minute load average|
|System.CPU.Usage||1 minute percentual utilization|
Memory (RAM) related parameters are located under "System.Memory.Physical.*".
You should monitor these:
|System.Memory.Physical.Total||RAM - size|
|System.Memory.Physical.AvailablePerc||Actual free memory percentage (not counting cache)|
|System.Memory.Physical.FreePerc||Free memory percentage (counting with cache)|
|System.Memory.Physical.Free||Free memory (counting with cache)|
|System.Memory.Physical.Available||Actual free memory (not counting cache)|
Swap monitoring is also desired. You can find the related parameters under "System.Memory.Swap.*".
Monitoring these is useful:
|System.Memory.Swap.Total||Swap - size|
|System.Memory.Swap.Used||Swap - used|
These parameters are under "FileSystem.*".
You probably want at least this:
|FileSystem.Total("path")||Storage - size of "path"|
|FileSystem.UsedPerc("path")||Storage - usage of "path"|
|FileSystem.Used("path")||Storage - used on "path"|
For each partition/volume that interests you.
Usually, this will be atleast for "/", "/boot", etc.
You can monitor process count and memory usage of individual processes using:
|Process.Count("name")||Process count of the "name" process|
|Process.WkSet("name")||Physical memory used by process "name"|