Linux monitoring

This Wiki is deprecated and we are are currrently migrating remaining pages into product documentation (Admin Guide, NXSL Guide)

==Intro==

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 monitoring

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 monitoring

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

Disk monitoring

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.

Service/daemon monitoring

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"