This repository has been archived by the owner on Jun 13, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 32
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Includes two example environment files as well. - Updated the documentation 'check_memory' to reflect the updated output of te 'check_mem' plugin (no pipes).
- Loading branch information
Ryan Frantz
committed
May 17, 2014
1 parent
91d6161
commit 5c95576
Showing
4 changed files
with
474 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
module NagiosHerald | ||
class Formatter | ||
class CheckCpu < NagiosHerald::Formatter | ||
include NagiosHerald::Logging | ||
|
||
# Public: Overrides Formatter::Base#additional_info. | ||
# Colorizes the service output to highlight either the iowait or idle value. | ||
# | ||
# WARNING CPU iowait is > 0%: user=3.60% system=0.99% iowait=0.00% idle=95.41% | ||
# CRITICAL CPU idle is < 100%: user=3.02% system=3.25% iowait=0.01% idle=93.72% | ||
# | ||
# Returns nothing. Updates the formatter content hash. | ||
def additional_info | ||
section = __method__ | ||
output = get_nagios_var("NAGIOS_#{@state_type}OUTPUT") | ||
#if match = /(?<state>\w+ CPU) (?<metric>\w+) (?<threshold_and_stats>.*) (?<iowait>iowait=.*%) (?<idle>idle=.*%)/.match(output) | ||
if match = /(?<state>\w+ CPU) (?<metric>iowait) (?<threshold_and_stats>.*) (?<iowait>iowait=.*%) (?<idle>idle=.*%)/.match(output) | ||
iowait_info = "#{match[:state]} <b><font color='red'>#{match[:metric]}</font></b> " | ||
iowait_info += "#{match[:threshold_and_stats]} <b><font color='red'>#{match[:iowait]}</font></b> " | ||
iowait_info += "#{match[:idle]}" | ||
add_html(section, iowait_info) | ||
elsif match = /(?<state>\w+ CPU) (?<metric>idle) (?<threshold_and_stats>.*) (?<iowait>iowait=.*%) (?<idle>idle=.*%)/.match(output) | ||
iowait_info = "#{match[:state]} <b><font color='red'>#{match[:metric]}</font></b> " | ||
iowait_info += "#{match[:threshold_and_stats]} #{match[:iowait]} " | ||
iowait_info += "<b><font color='red'>#{match[:idle]}</font></b>" | ||
add_html(section, iowait_info) | ||
else | ||
add_html(section, output) | ||
end | ||
add_text(section, output) # nothing fancy to see for text | ||
end | ||
|
||
# Public: Overrides Formatter::Base#additional_details. | ||
# Colorizes the `ps` output returned by the check_cpu_stats NRPE check. | ||
# The output contains the top n processes by CPU similar to: | ||
# | ||
# TOP 5 PROCESSES BY CPU: | ||
# %CPU TIME USER PID COMMAND | ||
# 6.0 00:00:00 larry 32256 ps -eo %cpu,cputime,user,pid,args --sort -%cpu | ||
# 0.7 06:22:09 nobody 12161 /usr/sbin/gmond | ||
# 0.6 1-02:14:24 root 1424 [kipmi0] | ||
# 0.5 00:49:52 10231 15079 mosh-server new -s -c 8 -l LANG=en_US.UTF-8 | ||
# 0.3 04:36:53 root 12996 /opt/extrahop/sbin/rpcapd -v -d -L -f /opt/extrahop/etc/rpcapd.ini | ||
# | ||
# Returns nothing. Updates the formatter content hash. | ||
def additional_details | ||
section = __method__ | ||
long_output = get_nagios_var("NAGIOS_LONG#{@state_type}OUTPUT") | ||
lines = long_output.split('\n') | ||
html = [] | ||
html << "<pre>" | ||
html << lines[0] # TOP 5 PROCESSES BY CPU: | ||
html << lines[1] # %CPU TIME USER PID COMMAND | ||
html << "<font color='red'>#{lines[2]}</font>" # Color the first result red... | ||
for i in 3..lines.length-1 | ||
html << "<font color='orange'>#{lines[i]}</font>" # ...and the remainder orange. | ||
end | ||
html << "</pre>" | ||
output_string = html.join( "<br>" ) | ||
add_html(section, "<b>Additional Details</b>:") | ||
add_html(section, output_string) | ||
add_text(section, "Additional Details:\n#") | ||
add_text(section, "#{unescape_text(long_output)}\n") | ||
line_break(section) | ||
end | ||
|
||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,199 @@ | ||
Sat May 17 01:34:07 UTC 2014 | ||
NAGIOS_SERVICESTATE=CRITICAL | ||
NAGIOS_HOSTNOTIFICATIONNUMBER=0 | ||
NAGIOS_HOSTNOTIFICATIONID=24950 | ||
NAGIOS_ARG8= | ||
NAGIOS_SERVICEACKAUTHOR= | ||
NAGIOS_COMMANDFILE=/usr/nagios/var/rw/nagios.cmd | ||
NAGIOS_ARG9= | ||
NAGIOS_HOSTADDRESS=10.101.192.22 | ||
NAGIOS_LASTHOSTDOWN=1362755838 | ||
NAGIOS_LASTSERVICEWARNING=1400290175 | ||
NAGIOS_TEMPPATH=/tmp/nagios | ||
NAGIOS_TOTALHOSTSERVICESCRITICAL=2 | ||
NAGIOS_HOSTACKAUTHOR= | ||
NAGIOS_TEMPFILE=/usr/nagios/var/nagios.tmp | ||
NAGIOS_NOTIFICATIONAUTHOR= | ||
NAGIOS_ISVALIDTIME= | ||
TERM=linux | ||
NAGIOS_SERVICEGROUPALIAS= | ||
NAGIOS_ARG28= | ||
NAGIOS_HOSTEXECUTIONTIME=0.813 | ||
NAGIOS_SERVICEACKCOMMENT= | ||
NAGIOS_NOTIFICATIONISESCALATED=0 | ||
NAGIOS_ARG29= | ||
NAGIOS_LOGFILE=/usr/nagios/var/nagios.log | ||
NAGIOS_TOTALHOSTSUNREACHABLEUNHANDLED= | ||
NAGIOS_SERVICEACKAUTHORNAME= | ||
NAGIOS_NEXTVALIDTIME= | ||
NAGIOS_ARG26= | ||
NAGIOS_TIMET=1400290447 | ||
NAGIOS_HOSTGROUPNAMES=test | ||
NAGIOS_MAXSERVICEATTEMPTS=3 | ||
NAGIOS_ARG1= | ||
NAGIOS_ARG27= | ||
NAGIOS_HOSTSTATEID=0 | ||
NAGIOS_LASTSERVICECRITICAL=1400290433 | ||
NAGIOS_ARG2= | ||
NAGIOS_ARG24= | ||
NAGIOS_EVENTSTARTTIME=1400290157 | ||
NAGIOS_ARG3= | ||
NAGIOS_ARG25= | ||
NAGIOS_HOSTACKCOMMENT= | ||
NAGIOS_SERVICENOTES= | ||
NAGIOS_SERVICEGROUPNOTESURL= | ||
NAGIOS_HOSTGROUPMEMBERS=web.example.com | ||
NAGIOS_NOTIFICATIONCOMMENT= | ||
NAGIOS_ARG4= | ||
NAGIOS_ARG22= | ||
NAGIOS_TOTALHOSTPROBLEMSUNHANDLED= | ||
NAGIOS_HOSTEVENTID=40243 | ||
NAGIOS_ARG5= | ||
NAGIOS_ARG23= | ||
NAGIOS_TOTALHOSTSERVICESOK=15 | ||
NAGIOS_ARG6= | ||
NAGIOS_ARG20= | ||
NAGIOS_TIME=01:34:07 | ||
NAGIOS_HOSTACTIONURL= | ||
NAGIOS_CONTACTGROUPALIAS=Non-urgent ops contacts | ||
NAGIOS_ARG7= | ||
NAGIOS_ARG21= | ||
NAGIOS_SERVICEPERFDATA=user = 3.02, system = 3.25, iowait = 0.01, idle = 93.72 | ||
NAGIOS_LASTSERVICESTATE=WARNING | ||
NAGIOS_CONTACTNAME=ops | ||
NAGIOS_HOSTPERCENTCHANGE=0.00 | ||
NAGIOS_HOSTGROUPALIAS=No_parents | ||
NAGIOS_RESOURCEFILE=/usr/nagios/etc/resource.cfg | ||
NAGIOS_CONTACTGROUPMEMBERS=ops | ||
NAGIOS_ARG19= | ||
NAGIOS_SERVICECHECKTYPE=ACTIVE | ||
NAGIOS_ARG18= | ||
NAGIOS_SERVICEATTEMPT=3 | ||
NAGIOS_TOTALHOSTSDOWNUNHANDLED= | ||
NAGIOS_HOSTDOWNTIME=0 | ||
NAGIOS_HOSTCHECKCOMMAND=check-host-alive | ||
NAGIOS_TOTALHOSTSERVICESUNKNOWN=0 | ||
NAGIOS_SERVICEGROUPNAME= | ||
NAGIOS_SERVICEGROUPACTIONURL= | ||
NAGIOS_LASTSERVICESTATECHANGE=1400290433 | ||
NAGIOS_RETENTIONDATAFILE=/usr/nagios/var/retention.dat | ||
NAGIOS_TOTALSERVICEPROBLEMSUNHANDLED= | ||
NAGIOS_LASTSERVICEEVENTID=174145 | ||
NAGIOS_TOTALHOSTSERVICES=17 | ||
NAGIOS_CONTACTGROUPNAME=ops_nonurgent | ||
NAGIOS_ARG13= | ||
NAGIOS_CONTACTPAGER= | ||
NAGIOS_NOTIFICATIONTYPE=PROBLEM | ||
NAGIOS_LASTSERVICEPROBLEMID=84376 | ||
NAGIOS_ARG12= | ||
NAGIOS_LASTHOSTCHECK=1400290388 | ||
NAGIOS_ADMINPAGER=ops@example.com | ||
NAGIOS_SERVICECHECKCOMMAND=check_nrpe!check_cpu_stats | ||
NAGIOS_TOTALSERVICESWARNING= | ||
NAGIOS_LASTHOSTSTATEID=0 | ||
NAGIOS_ARG11= | ||
NAGIOS_HOSTPERFDATA=rta=0.249000ms;3000.000000;5000.000000;0.000000 pl=0%;80;100;0 | ||
NAGIOS_LASTSERVICEOK=1400289813 | ||
NAGIOS_TOTALHOSTSDOWN= | ||
NAGIOS_SERVICENOTIFICATIONNUMBER=2 | ||
NAGIOS_CONTACTGROUPNAMES=ops_nonurgent | ||
NAGIOS_ARG10= | ||
NAGIOS_SERVICEPERCENTCHANGE=12.24 | ||
NAGIOS_TOTALHOSTPROBLEMS= | ||
NAGIOS_TOTALSERVICESOK= | ||
NAGIOS_TOTALHOSTSERVICESWARNING=0 | ||
NAGIOS_ARG17= | ||
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin | ||
NAGIOS_HOSTOUTPUT=PING OK - Packet loss = 0%, RTA = 0.25 ms | ||
NAGIOS_NOTIFICATIONRECIPIENTS=ops,akachler,jallspaw,ldenness,irccat,jgoulah,dschauenberg,kmurphy,dyurkiewicz,pbellisano | ||
NAGIOS_ARG16= | ||
NAGIOS_MAXHOSTATTEMPTS=1 | ||
NAGIOS_ARG15= | ||
NAGIOS_TOTALHOSTSUNREACHABLE= | ||
NAGIOS_TOTALSERVICESWARNINGUNHANDLED= | ||
NAGIOS_ARG14= | ||
NAGIOS_STATUSDATAFILE=/usr/nagios/var/status.dat | ||
NAGIOS_TOTALSERVICESUNKNOWN= | ||
NAGIOS_LASTHOSTPROBLEMID=18776 | ||
NAGIOS_ARG31= | ||
NAGIOS_SHORTDATETIME=05-17-2014 01:34:07 | ||
NAGIOS_HOSTSTATE=UP | ||
NAGIOS_LASTHOSTUP=1400290392 | ||
NAGIOS_SERVICEGROUPNOTES= | ||
NAGIOS_ARG30= | ||
PWD=/ | ||
NAGIOS_SERVICEPERFDATAFILE= | ||
NAGIOS_ARG32= | ||
NAGIOS_CONTACTALIAS=Ryan Frantz | ||
NAGIOS_HOSTNOTESURL= | ||
NAGIOS_SERVICELATENCY=0.663 | ||
NAGIOS_TOTALSERVICESCRITICAL= | ||
NAGIOS_SERVICEDOWNTIME=0 | ||
NAGIOS_SERVICEGROUPNAMES= | ||
NAGIOS_DATE=05-17-2014 | ||
NAGIOS_SERVICEEVENTID=174146 | ||
NAGIOS_HOSTACKAUTHORALIAS= | ||
NAGIOS_NOTIFICATIONAUTHORALIAS= | ||
NAGIOS_SERVICEDURATION=0d 0h 0m 14s | ||
NAGIOS_HOSTSTATETYPE=HARD | ||
NAGIOS_SERVICEPROBLEMID=84814 | ||
NAGIOS_HOSTCHECKTYPE=ACTIVE | ||
NAGIOS_HOSTGROUPNOTES= | ||
NAGIOS_LASTSERVICECHECK=1400290433 | ||
NAGIOS_ADMINEMAIL=ops@example.com | ||
NAGIOS_OBJECTCACHEFILE=/usr/nagios/var/objects.cache | ||
NAGIOS_HOSTLATENCY=1.181 | ||
NAGIOS_HOSTGROUPACTIONURL= | ||
NAGIOS_LONGDATETIME=Sat May 17 01:34:07 UTC 2014 | ||
NAGIOS_HOSTDISPLAYNAME=web.example.com | ||
SHLVL=2 | ||
NAGIOS_SERVICESTATEID=2 | ||
NAGIOS_SERVICENOTESURL= | ||
NAGIOS_TOTALSERVICEPROBLEMS= | ||
NAGIOS_HOSTPROBLEMID=0 | ||
NAGIOS_CONTACTADDRESS0= | ||
UPSTART_INSTANCE= | ||
NAGIOS_HOSTDURATIONSEC=37534543 | ||
NAGIOS_TOTALSERVICESUNKNOWNUNHANDLED= | ||
NAGIOS_LASTHOSTSTATE=UP | ||
NAGIOS_CONTACTADDRESS1= | ||
NAGIOS_SERVICEEXECUTIONTIME=5.094 | ||
NAGIOS_TOTALSERVICESCRITICALUNHANDLED= | ||
NAGIOS_CONTACTADDRESS2= | ||
NAGIOS_LONGHOSTOUTPUT= | ||
NAGIOS_SERVICEGROUPMEMBERS= | ||
NAGIOS_CONTACTADDRESS3= | ||
NAGIOS_SERVICEDURATIONSEC=14 | ||
NAGIOS_CONTACTADDRESS4= | ||
NAGIOS_HOSTGROUPNOTESURL= | ||
NAGIOS_CONTACTADDRESS5= | ||
NAGIOS_SERVICEOUTPUT=CRITICAL CPU idle is < 100%: user=3.02% system=3.25% iowait=0.01% idle=93.72% | ||
NAGIOS_NOTIFICATIONNUMBER=2 | ||
NAGIOS_HOSTDURATION=434d 10h 15m 43s | ||
NAGIOS_MAINCONFIGFILE=/usr/nagios/etc/nagios.cfg | ||
NAGIOS_CONTACTEMAIL=ops@example.com | ||
NAGIOS_SERVICESTATETYPE=HARD | ||
NAGIOS_LASTHOSTUNREACHABLE=0 | ||
NAGIOS_LONGSERVICEOUTPUT=TOP 5 PROCESSES BY CPU:\n %CPU TIME USER PID COMMAND\n 57.6 00:00:15 root 21751 /usr/bin/ruby /usr/bin/knife search node lastrun_status:success -i\n 4.0 00:00:00 larry 22001 ps -eo %cpu,cputime,user,pid,args --sort -%cpu\n 0.7 06:19:12 nobody 12161 /usr/sbin/gmond\n 0.6 1-02:11:15 root 1424 [kipmi0]\n 0.5 00:48:01 10231 15079 mosh-server new -s -c 8 -l LANG=en_US.UTF-8\n | ||
UPSTART_JOB=nagios | ||
NAGIOS_HOSTATTEMPT=1 | ||
NAGIOS_HOSTNOTES= | ||
NAGIOS_SERVICEISVOLATILE=0 | ||
NAGIOS_SERVICEACTIONURL= | ||
NAGIOS_SERVICEDISPLAYNAME=CPU | ||
NAGIOS_TOTALHOSTSUP= | ||
NAGIOS_LASTHOSTSTATECHANGE=1362755904 | ||
NAGIOS_LASTSERVICEUNKNOWN=0 | ||
NAGIOS_HOSTPERFDATAFILE= | ||
NAGIOS_LASTHOSTEVENTID=40242 | ||
NAGIOS_HOSTACKAUTHORNAME= | ||
NAGIOS_NOTIFICATIONAUTHORNAME= | ||
NAGIOS_HOSTALIAS=web.example.com | ||
NAGIOS_SERVICEDESC=CPU | ||
NAGIOS_HOSTGROUPNAME=no_parents | ||
NAGIOS_PROCESSSTARTTIME=1400290156 | ||
NAGIOS_HOSTNAME=web.example.com | ||
NAGIOS_SERVICENOTIFICATIONID=126728 | ||
NAGIOS_SERVICEACKAUTHORALIAS= | ||
NAGIOS_LASTSERVICESTATEID=1 | ||
_=/usr/bin/env |
Oops, something went wrong.