Site /
NjmonManualPage
njmon(1) (njmon for AIX and VIOS) njmon(1) NAME njmon - save performance statistics in JSON format. BRIEFLY Performance statistics agent outputting in JSON format for various Time-Series databases including InfluxDB. Default is stdout to allow using a shell pipe to other commands. The ninstall shell script puts njmon into /usr/lbin. Version Version: 69 SYNOPSIS Core options njmon -s seconds -c count [-m directory -f] Other options -a file -b -c count -C -d -D -e -h -k -K pidfile -L -V -n -o -P -t percent -r -R -u -U -v -? -@ njmon specific options -i hostname -p portno DESCRIPTION These are the njmon command options in alphabetical order. -a file Place the command arguments into a config file. Read the command line arguments from a file (so no passwords are seen in the ps command output). Use the same arguments, all on the first line, space separated. Only have the -a option on the actual command line. -b Process stats switch off adding pid to the process names: "ksh_76927" becomes "ksh". -c count Number of snapshots then stop (default forever). -C Shared CPU/Processor Pool, you need to enable performance data collection on the HMC. -d Switch on debugging output -D Skip dangerous libperfstat function that can cause problems. -e Switch on elastic (ELK) mode with sub-arrays instead of Page 1 (printed 11/2/20) njmon(1) (njmon for AIX and VIOS) njmon(1) sub-JSON data structures for variable numers of resources like filesystems, disks, networks etc. -f file Output to file (not stdout) to two files below: Statistics: hostname_<year><month><day>_<hour><minutes>.json Errors: hostname_<year><month><day>_<hour><minutes>.err -h Output hints and help details and stop. -i ip -i hostname IP Address or Hostname of the central njmond.py server. -k If the file /tmp/njmon.pid is not found this njmon continues running. If the file is found, the process PID is read from it & if it is found that the process is running then this njmon exits. If no process is found running then this njmon continues running. This allows you to try starting njmon say once an hour from crontab. This will restart the njmon only if the previous one stopped. njmon will remove the njmon.pid, file when it stops normally. -K pidfile This is same as the -k option but the user decides the directory and filename for the file containing the Process Identity (PID). Also, you can run multiple njmon processes, using different PID files. Some users prefer to use a file in, for example, /var/logs but that requires root access. Others prefer to avoid /tmp. -L Don't collect Logical Volume stats (takes extra CPU cycles). If not the root user then these are silently switched off. -m directory Program will change to the directory before creating files. -n No PID printed out at start up. -o If using Oracle ASM raw disks have zero size, so use bootinfo -s to find the size. -p 8086 InfluxDB port. Port 8086 is the default (unless changed in the InfluxDB config file). Page 2 (printed 11/2/20) njmon(1) (njmon for AIX and VIOS) njmon(1) -P Switch on the collection of process statistics (Note: these can be very large). Processes using less than the threshold are ignored. See -t percent option. -r Random pause at the start. Stops cron starting every njmon in sync. -R Reduced mode, don't collect CPU core thread: logical CPUs like cpu_logical, physical, syscall stats nor netbuffers. -s seconds Seconds between snapshots of data (default 60 seconds). -t percent Process CPU cut-off threshold percent. Default 0.001 -v Only available if njmon compiled with VIOS support. This adds VIOS virtual disk and networks statistics. -u Only available if njmon compiled with VIOS support. This adds VIOS Shared Storage Pools (SSP) statistics. -U Only available if njmon compiled with VIOS support. This adds VIOS Shared Storage Pools (SSP) statistics for each node. -V Don't collect Volume Group stats (takes extra CPU cycles). If not the root user then these are silently switched off. -? Same as the -h Help option. -@ Output the full version information and stop. For example: Version njmon4AIX-v69-@01/11/2020-AIX722 EXAMPLES 1 Simple use Every minute (60 seconds), all day (1440 minutes), njmond server hostname, default InfluxDB port (8181). 1 Syntax njmon -s 60 -c 1440 -i centralbox -p 8181 2 Piping the JSON output in to a data handler Every 1 minute (-c 60) all day (1440 minutes in a day), InfluxDB server hostname influxbox, default InfluxDB port (-p 8086) and username /password. 2 Syntax Page 3 (printed 11/2/20) njmon(1) (njmon for AIX and VIOS) njmon(1) njmon -s 60 -c 1440 | myprog 3 Add prosses and remove LVM data Add process statistics (-P) and remove LV + VG data (- LV). 3 Syntax njmon -s60 -c 1440 -PLV -i centralbox -p 8181 4 Every half minute Collect statistics twice a minute (-s 30) and all day (2880 half minutes in a day). 4 Syntax njmon -s30 -c 2880 -i centralbox -p 8181 5 Add VIOS statistics Adding VIOS extra statistics for virtual resources and including SSP - requires njmon version with VIOS compiled in. 5 Syntax njmon -s30 -c 2880 -vuU -i centralbox -p 8181 6 Crontab Crontab entry start at 4 minutes after midnight, save data every 30 seconds for a day. 6 Syntax 4 0 * * * /usr/lbin/njmon -s30 -c 2880 -vuU -i centralbox -p 8181 2>/dev/null 7 Crontab with kill option Crontab entry starting hourly and checking if the previous njmon is still running (if it is this njmon stops itself). This uses a PID file called /tmp/njmon.pid. 7 Syntax 0 * * * * /usr/lbin/njmon -s 60 -k -i centralbox -p 8181 2>/dev/null 8 Using a PID file Naming a PID file so it is not in /tmp which might be erased Page 4 (printed 11/2/20) njmon(1) (njmon for AIX and VIOS) njmon(1) 8 Syntax 0 * * * * /usr/lbin/njmon -s 60 -K /home/nag/njmon.pid -i centralbox -p 8181 2>/den/null 9 Saving to a local file Save the njmon data to take a file (-f). This file can be loaded in to InfluxDB later with njmon2influx.py. The two files will end .err and .influxlp (lp = Line Protocol). 9 Syntax njmon -s 10 -c 30 -f 10 Saving to a file and a specific directory njmon moves to the directory /tmp before creating any files. Save the njmon data to take a file (-f). This can be loaded in to InfluxDB later. 10 Syntax njmon -s 60 -c 1440 -m /tmp -f 11 Use ssh to start the njmonagent on a remote endpoint, return the data over ssh and pipe to the InfluxDB 11 Syntax 0 * * * * /usr/bin/ssh /usr/lbin/njmon -s 15 -c 5760 | /usr/lbin/njmon2influxturbo.py 12 Using a conf file Using a configuration file to contain the njmon arguments. This means the arguments are not seen in the ps command output. Use the -a argument-file option. 12 Syntax For example command line: /usr/lbin/njmon -a /etc/njmon.conf 12 An example /etc/njmon.config file contains just the options: -s 60 -c 1440 -i centralbox -p 8181 FILES /usr/lbin/njmon The executable command Page 5 (printed 11/2/20) njmon(1) (njmon for AIX and VIOS) njmon(1) SEE ALSO nimon(1) nimon is like njmon but outputs InfluxDB Line Protocol data. Online njmon Manual website See http://nmon.sourceforge.net/pmwiki.php?n=Site.NjmonManualPage njmon Download Project website From http://nmon.sourceforge.net/pmwiki.php?n=Site.Njmon AIXpert Blog Articles on nimon and njmon https://ibm.biz/AIXpertBlog perfstat Library website This is the source of most of the statistics documentation https://www.ibm.com/support/knowledgecenter/ssw_aix_72/filesreference/libperfstat.h.html AUTHOR Nigel Griffiths nigelargriffiths@hotmail.com @mr_nmon BUGS None, of course. But just in case, please report issues to the author by email.