From d45570bd36a7f6b086dd545097acf9cceecbdd3e Mon Sep 17 00:00:00 2001 From: Tomas Plesnik <plesnik@ics.muni.cz> Date: Thu, 19 Jan 2012 16:30:28 +0100 Subject: [PATCH] pridan vypis serverovych promenych --- src/warden-server/bin/getStatus.pl | 35 +++++++++++++++----- src/warden-server/bin/warden-server.pl | 45 +++++++++++++++----------- src/warden-server/lib/WardenStatus.pm | 16 +++++++-- 3 files changed, 67 insertions(+), 29 deletions(-) diff --git a/src/warden-server/bin/getStatus.pl b/src/warden-server/bin/getStatus.pl index 1549b3c..60fe461 100755 --- a/src/warden-server/bin/getStatus.pl +++ b/src/warden-server/bin/getStatus.pl @@ -35,6 +35,8 @@ use strict; use Getopt::Std; use File::Basename; +our $VERSION = "1.0.0"; + my $warden_path = '/opt/warden-server'; require $warden_path . '/lib/WardenStatus.pm'; my $filename = basename($0); @@ -93,20 +95,36 @@ if ($UID != 0) { my @status = WardenStatus::getStatus($warden_path); -# remove first element of array @status and save it into $server_status_ref +# take and remove first element of array @status and save it into $server_status_ref my $server_status_ref = shift(@status); my @server_status = @$server_status_ref; -print "Database size:\t\t\t$server_status[0]\n"; -print "Count of saved events:\t\t$server_status[1]\n"; -print "Last ID in events table:\t$server_status[2]\n"; -print "Time of first inserted event:\t$server_status[3] (UTC)\n"; -print "Time of latest inserted event:\t$server_status[4] (UTC)\n"; -print "Count of registered clients:\t$server_status[5]\n"; +print "Warden server variables:\n"; +print "========================\n"; +print "SERVER_VERSION:\t\t$server_status[0]\n"; +print "ADDRESS:\t\t$server_status[1]\n"; +print "PORT:\t\t\t$server_status[2]\n"; +print "LOGDIR:\t\t\t$server_status[3]\n"; +print "PIDDIR:\t\t\t$server_status[4]\n"; +print "VARDIR:\t\t\t$server_status[5]\n"; +print "SSL_KEY_FILE:\t\t$server_status[6]\n"; +print "SSL_CERT_FILE:\t\t$server_status[7]\n"; +print "SSLCA_FILE:\t\t$server_status[8]\n"; +print "SYSLOG_FACILITY:\t$server_status[9]\n"; +print "\n"; + +print "Warden server status:\n"; +print "=====================\n"; +print "Database size:\t\t\t$server_status[10]\n"; +print "Count of saved events:\t\t$server_status[11]\n"; +print "Last ID in events table:\t$server_status[12]\n"; +print "Time of first inserted event:\t$server_status[13] (UTC)\n"; +print "Time of latest inserted event:\t$server_status[14] (UTC)\n"; +print "Count of registered clients:\t$server_status[15]\n"; print "\n"; # check if sum of registered client isn't 0 -if ($server_status[5] != 0) { +if ($server_status[15] != 0) { print "Statistics of registered senders:\n"; print "+-----------------------------------------------------------------------------------------------------------+\n"; print "| Client ID | Hostname | Service | Stored events | Last insertion (UTC) |\n"; @@ -122,6 +140,7 @@ if ($server_status[5] != 0) { print "+-----------------------------------------------------------------------------------------------------------+\n"; print "\n"; } + print "Current server status in:\t" . scalar localtime(time) . "\n"; exit 0; diff --git a/src/warden-server/bin/warden-server.pl b/src/warden-server/bin/warden-server.pl index bf95e14..4b9fa25 100755 --- a/src/warden-server/bin/warden-server.pl +++ b/src/warden-server/bin/warden-server.pl @@ -48,6 +48,7 @@ use Data::Dumper; use Net::CIDR::Lite; use DateTime; +our $VERSION = "1.0.0"; ################################################################################ # CONFIG FILE VARIABLES @@ -57,15 +58,15 @@ my $script_name = $FindBin::Script; my $conf_file = "/opt/warden-server/etc/warden-server.conf"; # first declaration of globa variables from config file -our $ADDRESS = undef; -our $PORT = undef; -our $LOGDIR = undef; -our $PIDDIR = undef; -our $VARDIR = undef; -our $SSL_KEY_FILE = undef; -our $SSL_CERT_FILE = undef; -our $SSL_CA_FILE = undef; -our $FACILITY = undef; +our $ADDRESS = undef; +our $PORT = undef; +our $LOGDIR = undef; +our $PIDDIR = undef; +our $VARDIR = undef; +our $SSL_KEY_FILE = undef; +our $SSL_CERT_FILE = undef; +our $SSL_CA_FILE = undef; +our $FACILITY = undef; # read config file if ( ! open( TMP, $conf_file) ) { @@ -83,7 +84,6 @@ if ( !do $conf_file ) { ################################################################################ # VARIABLES ################################################################################ - my $die_now = 0; # PID path @@ -103,7 +103,6 @@ our $DBH = DBI->connect("dbi:SQLite:dbname=$db","","",$dbargs) or die errMsg("Ca # LOCAL FUNCTIONS ################################################################################ - #------------------------------------------------------------------------------- # errMsg - print error message and die #------------------------------------------------------------------------------- @@ -161,13 +160,13 @@ sub sslErrorHandler my $msg = shift; my $ip = $socket->peerhost; - - print $socket $msg; $socket->close; write2log ("err", "Caught SSL handshake error from $ip: $msg"); return 1; -} +} # End of sslErrorHandler + + ################################################################################ # SOAP Functions @@ -668,12 +667,22 @@ sub getStatus if (!defined $clients_sum) { $clients_sum = "none" } my $server_status = SOAP::Data->name(server_status => \SOAP::Data->value( + SOAP::Data->name(VERSION => $VERSION), + SOAP::Data->name(ADDRESS => $ADDRESS), + SOAP::Data->name(PORT => $PORT), + SOAP::Data->name(LOGDIR => $LOGDIR), + SOAP::Data->name(PIDDIR => $PIDDIR), + SOAP::Data->name(VARDIR => $VARDIR), + SOAP::Data->name(SSL_KEY_FILE => $SSL_KEY_FILE), + SOAP::Data->name(SSL_CERT_FILE => $SSL_CERT_FILE), + SOAP::Data->name(SSL_CA_FILE => $SSL_CA_FILE), + SOAP::Data->name(FACILITY => $FACILITY), SOAP::Data->name(DB_SIZE => $db_size), SOAP::Data->name(EVENTS_SUM => $events_sum), SOAP::Data->name(EVENTS_LAST_ID => $events_last_id), SOAP::Data->name(EVENTS_FIRST_TIMESTAMP => $events_first_timestamp), SOAP::Data->name(EVENTS_LAST_TIMESTAMP => $events_last_timestamp), - SOAP::Data->name(CLIENTS_SUM => $clients_sum), + SOAP::Data->name(CLIENTS_SUM => $clients_sum) )); push(@status, $server_status); @@ -769,8 +778,8 @@ my $pid_number = $pfh->pid; write2log("info", "Starting WARDEN server daemon with pid $pid_number"); # log of warden database size -my $db_size = Format::Human::Bytes::base10(-s $db); -write2log("info", "Size of DB file ($db_file) is: $db_size"); +my $db_size_human = Format::Human::Bytes::base10(-s $db); +write2log("info", "Size of DB file ($db_file) is: $db_size_human"); # start TCP server my $server = SOAP::Transport::TCP::Server @@ -797,11 +806,11 @@ my $soap = SOAP::Server ->new() ->dispatch_to('Warden'); -write2log("info", "Starting TCP and SOAP server at $ADDRESS:$PORT"); #------------------------------------------------------------------------------- # Process of incoming client's requests and send response #------------------------------------------------------------------------------- +write2log("info", "Starting TCP and SOAP server at $ADDRESS:$PORT"); while ($die_now != 1) { my $socket = $server->accept(); diff --git a/src/warden-server/lib/WardenStatus.pm b/src/warden-server/lib/WardenStatus.pm index 83c347b..6c2f534 100755 --- a/src/warden-server/lib/WardenStatus.pm +++ b/src/warden-server/lib/WardenStatus.pm @@ -38,7 +38,7 @@ use SOAP::Lite; use IO::Socket::SSL qw(debug1); use SOAP::Transport::TCP -our $VERSION = 100; +our $VERSION = "1.0.0"; #------------------------------------------------------------------------------- # errMsg - print error message and die @@ -172,13 +172,24 @@ sub getStatus # get first value from SOAP data object my $response_data = $response->valueof("[$i]"); # parse items of server status + my $version = $response_data->{'VERSION'}; + my $address = $response_data->{'ADDRESS'}; + my $port = $response_data->{'PORT'}; + my $logdir = $response_data->{'LOGDIR'}; + my $piddir = $response_data->{'PIDDIR'}; + my $vardir = $response_data->{'VARDIR'}; + my $ssl_key_file_server = $response_data->{'SSL_KEY_FILE'}; + my $ssl_cert_file_server = $response_data->{'SSL_CERT_FILE'}; + my $ssl_ca_file_server = $response_data->{'SSL_CA_FILE'}; + my $facility = $response_data->{'FACILITY'}; my $db_size = $response_data->{'DB_SIZE'}; my $events_sum = $response_data->{'EVENTS_SUM'}; my $events_last_id = $response_data->{'EVENTS_LAST_ID'}; my $events_first_timestamp = $response_data->{'EVENTS_FIRST_TIMESTAMP'}; my $events_last_timestamp = $response_data->{'EVENTS_LAST_TIMESTAMP'}; my $clients_sum = $response_data->{'CLIENTS_SUM'}; - my @server_status = ("$db_size", "$events_sum", "$events_last_id", "$events_first_timestamp", "$events_last_timestamp", "$clients_sum"); + + my @server_status = ("$version", "$address", "$port", "$logdir", "$piddir", "$vardir", "$ssl_key_file_server", "$ssl_cert_file_server", "$ssl_ca_file_server", "$facility", "$db_size", "$events_sum", "$events_last_id", "$events_first_timestamp", "$events_last_timestamp", "$clients_sum"); push(@status, \@server_status); $i++; @@ -196,7 +207,6 @@ sub getStatus $i++; $response_data = $response->valueof("[$i]"); } - return @status; } # End of getStatus -- GitLab