[Nagiosplug-checkins] nagiosplug/plugins check_nagios.c,1.28,1.29
Ton Voon
tonvoon at users.sourceforge.net
Fri Dec 2 14:29:09 CET 2005
Update of /cvsroot/nagiosplug/nagiosplug/plugins
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13216/plugins
Modified Files:
check_nagios.c
Log Message:
Support for Nagios 1 and Nagios 2 status files (Gerhard Lausser - 1296242)
Index: check_nagios.c
===================================================================
RCS file: /cvsroot/nagiosplug/nagiosplug/plugins/check_nagios.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- check_nagios.c 31 Oct 2005 20:03:19 -0000 1.28
+++ check_nagios.c 2 Dec 2005 22:28:06 -0000 1.29
@@ -85,22 +85,25 @@
/* open the status log */
fp = fopen (status_log, "r");
if (fp == NULL) {
- printf (_("CRITICAL - Cannot open status log for reading!\n"));
- return STATE_CRITICAL;
+ die (STATE_CRITICAL, "NAGIOS %s: %s\n", _("CRITICAL"), _("Cannot open status log for reading!"));
}
/* get the date/time of the last item updated in the log */
while (fgets (input_buffer, MAX_INPUT_BUFFER - 1, fp)) {
- temp_ptr = strtok (input_buffer, "]");
- temp_entry_time =
- (temp_ptr == NULL) ? 0L : strtoul (temp_ptr + 1, NULL, 10);
- if (temp_entry_time > latest_entry_time)
+ if ((temp_ptr = strstr (input_buffer, "created=")) != NULL) {
+ temp_entry_time = strtoul (temp_ptr + 8, NULL, 10);
latest_entry_time = temp_entry_time;
+ break;
+ } else if ((temp_ptr = strtok (input_buffer, "]")) != NULL) {
+ temp_entry_time = strtoul (temp_ptr + 1, NULL, 10);
+ if (temp_entry_time > latest_entry_time)
+ latest_entry_time = temp_entry_time;
+ }
}
fclose (fp);
if (verbose >= 2)
- printf(_("command: %s\n"), PS_COMMAND);
+ printf("command: %s\n", PS_COMMAND);
/* run the command to check for the Nagios process.. */
if((result = np_runcmd(PS_COMMAND, &chld_out, &chld_err, 0)) != 0)
@@ -146,22 +149,29 @@
alarm (0);
if (proc_entries == 0) {
- printf (_("Could not locate a running Nagios process!\n"));
- return STATE_CRITICAL;
+ die (STATE_CRITICAL, "NAGIOS %s: %s\n", _("CRITICAL"), _("Could not locate a running Nagios process!"));
}
- result = STATE_OK;
+ if (latest_entry_time == 0L) {
+ die (STATE_CRITICAL, "NAGIOS %s: %s\n", _("CRITICAL"), _("Cannot parse Nagios log file for valid time"));
+ }
time (¤t_time);
- if ((int)(current_time - latest_entry_time) > (expire_minutes * 60))
+ if ((int)(current_time - latest_entry_time) > (expire_minutes * 60)) {
result = STATE_WARNING;
+ } else {
+ result = STATE_OK;
+ }
- printf
- (_("Nagios %s: located %d process%s, status log updated %d second%s ago\n"),
- (result == STATE_OK) ? "ok" : "problem", proc_entries,
- (proc_entries == 1) ? "" : "es",
- (int) (current_time - latest_entry_time),
- ((int) (current_time - latest_entry_time) == 1) ? "" : "s");
+ printf ("NAGIOS %s: ", (result == STATE_OK) ? _("OK") : _("WARNING"));
+ printf (ngettext ("%d process", "%d processes", proc_entries), proc_entries);
+ printf (", ");
+ printf (
+ ngettext ("status log updated %d second ago",
+ "status log updated %d seconds ago",
+ (int) (current_time - latest_entry_time) ),
+ (int) (current_time - latest_entry_time) );
+ printf ("\n");
return result;
}
More information about the Commits
mailing list