Advanced Linux Check plugins for icinga2

Welcome to Advanced Linux Checks for Icinga2, This page contains collection of scripts that I have written recently in Feb, 2017. It works great, and best of all, my scripts aim to output perfdata.
Details are below

Introduction

So after a hefty battle with trying to find recent decent plugins for icinga2 online, I realized, that most checks are either way too lame, or they simply don't output perf data.
Furthermore, it appears that most checks online, also may have low accuracy, and less capabilities of harnesting averages, as such making just a one time reading, which could very well give false positives about different systems stats. And that's why I decided to write my own Advanced checks for icinga2, that even take the fewest parameters and work out what you want without having to build a 2 line command to achieve one system check.
My Checks are based around all of the following:
1. It supports only SNMPv3, if you're a community user, this probably isn't what you looking for
2. Drastic performance, my scripts perform PHP forking in order to:
a) Executes multiple check processes in parallel for better scalability
b) Increased performance, with CPU usage not exceeding 0.2 to 0.5% per core.
c) Insane graphing point resolution, that can go upto 40 points per minute per check.
3. Autodetection for disks/interfaces/CPU cores ... etc, however you most likely better specify limits as not all interfaces report max bandwidth like Openvpn tunnels
4. All my plugins are designed for graphing gurus, who like to see graphical representation of the different checks criteria and harvest time series history for better logging overview
5. Ability to perform checks of given type all in one go ...like check disk IOPs can do all disks with read and write stats all in one go.
6. Extreme Accuracy with all checks, allowing you to specify multiple runs with intervals, to get reliable averages with extreme precision.

Interface BW Checks

An Awesome Check bandwidth plugin, supports multiple NICs checks in parallel on ONE GO. Outputs perf data.


Disk Read/Write Stats Checks

This plugin is just like the previous one does support multiple disk checks in one go, performs really well, and best of all output perf data.
This check doesn't do warning or critical alerts, it's rather designed to do perfdata for graphing.

Asterisk checks

In order to use Asterisk Checks, you'll have to download the mibs, and configure asterisk snmp, which shouldn't be hard.
Asterisk Check supports 9 Asterisk stats, screenshot below. If you do NOT download the mibs, and properly place them in the snmp mibs dir, this check will never work otherwise.

Load Average Checks

Load Average checks, works, by making the load average value more consolidated across your infrastructure, and what that means, it takes reads the values of load average as per your choice wether it be 1, 5 or 15 mins, and get's number of CPU cores available and divide that load average value by the number of cores, thus you get a definte accurate results of what a value actually represents per core rather than per machine.

DNS Checks

While you might be thinking now, how unnecessary that is to actually build an alternative for the command check_dig, well ... here's why, Icinga2 comes with built in check_dig as part of the release, which performs quite ok, however it has one major bug, that makes it give false postive warnings ... I was able to identify this bug, as negative caching case senstive bug, where check dig performs a lookup on a domain, it then searches the answer section of the DNS results for case senstive name of the domain being checked. In most cases while you have other scripts and services accessing your DNS or other checks for that matter, they may lookup the same hostname with different case senstivity, which then gets cached, and in which case check_dig fails to identify wether an answer was actually returned, due to cached lookup has a different case senstive name. Therefore, I put together this awesome check_dig alternative that totally addresses this issue, as well as outputs perf data for graphing.