From ff682a873023a338ab65ba14387cc78691422b82 Mon Sep 17 00:00:00 2001 From: raulmateos Date: Fri, 29 Sep 2006 12:29:36 +0000 Subject: [PATCH] 2006-09-29 Raul Mateos * pandora_server/bin/*.pl and *.pm: Updated some comments from Spanish to English. Update build date. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@197 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f --- pandora_server/ChangeLog | 7 +- pandora_server/bin/pandora_config.pm | 27 +-- pandora_server/bin/pandora_db.pm | 217 +++++++++++----------- pandora_server/bin/pandora_network.pl | 44 +++-- pandora_server/bin/pandora_server.pl | 44 ++--- pandora_server/bin/pandora_snmpconsole.pl | 26 +-- pandora_server/bin/pandora_tools.pm | 54 +++--- 7 files changed, 211 insertions(+), 208 deletions(-) diff --git a/pandora_server/ChangeLog b/pandora_server/ChangeLog index 403a44922d..13881d9ba4 100644 --- a/pandora_server/ChangeLog +++ b/pandora_server/ChangeLog @@ -1,3 +1,8 @@ +2006-09-29 Raul Mateos + + * pandora_server/bin/*.pl and *.pm: Updated some comments from + Spanish to English. Update build date. + 2006-09-13 Sancho Lerena * pandora_network.pl: Fixed problems with OID index. Perl needs to @@ -5,5 +10,3 @@ SNMPv2-MIB::sysDescr. Also, other numerical indexes are referenced different from system SNMP or PHP. IF-MIB::ifDescr.3 is IF-MIB::ifDescr.2 for PERL's SNMP. - - \ No newline at end of file diff --git a/pandora_server/bin/pandora_config.pm b/pandora_server/bin/pandora_config.pm index 4e3f837362..f067ae0701 100755 --- a/pandora_server/bin/pandora_config.pm +++ b/pandora_server/bin/pandora_config.pm @@ -1,7 +1,7 @@ package pandora_config; -################################################################################## +########################################################################## # Pandora Config package -################################################################################## +########################################################################## # Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com # Copyright (c) 2005-2006 Artica Soluciones Tecnol�icas S.L # @@ -16,7 +16,7 @@ package pandora_config; #You should have received a copy of the GNU General Public License #along with this program; if not, write to the Free Software #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -################################################################################## +########################################################################## use warnings; @@ -36,17 +36,17 @@ our @EXPORT = qw( pandora_help_screen # There is no global vars, all variables (setup) passed as hash reference # version: Defines actual version of Pandora Server for this module only -my $pandora_version = "1.2 Beta2"; -my $pandora_build="PS60629"; +my $pandora_version = "1.2 Beta 3"; +my $pandora_build="PS060929"; # Setup hash my %pa_config; -# Delaracion de funciones publicas -############################################################################## +# Public functions +########################################################################## # SUB pandora_help_screen() # Show a help screen an exits -############################################################################## +########################################################################## sub help_screen { printf "\n\nSyntax: \n pandora_xxxxxxx.pl [ options ] \n\n"; @@ -59,10 +59,10 @@ sub help_screen { exit; } -############################################################################## +########################################################################## # SUB pandora_init ( %pandora_cfg ) # Makes the initial parameter parsing, initializing and error checking -############################################################################## +########################################################################## sub pandora_init { my $pa_config = $_[0]; @@ -102,9 +102,9 @@ sub pandora_init { } } -############################################################################## +########################################################################## # Read external configuration file -############################################################################## +########################################################################## sub pandora_loadconfig { my $pa_config = $_[0]; @@ -145,7 +145,8 @@ sub pandora_loadconfig { } # Check for file if ( ! -e $archivo_cfg ) { - printf "\n[ERROR] Cannot open configuration file at $archivo_cfg. \nPlease specify a valid Pandora Home Directory in command line. \n"; + printf "\n[ERROR] Cannot open configuration file at $archivo_cfg. \n"; + printf " Please specify a valid Pandora Home Directory in command line. \n"; exit 1; } # Collect items from config file and put in an array diff --git a/pandora_server/bin/pandora_db.pm b/pandora_server/bin/pandora_db.pm index 5cf15224b6..4c3139e6b6 100644 --- a/pandora_server/bin/pandora_db.pm +++ b/pandora_server/bin/pandora_db.pm @@ -1,9 +1,9 @@ package pandora_db; -################################################################################## +########################################################################## # Pandora Database Package -################################################################################## +########################################################################## # Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com -# Copyright (c) 2005-2006 Artica Soluciones Tecnol�icas S.L +# Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L # #This program is free software; you can redistribute it and/or #modify it under the terms of the GNU General Public License @@ -16,7 +16,7 @@ package pandora_db; #You should have received a copy of the GNU General Public License #along with this program; if not, write to the Free Software #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -################################################################################## +########################################################################## use warnings; use Time::Local; @@ -68,11 +68,11 @@ our @EXPORT = qw( crea_agente_modulo # 'Crea' in spanish means 'create' # 'Dame' in spanish means 'give' -################################################################################# +########################################################################## ## SUB pandora_calcula_alerta ## (paconfig, timestamp,nombre_agente,tipo_modulo,nombre_modulo,datos,dbh) ## Given a datamodule, generate alert if needed -################################################################################## +########################################################################## sub pandora_calcula_alerta (%$$$$$$) { my $pa_config = $_[0]; @@ -89,13 +89,13 @@ sub pandora_calcula_alerta (%$$$$$$) { my $max; my $min; # for calculate max & min to generate ALERTS - # Obtemos los ID's a traves del paquete de datos + # Get IDs from data packet $id_agente = dame_agente_id($pa_config, $nombre_agente, $dbh); $id_modulo = dame_modulo_id($pa_config, $tipo_modulo,$dbh); $id_agente_modulo = dame_agente_modulo_id($pa_config, $id_agente,$id_modulo,$nombre_modulo,$dbh); logger($pa_config, "DEBUG: calcula_alerta() Calculado id_agente_modulo a $id_agente_modulo",3); - # Buscamos si existe una alerta definida para esta combinacion agente/modulo + # If any alert from this combinatio of agent/module my $query_idag = "select * from talerta_agente_modulo where id_agente_modulo = '$id_agente_modulo'"; my $s_idag = $dbh->prepare($query_idag); $s_idag ->execute; @@ -156,7 +156,7 @@ sub pandora_calcula_alerta (%$$$$$$) { # Check timegap my $fecha_ultima_alerta = ParseDate($last_fired); my $fecha_actual = ParseDate( $timestamp ); - my $ahora_mysql = &UnixDate("today","%Y-%m-%d %H:%M:%S"); # If we need to update MYSQL ast_fired will use $ahora_mysql + my $ahora_mysql = &UnixDate("today","%Y-%m-%d %H:%M:%S"); # If we need to update MYSQL ast_fired will use $ahora_mysql my $time_threshold = $threshold; my $err; my $flag; my $fecha_limite = DateCalc($fecha_ultima_alerta,"+ $time_threshold seconds",\$err); @@ -258,10 +258,10 @@ sub pandora_calcula_alerta (%$$$$$$) { -################################################################################# +########################################################################## ## SUB execute_alert (id_alert, field1, field2, field3, agent, timestamp, data) ## Do a execution of given alert with this parameters -################################################################################## +########################################################################## sub execute_alert (%$$$$$$$$) { my $pa_config = $_[0]; @@ -324,10 +324,10 @@ sub execute_alert (%$$$$$$$$) { } -################################################################################# +########################################################################## ## SUB pandora_writestate (pa_config, nombre_agente,tipo_modulo,nombre_modulo,valor_datos, estado) ## Alter data, chaning status of modules in state table -################################################################################## +########################################################################## sub pandora_writestate (%$$$$$$) { # my $timestamp = $_[0]; @@ -343,9 +343,9 @@ sub pandora_writestate (%$$$$$$) { my $timestamp = &UnixDate("today","%Y-%m-%d %H:%M:%S"); my @data; my $cambio = 0; my $id_grupo; - # Obtenemos los identificadores - # OJO; no controlamos si los valores pasados como cadena son validos. - # PENDIENTE: Comprobacion de errores aqui. + # Get id + # BE CAREFUL: We don't verify the strings chains + # TO DO: Verify errors my $id_agente = dame_agente_id($pa_config,$nombre_agente,$dbh); my $id_modulo = dame_modulo_id($pa_config,$tipo_modulo,$dbh); my $id_agente_modulo = dame_agente_modulo_id($pa_config,$id_agente, $id_modulo, $nombre_modulo,$dbh); @@ -353,7 +353,7 @@ sub pandora_writestate (%$$$$$$) { goto fin_pandora_writestate; } # Check alert subroutine - eval { # Hacemos la comprobacion de las alertas aqui. OJO ! + eval { # Alerts checks for Agents, only for master servers if ($pa_config->{"pandora_master"} == 1){ pandora_calcula_alerta($pa_config, $timestamp, $nombre_agente, $tipo_modulo, $nombre_modulo, $datos, $dbh); @@ -363,8 +363,8 @@ sub pandora_writestate (%$$$$$$) { logger($pa_config, "ERROR: Error in SUB calcula_alerta(). ModuleName: $nombre_modulo ModuleType: $tipo_modulo AgentName: $nombre_agente",1); logger($pa_config, "ERROR Code: $@",1) } - # $id_agente apunta al ID del agente que queremos actualizar".dame_nombreagente_agentemodulo ($id_agente_modulo)." - # Vamos a ver si existe una entrada en la tabla tagente_estado + # $id_agente is agent ID to update ".dame_nombreagente_agentemodulo ($id_agente_modulo)." + # Let's see if there is any entry at tagente_estado table my $idages = "select * from tagente_estado where id_agente_modulo = $id_agente_modulo"; my $s_idages = $dbh->prepare($idages); $s_idages ->execute; @@ -399,9 +399,9 @@ sub pandora_writestate (%$$$$$$) { fin_pandora_writestate: } -################################################################################# +########################################################################## #### MODULOS implementados en Pandora -################################################################################# +########################################################################## # ----------------------------------------+ # Modulos genericos de Pandora | @@ -424,10 +424,10 @@ fin_pandora_writestate: # generic_data_string. Store a string, max 255 chars. -################################################################################# +########################################################################## ## SUB pandora_accessupdate (pa_config, id_agent, dbh) ## Update agent access table -################################################################################## +########################################################################## sub pandora_accessupdate (%$$) { my $pa_config = $_[0]; @@ -461,10 +461,10 @@ sub pandora_accessupdate (%$$) { } } -################################################################################# +########################################################################## ## SUB module_generic_proc (param_1, param_2, param_3) ## Procesa datos genericos sobre un proceso -################################################################################## +########################################################################## ## param_1 : Nombre de la estructura contenedora de datos (XML) ## paran_2 : Timestamp del paquete de datos ## param_3 : Agent name @@ -513,13 +513,13 @@ sub module_generic_proc (%$$$$$) { } } -################################################################################# -## SUB module_generic_data (par1, par2) -## Procesa datos generados por Modulo de adquisicion de datos numericos -################################################################################## -## param_1 : Nombre de la estructura contenedora de datos (XML) -## paran_2 : Timestamp del paquete de datos -## param_3 : Nombre del agente +########################################################################## +## SUB module_generic_data (param_1, param_2,param_3, param_4) +## Process generated data form numeric data module acquire +########################################################################## +## param_1 : XML name +## paran_2 : Timestamp +## param_3 : Agent name ## param_4 : Module type sub module_generic_data (%$$$$$) { @@ -561,13 +561,13 @@ sub module_generic_data (%$$$$$) { } } -################################################################################# -## SUB module_generic_data_inc (par1, par2) -## Procesa datos generados por Modulo de adquisicion de datos numericos incrementales -################################################################################## -## param_1 : Nombre de la estructura contenedora de datos (XML) -## paran_2 : Timestamp del paquete de datos -## param_3 : Nombre del agente +########################################################################## +## SUB module_generic_data_inc (param_1, param_2,param_3, param_4) +## Process generated data form incremental numeric data module acquire +########################################################################## +## param_1 : XML name +## paran_2 : Timestamp +## param_3 : Agent name ## param_4 : Module type sub module_generic_data_inc (%$$$$$) { my $pa_config = $_[0]; @@ -577,7 +577,7 @@ sub module_generic_data_inc (%$$$$$) { my $module_type = $_[4]; my $dbh = $_[5]; - # Leemos datos de la estructura + # Read structure data my $m_name = $datos->{name}->[0]; my $a_desc = $datos->{description}->[0]; my $m_data = $datos->{data}->[0]; @@ -642,7 +642,7 @@ sub module_generic_data_inc (%$$$$$) { if ($no_existe == 1){ my $query = "insert into tagente_datos_inc (id_agente_modulo,datos,timestamp) VALUES ($id_agente_modulo,'$m_data','$timestamp')"; $dbh->do($query); - } else { # Si existe, modificamos + } else { # If exists, modfy if ($diferencia > 0) { my $query_idag = "update tagente_datos_inc set datos = '$m_data' where id_agente_modulo = $id_agente_modulo"; $s_idag = $dbh->prepare($query_idag); @@ -671,14 +671,15 @@ sub module_generic_data_inc (%$$$$$) { } } -################################################################################# -## SUB module_generic_data_string (par1, par2) -## Procesa datos generados por el modulo de adquisicion de datos alfanumericos -################################################################################## -## param_1 : Nombre de la estructura contenedora de datos (XML) -## paran_2 : Timestamp del paquete de datos -## param_3 : Nombre del agente -## param_4 : Modyle type + +########################################################################## +## SUB module_generic_data (param_1, param_2,param_3, param_4) +## Process generated data form alfanumeric data module acquire +########################################################################## +## param_1 : XML name +## paran_2 : Timestamp +## param_3 : Agent name +## param_4 : Module type sub module_generic_data_string (%$$$$$) { my $pa_config = $_[0]; @@ -688,7 +689,7 @@ sub module_generic_data_string (%$$$$$) { my $module_type = $_[4]; my $dbh = $_[5]; - # Leemos datos de la estructura + # Read Structure my $m_name = $datos->{name}->[0]; my $m_data = $datos->{data}->[0]; my $a_desc = $datos->{description}->[0]; @@ -709,11 +710,11 @@ sub module_generic_data_string (%$$$$$) { } -################################################################################# +########################################################################## ## SUB pandora_writedata (pa_config, timestamp,nombre_agente,tipo_modulo,nombre_modulo,datos) ## Insert data in main table: tagente_datos -################################################################################## +########################################################################## sub pandora_writedata (%$$$$$$$$$) { my $pa_config = $_[0]; @@ -841,10 +842,10 @@ sub pandora_writedata (%$$$$$$$$$) { fin_DB_insert_datos: } -################################################################################# +########################################################################## ## SUB pandora_serverkeepalive (pa_config, status, dbh) ## Update server status -################################################################################## +########################################################################## sub pandora_serverkeepaliver (%$) { my $pa_config= $_[0]; my $opmode = $_[1]; # 0 dataserver, 1 network server, 2 snmp console @@ -881,12 +882,12 @@ sub pandora_serverkeepaliver (%$) { } -################################################################################# +########################################################################## ## SUB pandora_updateserver (pa_config, status, dbh) ## Update server status -################################################################################## +########################################################################## sub pandora_updateserver (%$$$) { - my $pa_config= $_[0]; + my $pa_config= $_[0]; my $servername = $_[1]; my $status = $_[2]; my $opmode = $_[3]; # 0 dataserver, 1 network server, 2 snmp console @@ -932,10 +933,10 @@ sub pandora_updateserver (%$$$) { } } -################################################################################# +########################################################################## ## SUB pandora_lastagentcontact (pa_config, timestamp,nombre_agente,os_data, agent_version,interval,dbh) ## Update last contact field in Agent Table -################################################################################## +########################################################################## sub pandora_lastagentcontact (%$$$$$$) { my $pa_config= $_[0]; @@ -962,10 +963,10 @@ sub pandora_lastagentcontact (%$$$$$$) { $sag ->finish(); } -################################################################################# +########################################################################## ## SUB pandora_event (pa_config, evento, id_grupo, id_agente) ## Write in internal audit system an entry. -################################################################################## +########################################################################## sub pandora_event (%$$$$) { my $pa_config = $_[0]; @@ -982,10 +983,10 @@ sub pandora_event (%$$$$) { $dbh->do($query); } -################################################################################# +########################################################################## ## SUB pandora_audit (pa_config, escription, name, action, pandora_dbcfg_hash) ## Write in internal audit system an entry. -################################################################################## +########################################################################## sub pandora_audit (%$$$$) { my $pa_config = $_[0]; my $desc = $_[1]; @@ -1014,10 +1015,10 @@ sub pandora_audit (%$$$$) { } } -################################################################################# +########################################################################## ## SUB dame_agente_id (nombre_agente) ## Return agent ID, use "nombre_agente" as name of agent. -################################################################################## +########################################################################## sub dame_agente_id (%$$) { my $pa_config = $_[0]; my $nombre_agente = $_[1]; @@ -1025,7 +1026,7 @@ sub dame_agente_id (%$$) { my $id_agente;my @data; if (defined($nombre_agente)){ - # Calculamos el ID del agente haciendo una select por su nombre. + # Calculate agent ID using select by its name my $query_idag = "select * from tagente where nombre = '$nombre_agente'"; my $s_idag = $dbh->prepare($query_idag); $s_idag ->execute; @@ -1042,10 +1043,10 @@ sub dame_agente_id (%$$) { } } -################################################################################# +########################################################################## ## SUB dame_server_id (pa_config, servername, dbh) ## Return serverID, using "nane" as name of server -################################################################################## +########################################################################## sub dame_server_id (%$$) { my $pa_config = $_[0]; my $name = $_[1]; @@ -1066,10 +1067,10 @@ sub dame_server_id (%$$) { return $id_server; } -################################################################################# +########################################################################## ## SUB give_networkserver_status (id_server) ## Return NETWORK server status given its id -################################################################################# +########################################################################## sub give_networkserver_status (%$$) { my $pa_config = $_[0]; @@ -1091,10 +1092,10 @@ sub give_networkserver_status (%$$) { return $status; } -################################################################################# +########################################################################## ## SUB dame_grupo_agente (id_agente) ## Return id_group of an agent given its id -################################################################################# +########################################################################## sub dame_grupo_agente (%$$) { my $pa_config = $_[0]; @@ -1103,7 +1104,7 @@ sub dame_grupo_agente (%$$) { my $id_grupo; my @data; - # Calculamos el ID del agente haciendo una select por su id + # Calculate agent using select by its id my $query_idag = "select * from tagente where id_agente = $id_agente"; my $s_idag = $dbh->prepare($query_idag); $s_idag ->execute; @@ -1116,17 +1117,17 @@ sub dame_grupo_agente (%$$) { return $id_grupo; } -################################################################################# +########################################################################## ## SUB dame_comando_alerta (id_alerta) ## Return agent ID, use "nombre_agente" as name of agent. -################################################################################## +########################################################################## sub dame_comando_alerta (%$$) { my $pa_config = $_[0]; my $id_alerta = $_[1]; my $dbh = $_[2]; my @data; - # Calculamos el ID del agente haciendo una select por su nombre. + # Calculate agent ID using select by its name my $query_idag = "select * from talerta where id_alerta = $id_alerta"; my $s_idag = $dbh->prepare($query_idag); my $comando = ""; @@ -1143,10 +1144,10 @@ sub dame_comando_alerta (%$$) { } -################################################################################# +########################################################################## ## SUB dame_agente_nombre (id_agente) ## Return agent name, given "id_agente" -################################################################################## +########################################################################## sub dame_agente_nombre (%$$) { my $pa_config = $_[0]; my $id_agente = $_[1]; @@ -1154,7 +1155,7 @@ sub dame_agente_nombre (%$$) { my $nombre_agente; my @data; - # Calculamos el ID del agente haciendo una select por su nombre. + # Calculate agent ID using select by its name my $query_idag = "select * from tagente where id_agente = '$id_agente'"; my $s_idag = $dbh->prepare($query_idag); $s_idag ->execute; @@ -1168,17 +1169,17 @@ sub dame_agente_nombre (%$$) { } -################################################################################# +########################################################################## ## SUB dame_modulo_id (nombre_modulo) ## Return module ID, given "nombre_modulo" as module name -################################################################################## +########################################################################## sub dame_modulo_id (%$$) { my $pa_config = $_[0]; my $nombre_modulo = $_[1]; my $dbh = $_[2]; my $id_modulo; my @data; - # Calculamos el ID del agente haciendo una select por su nombre. + # Calculate agent ID using select by its name my $query_idag = "select * from ttipo_modulo where nombre = '$nombre_modulo'"; my $s_idag = $dbh->prepare($query_idag); $s_idag ->execute; @@ -1195,10 +1196,10 @@ sub dame_modulo_id (%$$) { } -################################################################################# +########################################################################## ## SUB dame_agente_modulo_id (id_agente, id_tipomodulo, nombre) ## Return agente_modulo ID, from tabla tagente_modulo, given id_agente, id_tipomodulo and name -################################################################################## +########################################################################## sub dame_agente_modulo_id (%$$$$) { my $pa_config = $_[0]; my $id_agente = $_[1]; @@ -1208,7 +1209,7 @@ sub dame_agente_modulo_id (%$$$$) { my $id_agentemodulo; my @data; - # Calculamos el ID del agente haciendo una select por su nombre. + # Calculate agent ID using select by its name my $query_idag = "select * from tagente_modulo where id_agente = '$id_agente' and id_tipo_modulo = '$id_tipomodulo' and nombre = '$nombre'"; my $s_idag = $dbh->prepare($query_idag); $s_idag ->execute; @@ -1224,17 +1225,17 @@ sub dame_agente_modulo_id (%$$$$) { return $id_agentemodulo; } -################################################################################# +########################################################################## ## SUB dame_nombreagente_agentemodulo (id_agente_modulo) ## Return agent name diven id_agente_modulo -################################################################################## +########################################################################## sub dame_nombreagente_agentemodulo (%$$) { my $pa_config = $_[0]; my $id_agentemodulo = $_[1]; my $dbh = $_[2]; my $id_agente; my @data; - # Calculamos el ID del agente haciendo una select por su nombre. + # Calculate agent ID using select by its name my $query_idag = "select * from tagente_modulo where id_agente_modulo = ".$id_agentemodulo; my $s_idag = $dbh->prepare($query_idag); $s_idag ->execute; @@ -1252,17 +1253,17 @@ sub dame_nombreagente_agentemodulo (%$$) { return $nombre_agente; } -################################################################################# +########################################################################## ## SUB dame_nombretipomodulo_idtipomodulo (id_tipo_modulo) ## Return name of moduletype given id_tipo_modulo -################################################################################## +########################################################################## sub dame_nombretipomodulo_idagentemodulo (%$$) { my $pa_config = $_[0]; my $id_tipomodulo = $_[1]; my $dbh = $_[2]; my @data; - # Calculamos el ID del agente haciendo una select por su nombre. + # Calculate agent ID using select by its name my $query_idag = "select * from ttipo_modulo where id_tipo = ".$id_tipomodulo; my $s_idag = $dbh->prepare($query_idag); $s_idag ->execute; @@ -1275,17 +1276,17 @@ sub dame_nombretipomodulo_idagentemodulo (%$$) { return $tipo; } -################################################################################# +########################################################################## ## SUB dame_learnagente (id_agente) ## Return 1 if agent is in learn mode, 0 if not -################################################################################## +########################################################################## sub dame_learnagente (%$$) { my $pa_config = $_[0]; my $id_agente = $_[1]; my $dbh = $_[2]; my @data; - # Calculamos el ID del agente haciendo una select por su nombre. + # Calculate agent ID using select by its name my $query = "select * from tagente where id_agente = ".$id_agente; my $s_idag = $dbh->prepare($query); $s_idag ->execute; @@ -1299,17 +1300,17 @@ sub dame_learnagente (%$$) { } -################################################################################# +########################################################################## ## SUB dame_id_tipo_modulo (id_agente_modulo) ## Return id_tipo of module with id_agente_modulo -################################################################################## +########################################################################## sub dame_id_tipo_modulo (%$$) { my $pa_config = $_[0]; my $id_agente_modulo = $_[1]; my $dbh = $_[2]; my $tipo; my @data; - # Calculamos el ID del agente haciendo una select por su nombre. + # Calculate agent ID using select by its name my $query_idag = "select * from tagente_modulo where id_agente_modulo = ".$id_agente_modulo; my $s_idag = $dbh->prepare($query_idag); $s_idag ->execute; @@ -1325,17 +1326,17 @@ sub dame_id_tipo_modulo (%$$) { return $tipo; } -################################################################################# +########################################################################## ## SUB dame_intervalo (id_agente) ## Return interval for id_agente -################################################################################## +########################################################################## sub dame_intervalo (%$$) { my $pa_config = $_[0]; my $id_agente = $_[1]; my $dbh = $_[2]; my $tipo; my @data; - # Calculamos el ID del agente haciendo una select por su nombre. + # Calculate agent ID using select by its name my $query_idag = "select * from tagente where id_agente = ".$id_agente; my $s_idag = $dbh->prepare($query_idag); $s_idag ->execute; @@ -1349,10 +1350,10 @@ sub dame_intervalo (%$$) { return $tipo; } -################################################################################# +########################################################################## ## SUB dame_desactivado (id_agente) ## Return disabled = 1 if disabled, 0 if not disabled -################################################################################## +########################################################################## sub dame_desactivado (%$$) { my $pa_config = $_[0]; my $id_agente = $_[1]; @@ -1360,7 +1361,7 @@ sub dame_desactivado (%$$) { my $desactivado; my $tipo; my @data; - # Calculamos el ID del agente haciendo una select por su nombre. + # Calculate agent ID using select by its name my $query_idag = "select * from tagente where id_agente = ".$id_agente; my $s_idag = $dbh->prepare($query_idag); $s_idag ->execute; @@ -1377,17 +1378,17 @@ sub dame_desactivado (%$$) { return $desactivado; } -################################################################################# +########################################################################## ## SUB dame_ultimo_contacto (id_agente) ## Return last_contact for id_agente -################################################################################## +########################################################################## sub dame_ultimo_contacto (%$$) { my $pa_config = $_[0]; my $id_agente = $_[1]; my $dbh = $_[2]; my $tipo; my @data; - # Calculamos el ID del agente haciendo una select por su nombre. + # Calculate agent ID using select by its name my $query_idag = "select * from tagente where id_agente = ".$id_agente; my $s_idag = $dbh->prepare($query_idag); $s_idag ->execute; @@ -1400,10 +1401,10 @@ sub dame_ultimo_contacto (%$$) { return $tipo; } -################################################################################# +########################################################################## ## SUB crea_agente_modulo(nombre_agente, nombre_tipo_modulo, nombre_modulo) ## create an entry in tagente_modulo -################################################################################## +########################################################################## sub crea_agente_modulo (%$$$$$$$) { my $pa_config = $_[0]; my $nombre_agente = $_[1]; diff --git a/pandora_server/bin/pandora_network.pl b/pandora_server/bin/pandora_network.pl index 6d39aecc27..0695e31cb7 100755 --- a/pandora_server/bin/pandora_network.pl +++ b/pandora_server/bin/pandora_network.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl -################################################################################## +########################################################################## # Pandora Network Server -################################################################################## +########################################################################## # Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com # Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L # @@ -16,7 +16,7 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -################################################################################## +########################################################################## # Includes list use strict; @@ -72,16 +72,16 @@ while ( 1 ){ #------------------------------------------------------------------------------------ #------------------------------------------------------------------------------------ #------------------------------------------------------------------------------------ -#--------------------- Main Perl Code below this line------------------------------- +#--------------------- Main Perl Code below this line----------------------- #------------------------------------------------------------------------------------ #------------------------------------------------------------------------------------ #------------------------------------------------------------------------------------ -########################################################################################## +########################################################################## # SUB pandora_network_subsystem # Subsystem to process network modules # This module runs each X seconds (server threshold) checking for network modules status -########################################################################################## +########################################################################## sub pandora_network_subsystem { # Init vars @@ -97,8 +97,8 @@ sub pandora_network_subsystem { my $max; my $min; my $module_interval; my $nombre; my $tcp_port; my $tcp_rcv; my $tcp_send; my $snmp_oid; my $snmp_community; my $ip_target; my $id_module_group; - my $timestamp_viejo; # Almacena el timestamp del campo de la tabla tagente_estado - my $id_agente_estado; # ID de la tabla de tagente_estado (para hacer el update mas fino) + my $timestamp_viejo; # Stores timestamp from tagente_estado table + my $id_agente_estado; # ID from tagente_estado table my $estado_cambio; # store tagente_estado cambio field my $estado_estado; # Store tagente_estado estado field my $agent_name; # Agent name @@ -119,12 +119,12 @@ sub pandora_network_subsystem { while ( 1 ) { logger ($pa_config,"Loop in Network Module Subsystem",10); # For each element - # -Leo un modulo de tipo red (tipo 5, 6 o 7) o categoria grupo 2 - # -Leo su ultima entrada en la tabla tagente_modulo - # -si timestamp de tagente_estado + module_interval <= timestamp actual - # ejecuto el modulo, le doy 15 sec y contino. - # si ejecuta bien, grabo datos y estado - # siguiente elemento + # -read net type module (type 5, 6 or 7) or group cathegory 2 + # -read its last tagente_modulo table entry + # -if tagente_estado + module_interval timestamp<= present timestamp + # run module, sleep 15 secs. and continue + # if ok, store data and status + # next element # Calculate ID Agent from a select where module_type (id_tipo_modulo) > 4 (network modules) # Check for MASTER SERVERS only: check another agents if their servers are gone @@ -248,10 +248,10 @@ sub pandora_network_subsystem { $dbh->disconnect(); } -########################################################################################## +########################################################################## # SUB pandora_query_snmp (pa_config, oid, community, target, error, dbh) # Makes a call to SNMP modules to get a value, -########################################################################################## +########################################################################## sub pandora_query_snmp { my $pa_config = $_[0]; my $snmp_oid = $_[1]; @@ -300,10 +300,10 @@ sub pandora_query_snmp { return $output; } -###################################################################################### +########################################################################## # SUB exec_network_module (many parameters...) # Execute network module task in separated thread -###################################################################################### +########################################################################## sub exec_network_module { my $id_agente = $_[0]; my $id_agente_estado = $_[1]; @@ -432,12 +432,10 @@ sub exec_network_module { $module_data = $temp2; $module_result =0; } else { # TCP Data numeric (inc or data) - if ($temp2 ne ""){ # COMO OSTIAS PUEDO SABER EN PERL - # EL TIPO DEL CONTENIDO DE UNA VARIABLE - # ODIO EL PUTO PERL !!! + if ($temp2 ne ""){ if ($temp2 =~ /[A-Za-z\.\,\-\/\\\(\)\[\]]/){ - $module_result=1; # Pequeña ñapita - $module_data = 0; # Datos invalidos + $module_result=1; # init + $module_data = 0; # invalid data } else { $module_data = int($temp2); $module_result = 0; # Successful diff --git a/pandora_server/bin/pandora_server.pl b/pandora_server/bin/pandora_server.pl index 1f27f7c627..1d6f41ae76 100755 --- a/pandora_server/bin/pandora_server.pl +++ b/pandora_server/bin/pandora_server.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl -################################################################################## +########################################################################## # Pandora Data Server -################################################################################## +########################################################################## # Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com # Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L # @@ -16,7 +16,7 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -################################################################################## +########################################################################## # Includes list use strict; @@ -25,13 +25,13 @@ use warnings; use XML::Simple; # Useful XML functions use Digest::MD5; # MD5 generation use Time::Local; # DateTime basic manipulation -use DBI; # DB interface with MySQL +use DBI; # DB interface with MySQL use Date::Manip; # Needed to manipulate DateTime formats of input, output and compare -use File::Copy; # Needed to manipulate files +use File::Copy; # Needed to manipulate files use threads; use threads::shared; -# Librerias / Modulos de pandora +# Pandora Modules use pandora_config; use pandora_tools; use pandora_db; @@ -41,7 +41,7 @@ $| = 1; my %pa_config; -# Inicio del bucle principal de programa +# Init main loop pandora_init(\%pa_config,"Pandora Server"); # Read config file for Global variables @@ -65,7 +65,7 @@ pandora_dataserver(\%pa_config); #------------------------------------------------------------------------------------ #------------------------------------------------------------------------------------ #------------------------------------------------------------------------------------ -#--------------------- Main Perl Code below this line------------------------------- +#--------------------- Main Perl Code below this line----------------------- #------------------------------------------------------------------------------------ #------------------------------------------------------------------------------------ #------------------------------------------------------------------------------------ @@ -73,9 +73,9 @@ pandora_dataserver(\%pa_config); -############################################################################## +########################################################################## # Main loop -############################################################################## +########################################################################## sub pandora_dataserver { my $pa_config = $_[0]; @@ -99,7 +99,7 @@ sub pandora_dataserver { $agent_filename = $1; $file_md5 = "$pa_config->{'incomingdir'}/$agent_filename.checksum"; if (( -e $file_md5 ) or ($pa_config->{'pandora_check'} == 0)){ # If check is disabled, ignore if file_md5 exists - # Comprobamos integridad + # Verify integrity my $check_result; $check_result = md5check ($file_data,$file_md5); if (($pa_config->{'pandora_check'} == 0) || ($check_result == 1)){ @@ -142,7 +142,7 @@ sub pandora_dataserver { unlink ($file_md5); } } - } # No existe fichero de checksum, ignoramos el archivo + } # No checksum file, ignore file } } closedir(DIR); @@ -151,10 +151,10 @@ sub pandora_dataserver { } } # End of main loop function -################################################################################# +########################################################################## ## SUB pandora_keepalived ## Pandora Keepalive alert daemon subsystem -################################################################################## +########################################################################## sub pandora_keepalived { my $pa_config = $_[0]; @@ -168,13 +168,13 @@ sub pandora_keepalived { } -################################################################################# +########################################################################## ## SUB keep_alive_check () ## Calculate a global keep alive check for agents without data and an alert defined -################################################################################## +########################################################################## sub keep_alive_check { - # Buscamos si existe una alerta definida para cada item de la tablacombinacion agente/modulo + # Search of any defined alert for any agent/module table entry my $pa_config = $_[0]; my $dbh = $_[1]; @@ -281,11 +281,11 @@ sub keep_alive_check { $s_idag->finish(); } -################################################################################# -## SUB procesa_datos (par1) -## Procesa un paquete de datos (XML preprocesado) -################################################################################## -## param_1 : Nombre de la estructura contenedora de datos (XML) +########################################################################## +## SUB procesa_datos (param_1) +## Process data packet (XML file) +########################################################################## +## param_1 : XML datafile name sub procesa_datos { my $pa_config = $_[0]; diff --git a/pandora_server/bin/pandora_snmpconsole.pl b/pandora_server/bin/pandora_snmpconsole.pl index eab994fb30..dd93910453 100755 --- a/pandora_server/bin/pandora_snmpconsole.pl +++ b/pandora_server/bin/pandora_snmpconsole.pl @@ -1,9 +1,9 @@ #!/usr/bin/perl -################################################################################## +########################################################################## # Pandora Server. SNMP Console -################################################################################## +########################################################################## # Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com -# Copyright (c) 2005-2006 Artica Soluciones Tecnol�icas S.L +# Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L # #This program is free software; you can redistribute it and/or #modify it under the terms of the GNU General Public License @@ -16,7 +16,7 @@ #You should have received a copy of the GNU General Public License #along with this program; if not, write to the Free Software #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -################################################################################## +########################################################################## # Includes list use strict; @@ -55,10 +55,10 @@ if ( $pa_config{"daemon"} eq "1" ) { pandora_snmptrapd (\%pa_config); -################################################################################# +########################################################################## ## SUB pandora_snmptrapd ## Pandora SNMP Trap console/daemon subsystem -################################################################################## +########################################################################## sub pandora_snmptrapd { my $pa_config = $_[0]; @@ -96,7 +96,7 @@ sub pandora_snmptrapd { } $logfile_size = (stat($snmp_logfile))[7]; - if ($logfile_size < $index_data[1]){ # El tama? del log es ahora mas peq. que la ultima vez que lo leimos -> es uno nuevo + if ($logfile_size < $index_data[1]){ # Log size smaller last time we read it -> new one unlink ($snmp_logfile.".index"); $index_data[0]=0; $index_data[1]=0; @@ -169,10 +169,10 @@ sub pandora_snmptrapd { } -################################################################################# +########################################################################## ## SUB calcula_alerta_snmp($source,$oid,$custom_value,$timestamp); ## Given an SNMP Trap received with this data, execute Alert or not -################################################################################## +########################################################################## sub calcula_alerta_snmp { # Parameters passed as arguments @@ -231,14 +231,14 @@ sub calcula_alerta_snmp { } if ($alert_fired == 1){ # Exists condition to fire alarm. - # Comprobar que est?por debajo del rango de time_threshold + # Verify if under time_threshold my $fecha_ultima_alerta = ParseDate($last_fired); my $fecha_actual = ParseDate( $timestamp ); - my $ahora_mysql = &UnixDate("today","%Y-%m-%d %H:%M:%S"); # If we need to update MYSQL last_fired will use $ahora_mysql + my $ahora_mysql = &UnixDate("today","%Y-%m-%d %H:%M:%S"); # If we need to update MYSQL last_fired will use $ahora_mysql my $err; my $flag; my $fecha_limite = DateCalc($fecha_ultima_alerta,"+ $time_threshold seconds",\$err); - # Comprobar que est?por encima (sumando esta) del minimo de alertas - # Comprobar que est?por debajo (sumando esta) del m?imo de alertas + # verify if upper min alerts + # Verify if under min alerts $flag = Date_Cmp($fecha_actual,$fecha_limite); if ( $flag >= 0 ) { # Out limits !, reset $times_fired, but do not write to # database until a real alarm was fired diff --git a/pandora_server/bin/pandora_tools.pm b/pandora_server/bin/pandora_tools.pm index 583eca9dc5..80a77f3a60 100644 --- a/pandora_server/bin/pandora_tools.pm +++ b/pandora_server/bin/pandora_tools.pm @@ -1,9 +1,9 @@ package pandora_tools; -################################################################################## +########################################################################## # Pandora Tools Package -################################################################################## +########################################################################## # Copyright (c) 2004-2006 Sancho Lerena, slerena@gmail.com -# Copyright (c) 2005-2006 Artica Soluciones Tecnológicas S.L +# Copyright (c) 2005-2006 Artica Soluciones Tecnologicas S.L # #This program is free software; you can redistribute it and/or #modify it under the terms of the GNU General Public License @@ -16,7 +16,7 @@ package pandora_tools; #You should have received a copy of the GNU General Public License #along with this program; if not, write to the Free Software #Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -################################################################################## +########################################################################## use warnings; use Time::Local; @@ -37,10 +37,10 @@ our @EXPORT = qw( daemonize ); -########################################################################################## +########################################################################## # Sub daemonize () # Put program in background (for daemon mode) -########################################################################################## +########################################################################## sub daemonize { chdir '/tmp' or die "Can't chdir to /tmp: $!"; @@ -54,14 +54,14 @@ sub daemonize { } -# ----------------------------------------+ -# Otras funciones generales de Pandora | -# ----------------------------------------+ +# -------------------------------------------+ +# Pandora other General functions | +# -------------------------------------------+ -################################################################################# +########################################################################## # SUB is_numeric # Return TRUE if given argument is numeric -################################################################################# +########################################################################## sub getnum { use POSIX qw(strtod); @@ -79,12 +79,12 @@ sub getnum { sub is_numeric { defined getnum($_[0]) } -################################################################################# -# SUB md5check (par1, par2) -# Comprobacion MD5 del archivo -################################################################################# -# param_1 : Nombre de archivo datos -# param_2 : Nombre de archivo con MD5 +########################################################################## +# SUB md5check (param_1, param_2) +# Verify MD5 file .checksum +########################################################################## +# param_1 : Name of data file +# param_2 : Name of md5 file sub md5check { my $buf; @@ -115,12 +115,12 @@ sub md5check { } } -################################################################################# -# SUB logger (pa_config, par1, par2) -# Vuelca informacion a un archivo (para hacer log) -################################################################################# -# param_1 : Nombre de archivo datos -# param_2 : Datos +########################################################################## +# SUB logger (pa_config, param_1, param_2) +# Log to file +########################################################################## +# param_1 : Data file +# param_2 : Data sub logger { my $pa_config = $_[0]; @@ -146,9 +146,9 @@ sub logger { } } -############################################################################## +########################################################################## # limpia_cadena (string) - Purge a string for any forbidden characters (esc, etc) -############################################################################## +########################################################################## sub limpia_cadena { my $micadena; $micadena = $_[0]; @@ -157,12 +157,12 @@ sub limpia_cadena { return $micadena; } -############################################################################## +########################################################################## # sub float_equal (num1, num2, decimals) # This function make possible to compare two float numbers, using only x decimals # in comparation. # Taken from Perl Cookbook, O'Reilly. Thanks, guys. -############################################################################## +########################################################################## sub float_equal { my ($A, $B, $dp) = @_; return sprintf("%.${dp}g", $A) eq sprintf("%.${dp}g", $B);