[Nagiosplug-devel] Check_nt INSTANCES patch with help.

Ton Voon ton.voon at altinity.com
Mon Dec 17 10:09:39 CET 2007


Alessandro,

This patch appears to be malformed. Can you attach the patch instead?

Ton

On 14 Dec 2007, at 18:56, Alessandro Ren wrote:

>
>     Ton,
>
> attached is the patch for check_nt for INSTANCES support.
>
>     Thanks.
>
> Alessandro Ren
>
> --- nagios-plugins-1.4.11/plugins/check_nt.c	2007-01-28  
> 19:46:41.000000000 -0200
> +++ nagios-plugins-1.4.11-op/plugins/check_nt.c	2007-12-14  
> 16:49:03.000000000 -0200
> @@ -55,7 +55,8 @@ enum checkvars {
> 	CHECK_PROCSTATE,
> 	CHECK_MEMUSE,
> 	CHECK_COUNTER,
> -	CHECK_FILEAGE
> +	CHECK_FILEAGE,
> +	CHECK_INSTANCES
> };
>
> enum {
> @@ -121,7 +122,7 @@ int main(int argc, char **argv){
> 	setlocale (LC_ALL, "");
> 	bindtextdomain (PACKAGE, LOCALEDIR);
> 	textdomain (PACKAGE);
> -
> +	
> 	if(process_arguments(argc,argv) == ERROR)
> 		usage4 (_("Could not parse arguments"));
>
> @@ -396,7 +397,6 @@ int main(int argc, char **argv){
>         break;
> 		
> 	case CHECK_FILEAGE:
> -
> 		if (value_list==NULL)
> 			output_message = strdup (_("No counter specified"));
> 		else {
> @@ -414,7 +414,7 @@ int main(int argc, char **argv){
> 					return_code=STATE_WARNING;	
> 				else
> 					return_code=STATE_OK;	
> -			}
> +			}
> 			else {                                       /* inverse  
> thresholds */
> 				if(check_critical_value==TRUE && age_in_minutes <= critical_value)
> 					return_code=STATE_CRITICAL;
> @@ -426,6 +426,21 @@ int main(int argc, char **argv){
> 		}
> 		break;
>
> +	case CHECK_INSTANCES:		
> +		if (value_list==NULL)
> +			output_message = strdup (_("No counter specified"));
> +		else {
> +			asprintf(&send_buffer,"%s&10&%s", req_password,value_list);
> +			fetch_data (server_address, server_port, send_buffer);
> +			if (!strncmp(recv_buffer,"ERROR",5)) {
> +				printf("NSClient - %s\n",recv_buffer);
> +				exit(STATE_UNKNOWN);
> +			}
> +			asprintf(&output_message,"%s",recv_buffer);			
> +			return_code=STATE_OK;
> +		}
> +		break;
> +
> 	case CHECK_NONE:
> 	default:
> 		usage4 (_("Please specify a variable to check"));
> @@ -483,14 +498,13 @@ int process_arguments(int argc, char **a
>       strcpy(argv[c],"-c");
> 	}
>
> -	while (1){
> +	while (1) {
> 		c = getopt_long(argc,argv,"+hVH:t:c:w:p:v:l:s:d:",longopts,&option);
>
> 		if (c==-1||c==EOF||c==1)
> 			break;
>
> -		switch (c)
> -			{
> +		switch (c) {
> 			case '?': /* print short usage statement if args not parsable */
> 			usage5 ();
> 			case 'h': /* help */
> @@ -533,6 +547,8 @@ int process_arguments(int argc, char **a
> 					vars_to_check=CHECK_COUNTER;
> 				else if(!strcmp(optarg,"FILEAGE"))
> 					vars_to_check=CHECK_FILEAGE;
> +				else if(!strcmp(optarg,"INSTANCES"))
> +					vars_to_check=CHECK_INSTANCES;
> 				else
> 					return ERROR;
> 				break;
> @@ -556,7 +572,6 @@ int process_arguments(int argc, char **a
> 				if(socket_timeout<=0)
> 					return ERROR;
> 			}
> -
> 	}
>
> 	if (vars_to_check==CHECK_NONE)
> @@ -569,7 +584,6 @@ int process_arguments(int argc, char **a
> }
>
>
> -
> void fetch_data (const char *address, int port, const char *sendb) {
> 	int result;
>
> @@ -690,6 +704,20 @@ void print_help(void)
>   printf ("  %s\n", _("Some examples:"));
>   printf ("  %s\n", "\"Paging file usage is %%.2f %%%%\"");
>   printf ("  %s\n\n", "\"%%.f %%%% paging file used.\"");
> +  printf (" %s\n", "INSTANCES =");
> +  printf ("  %s\n", _("Check any performance counter object NT/ 
> 2000"));
> +  printf ("  %s\n", _("Syntax: check_nt -H <hostname> -p <port> -v  
> INSTANCES -l <counter object>"));
> +  printf ("  %s\n", _("counter object> is a Windows Perfmon Counter  
> object (eg. Process),"));
> +  printf ("  %s\n", _("if it is two words, it should be enclosed in  
> quotes"));
> +  printf ("  %s\n", _("The returned results will be a comma- 
> separated list of instances on "));
> +  printf ("  %s\n", _(" the selected computer for that object."));
> +  printf ("  %s\n", _("The purpose of this is to be run from  
> command line to determine what instances"));
> +  printf ("  %s\n", _(" are available for monitoring without having  
> to log onto the Windows server"));
> +  printf ("  %s\n", _("  to run Perfmon directly."));
> +  printf ("  %s\n", _("It can also be used in scripts that  
> automatically create Nagios service"));
> +  printf ("  %s\n", _(" configuration files."));
> +	printf ("  %s\n", _("Example"));
> +	printf ("  %s\n\n", _("check_nt -H 192.168.1.1 -p 1248 -v  
> INSTANCES -l Process"));
>   printf (_("Notes:"));
>   printf (" %s\n", _("- The NSClient service should be running on  
> the server to get any information"));
>   printf (" %s\n", "(http://nsclient.ready2run.nl).");


http://www.altinity.com
UK: +44 (0)870 787 9243
US: +1 866 879 9184
Fax: +44 (0)845 280 1725
Skype: tonvoon





More information about the Devel mailing list