The monitoring plugin check_netio, to monitor input/output on Linux network interfaces, has been around for over a decade (2007). And I've been using it on thousands of servers (counting all the data centers of my former employers together) in the past years.
For me it was always a very lightweight yet incredibly easy way to monitor a network interfaces performance. The plugin's code didn't change a lot.
But in 2017 I actually needed to adapt the source code because some Linux distributions changed the output of the command "ifconfig". Suddenly the plugin didn't work anymore on these distributions (it started with RHEL/CentOS 7 by the way).
Now in 2018 it seems that some distributions don't ship "ifconfig" by default anymore (seen in Ubuntu 18.04) because "ip" has been around for many years, too.
Instead of relying on "ifconfig" and running into possible parsing errors due to different formatting in various distros, I changed the plugin to directly parse /proc/net/dev. This procfs file should be the same on all distributions. And it has another nice side effect: The plugin is now 50% faster, too!
If for some reason the plugin doesn't work (which would mean there's no read access to /proc/net/dev for some reason), there's the new parameter "-l" to use the "legacy" mode. The legacy mode continues to use "ifconfig" in the background.
Removed the plugin's dependency to /usr/lib/nagios/plugins/utils.sh which is part of the nagios-plugins-common or monitoring-plugins-common package. check_netio actually only used one small variable from utils.sh. A full dependency of utils.sh just doesn't make sense. And yes, this also means a small increase in execution.
And because there have been quite some adjustments now, I finally created a documentation page: https://www.claudiokuenzler.com/monitoring-plugins/check_netio.php .
No comments yet.
Personal Internet VMware PHP Linux Shell Bluecoat Proxy Windows Hardware Virtualization Nagios MySQL DB Monitoring Mail Android Network Wyse Hacks Tomcat Postgres Apple Mac Backup BSD ZFS Solaris SmartOS Unix Multimedia Perl Database MongoDB CMS OTRS FreeBSD Wordpress LXC Nginx Proxmox DNS Graphics GlusterFS Security Chef HAProxy Icinga Ansible HTML MariaDB Containers Rancher Docker AWS ELK Kibana Logstash Filebeat Varnish PGSQL PostgreSQL ElasticSearch CouchDB Bash Macintosh Container Minio Grafana InfluxDB Databases NFS OSSEC SystemD Java Zoneminder Surveillance Elasticsearch SSL TLS Icingaweb2 Cloud Wireless Kubernetes Ubuntu