Let me know what is not well explained at nigelargriffiths at hotmail DOT com

njmon is like nmon but collects a lot more performance and configuration data and outputs in JSON format ready for immediate uploading to a performance stats database for near real-time graphing by online graphing tools. There is a version of njmon for AIX and another njmon for Linux.

Had reports of the -H option not working correctly, found a bug and are testing further.

njmon & nimon for AIX version 66 - Updated 1 Sept 2020 njmon & nimon for Linux version 66 - Updated 1 Sept 2020

Don't include the program name in the file.

njmon & nimon for AIX version 65 - Updated 7 July 2020 njmon & nimon for Linux version 64 - Updated 12 July 2020

nmeasure for AIX and Linux version 2 - Updated 20 Aug July 2020 Any data you can get in script you can send to the njmon database with the njmon tags, so you can graph them along with the njmon OS level stats.

Using njmon? Use njmon tools v50 package below

You can run njmon -- or -- nimon programs

All the latest njmon version 50+ Downloads in one place: njmon version 50+ release: After lot of user testing it seems pretty robust to me for njmon v53 and tools v50. Just run a test in your environment before a massive upgrade.

Special thanks to Pablo Daniel Martinez, an IBMer in Argentina, who wrote the prototype njmond.py and offered the code to me to Open Source. It's in Python 3 using multiple threads and master slaves model using queues to share work out. It is a master piece of engineering.

Make sure: njmon -? | grep -i version Downloads: njmon_aix_binaries_v52.zip njmon for AIX/VIOS: njmon_aix_code_v52.zip 24th Jan 2020: Third attempt to fix a further uptime output style - It happen when there is zero hours in the uptime! For AIX 6, 7.1, 7.2 TL2 & 7.2 TL3+ plus VIOS 2.2.6 and VIOS 3.1+

njmon_linux_binaries_v53.zip njmon for Linux: njmon_linux_code_v53.zip This includes the RHEL7 NVIDIA GPU version, if you have the NVIDIA GPU library installed at /usr/lib64/libnvidia-ml.so.1 For RHEL 7 & 8, SLES 12 & 15, Ubuntu 18 on ppc64 and AMD64 (x86_64)

njmon Central Server Tools: njmon_tools_v50.zip Includes: njmond.py, njmond.conf, njmon2influx.py (for batch loading files) plus JSON filters line2pretty.py, pretty2line.py & njmonold2line.py

NEW turbo njmon2influx: njmon2influxturbo.py''' njmon2influxturbo.py''' Use this to quickly batch load njmon JSON files. It loads via the multi-threaded & queuing njmond.py. Tested to 3500 records a second. You must be running njmond.py. Change njmond.config "workers": 10 or more to go faster. Use njmon2influxturbo -h for more information.

Bug fixes (not the main focus of version 50 but some large user requested these): Fixes in njmon for Linux v53: -P for process stats memory SIGSEGV bug, handle network with two+ IP addresses & removed devices in "Not Supported" states, removed control chars in JSON strings, removed commented out code and field hardening in debug mode. Oracle raw disk sizes (normally impossible as the disks are not in a Volume group but can be done via the bootinfo command!), so you can find the RDBMS database disk size. Might help other raw disk uses. AIX uptime API is a 32 bit counter, so overflows at 497 days - doh! Now njmon for AIX and Linux uses the uptime command but that outputs the uptime in at least six formats -doh! now you get identical data for AIX and Linux:

"uptime": { "days": 1211, "hours": 4, "minutes": 27, "users": 1 }

Is that a record of 1211 days - Let me know?

Also note we have the number of logged on Users - Could be VERY interesting to detect unexpected Users or hack attacks. AIX running within Nutanix has a Machine-ID bug (control characters in the resulting string - now removed) - this crashes the injector as it is invalid JSON. I think is returned by the Nutanix emulation layer of the POWER firmware but that is a guess. Details . . . This version 50 release does NOT require any InfluxDB changes, if running version 40+.

This release delivers simpler njmon admin, reduced resources during injecting on the Influx server and drastically less sockets in use.

You will have to replace BOTH njmon endpoint AND central server at the SAME time: All njmon endpoints must be version 50 (but all the CLI options are the same), so it's an executable file change. As njmon will run forever. So you could start it a boot up time as a restart-able service or just "nohup" it or

use a /etc/rc.local script or hourly crontab using the -k option. The central server Collector and Inject is replace by a single Python program njmond.py. njmond.py has a small config file (in JSON) - this is also used by the bulk loading JSON file njmon2influx.py as it has the InfluxDB connection details.

njmonchart njmonchart update njmonchart_v40.zip To match the njmon v40+ and 50+ data format Two hours of Training on njmon via YouTube: njmon + InfluxDB + Grafana Series YouTube Playlist

Videos 1, 2 and 3 are for Set-up and capture of njmon data

Videos 4 using a pre-made njmon Dashboard Templates

Videos 5, 6 and 7 making your own Grafana graphs of the njmon data

Videos 8 are Graphing the njmon data a completely different way Click Here Introduction njmon - 15 minutes Click Here Installing InfluxDB & Grafana - 11 minutes Click Here Install njmon and Set-up - 22 minutes Click Here Using njmon Graph Dashboard / Templates - 18 minutes Click Here 1st njmon graphs - 9 minutes Click Here Creating a Template to switch server - 10 minutes Click Here Graphing Multiple Resources - 18 minutes Click Here njmonchart graphs via a .html file - 9 minutes

What you will need to perform: Assuming you will use InfluxDB for your time-series database and Grafana for creating your graph dashboards. Other software is available like Elastic (use filebeats to monitr the .json files)and Splunk (not covered here).

Install InfluxDB and create a njmon database (one command). InfluxDB & Grafana are supported on AMD64 (x86_64) or Linux on POWER8 or POWER9 and other platforms. Install Grafana on the same machine or VM and connect it to InfluxDB (very simple). Install the small program njmon on each of your endpoint operating systems i.e. AIX, VIOS or Linux (on any hardware). Edit the injector variables for your environment: user/password, hostname, database name etc. Add the njmon program to crontab so it starts every day. and then use one of the four methods to inject the data into InfluxDB. Download the Grafana njmon sample dashboards for a flying start monitoring your servers. Modify the Grafana dashboard or create your own to investigate your data. Options for prototype or implementing: All open-source = no costs (no permission!)

Recommend operating system for a simple life: RHEL7+ & Ubuntu18+

Own hardware (On-Prem) Linux on POWER8/9 (ppc64le) based LPAR Linux on AMD64 (x86_86) Server or VM '''Raspberry Pi 3 or 4 (Ubuntu 16)

Your personal laptop / workstation Linux = very possible and tested RHEL 7.7 Windows 10 (works but ugh!) Apple Mac - no idea But when you power off/disconnected your laptop. you can't capture njmon stats

Cloud-Based Corylsis.com Works, very space limited - reduce snapshots to 15 minutes Influxdata.com Cloud 2.0 free option = limited rate & volume or from $150/month Grafana.com Cloud $50/month could use laptop Rent a Cloud Virtual Machine (POWER or AMD64), see "own hardware"

