Site /
NjmonLinuxV83OnlineHelp
Online "njmon -h" output for njmon for Linux version 83
Access with the regular UNIX/Linux command: njmon -h | less
In this case from Ubuntu 23 running on my Laptop under VirtualBox.
./njmon_Ubuntu23_x86_64_v83: help information. Version:njmon4Linux-v83-Ubuntu-23-x86_64-njmon_linux_v83.c (Jan 28 2024) - Performance stats collector outputting JSON or Influx Line Protocol format. - If the commend starts with njmon it runs in NJMON mode - If the commend starts with nimon it runs in NIJMON mode - -J forces NJMON mode regardless of the command name - -I forces NIMON mode regardless of the command name - Note:njmon & nimondata is exactly the same, so use one database. - Default is stdout - Core syntax : ./njmon_Ubuntu23_x86_64_v83 -s seconds -c count - File output : -m directory -f - Check & restart: -k and -K filename - Data options: -A alias -H -P -t % -b -d -D -F -n -r -R -W - Argument file: -a file (do not include the command name) - NJMON Network connection: -i njmond_host -p port - NIMON Network connection: -i InfluxDB_host -p port NIMON InfluxDB Details : -x database [-y username [-x password]] NIMON InfluxDB2 : -x bucket -O Org -T <token> Prometheus/telegraf mode: -w skips HTTP REST API data (POST, content, length) in the output stream. Good when using telegraf and/or Prometheus -! : Version check and immediate exit -? : This help informtion -s seconds : seconds between snapshots of data (default 60 seconds) -c count : number of snapshots (default forever) -D : Add diskstats measurement includes all devices in /proc/diskstats -m directory : Program will cd to the directory before output -M : Filesystems listed by mount point (like AIX njmon) and not filesystem name -f : Output to file (not stdout) to two files below : NIMON mode - Data: hostname_<year><month><day>_<hour><minutes>.influxlp : NJMON mode - Data: hostname_<year><month><day>_<hour><minutes>.json : Error: hostname_<year><month><day>_<hour><minutes>.err -ff : NIMON mode - Note: a second -f adds a timestamp so this data can be added to InfluxDB later -A alias : User defined alias hostname to work around crazy duplicate hostnames -a file : Command line arguments are in the file (hides passwords) : Use the same arguments, all on the first line, space separated : Only have the -a option on the actual command line -H : NIMON mode - Force host tag to be a Fully Qualified Domain Name -k : NIMON mode - Read /tmp/nimon.pid for a running nimon PID & if found -k : NJMON mode - Read /tmp/njmon.pid for a running njmon PID & if found still running then this process exits quietly -K filename : User defined pid filename (implies -k). Allows not using /tmp or multiple concurrent data captures -I : Force to NIMON mode. Saving InfluxDB Line Protocol data or njmond.py or other Timeseries database -J : Force to NJMON mode. Set njmon mode for JSON format for njmond.py or other Timeseries database -P : Add process stats (take CPU cycles and large stats volume) -t percent : Set ignore process CPU use percent threshold (default 0.01%) -b : Switch of adding pid to the process names: "ksh_76927" -> "ksh" -? or -h : This output and stop -d : Switch on debug tracing (output no longer JSON/line protocol format) -W : Switch off warning messages in error output stream -r : Random start pause. Stops cron making every program send data in sync -n : No PID printed out at start up. -R : Reduced stats - skip logical CPU stats for SMT threads. -F : Switch off filesystem stats (autofs and tmpfs can cause issues) --- NIMON mode options --- - Sent data to InfluxDB (all of these are inportant for InfluxDB): -i hostname : Hostmane or IP address of the influxDB server -p port : InfluxDB port (default is 8086) -x njmon : InfluxDB database name created with influx > create database njmon. (default is njmon) -y user : Mandatory InfluxDB username - if you have set a username for the API (otherwise ignored) -z pass : Mandatory InfluxDB password - if you have set a password for the API (otherwise ignored) -w : For output to Telegraf. Dont send POST, message type or packet size -v : Show data + response to InfluxDB on stderr Currently, InfluxDB security certificates are not implemented --- NIMON with InfluxDB 2.0 options --- -O org : InfluxDB 2.0 uses Organisations for data, users, dashboards etc. Default is "default". -T token : Security Token from InfluxDB 2.0 GUI & switch to 2.0 mode -q additional_tags : additional tags for nimon "-q dept=foobar,area=51" NIMON Examples: 1 Take a look at the Line Protocol data /usr/local/bin/nimon -s 2 -c 3 -f then edit <hostname>_<date>_<time>.influxlp 2 Every 1 minute all day using the default port of 8086 /usr/local/bin/nimon -s 30 -c 2880 -i influxbox -x njmon -y Nigel -z passwd 3 Add process stats & use IP address /usr/local/bin/nimon -s 60 -c 1440 -P -i 9.137.62.12 -p 8086 -x njmon 4 Crontab run 1 day - start 1 minute after midnight, save local data every 30 seconds 1 0 * * * /usr/local/bin/nimon -s 30 -c 2880 -i influxbox -p 8086 -x njmon -y Nigel -z passwd 5 Crontab - hourly check/restart nimon (if nimon is not running) 0 * * * * /usr/lbin/nimon -k -s 60 -i influxbox -p 8086 -x njmon 6 Crontab - as 5 but output for telegraf 0 * * * * /usr/lbin/nimon -w -k -s 60 -i influxbox -p 8086 -x njmon 7 InfluxDB 2+ using default port 8086 & default bucket njmon /usr/lbin/nimon -k -s 60 -i influx2box -O IBM -T Ptf$g4...== --- NJMON mode options or other Time-Series database --- Push data to central njmond daemon: -i ip/host : IP address or Hostname of the njmond central daemon -p port : Port number on njmond.py host NJMON Examples: 1 Every 5 mins all day /usr/local/bin/njmon -s 300 -c 288 -f -m /home/perf 2 Piping to data handler all day at 30 second intervals /usr/local/bin/njmon -s 30 -c 1440 | myprog 3 Use the defaults (-s 60 forever) and save to a file ./njmon > my_server_today.json 4 Send data to the central daemon with no password ./njmon -s 30 -c 2880 -i admin.acme.com -p 8181 5 Send data to the central daemon with process stats and with password ./njmon -s 60 -c 1440 -P -i admin.acme.com -p 8181 -X password Crontab options: 6 Crontab only save to a file (2 minutes past midnight) 2 0 * * * /usr/local/bin/njmon -s 60 -c 1440 -f -m /home/perf 7 Crontab daily at midnight start sending data to central server 0 0 * * * /usr/local/bin/njmon -s 30 -c 2880 -i admin.acme.com -p 8181 8 Crontab send data to central server check hourly (if njmon is not running) 0 * * * * /usr/local/bin/njmon -k -s 30 -i admin.acme.com -p 8181 9 Crontab use ssh on Influx server to start njmon, send data back via socket to a local InfluxDB "injector" program 0 0 * * * ssh root@endpoint /usr/local/bin/njmon -s 30 -c 2880 -i admin.acme.com -p 8181