diff options
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/check_mrtg.c | 57 |
1 files changed, 25 insertions, 32 deletions
diff --git a/plugins/check_mrtg.c b/plugins/check_mrtg.c index 067429cf..6b08195b 100644 --- a/plugins/check_mrtg.c +++ b/plugins/check_mrtg.c | |||
| @@ -49,7 +49,6 @@ main (int argc, char **argv) | |||
| 49 | char input_buffer[MAX_INPUT_BUFFER]; | 49 | char input_buffer[MAX_INPUT_BUFFER]; |
| 50 | char *temp_buffer; | 50 | char *temp_buffer; |
| 51 | time_t current_time; | 51 | time_t current_time; |
| 52 | char* message; | ||
| 53 | time_t timestamp = 0L; | 52 | time_t timestamp = 0L; |
| 54 | unsigned long average_value_rate = 0L; | 53 | unsigned long average_value_rate = 0L; |
| 55 | unsigned long maximum_value_rate = 0L; | 54 | unsigned long maximum_value_rate = 0L; |
| @@ -112,43 +111,37 @@ main (int argc, char **argv) | |||
| 112 | 111 | ||
| 113 | /* if we couldn't read enough data, return an unknown error */ | 112 | /* if we couldn't read enough data, return an unknown error */ |
| 114 | if (line <= 2) { | 113 | if (line <= 2) { |
| 115 | result = STATE_UNKNOWN; | 114 | printf (_("Unable to process MRTG log file\n")); |
| 116 | asprintf (&message, _("Unable to process MRTG log file\n")); | 115 | return STATE_UNKNOWN; |
| 117 | } | 116 | } |
| 118 | 117 | ||
| 119 | /* make sure the MRTG data isn't too old */ | 118 | /* make sure the MRTG data isn't too old */ |
| 120 | if (result == STATE_OK) { | 119 | time (¤t_time); |
| 121 | time (¤t_time); | 120 | if (expire_minutes > 0 |
| 122 | if (expire_minutes > 0 | 121 | && (current_time - timestamp) > (expire_minutes * 60)) { |
| 123 | && (current_time - timestamp) > (expire_minutes * 60)) { | 122 | printf (_("MRTG data has expired (%d minutes old)\n"), |
| 124 | result = STATE_WARNING; | 123 | (int) ((current_time - timestamp) / 60)); |
| 125 | asprintf (&message, _("MRTG data has expired (%d minutes old)\n"), | 124 | return STATE_WARNING; |
| 126 | (int) ((current_time - timestamp) / 60)); | ||
| 127 | } | ||
| 128 | } | 125 | } |
| 129 | 126 | ||
| 130 | /* else check the incoming/outgoing rates */ | 127 | /* else check the incoming/outgoing rates */ |
| 131 | if (result == STATE_OK) { | 128 | if (use_average == TRUE) |
| 132 | if (use_average == TRUE) | 129 | rate = average_value_rate; |
| 133 | rate = average_value_rate; | 130 | else |
| 134 | else | 131 | rate = maximum_value_rate; |
| 135 | rate = maximum_value_rate; | 132 | |
| 136 | 133 | if (rate > value_critical_threshold) | |
| 137 | if (rate > value_critical_threshold) | 134 | result = STATE_CRITICAL; |
| 138 | result = STATE_CRITICAL; | 135 | else if (rate > value_warning_threshold) |
| 139 | else if (rate > value_warning_threshold) | 136 | result = STATE_WARNING; |
| 140 | result = STATE_WARNING; | 137 | |
| 141 | 138 | printf("%s. %s = %lu %s|%s\n", | |
| 142 | asprintf (&message, "%s. %s = %lu %s|%s", | 139 | (use_average == TRUE) ? _("Avg") : _("Max"), |
| 143 | (use_average == TRUE) ? _("Avg") : _("Max"), | 140 | label, rate, units, |
| 144 | label, rate, units, | 141 | perfdata(label, (long) rate, units, |
| 145 | perfdata(label, (long) rate, units, | 142 | (int) value_warning_threshold, (long) value_warning_threshold, |
| 146 | (int) value_warning_threshold, (long) value_warning_threshold, | 143 | (int) value_critical_threshold, (long) value_critical_threshold, |
| 147 | (int) value_critical_threshold, (long) value_critical_threshold, | 144 | 0, 0, 0, 0)); |
| 148 | 0, 0, 0, 0)); | ||
| 149 | } | ||
| 150 | |||
| 151 | printf ("%s\n", message); | ||
| 152 | 145 | ||
| 153 | return result; | 146 | return result; |
| 154 | } | 147 | } |
