From a0e1274ee6286d5c346ffc7e7c40913b9d8f1963 Mon Sep 17 00:00:00 2001 From: Calvo Date: Mon, 6 Nov 2023 13:30:49 +0100 Subject: [PATCH] Added server conf option for self monitoring agent name --- pandora_console/include/lib/TacticalView/Element.php | 8 +++++++- pandora_server/bin/pandora_server | 2 ++ pandora_server/conf/pandora_server.conf.new | 3 +++ pandora_server/lib/PandoraFMS/Config.pm | 6 ++++++ pandora_server/lib/PandoraFMS/Core.pm | 8 ++++---- 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/pandora_console/include/lib/TacticalView/Element.php b/pandora_console/include/lib/TacticalView/Element.php index 8e81d4fd15..a0a534a31e 100644 --- a/pandora_console/include/lib/TacticalView/Element.php +++ b/pandora_console/include/lib/TacticalView/Element.php @@ -79,11 +79,17 @@ class Element public function __construct( $ajax_controller='include/ajax/general_tactical_view.ajax' ) { + global $config; $this->interval = 0; $this->title = __('Default element'); $this->ajaxController = $ajax_controller; // Without ACL. - $agent = db_get_row('tagente', 'nombre', 'pandora.internals', '*'); + $agent_name = $config['self_monitoring_agent_name']; + if (empty($agent_name) === true) { + $agent_name = 'pandora.internals'; + } + + $agent = db_get_row('tagente', 'nombre', $agent_name, '*'); if (is_array($agent) === true) { $this->monitoringAgent = $agent; } diff --git a/pandora_server/bin/pandora_server b/pandora_server/bin/pandora_server index eaf6f48968..619a00e1b6 100755 --- a/pandora_server/bin/pandora_server +++ b/pandora_server/bin/pandora_server @@ -818,6 +818,8 @@ sub main() { && $Config{"self_monitoring"} == 1 && !is_metaconsole(\%Config) && time() - $thr_time_ref > $Config{'self_monitoring_interval'}) { + # Update agent name token. + pandora_set_tconfig_token($DBH, 'self_monitoring_agent_name', $Config{'self_monitoring_agent_name'}); $thr_time_ref = time(); pandora_thread_monitoring (\%Config, $DBH, \@Servers); } diff --git a/pandora_server/conf/pandora_server.conf.new b/pandora_server/conf/pandora_server.conf.new index 33ab26d411..2e485501e4 100644 --- a/pandora_server/conf/pandora_server.conf.new +++ b/pandora_server/conf/pandora_server.conf.new @@ -422,6 +422,9 @@ self_monitoring 1 # Self monitoring interval (in seconds). self_monitoring_interval 300 +# Self monitoring agent name. +self_monitoring_agent_name pandora.internals + # Update parent from the agent xml update_parent 1 diff --git a/pandora_server/lib/PandoraFMS/Config.pm b/pandora_server/lib/PandoraFMS/Config.pm index da4ef06822..53911f5c3f 100644 --- a/pandora_server/lib/PandoraFMS/Config.pm +++ b/pandora_server/lib/PandoraFMS/Config.pm @@ -416,6 +416,9 @@ sub pandora_load_config { # Self monitoring interval $pa_config->{'self_monitoring_interval'} = 300; # 5.1SP1 + # Self monitoring agent name. + $pa_config->{'self_monitoring_agent_name'} = 'pandora.internals'; # 7.774 + # Process XML data files as a stack $pa_config->{"dataserver_lifo"} = 0; # 5.0 @@ -1041,6 +1044,9 @@ sub pandora_load_config { elsif ($parametro =~ m/^self_monitoring_interval\s+([0-9]*)/i) { $pa_config->{'self_monitoring_interval'} = clean_blank($1); } + elsif ($parametro =~ m/^self_monitoring_agent_name\s+(.*)/i) { + $pa_config->{'self_monitoring_agent_name'} = clean_blank($1); + } elsif ($parametro =~ m/^update_parent\s+([0-1])/i) { $pa_config->{'update_parent'} = clean_blank($1); } diff --git a/pandora_server/lib/PandoraFMS/Core.pm b/pandora_server/lib/PandoraFMS/Core.pm index e047cd7500..afd3e8e865 100644 --- a/pandora_server/lib/PandoraFMS/Core.pm +++ b/pandora_server/lib/PandoraFMS/Core.pm @@ -6315,7 +6315,7 @@ sub pandora_self_monitoring ($$) { my $xml_output = ""; - $xml_output = "{'version'} . "' agent_name='pandora.internals' agent_alias='pandora.internals' interval='".$pa_config->{"self_monitoring_interval"}."' timestamp='".$timestamp."' >"; + $xml_output = "{'version'} . "' agent_name='" . $pa_config->{"self_monitoring_agent_name"} . "' agent_alias='" . $pa_config->{"self_monitoring_agent_name"} . "' interval='".$pa_config->{"self_monitoring_interval"}."' timestamp='".$timestamp."' >"; $xml_output .=" "; $xml_output .=" Status"; $xml_output .=" generic_proc"; @@ -6514,7 +6514,7 @@ sub pandora_self_monitoring ($$) { $xml_output .= ""; - my $filename = $pa_config->{"incomingdir"}."/pandora.internals.self".$utimestamp.".data"; + my $filename = $pa_config->{"incomingdir"}."/".$pa_config->{"self_monitoring_agent_name"}.".self".$utimestamp.".data"; open (XMLFILE, ">", $filename) or die "[FATAL] Could not open internal monitoring XML file for deploying monitorization at '$filename'"; print XMLFILE $xml_output; close (XMLFILE); @@ -6539,7 +6539,7 @@ sub pandora_thread_monitoring ($$$) { # All trhead modules are "Status" module sons. $module_parent = 'Status'; - $xml_output = "{'version'} . "' agent_name='pandora.internals' agent_alias='pandora.internals' interval='".$pa_config->{"self_monitoring_interval"}."' timestamp='".$timestamp."' >"; + $xml_output = "{'version'} . "' agent_name='" . $pa_config->{'self_monitoring_agent_name'} . "' agent_alias='pandora.internals' interval='".$pa_config->{"self_monitoring_interval"}."' timestamp='".$timestamp."' >"; foreach my $server (@{$servers}) { my $producer_stats = $server->getProducerStats(); while (my ($tid, $stats) = each(%{$producer_stats})) { @@ -6605,7 +6605,7 @@ sub pandora_thread_monitoring ($$$) { } $xml_output .= ""; - my $filename = $pa_config->{"incomingdir"}."/pandora.internals.threads.".$utimestamp.".data"; + my $filename = $pa_config->{"incomingdir"}."/".$pa_config->{'self_monitoring_agent_name'}.".threads.".$utimestamp.".data"; open (XMLFILE, ">", $filename) or die "[FATAL] Could not write to the thread monitoring XML file '$filename'"; print XMLFILE $xml_output; close (XMLFILE);