Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /opt/webdir/bin/ |
Upload File : |
#!/usr/bin/perl # use strict; use warnings; use lib "/opt/webdir/lib"; use bxDaemon; use Output; use Pool; use Data::Dumper; use Getopt::Long; use File::Basename qw( dirname basename ); # program options my $prog_name = basename $0; my $prog_dir = dirname $0; my $o_action = "status"; # type of action that script must do. # status - current status - enable or disable # enbale - enable monitoring # disable - monitoring # update - update monitoring node ( usage when node added to the pool ) my $o_monitoring_server = undef; # ip address of monitoring my $o_monitoring_status = undef; # status of monitoring system my $o_format = 'plain'; # format of stdout message my $o_verbose = 0; my $o_help = undef; # monitoring auth options my ($o_nagios_user, $o_nagios_password, $o_munin_user, $o_munin_password); # email options my ($o_smtphost, $o_smtpport, $o_smtppass, $o_smtplogin, $o_smtptls, $o_smtpmethod, $o_monitor_email, $o_notify_nagios, ); # get command line options Getopt::Long::Configure ("bundling"); my $result_option = GetOptions( 'v' => \$o_verbose, 'verbose' => \$o_verbose, 'h' => \$o_help, 'help' => \$o_help, "a:s" => \$o_action, 'action:s' => \$o_action, "s:s" => \$o_monitoring_server, 'server:s' => \$o_monitoring_server, "o:s" => \$o_format, 'output' => \$o_format, # auth options for monitoring service "nagios_user:s" => \$o_nagios_user, "nagios_password:s" => \$o_nagios_password, "munin_user:s" => \$o_munin_user, "munin_password:s" => \$o_munin_password, # email options for monitoring service "smtphost:s" => \$o_smtphost, "smtpport:s" => \$o_smtpport, "smtppass:s" => \$o_smtppass, "smtplogin:s" => \$o_smtplogin, "smtptls" => \$o_smtptls, "smtpmethod:s" => \$o_smtpmethod, "monitor_email:s" => \$o_monitor_email, "notify_nagios" => \$o_notify_nagios, ) or unknown_arg(); # help message if ( $o_help ) { print_help($prog_name, 0) }; # formt output if ( $o_format !~ /^(json|plain|te?xt)$/ ) { print_help($prog_name, 1)} if ( $o_format =~ /^te?xt$/ ) { $o_format = "plain" }; # process request my $confPool = Pool->new(); my $confMonitor = undef; #if ($o_action =~ /^status$/i){ # $confMonitor = $confPool->monitorStatus(); # configure server #}elsif ($o_action =~ /^enable$/){ # $confMonitor = $confPool->monitorEnable( # { # nagios_server_login => $o_nagios_user, # nagios_server_password => $o_nagios_password, # munin_server_login => $o_munin_user, # munin_server_password => $o_munin_password, # monitoring_server => $o_monitoring_server, # monitor_email => $o_monitor_email, # monitor_smtphost => $o_smtphost, # monitor_smtpport => $o_smtpport, # monitor_smtplogin => $o_smtplogin, # monitor_smtppass => $o_smtppass, # monitor_smtpmethod => $o_smtpmethod, # monitor_smtptls => $o_smtptls, # notify_nagios => ($o_notify_nagios)? 1: 0, # } # ); #}elsif ($o_action =~ /^disable$/){ # $confMonitor = $confPool->monitorDisable(); #}elsif ($o_action =~ /^update$/ ){ # $confMonitor = $confPool->monitorUpdate(); #}else{ # $confMonitor = Output->new( error => 1, message => "Unknown action option. PLease use -h for help message." ); #} #print Dumper( $confMonitor ); $confMonitor->print($o_format); # print usage sub print_usage { my $prog = shift; print "Usage: $prog [-vh] [-a enable|disable|status] [-s server_ip] \n"; } # help message sub print_help { my $prog = shift; my $exit = shift; print_usage( $prog ); print <<EOT; Options: -h|--help - show this message -v|--verbose - enable verbose mode. -a|--action - monitoring action: status|enable|disable -s|--server - monitoring server ( default: localhost ip address ) Ex. * get status of monitoring in pool $prog -o json * enable monitoring $prog -a enable -s 192.168.1.151 * disable monitoring $prog -a disable * update monitoring by new host(s) $prog -a update EOT ; exit; }