[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