diff options
Diffstat (limited to 'plugins/check_nt.c')
| -rw-r--r-- | plugins/check_nt.c | 420 |
1 files changed, 210 insertions, 210 deletions
diff --git a/plugins/check_nt.c b/plugins/check_nt.c index ee5e2a63..48bdcccd 100644 --- a/plugins/check_nt.c +++ b/plugins/check_nt.c | |||
| @@ -160,9 +160,9 @@ int main(int argc, char **argv){ | |||
| 160 | 160 | ||
| 161 | /* loop until one of the parameters is wrong or not present */ | 161 | /* loop until one of the parameters is wrong or not present */ |
| 162 | while (lvalue_list[0+offset]> (unsigned long)0 && | 162 | while (lvalue_list[0+offset]> (unsigned long)0 && |
| 163 | lvalue_list[0+offset]<=(unsigned long)17280 && | 163 | lvalue_list[0+offset]<=(unsigned long)17280 && |
| 164 | lvalue_list[1+offset]> (unsigned long)0 && | 164 | lvalue_list[1+offset]> (unsigned long)0 && |
| 165 | lvalue_list[1+offset]<=(unsigned long)100 && | 165 | lvalue_list[1+offset]<=(unsigned long)100 && |
| 166 | lvalue_list[2+offset]> (unsigned long)0 && | 166 | lvalue_list[2+offset]> (unsigned long)0 && |
| 167 | lvalue_list[2+offset]<=(unsigned long)100) { | 167 | lvalue_list[2+offset]<=(unsigned long)100) { |
| 168 | 168 | ||
| @@ -171,7 +171,7 @@ int main(int argc, char **argv){ | |||
| 171 | fetch_data (server_address, server_port, send_buffer); | 171 | fetch_data (server_address, server_port, send_buffer); |
| 172 | 172 | ||
| 173 | utilization=strtoul(recv_buffer,NULL,10); | 173 | utilization=strtoul(recv_buffer,NULL,10); |
| 174 | 174 | ||
| 175 | /* Check if any of the request is in a warning or critical state */ | 175 | /* Check if any of the request is in a warning or critical state */ |
| 176 | if(utilization >= lvalue_list[2+offset]) | 176 | if(utilization >= lvalue_list[2+offset]) |
| 177 | return_code=STATE_CRITICAL; | 177 | return_code=STATE_CRITICAL; |
| @@ -191,7 +191,7 @@ int main(int argc, char **argv){ | |||
| 191 | perfdata = temp_string_perf; | 191 | perfdata = temp_string_perf; |
| 192 | } else | 192 | } else |
| 193 | output_message = strdup (_("not enough values for -l parameters")); | 193 | output_message = strdup (_("not enough values for -l parameters")); |
| 194 | } | 194 | } |
| 195 | break; | 195 | break; |
| 196 | 196 | ||
| 197 | case CHECK_UPTIME: | 197 | case CHECK_UPTIME: |
| @@ -199,7 +199,7 @@ int main(int argc, char **argv){ | |||
| 199 | asprintf(&send_buffer, "%s&3", req_password); | 199 | asprintf(&send_buffer, "%s&3", req_password); |
| 200 | fetch_data (server_address, server_port, send_buffer); | 200 | fetch_data (server_address, server_port, send_buffer); |
| 201 | uptime=strtoul(recv_buffer,NULL,10); | 201 | uptime=strtoul(recv_buffer,NULL,10); |
| 202 | updays = uptime / 86400; | 202 | updays = uptime / 86400; |
| 203 | uphours = (uptime % 86400) / 3600; | 203 | uphours = (uptime % 86400) / 3600; |
| 204 | upminutes = ((uptime % 86400) % 3600) / 60; | 204 | upminutes = ((uptime % 86400) % 3600) / 60; |
| 205 | asprintf(&output_message,_("System Uptime - %u day(s) %u hour(s) %u minute(s)"),updays,uphours, upminutes); | 205 | asprintf(&output_message,_("System Uptime - %u day(s) %u hour(s) %u minute(s)"),updays,uphours, upminutes); |
| @@ -237,9 +237,9 @@ int main(int argc, char **argv){ | |||
| 237 | if(check_critical_value==TRUE && percent_used_space >= critical_value) | 237 | if(check_critical_value==TRUE && percent_used_space >= critical_value) |
| 238 | return_code=STATE_CRITICAL; | 238 | return_code=STATE_CRITICAL; |
| 239 | else if (check_warning_value==TRUE && percent_used_space >= warning_value) | 239 | else if (check_warning_value==TRUE && percent_used_space >= warning_value) |
| 240 | return_code=STATE_WARNING; | 240 | return_code=STATE_WARNING; |
| 241 | else | 241 | else |
| 242 | return_code=STATE_OK; | 242 | return_code=STATE_OK; |
| 243 | 243 | ||
| 244 | output_message = strdup (temp_string); | 244 | output_message = strdup (temp_string); |
| 245 | perfdata = temp_string_perf; | 245 | perfdata = temp_string_perf; |
| @@ -267,7 +267,7 @@ int main(int argc, char **argv){ | |||
| 267 | break; | 267 | break; |
| 268 | 268 | ||
| 269 | case CHECK_MEMUSE: | 269 | case CHECK_MEMUSE: |
| 270 | 270 | ||
| 271 | asprintf(&send_buffer,"%s&7", req_password); | 271 | asprintf(&send_buffer,"%s&7", req_password); |
| 272 | fetch_data (server_address, server_port, send_buffer); | 272 | fetch_data (server_address, server_port, send_buffer); |
| 273 | mem_commitLimit=atof(strtok(recv_buffer,"&")); | 273 | mem_commitLimit=atof(strtok(recv_buffer,"&")); |
| @@ -276,130 +276,129 @@ int main(int argc, char **argv){ | |||
| 276 | warning_used_space = ((float)warning_value / 100) * mem_commitLimit; | 276 | warning_used_space = ((float)warning_value / 100) * mem_commitLimit; |
| 277 | critical_used_space = ((float)critical_value / 100) * mem_commitLimit; | 277 | critical_used_space = ((float)critical_value / 100) * mem_commitLimit; |
| 278 | 278 | ||
| 279 | /* Divisor should be 1048567, not 3044515, as we are measuring "Commit Charge" here, | 279 | /* Divisor should be 1048567, not 3044515, as we are measuring "Commit Charge" here, |
| 280 | which equals RAM + Pagefiles. */ | 280 | which equals RAM + Pagefiles. */ |
| 281 | asprintf(&output_message,_("Memory usage: total:%.2f Mb - used: %.2f Mb (%.0f%%) - free: %.2f Mb (%.0f%%)"), | 281 | asprintf(&output_message,_("Memory usage: total:%.2f Mb - used: %.2f Mb (%.0f%%) - free: %.2f Mb (%.0f%%)"), |
| 282 | mem_commitLimit / 1048567, mem_commitByte / 1048567, percent_used_space, | 282 | mem_commitLimit / 1048567, mem_commitByte / 1048567, percent_used_space, |
| 283 | (mem_commitLimit - mem_commitByte) / 1048567, (mem_commitLimit - mem_commitByte) / mem_commitLimit * 100); | 283 | (mem_commitLimit - mem_commitByte) / 1048567, (mem_commitLimit - mem_commitByte) / mem_commitLimit * 100); |
| 284 | asprintf(&perfdata,_("'Memory usage'=%.2fMb;%.2f;%.2f;0.00;%.2f"), mem_commitByte / 1048567, | 284 | asprintf(&perfdata,_("'Memory usage'=%.2fMb;%.2f;%.2f;0.00;%.2f"), mem_commitByte / 1048567, |
| 285 | warning_used_space / 1048567, critical_used_space / 1048567, mem_commitLimit / 1048567); | 285 | warning_used_space / 1048567, critical_used_space / 1048567, mem_commitLimit / 1048567); |
| 286 | 286 | ||
| 287 | return_code=STATE_OK; | 287 | return_code=STATE_OK; |
| 288 | if(check_critical_value==TRUE && percent_used_space >= critical_value) | 288 | if(check_critical_value==TRUE && percent_used_space >= critical_value) |
| 289 | return_code=STATE_CRITICAL; | 289 | return_code=STATE_CRITICAL; |
| 290 | else if (check_warning_value==TRUE && percent_used_space >= warning_value) | 290 | else if (check_warning_value==TRUE && percent_used_space >= warning_value) |
| 291 | return_code=STATE_WARNING; | 291 | return_code=STATE_WARNING; |
| 292 | 292 | ||
| 293 | break; | 293 | break; |
| 294 | 294 | ||
| 295 | case CHECK_COUNTER: | 295 | case CHECK_COUNTER: |
| 296 | 296 | ||
| 297 | 297 | ||
| 298 | /* | 298 | /* |
| 299 | CHECK_COUNTER has been modified to provide extensive perfdata information. | 299 | CHECK_COUNTER has been modified to provide extensive perfdata information. |
| 300 | In order to do this, some modifications have been done to the code | 300 | In order to do this, some modifications have been done to the code |
| 301 | and some constraints have been introduced. | 301 | and some constraints have been introduced. |
| 302 | 302 | ||
| 303 | 1) For the sake of simplicity of the code, perfdata information will only be | 303 | 1) For the sake of simplicity of the code, perfdata information will only be |
| 304 | provided when the "description" field is added. | 304 | provided when the "description" field is added. |
| 305 | 305 | ||
| 306 | 2) If the counter you're going to measure is percent-based, the code will detect | 306 | 2) If the counter you're going to measure is percent-based, the code will detect |
| 307 | the percent sign in its name and will attribute minimum (0%) and maximum (100%) | 307 | the percent sign in its name and will attribute minimum (0%) and maximum (100%) |
| 308 | values automagically, as well the ¨%" sign to graph units. | 308 | values automagically, as well the ¨%" sign to graph units. |
| 309 | 309 | ||
| 310 | 3) OTOH, if the counter is "absolute", you'll have to provide the following | 310 | 3) OTOH, if the counter is "absolute", you'll have to provide the following |
| 311 | the counter unit - that is, the dimensions of the counter you're getting. Examples: | 311 | the counter unit - that is, the dimensions of the counter you're getting. Examples: |
| 312 | pages/s, packets transferred, etc. | 312 | pages/s, packets transferred, etc. |
| 313 | 313 | ||
| 314 | 4) If you want, you may provide the minimum and maximum values to expect. They aren't mandatory, | 314 | 4) If you want, you may provide the minimum and maximum values to expect. They aren't mandatory, |
| 315 | but once specified they MUST have the same order of magnitude and units of -w and -c; otherwise. | 315 | but once specified they MUST have the same order of magnitude and units of -w and -c; otherwise. |
| 316 | strange things will happen when you make graphs of your data. | 316 | strange things will happen when you make graphs of your data. |
| 317 | */ | 317 | */ |
| 318 | 318 | ||
| 319 | if (value_list == NULL) | 319 | if (value_list == NULL) |
| 320 | output_message = strdup (_("No counter specified")); | 320 | output_message = strdup (_("No counter specified")); |
| 321 | else | 321 | else |
| 322 | { | 322 | { |
| 323 | preparelist (value_list); /* replace , between services with & to send the request */ | 323 | preparelist (value_list); /* replace , between services with & to send the request */ |
| 324 | isPercent = (strchr (value_list, '%') != NULL); | 324 | isPercent = (strchr (value_list, '%') != NULL); |
| 325 | |||
| 326 | strtok (value_list, "&"); /* burn the first parameters */ | ||
| 327 | description = strtok (NULL, "&"); | ||
| 328 | counter_unit = strtok (NULL, "&"); | ||
| 329 | asprintf (&send_buffer, "%s&8&%s", req_password, value_list); | ||
| 330 | fetch_data (server_address, server_port, send_buffer); | ||
| 331 | counter_value = atof (recv_buffer); | ||
| 332 | |||
| 333 | 325 | ||
| 334 | if (description == NULL) | 326 | strtok (value_list, "&"); /* burn the first parameters */ |
| 335 | asprintf (&output_message, "%.f", counter_value); | 327 | description = strtok (NULL, "&"); |
| 336 | else if (isPercent) | 328 | counter_unit = strtok (NULL, "&"); |
| 337 | { | 329 | asprintf (&send_buffer, "%s&8&%s", req_password, value_list); |
| 338 | counter_unit = strdup ("%"); | 330 | fetch_data (server_address, server_port, send_buffer); |
| 339 | allRight = TRUE; | 331 | counter_value = atof (recv_buffer); |
| 340 | } | 332 | |
| 333 | if (description == NULL) | ||
| 334 | asprintf (&output_message, "%.f", counter_value); | ||
| 335 | else if (isPercent) | ||
| 336 | { | ||
| 337 | counter_unit = strdup ("%"); | ||
| 338 | allRight = TRUE; | ||
| 339 | } | ||
| 341 | 340 | ||
| 342 | if ((counter_unit != NULL) && (!allRight)) | 341 | if ((counter_unit != NULL) && (!allRight)) |
| 343 | { | 342 | { |
| 344 | minval = strtok (NULL, "&"); | 343 | minval = strtok (NULL, "&"); |
| 345 | maxval = strtok (NULL, "&"); | 344 | maxval = strtok (NULL, "&"); |
| 346 | 345 | ||
| 347 | /* All parameters specified. Let's check the numbers */ | 346 | /* All parameters specified. Let's check the numbers */ |
| 348 | 347 | ||
| 349 | fminval = (minval != NULL) ? strtod (minval, &errcvt) : -1; | 348 | fminval = (minval != NULL) ? strtod (minval, &errcvt) : -1; |
| 350 | fmaxval = (minval != NULL) ? strtod (maxval, &errcvt) : -1; | 349 | fmaxval = (minval != NULL) ? strtod (maxval, &errcvt) : -1; |
| 351 | 350 | ||
| 352 | if ((fminval == 0) && (minval == errcvt)) | 351 | if ((fminval == 0) && (minval == errcvt)) |
| 353 | output_message = strdup (_("Minimum value contains non-numbers")); | 352 | output_message = strdup (_("Minimum value contains non-numbers")); |
| 354 | else | 353 | else |
| 355 | { | 354 | { |
| 356 | if ((fmaxval == 0) && (maxval == errcvt)) | 355 | if ((fmaxval == 0) && (maxval == errcvt)) |
| 357 | output_message = strdup (_("Maximum value contains non-numbers")); | 356 | output_message = strdup (_("Maximum value contains non-numbers")); |
| 358 | else | 357 | else |
| 359 | allRight = TRUE; /* Everything is OK. */ | 358 | allRight = TRUE; /* Everything is OK. */ |
| 360 | 359 | ||
| 361 | } | 360 | } |
| 362 | } | 361 | } |
| 363 | else if ((counter_unit == NULL) && (description != NULL)) | 362 | else if ((counter_unit == NULL) && (description != NULL)) |
| 364 | output_message = strdup (_("No unit counter specified")); | 363 | output_message = strdup (_("No unit counter specified")); |
| 365 | 364 | ||
| 366 | if (allRight) | 365 | if (allRight) |
| 367 | { | 366 | { |
| 368 | /* Let's format the output string, finally... */ | 367 | /* Let's format the output string, finally... */ |
| 369 | if (strstr(description, "%") == NULL) { | 368 | if (strstr(description, "%") == NULL) { |
| 370 | asprintf (&output_message, "%s = %.2f %s", description, counter_value, counter_unit); | 369 | asprintf (&output_message, "%s = %.2f %s", description, counter_value, counter_unit); |
| 371 | } else { | 370 | } else { |
| 372 | /* has formatting, will segv if wrong */ | 371 | /* has formatting, will segv if wrong */ |
| 373 | asprintf (&output_message, description, counter_value); | 372 | asprintf (&output_message, description, counter_value); |
| 374 | } | 373 | } |
| 375 | asprintf (&output_message, "%s |", output_message); | 374 | asprintf (&output_message, "%s |", output_message); |
| 376 | asprintf (&output_message,"%s %s", output_message, | 375 | asprintf (&output_message,"%s %s", output_message, |
| 377 | fperfdata (description, counter_value, | 376 | fperfdata (description, counter_value, |
| 378 | counter_unit, 1, warning_value, 1, critical_value, | 377 | counter_unit, 1, warning_value, 1, critical_value, |
| 379 | (!(isPercent) && (minval != NULL)), fminval, | 378 | (!(isPercent) && (minval != NULL)), fminval, |
| 380 | (!(isPercent) && (minval != NULL)), fmaxval)); | 379 | (!(isPercent) && (minval != NULL)), fmaxval)); |
| 381 | } | 380 | } |
| 382 | } | 381 | } |
| 383 | 382 | ||
| 384 | if (critical_value > warning_value) | 383 | if (critical_value > warning_value) |
| 385 | { /* Normal thresholds */ | 384 | { /* Normal thresholds */ |
| 386 | if (check_critical_value == TRUE && counter_value >= critical_value) | 385 | if (check_critical_value == TRUE && counter_value >= critical_value) |
| 387 | return_code = STATE_CRITICAL; | 386 | return_code = STATE_CRITICAL; |
| 388 | else if (check_warning_value == TRUE && counter_value >= warning_value) | 387 | else if (check_warning_value == TRUE && counter_value >= warning_value) |
| 389 | return_code = STATE_WARNING; | 388 | return_code = STATE_WARNING; |
| 390 | else | 389 | else |
| 391 | return_code = STATE_OK; | 390 | return_code = STATE_OK; |
| 392 | } | 391 | } |
| 393 | else | 392 | else |
| 394 | { /* inverse thresholds */ | 393 | { /* inverse thresholds */ |
| 395 | return_code = STATE_OK; | 394 | return_code = STATE_OK; |
| 396 | if (check_critical_value == TRUE && counter_value <= critical_value) | 395 | if (check_critical_value == TRUE && counter_value <= critical_value) |
| 397 | return_code = STATE_CRITICAL; | 396 | return_code = STATE_CRITICAL; |
| 398 | else if (check_warning_value == TRUE && counter_value <= warning_value) | 397 | else if (check_warning_value == TRUE && counter_value <= warning_value) |
| 399 | return_code = STATE_WARNING; | 398 | return_code = STATE_WARNING; |
| 400 | } | 399 | } |
| 401 | break; | 400 | break; |
| 402 | 401 | ||
| 403 | case CHECK_FILEAGE: | 402 | case CHECK_FILEAGE: |
| 404 | 403 | ||
| 405 | if (value_list==NULL) | 404 | if (value_list==NULL) |
| @@ -411,27 +410,27 @@ int main(int argc, char **argv){ | |||
| 411 | age_in_minutes = atoi(strtok(recv_buffer,"&")); | 410 | age_in_minutes = atoi(strtok(recv_buffer,"&")); |
| 412 | description = strtok(NULL,"&"); | 411 | description = strtok(NULL,"&"); |
| 413 | output_message = strdup (description); | 412 | output_message = strdup (description); |
| 414 | 413 | ||
| 415 | if (critical_value > warning_value) { /* Normal thresholds */ | 414 | if (critical_value > warning_value) { /* Normal thresholds */ |
| 416 | if(check_critical_value==TRUE && age_in_minutes >= critical_value) | 415 | if(check_critical_value==TRUE && age_in_minutes >= critical_value) |
| 417 | return_code=STATE_CRITICAL; | 416 | return_code=STATE_CRITICAL; |
| 418 | else if (check_warning_value==TRUE && age_in_minutes >= warning_value) | 417 | else if (check_warning_value==TRUE && age_in_minutes >= warning_value) |
| 419 | return_code=STATE_WARNING; | 418 | return_code=STATE_WARNING; |
| 420 | else | 419 | else |
| 421 | return_code=STATE_OK; | 420 | return_code=STATE_OK; |
| 422 | } | 421 | } |
| 423 | else { /* inverse thresholds */ | 422 | else { /* inverse thresholds */ |
| 424 | if(check_critical_value==TRUE && age_in_minutes <= critical_value) | 423 | if(check_critical_value==TRUE && age_in_minutes <= critical_value) |
| 425 | return_code=STATE_CRITICAL; | 424 | return_code=STATE_CRITICAL; |
| 426 | else if (check_warning_value==TRUE && age_in_minutes <= warning_value) | 425 | else if (check_warning_value==TRUE && age_in_minutes <= warning_value) |
| 427 | return_code=STATE_WARNING; | 426 | return_code=STATE_WARNING; |
| 428 | else | 427 | else |
| 429 | return_code=STATE_OK; | 428 | return_code=STATE_OK; |
| 430 | } | 429 | } |
| 431 | } | 430 | } |
| 432 | break; | 431 | break; |
| 433 | 432 | ||
| 434 | case CHECK_INSTANCES: | 433 | case CHECK_INSTANCES: |
| 435 | if (value_list==NULL) | 434 | if (value_list==NULL) |
| 436 | output_message = strdup (_("No counter specified")); | 435 | output_message = strdup (_("No counter specified")); |
| 437 | else { | 436 | else { |
| @@ -441,7 +440,7 @@ int main(int argc, char **argv){ | |||
| 441 | printf("NSClient - %s\n",recv_buffer); | 440 | printf("NSClient - %s\n",recv_buffer); |
| 442 | exit(STATE_UNKNOWN); | 441 | exit(STATE_UNKNOWN); |
| 443 | } | 442 | } |
| 444 | asprintf(&output_message,"%s",recv_buffer); | 443 | asprintf(&output_message,"%s",recv_buffer); |
| 445 | return_code=STATE_OK; | 444 | return_code=STATE_OK; |
| 446 | } | 445 | } |
| 447 | break; | 446 | break; |
| @@ -471,7 +470,7 @@ int process_arguments(int argc, char **argv){ | |||
| 471 | 470 | ||
| 472 | int option = 0; | 471 | int option = 0; |
| 473 | static struct option longopts[] = | 472 | static struct option longopts[] = |
| 474 | { | 473 | { |
| 475 | {"port", required_argument,0,'p'}, | 474 | {"port", required_argument,0,'p'}, |
| 476 | {"timeout", required_argument,0,'t'}, | 475 | {"timeout", required_argument,0,'t'}, |
| 477 | {"critical", required_argument,0,'c'}, | 476 | {"critical", required_argument,0,'c'}, |
| @@ -497,13 +496,13 @@ int process_arguments(int argc, char **argv){ | |||
| 497 | argc--; | 496 | argc--; |
| 498 | } | 497 | } |
| 499 | 498 | ||
| 500 | for (c=1;c<argc;c++) { | 499 | for (c=1;c<argc;c++) { |
| 501 | if(strcmp("-to",argv[c])==0) | 500 | if(strcmp("-to",argv[c])==0) |
| 502 | strcpy(argv[c],"-t"); | 501 | strcpy(argv[c],"-t"); |
| 503 | else if (strcmp("-wv",argv[c])==0) | 502 | else if (strcmp("-wv",argv[c])==0) |
| 504 | strcpy(argv[c],"-w"); | 503 | strcpy(argv[c],"-w"); |
| 505 | else if (strcmp("-cv",argv[c])==0) | 504 | else if (strcmp("-cv",argv[c])==0) |
| 506 | strcpy(argv[c],"-c"); | 505 | strcpy(argv[c],"-c"); |
| 507 | } | 506 | } |
| 508 | 507 | ||
| 509 | while (1) { | 508 | while (1) { |
| @@ -601,7 +600,7 @@ void fetch_data (const char *address, int port, const char *sendb) { | |||
| 601 | 600 | ||
| 602 | if(result!=STATE_OK) | 601 | if(result!=STATE_OK) |
| 603 | die (result, _("could not fetch information from server\n")); | 602 | die (result, _("could not fetch information from server\n")); |
| 604 | 603 | ||
| 605 | if (!strncmp(recv_buffer,"ERROR",5)) | 604 | if (!strncmp(recv_buffer,"ERROR",5)) |
| 606 | die (STATE_UNKNOWN, "NSClient - %s\n",recv_buffer); | 605 | die (STATE_UNKNOWN, "NSClient - %s\n",recv_buffer); |
| 607 | } | 606 | } |
| @@ -613,15 +612,15 @@ int strtoularray(unsigned long *array, char *string, const char *delim) { | |||
| 613 | 612 | ||
| 614 | for (idx=0;idx<MAX_VALUE_LIST;idx++) | 613 | for (idx=0;idx<MAX_VALUE_LIST;idx++) |
| 615 | array[idx]=0; | 614 | array[idx]=0; |
| 616 | 615 | ||
| 617 | idx=0; | 616 | idx=0; |
| 618 | for(t1 = strtok(string,delim);t1 != NULL; t1 = strtok(NULL, delim)) { | 617 | for(t1 = strtok(string,delim);t1 != NULL; t1 = strtok(NULL, delim)) { |
| 619 | if (is_numeric(t1) && idx<MAX_VALUE_LIST) { | 618 | if (is_numeric(t1) && idx<MAX_VALUE_LIST) { |
| 620 | array[idx]=strtoul(t1,NULL,10); | 619 | array[idx]=strtoul(t1,NULL,10); |
| 621 | idx++; | 620 | idx++; |
| 622 | } else | 621 | } else |
| 623 | return FALSE; | 622 | return FALSE; |
| 624 | } | 623 | } |
| 625 | return TRUE; | 624 | return TRUE; |
| 626 | } | 625 | } |
| 627 | 626 | ||
| @@ -640,120 +639,121 @@ void preparelist(char *string) { | |||
| 640 | void print_help(void) | 639 | void print_help(void) |
| 641 | { | 640 | { |
| 642 | print_revision(progname, NP_VERSION); | 641 | print_revision(progname, NP_VERSION); |
| 643 | 642 | ||
| 644 | printf ("Copyright (c) 2000 Yves Rubin (rubiyz@yahoo.com)\n"); | 643 | printf ("Copyright (c) 2000 Yves Rubin (rubiyz@yahoo.com)\n"); |
| 645 | printf (COPYRIGHT, copyright, email); | 644 | printf (COPYRIGHT, copyright, email); |
| 646 | 645 | ||
| 647 | printf ("%s\n", _("This plugin collects data from the NSClient service running on a")); | 646 | printf ("%s\n", _("This plugin collects data from the NSClient service running on a")); |
| 648 | printf ("%s\n", _("Windows NT/2000/XP/2003 server.")); | 647 | printf ("%s\n", _("Windows NT/2000/XP/2003 server.")); |
| 649 | 648 | ||
| 650 | printf ("\n\n"); | 649 | printf ("\n\n"); |
| 651 | 650 | ||
| 652 | print_usage(); | 651 | print_usage(); |
| 653 | 652 | ||
| 654 | printf (_(UT_HELP_VRSN)); | 653 | printf (_(UT_HELP_VRSN)); |
| 655 | printf (_(UT_EXTRA_OPTS)); | 654 | printf (_(UT_EXTRA_OPTS)); |
| 656 | 655 | ||
| 657 | printf ("%s\n", _("Options:")); | 656 | printf ("%s\n", _("Options:")); |
| 658 | printf (" %s\n", "-H, --hostname=HOST"); | 657 | printf (" %s\n", "-H, --hostname=HOST"); |
| 659 | printf (" %s\n", _("Name of the host to check")); | 658 | printf (" %s\n", _("Name of the host to check")); |
| 660 | printf (" %s\n", "-p, --port=INTEGER"); | 659 | printf (" %s\n", "-p, --port=INTEGER"); |
| 661 | printf (" %s", _("Optional port number (default: ")); | 660 | printf (" %s", _("Optional port number (default: ")); |
| 662 | printf ("%d)\n", PORT); | 661 | printf ("%d)\n", PORT); |
| 663 | printf (" %s\n", "-s, --secret=<password>"); | 662 | printf (" %s\n", "-s, --secret=<password>"); |
| 664 | printf (" %s\n", _("Password needed for the request")); | 663 | printf (" %s\n", _("Password needed for the request")); |
| 665 | printf (" %s\n", "-w, --warning=INTEGER"); | 664 | printf (" %s\n", "-w, --warning=INTEGER"); |
| 666 | printf (" %s\n", _("Threshold which will result in a warning status")); | 665 | printf (" %s\n", _("Threshold which will result in a warning status")); |
| 667 | printf (" %s\n", "-c, --critical=INTEGER"); | 666 | printf (" %s\n", "-c, --critical=INTEGER"); |
| 668 | printf (" %s\n", _("Threshold which will result in a critical status")); | 667 | printf (" %s\n", _("Threshold which will result in a critical status")); |
| 669 | printf (" %s\n", "-t, --timeout=INTEGER"); | 668 | printf (" %s\n", "-t, --timeout=INTEGER"); |
| 670 | printf (" %s", _("Seconds before connection attempt times out (default: ")); | 669 | printf (" %s", _("Seconds before connection attempt times out (default: ")); |
| 671 | printf (" %s\n", "-l, --params=<parameters>"); | 670 | printf (" %s\n", "-l, --params=<parameters>"); |
| 672 | printf (" %s", _("Parameters passed to specified check (see below)")); | 671 | printf (" %s", _("Parameters passed to specified check (see below)")); |
| 673 | printf (" %s\n", "-d, --display={SHOWALL}"); | 672 | printf (" %s\n", "-d, --display={SHOWALL}"); |
| 674 | printf (" %s", _("Display options (currently only SHOWALL works)")); | 673 | printf (" %s", _("Display options (currently only SHOWALL works)")); |
| 675 | printf ("%d)\n", DEFAULT_SOCKET_TIMEOUT); | 674 | printf ("%d)\n", DEFAULT_SOCKET_TIMEOUT); |
| 676 | printf (" %s\n", "-h, --help"); | 675 | printf (" %s\n", "-h, --help"); |
| 677 | printf (" %s\n", _("Print this help screen")); | 676 | printf (" %s\n", _("Print this help screen")); |
| 678 | printf (" %s\n", "-V, --version"); | 677 | printf (" %s\n", "-V, --version"); |
| 679 | printf (" %s\n", _("Print version information")); | 678 | printf (" %s\n", _("Print version information")); |
| 680 | printf (" %s\n", "-v, --variable=STRING"); | 679 | printf (" %s\n", "-v, --variable=STRING"); |
| 681 | printf (" %s\n\n", _("Variable to check")); | 680 | printf (" %s\n\n", _("Variable to check")); |
| 682 | printf ("%s\n", _("Valid variables are:")); | 681 | printf ("%s\n", _("Valid variables are:")); |
| 683 | printf (" %s", "CLIENTVERSION ="); | 682 | printf (" %s", "CLIENTVERSION ="); |
| 684 | printf (" %s\n", _("Get the NSClient version")); | 683 | printf (" %s\n", _("Get the NSClient version")); |
| 685 | printf (" %s\n", _("If -l <version> is specified, will return warning if versions differ.")); | 684 | printf (" %s\n", _("If -l <version> is specified, will return warning if versions differ.")); |
| 686 | printf (" %s\n", "CPULOAD ="); | 685 | printf (" %s\n", "CPULOAD ="); |
| 687 | printf (" %s\n", _("Average CPU load on last x minutes.")); | 686 | printf (" %s\n", _("Average CPU load on last x minutes.")); |
| 688 | printf (" %s\n", _("Request a -l parameter with the following syntax:")); | 687 | printf (" %s\n", _("Request a -l parameter with the following syntax:")); |
| 689 | printf (" %s\n", _("-l <minutes range>,<warning threshold>,<critical threshold>.")); | 688 | printf (" %s\n", _("-l <minutes range>,<warning threshold>,<critical threshold>.")); |
| 690 | printf (" %s\n", _("<minute range> should be less than 24*60.")); | 689 | printf (" %s\n", _("<minute range> should be less than 24*60.")); |
| 691 | printf (" %s\n", _("Thresholds are percentage and up to 10 requests can be done in one shot.")); | 690 | printf (" %s\n", _("Thresholds are percentage and up to 10 requests can be done in one shot.")); |
| 692 | printf (" %s\n", "ie: -l 60,90,95,120,90,95"); | 691 | printf (" %s\n", "ie: -l 60,90,95,120,90,95"); |
| 693 | printf (" %s\n", "UPTIME ="); | 692 | printf (" %s\n", "UPTIME ="); |
| 694 | printf (" %s\n", _("Get the uptime of the machine.")); | 693 | printf (" %s\n", _("Get the uptime of the machine.")); |
| 695 | printf (" %s\n", _("No specific parameters. No warning or critical threshold")); | 694 | printf (" %s\n", _("No specific parameters. No warning or critical threshold")); |
| 696 | printf (" %s\n", "USEDDISKSPACE ="); | 695 | printf (" %s\n", "USEDDISKSPACE ="); |
| 697 | printf (" %s\n", _("Size and percentage of disk use.")); | 696 | printf (" %s\n", _("Size and percentage of disk use.")); |
| 698 | printf (" %s\n", _("Request a -l parameter containing the drive letter only.")); | 697 | printf (" %s\n", _("Request a -l parameter containing the drive letter only.")); |
| 699 | printf (" %s\n", _("Warning and critical thresholds can be specified with -w and -c.")); | 698 | printf (" %s\n", _("Warning and critical thresholds can be specified with -w and -c.")); |
| 700 | printf (" %s\n", "MEMUSE ="); | 699 | printf (" %s\n", "MEMUSE ="); |
| 701 | printf (" %s\n", _("Memory use.")); | 700 | printf (" %s\n", _("Memory use.")); |
| 702 | printf (" %s\n", _("Warning and critical thresholds can be specified with -w and -c.")); | 701 | printf (" %s\n", _("Warning and critical thresholds can be specified with -w and -c.")); |
| 703 | printf (" %s\n", "SERVICESTATE ="); | 702 | printf (" %s\n", "SERVICESTATE ="); |
| 704 | printf (" %s\n", _("Check the state of one or several services.")); | 703 | printf (" %s\n", _("Check the state of one or several services.")); |
| 705 | printf (" %s\n", _("Request a -l parameters with the following syntax:")); | 704 | printf (" %s\n", _("Request a -l parameters with the following syntax:")); |
| 706 | printf (" %s\n", _("-l <service1>,<service2>,<service3>,...")); | 705 | printf (" %s\n", _("-l <service1>,<service2>,<service3>,...")); |
| 707 | printf (" %s\n", _("You can specify -d SHOWALL in case you want to see working services")); | 706 | printf (" %s\n", _("You can specify -d SHOWALL in case you want to see working services")); |
| 708 | printf (" %s\n", _("in the returned string.")); | 707 | printf (" %s\n", _("in the returned string.")); |
| 709 | printf (" %s\n", "PROCSTATE ="); | 708 | printf (" %s\n", "PROCSTATE ="); |
| 710 | printf (" %s\n", _("Check if one or several process are running.")); | 709 | printf (" %s\n", _("Check if one or several process are running.")); |
| 711 | printf (" %s\n", _("Same syntax as SERVICESTATE.")); | 710 | printf (" %s\n", _("Same syntax as SERVICESTATE.")); |
| 712 | printf (" %s\n", "COUNTER ="); | 711 | printf (" %s\n", "COUNTER ="); |
| 713 | printf (" %s\n", _("Check any performance counter of Windows NT/2000.")); | 712 | printf (" %s\n", _("Check any performance counter of Windows NT/2000.")); |
| 714 | printf (" %s\n", _("Request a -l parameters with the following syntax:")); | 713 | printf (" %s\n", _("Request a -l parameters with the following syntax:")); |
| 715 | printf (" %s\n", _("-l \"\\\\<performance object>\\\\counter\",\"<description>")); | 714 | printf (" %s\n", _("-l \"\\\\<performance object>\\\\counter\",\"<description>")); |
| 716 | printf (" %s\n", _("The <description> parameter is optional and is given to a printf ")); | 715 | printf (" %s\n", _("The <description> parameter is optional and is given to a printf ")); |
| 717 | printf (" %s\n", _("output command which requires a float parameter.")); | 716 | printf (" %s\n", _("output command which requires a float parameter.")); |
| 718 | printf (" %s\n", _("If <description> does not include \"%%\", it is used as a label.")); | 717 | printf (" %s\n", _("If <description> does not include \"%%\", it is used as a label.")); |
| 719 | printf (" %s\n", _("Some examples:")); | 718 | printf (" %s\n", _("Some examples:")); |
| 720 | printf (" %s\n", "\"Paging file usage is %%.2f %%%%\""); | 719 | printf (" %s\n", "\"Paging file usage is %%.2f %%%%\""); |
| 721 | printf (" %s\n", "\"%%.f %%%% paging file used.\""); | 720 | printf (" %s\n", "\"%%.f %%%% paging file used.\""); |
| 722 | printf (" %s\n", "INSTANCES ="); | 721 | printf (" %s\n", "INSTANCES ="); |
| 723 | printf (" %s\n", _("Check any performance counter object of Windows NT/2000.")); | 722 | printf (" %s\n", _("Check any performance counter object of Windows NT/2000.")); |
| 724 | printf (" %s\n", _("Syntax: check_nt -H <hostname> -p <port> -v INSTANCES -l <counter object>")); | 723 | printf (" %s\n", _("Syntax: check_nt -H <hostname> -p <port> -v INSTANCES -l <counter object>")); |
| 725 | printf (" %s\n", _("<counter object> is a Windows Perfmon Counter object (eg. Process),")); | 724 | printf (" %s\n", _("<counter object> is a Windows Perfmon Counter object (eg. Process),")); |
| 726 | printf (" %s\n", _("if it is two words, it should be enclosed in quotes")); | 725 | printf (" %s\n", _("if it is two words, it should be enclosed in quotes")); |
| 727 | printf (" %s\n", _("The returned results will be a comma-separated list of instances on ")); | 726 | printf (" %s\n", _("The returned results will be a comma-separated list of instances on ")); |
| 728 | printf (" %s\n", _(" the selected computer for that object.")); | 727 | printf (" %s\n", _(" the selected computer for that object.")); |
| 729 | printf (" %s\n", _("The purpose of this is to be run from command line to determine what instances")); | 728 | printf (" %s\n", _("The purpose of this is to be run from command line to determine what instances")); |
| 730 | printf (" %s\n", _(" are available for monitoring without having to log onto the Windows server")); | 729 | printf (" %s\n", _(" are available for monitoring without having to log onto the Windows server")); |
| 731 | printf (" %s\n", _(" to run Perfmon directly.")); | 730 | printf (" %s\n", _(" to run Perfmon directly.")); |
| 732 | printf (" %s\n", _("It can also be used in scripts that automatically create Nagios service")); | 731 | printf (" %s\n", _("It can also be used in scripts that automatically create Nagios service")); |
| 733 | printf (" %s\n", _(" configuration files.")); | 732 | printf (" %s\n", _(" configuration files.")); |
| 734 | printf (" %s\n", _("Some examples:")); | 733 | printf (" %s\n", _("Some examples:")); |
| 735 | printf (" %s\n\n", _("check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process")); | 734 | printf (" %s\n\n", _("check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process")); |
| 736 | 735 | ||
| 737 | printf ("%s\n", _("Notes:")); | 736 | printf ("%s\n", _("Notes:")); |
| 738 | printf (" %s\n", _("- The NSClient service should be running on the server to get any information")); | 737 | printf (" %s\n", _("- The NSClient service should be running on the server to get any information")); |
| 739 | printf (" %s\n", "(http://nsclient.ready2run.nl)."); | 738 | printf (" %s\n", "(http://nsclient.ready2run.nl)."); |
| 740 | printf (" %s\n", _("- Critical thresholds should be lower than warning thresholds")); | 739 | printf (" %s\n", _("- Critical thresholds should be lower than warning thresholds")); |
| 741 | printf (" %s\n", _("- Default port 1248 is sometimes in use by other services. The error")); | 740 | printf (" %s\n", _("- Default port 1248 is sometimes in use by other services. The error")); |
| 742 | printf (" %s\n", _("output when this happens contains \"Cannot map xxxxx to protocol number\".")); | 741 | printf (" %s\n", _("output when this happens contains \"Cannot map xxxxx to protocol number\".")); |
| 743 | printf (" %s\n", _("One fix for this is to change the port to something else on check_nt ")); | 742 | printf (" %s\n", _("One fix for this is to change the port to something else on check_nt ")); |
| 744 | printf (" %s\n", _("and on the client service it\'s connecting to.")); | 743 | printf (" %s\n", _("and on the client service it\'s connecting to.")); |
| 745 | #ifdef NP_EXTRA_OPTS | 744 | #ifdef NP_EXTRA_OPTS |
| 746 | printf (" -%s", _(UT_EXTRA_OPTS_NOTES)); | 745 | printf (" -%s", _(UT_EXTRA_OPTS_NOTES)); |
| 747 | #endif | 746 | #endif |
| 748 | 747 | ||
| 749 | printf (_(UT_SUPPORT)); | 748 | printf (_(UT_SUPPORT)); |
| 750 | } | 749 | } |
| 751 | 750 | ||
| 752 | 751 | ||
| 753 | 752 | ||
| 754 | void print_usage(void) | 753 | void print_usage(void) |
| 755 | { | 754 | { |
| 756 | printf (_("Usage:")); | 755 | printf (_("Usage:")); |
| 757 | printf ("%s -H host -v variable [-p port] [-w warning] [-c critical]\n",progname); | 756 | printf ("%s -H host -v variable [-p port] [-w warning] [-c critical]\n",progname); |
| 758 | printf ("[-l params] [-d SHOWALL] [-t timeout]\n"); | 757 | printf ("[-l params] [-d SHOWALL] [-t timeout]\n"); |
| 759 | } | 758 | } |
| 759 | |||
