Site /
NjmonAixV83ManualPage
njmon for AIX version 83 Manual Page
If you install with the "ninstall" supplied simple shell script as root user, it installs the manual pages for njmon and nimon (the same page covers both).
Access with the regular UNIX/Linux command: man njmon
njmon & nimon(1) General Commands Manual njmon & nimon(1) NAME njmon and nimon are the same program - njmon: save performance statistics in JSON format. - nimon: save same stats in InfluxDB Line Protocol format. BRIEFLY Performance statistics agent outputting in - JSON format for Time-Series databases including InfluxDB. - InfluxDB Line Protocol format directly to InfluxDB. Default is stdout to allow using a shell pipe to other commands. The ninstall shell script puts njmon and nimon into /usr/lbin. The nmeasure programs allow adding your own data to InfluxDB. Version Version: 83 SYNOPSIS Core options to save to save the statistics to a file. njmon -s seconds -c count [-m directory -f] Other options -a file -b -B -c count -C -d -D -e -h -k -K pidfile -L -V -n -o -O org -P -q tags -r -R -t percent -T token -u -U -v -W -? -@ -! njmon specific options -i njmond-hostname -p njmond-portno -e -I nimon specific options -i InfluxDB-hostname [-p InfluxDB-portno] [-x InfluxDB-database] [-y InfluxDB-username [-z InfluxDB-password]] -H -w -J DESCRIPTION These are the njmon command options in alphabetical order. -a file Read the command line arguments from a file (so no passwords are seen in the ps command output). Place just the command arguments into a config file (not including the command name). Use the same arguments, all on the first line, space separated. Only have the -a option on the actual command line. Example: nimon -c 1440 -s 60 -i myinflux -x njmon -y fred -z abc123 Create a file called njmon.conf: -c 1440 -s 60 -i myinflux -x njmon -y fred -z abc123 Then run the command: njmon -a njmon.conf Note: user and and passwords need to be setup in the InfluxDB configura‐ tion (not used much). -A hostname User supplied host override - ignoring the actual hostname. Some people have different servers with the same hostname! -b For Process stats, switch off adding pid to the process names: "ksh_76927" becomes "ksh". This can help if you want to add up the the numbers for all processes with the same name. -B Adds extra raw mode statistics - without maths to convert to aver‐ ages or rates in the last period. These are not user friendly but can help if you want to do the maths. Look for measures and statis‐ tics containing "raw". -c count Number of snapshots of the statistice to save and then stop (default forever). -C Shared CPU/Processor Pool, you need to enable performance data col‐ lection on the HMC. -d Switch on debugging output. Note the may ruin the JSON or line pro‐ tocol format. So also use the -f option to saved to a file. -D Skip dangerous libperfstat function that can cause problems. Tempo‐ rary fix for some older AIX versions. -e NJMON mode only. Switch on elastic mode (also called elasticsearch, ELK stack) with sub-arrays (with []) instead of sub-JSON data struc‐ tures for variable numbers of resources like filesystems, disks, networks etc. -f file Output to file (not stdout) to two files below: NJMON saves to hostname_<year><month><day>_<hour><minutes>.json NI‐ MON saves to hostname_<year><month><day>_<hour><minutes>.influxlp Debug & Errors are saved hostname_<year><month><day>_<hour><min‐ utes>.err In NIMON mode: If you add a second "f" like "-ff" or "-f -f" then the .influxlp output file has a nano seconds since epoch start time‐ stamp at the end of every measure. This should allow it to be in‐ serted in to the InfluxDB using the "influx" command. In NJMON mode: If you add a second "f" like -ff or -f -f then each snapshot has its own file. The file name format is host‐ name_<year><month><day>_<hour><minutes>_<6 digit sequence_num‐ ber>.json. The sequence number starts at 000000. There is only a single error file. -H NIMON mode only. This option makes nimon send to InfluxDB the full hostname (as the host tag). The short hostname is the default. This is important if many servers have the same short name in dif‐ ferent domains. For example, myserver.achme.com normally has host=myserver. With the -H option the Fully Qualified Domain Name (FQDN)i s used host=myserver.achme.com. With NJMON mode the host‐ name is extracted from the stats by njmond.py. If you need full hostnames tags for JSON data modify the njmond.py program. -h Output these hints, help details and then stop. -i IP-Address or -i Hostname NJMON mode: IP Address or Hostname of the central server running nj‐ mond.py. NIMON mode. IP Address or Hostname of the InfluxDB server. -I Force switch to running in NIMON mode (regardless of the command name used) for InfluxDB Line Prootocl output format. -J Force switch to running in NJMON mode (regardless of the command name used) for JSON output format. -k If the file /tmp/njmon.pid is not found this njmon continues run‐ ning. For nimon the file is called /tmp/nimon.pid. If the file is found, the process PID is read from it & if it is found that the process is running then this njmon (or nimon) silently exits. If no process is found running with this PID then this njmon continues running. This allows you to try starting njmon or nimon say once an hour from crontab. This will restart the njmon or nimon only if the previous one stopped. njmon/nimon will remove the njmon.pid or ni‐ mon.pid file when it stops normally. njmon/nimon will produce a warning and stop, if it detects the .pid file but can't gain access. Usually, due to not being the file owner or having the wrong file permisions. -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 and use /home/nj‐ mon. njmon will produce a warning and stop, if it detects the .pid file but can't gain access. Usually, due to not being the file owner or having the wrong file permisions. -L Don't collect Logical Volume stats to reduce the CPU processing time. If not the root user then these are silently switched off. -m directory The program will change to the directory before creating files. -n No PID for the child procees if printed out at start up. I child process is create to make a new process group so that this program does not get stopped if you log out. -o If using Oracle ASM raw disks have zero size. This options requests using "bootinfo -s" to find out the ASM disk sizes. -O org Set the organisation. This is use in nimon mode and required for In‐ fluxDB 2+. InfluxDB 2+ uses this to separate datam users and dash‐ boards. This could ne a company name, if hostinf for more than one. Or a department name or group os users or a workload. -p port-number NJMON mode. Network port number of the central njmond.py server. Many users use 8181 as the port number. NIMON mode. Network port number of the InfluxDB server. If not set the default InfluxDB port number of 8086 is used. The InfluxDB port number can be set in the InfluxDB config file. -P Switch on the collection of process statistics (Note: these can be very large). Processes using less than the CPU threshold are ig‐ nored. See -t percent option. This reduces the collection of sta‐ tistics for processes not using any CPU time. -q influxDB-tags The tag format is a comma separated tagname=tagvalue both parts are strings. No double or single quotes. For example: -q dept=foo‐ bar,area=51 This option adds user defined tags that might include: location, owner, workload, department spp, ssp or HAcluster. See InfluxDB documentation for the definition of the Line Protocol tag syntax. No spaces are allowed in the tags string. New in njmon version 81 there is a new tags measure contaning origi‐ nal and user defined tags. These can be added to Grafana single stats text boxes. NIMON mode. nimon InfluxDB default tags are: hostname, os, archi‐ tecture, serial_no, mtm and now includes the additional tags auto‐ matically. There is also a new measure called tags with keys of the default tags and additional tags with "_tag" added to the names. NJMON mode. njmon when sending data to InfluxDB via njmond has In‐ fluxDB tags are: hostname, os, architecture, serial_no and mtm. These are extracted from the JSON data by njmond. njmond would need to be changed to add the additional tags. njmond may be updated in the future to use these the tags measuremen for the tags. -r Random pause at the start. Stops cron starting every njmon in sync on many endpoints (VM) with network time protocal. -R Reduced mode, don't collect CPU core thread: logical CPUs like cpu_logicals, cpu_physicals, 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. Processes us‐ ing less than this value are not included in the statistics thuse removing processes using no (or very little) CPU clock cycles and drastically reducing the data for proesses. -T token For NIMON mode, InfluxDB 2+ uses a different REST API and this op‐ tion switches NIMON to the the API. The Security Token is foun in the InfluxDB 2+ CLI or GUI. It is about 50 characters (Lower and up‐ percase and numbers and some symbol letters). See also the -O org optio. -v Only available if njmon or nimon compiled with VIOS support. Compile with -D VIOS This adds VIOS virtual disk and networks statistics. -u Only available if njmon compiled with VIOS support. Compile with -D SSP This adds VIOS Shared Storage Pools (SSP) statistics. -U Only available if njmon compiled with VIOS support. Compile with -D SSP This adds VIOS Shared Storage Pools (SSP) statistics for each node. -V Don't collect Volume Group stats to reduce the CPU processing time. If not the root user then these are silently switched off. -w NIMON mode only. Switch on InfluxDB telegraf output mode, Which ex‐ cludes the HTTP POST string. -W Ignore warning messages. Use this to supress messages that you you no longer want to see. -x database NIMON mode only. InfluxDB database name (created with influx com‐ mand then: create database njmon and exit). Note: nimon and njmon can share the same database and it is normally called "njmon". If not specified "njmon" is the default. In InfluxDB2 this is now called a bucket. -y username NIMON mode only. InfluxDB server username for authentication. Mandatory, if you have set up InfluxDB to enforce username and pass‐ word autentication. The Default is no username and password is nec‐ essary and the username is ignored. -z password NIMON mode only. InfluxDB server password for authentication. Mandatory, if you have set up InfluxDB to enforce username and pass‐ word autentication. The Default is no username and password is nec‐ essary and the password is ignored. -? Same as the -h Help option. -! Output the full version information and stop. For example: Version njmon4AIX7-v80-13/05/2022 -@ Switch on Workload Manager stats (see wlmstat command) Notes on Spectrum Scale (GPFS) njmon automatically collects GPFS if /usr/lpp/mmfs/bin/mmksh and /usr/lpp/mmfs/bin/mmpmon are found on the system. However, if GPFS is present but off it can get confused. Use: export NOGPFS=1 to set a shell variable before running njmon or nimon will disable GPFS stats. You can also compile out GPFS support with -D NOGPFS EXAMPLES for using njmon 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 user‐ name /password. 2 Syntax 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 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 In‐ fluxDB 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/nj‐ mon2influxturbo.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 13 Output the version njmon and stop 13 Syntax njmon -! EXAMPLES for using nimon 1 Simple use Every minute (60 seconds), all day (1440 minutes), InfluxDB server hostname, default InfluxDB port (8086), database njmon. 1 Syntax nimon -s 60 -c 1440 -i influxbox -x njmon 2 With user & password Every 1 minute (-c 60) all day (1440 minuts in a day), InfluxDB server hostname influxbox, InfluxDB port (-p 8086) and username /p assword. 2 Syntax nimon -s 60 -c 1440 -i influxbox -p 8086 -x njmon -y Nigel -z passwd 3 Add prosses and remove LVM data - assuming the database of njmon and the InfluxDB port of 8086 Add process statistics (-P) and remove LV + VG data (-LV). 3 Syntax nimon -s60 -c 1440 -PLV -i influxbox 4 Every half minute with a non-default port of 8888 Collect statistics twice a minute (-s 30) and all day (2880 half minutes in a day). 4 Syntax nimon -s30 -c 2880 -i influxbox -p 8888 -x njmon 5 Add VIOS statistics Adding VIOS extra statistics for virtual resources and including SSP - requires nimon version with VIOS compiled in. 5 Syntax nimon -s30 -c 2880 -vuU -i influxbox 6 Crontab Crontab entry start at 4 minutes after midnight, save data every 30 seconds for a day. 6 Syntax 4 0 * * * /usr/lbin/nimon -s30 -c 2880 -vuU -i influxbox 2>/dev/null 7 Crontab with kill option Crontab entry starting hourly and checking if the previous nimon is still running (if it is this nimon stops itself). This uses a PID file called /tmp/nimon.pid. 7 Syntax 0 * * * * /usr/lbin/nimon -s 60 -k -i influxbox 2>/dev/null 8 Using a PID file Naming a PID file so it is not in /tmp which might be erased 8 Syntax 0 * * * * /usr/lbin/nimon -s 60 -K /home/nag/nimon.pid -i influxbox 2>/dev/null 9 Saving to a local file Save the nimon data to take a file (-f). This file can not be loaded in to InfluxDB due to it not having time and date stamp. The data and time are added by InfluxDB as th e data is loaded. The two files will end .err and .influxlp (lp = Line Protocol). 9 Syntax nimon -s 10 -c 3 -f 10 Saving to a file and a specific directory nimon moves to the directory /tmp before creating any files. Save the nimon data to take a file (-f). This can not be loaded in to InfluxDB 10 Syntax nimon -s 1 -c 3 -m /tmp -f 11 Prometheus, elastic (ELK) and Splunk support Send data to telegraf and then onto Prometheus, elastic (ELK) or Splunk. You will have to set up telegraf with an InfluxDB input plugin and an output plugin of type Prometheus. Then point Prometheus at the telegraf server to collect the data. Similar for elastic and Splunk. 11 Syntax nimon -s 15 -c 5760 -w -i telegraf_server -p 8888 12 Using a conf file Using a configuration file to contain the nimon 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/nimon -a /etc/njmon.conf 12 An example /etc/njmon.config file contains just the options: -s 60 -c 1440 -i influxbox 13 Output the version nimon and stop 13 Syntax nimon -@ 14 Simple example but using InfluxDB 2+ 10 Syntax nimon -k -s 30 -i influx_hostname -O IBM -T HyS7g1TT-...KK== SIGNALS Dynamically, toggle on verbose debug output using SIGUSR1. This is good for problem determination and njmon development. kill -USR1 <njmon-pid> FILES /usr/lbin/njmon The executable command 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/filesrefer‐ ence/libperfstat.h.html Grafana dashboards (assuming InfluxDB hold the data) https://grafana.com/grafana/dashboards?search=njmon AUTHOR Nigel Griffiths nigelargriffiths@hotmail.com @mr_nmon BUGS None, of course. But just in case, please report issues to the author by email. AIX and VIOS njmon & nimon(1)