diff --git a/pandora_agents/pc/AIX/pandora_agent.conf b/pandora_agents/pc/AIX/pandora_agent.conf index d0a75daa64..fa45b39117 100644 --- a/pandora_agents/pc/AIX/pandora_agent.conf +++ b/pandora_agents/pc/AIX/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, AIX version +# Version 7.0NG.747, AIX version # Licensed under GPL license v2, # Copyright (c) 2003-2010 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/pc/FreeBSD/pandora_agent.conf b/pandora_agents/pc/FreeBSD/pandora_agent.conf index 99c223c44b..e17cd17858 100644 --- a/pandora_agents/pc/FreeBSD/pandora_agent.conf +++ b/pandora_agents/pc/FreeBSD/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, FreeBSD Version +# Version 7.0NG.747, FreeBSD Version # Licensed under GPL license v2, # Copyright (c) 2003-2010 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/pc/HP-UX/pandora_agent.conf b/pandora_agents/pc/HP-UX/pandora_agent.conf index e02ab21bc0..f4c52d4665 100644 --- a/pandora_agents/pc/HP-UX/pandora_agent.conf +++ b/pandora_agents/pc/HP-UX/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, HP-UX Version +# Version 7.0NG.747, HP-UX Version # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/pc/Linux/pandora_agent.conf b/pandora_agents/pc/Linux/pandora_agent.conf index 8fb9619396..e1dd9b8468 100644 --- a/pandora_agents/pc/Linux/pandora_agent.conf +++ b/pandora_agents/pc/Linux/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, GNU/Linux +# Version 7.0NG.747, GNU/Linux # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/pc/NT4/pandora_agent.conf b/pandora_agents/pc/NT4/pandora_agent.conf index da44447fb5..c3bea781d2 100644 --- a/pandora_agents/pc/NT4/pandora_agent.conf +++ b/pandora_agents/pc/NT4/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, GNU/Linux +# Version 7.0NG.747, GNU/Linux # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/pc/SunOS/pandora_agent.conf b/pandora_agents/pc/SunOS/pandora_agent.conf index 1732b09047..65646a8c39 100644 --- a/pandora_agents/pc/SunOS/pandora_agent.conf +++ b/pandora_agents/pc/SunOS/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, Solaris Version +# Version 7.0NG.747, Solaris Version # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/pc/Win32/pandora_agent.conf b/pandora_agents/pc/Win32/pandora_agent.conf index a792678b72..bc45a74709 100644 --- a/pandora_agents/pc/Win32/pandora_agent.conf +++ b/pandora_agents/pc/Win32/pandora_agent.conf @@ -1,6 +1,6 @@ # Base config file for Pandora FMS Windows Agent # (c) 2006-2010 Artica Soluciones Tecnologicas -# Version 7.0NG.746 +# Version 7.0NG.747 # This program is Free Software, you can redistribute it and/or modify it # under the terms of the GNU General Public Licence as published by the Free Software diff --git a/pandora_agents/shellscript/aix/pandora_agent.conf b/pandora_agents/shellscript/aix/pandora_agent.conf index 1701726cac..0ac3c400ee 100644 --- a/pandora_agents/shellscript/aix/pandora_agent.conf +++ b/pandora_agents/shellscript/aix/pandora_agent.conf @@ -1,6 +1,6 @@ # Fichero de configuracion base de agentes de Pandora # Base config file for Pandora agents -# Version 7.0NG.746, AIX version +# Version 7.0NG.747, AIX version # General Parameters # ================== diff --git a/pandora_agents/shellscript/bsd-ipso/pandora_agent.conf b/pandora_agents/shellscript/bsd-ipso/pandora_agent.conf index d22024a70e..db04aabb37 100644 --- a/pandora_agents/shellscript/bsd-ipso/pandora_agent.conf +++ b/pandora_agents/shellscript/bsd-ipso/pandora_agent.conf @@ -1,6 +1,6 @@ # Fichero de configuracion base de agentes de Pandora # Base config file for Pandora agents -# Version 7.0NG.746 +# Version 7.0NG.747 # FreeBSD/IPSO version # Licenced under GPL licence, 2003-2007 Sancho Lerena diff --git a/pandora_agents/shellscript/hp-ux/pandora_agent.conf b/pandora_agents/shellscript/hp-ux/pandora_agent.conf index be269b14bb..ef8cf10b20 100644 --- a/pandora_agents/shellscript/hp-ux/pandora_agent.conf +++ b/pandora_agents/shellscript/hp-ux/pandora_agent.conf @@ -1,6 +1,6 @@ # Fichero de configuracion base de agentes de Pandora # Base config file for Pandora agents -# Version 7.0NG.746, HPUX Version +# Version 7.0NG.747, HPUX Version # General Parameters # ================== diff --git a/pandora_agents/shellscript/linux/pandora_agent.conf b/pandora_agents/shellscript/linux/pandora_agent.conf index b8e6838203..0f8cec83d5 100644 --- a/pandora_agents/shellscript/linux/pandora_agent.conf +++ b/pandora_agents/shellscript/linux/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746 +# Version 7.0NG.747 # Licensed under GPL license v2, # (c) 2003-2010 Artica Soluciones Tecnologicas # please visit http://pandora.sourceforge.net diff --git a/pandora_agents/shellscript/mac_osx/pandora_agent.conf b/pandora_agents/shellscript/mac_osx/pandora_agent.conf index a3dd4a0d2f..f0730f9ed6 100644 --- a/pandora_agents/shellscript/mac_osx/pandora_agent.conf +++ b/pandora_agents/shellscript/mac_osx/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746 +# Version 7.0NG.747 # Licensed under GPL license v2, # (c) 2003-2009 Artica Soluciones Tecnologicas # please visit http://pandora.sourceforge.net diff --git a/pandora_agents/shellscript/openWRT/pandora_agent.conf b/pandora_agents/shellscript/openWRT/pandora_agent.conf index c491068bf4..37c20e4ac8 100644 --- a/pandora_agents/shellscript/openWRT/pandora_agent.conf +++ b/pandora_agents/shellscript/openWRT/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746 +# Version 7.0NG.747 # Licensed under GPL license v2, # please visit http://pandora.sourceforge.net diff --git a/pandora_agents/shellscript/solaris/pandora_agent.conf b/pandora_agents/shellscript/solaris/pandora_agent.conf index e0be14d00a..4f1c72ad7d 100644 --- a/pandora_agents/shellscript/solaris/pandora_agent.conf +++ b/pandora_agents/shellscript/solaris/pandora_agent.conf @@ -1,6 +1,6 @@ # Fichero de configuracion base de agentes de Pandora # Base config file for Pandora agents -# Version 7.0NG.746, Solaris version +# Version 7.0NG.747, Solaris version # General Parameters # ================== diff --git a/pandora_agents/unix/AIX/pandora_agent.conf b/pandora_agents/unix/AIX/pandora_agent.conf index c24870acfd..7c91e0ceff 100644 --- a/pandora_agents/unix/AIX/pandora_agent.conf +++ b/pandora_agents/unix/AIX/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, AIX version +# Version 7.0NG.747, AIX version # Licensed under GPL license v2, # Copyright (c) 2003-2010 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index aa2702ac7d..49d1fe5840 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.746-200612 +Version: 7.0NG.747-200717 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index 878c9ebed3..8c31039a72 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.746-200612" +pandora_version="7.0NG.747-200717" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/Darwin/pandora_agent.conf b/pandora_agents/unix/Darwin/pandora_agent.conf index 1f3c3f196a..bb6919649f 100644 --- a/pandora_agents/unix/Darwin/pandora_agent.conf +++ b/pandora_agents/unix/Darwin/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, GNU/Linux +# Version 7.0NG.747, GNU/Linux # Licensed under GPL license v2, # Copyright (c) 2003-2012 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/FreeBSD/pandora_agent.conf b/pandora_agents/unix/FreeBSD/pandora_agent.conf index 5afed87d77..8cf57daf1f 100644 --- a/pandora_agents/unix/FreeBSD/pandora_agent.conf +++ b/pandora_agents/unix/FreeBSD/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, FreeBSD Version +# Version 7.0NG.747, FreeBSD Version # Licensed under GPL license v2, # Copyright (c) 2003-2016 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/HP-UX/pandora_agent.conf b/pandora_agents/unix/HP-UX/pandora_agent.conf index dc16545f04..689f256ad0 100644 --- a/pandora_agents/unix/HP-UX/pandora_agent.conf +++ b/pandora_agents/unix/HP-UX/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, HP-UX Version +# Version 7.0NG.747, HP-UX Version # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/Linux/pandora_agent.conf b/pandora_agents/unix/Linux/pandora_agent.conf index 9e1bd63a83..0e77e71de1 100644 --- a/pandora_agents/unix/Linux/pandora_agent.conf +++ b/pandora_agents/unix/Linux/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, GNU/Linux +# Version 7.0NG.747, GNU/Linux # Licensed under GPL license v2, # Copyright (c) 2003-2014 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/NT4/pandora_agent.conf b/pandora_agents/unix/NT4/pandora_agent.conf index 82a63a8d00..8b0fd17c4b 100644 --- a/pandora_agents/unix/NT4/pandora_agent.conf +++ b/pandora_agents/unix/NT4/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, GNU/Linux +# Version 7.0NG.747, GNU/Linux # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/NetBSD/pandora_agent.conf b/pandora_agents/unix/NetBSD/pandora_agent.conf index 36ab7779b3..c6b783acca 100644 --- a/pandora_agents/unix/NetBSD/pandora_agent.conf +++ b/pandora_agents/unix/NetBSD/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, NetBSD Version +# Version 7.0NG.747, NetBSD Version # Licensed under GPL license v2, # Copyright (c) 2003-2010 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/SunOS/pandora_agent.conf b/pandora_agents/unix/SunOS/pandora_agent.conf index b7510e704b..13b3760986 100644 --- a/pandora_agents/unix/SunOS/pandora_agent.conf +++ b/pandora_agents/unix/SunOS/pandora_agent.conf @@ -1,5 +1,5 @@ # Base config file for Pandora FMS agents -# Version 7.0NG.746, Solaris Version +# Version 7.0NG.747, Solaris Version # Licensed under GPL license v2, # Copyright (c) 2003-2009 Artica Soluciones Tecnologicas # http://www.pandorafms.com diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index 54e0609e6e..542d3f79f6 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -54,8 +54,8 @@ my $Sem = undef; # Semaphore used to control the number of threads my $ThreadSem = undef; -use constant AGENT_VERSION => '7.0NG.746'; -use constant AGENT_BUILD => '200612'; +use constant AGENT_VERSION => '7.0NG.747'; +use constant AGENT_BUILD => '200717'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 3d794681e5..2fc782a1b1 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -2,8 +2,8 @@ #Pandora FMS Linux Agent # %define name pandorafms_agent_unix -%define version 7.0NG.746 -%define release 200612 +%define version 7.0NG.747 +%define release 200717 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index 54661b8c5c..b79aa534ed 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -2,8 +2,8 @@ #Pandora FMS Linux Agent # %define name pandorafms_agent_unix -%define version 7.0NG.746 -%define release 200612 +%define version 7.0NG.747 +%define release 200717 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index ab67a79eee..68456b4afd 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -9,8 +9,8 @@ # Please see http://www.pandorafms.org. This code is licensed under GPL 2.0 license. # ********************************************************************** -PI_VERSION="7.0NG.746" -PI_BUILD="200612" +PI_VERSION="7.0NG.747" +PI_BUILD="200717" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/bin/pandora_agent.conf b/pandora_agents/win32/bin/pandora_agent.conf index 1cbeeafa0a..abd123208c 100644 --- a/pandora_agents/win32/bin/pandora_agent.conf +++ b/pandora_agents/win32/bin/pandora_agent.conf @@ -1,6 +1,6 @@ # Base config file for Pandora FMS Windows Agent # (c) 2006-2017 Artica Soluciones Tecnologicas -# Version 7.0NG.746 +# Version 7.0NG.747 # This program is Free Software, you can redistribute it and/or modify it # under the terms of the GNU General Public Licence as published by the Free Software diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 69cdcd335b..3a165ef680 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -3,7 +3,7 @@ AllowLanguageSelection {Yes} AppName -{Pandora FMS Windows Agent v7.0NG.746} +{Pandora FMS Windows Agent v7.0NG.747} ApplicationID {17E3D2CF-CA02-406B-8A80-9D31C17BD08F} @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{200612} +{200717} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 2988bcc3ce..c2d65a635f 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.746(Build 200612)") +#define PANDORA_VERSION ("7.0NG.747(Build 200717)") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index f939e85581..61846a671a 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.746(Build 200612))" + VALUE "ProductVersion", "(7.0NG.747(Build 200717))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/.gitignore b/pandora_console/.gitignore index 14c3e02e3d..a56f376f61 100644 --- a/pandora_console/.gitignore +++ b/pandora_console/.gitignore @@ -6,7 +6,10 @@ attachment/collection attachment/files_repo include/config.php pandora_console.log +log/console.log +log/cron.log enterprise *.bak audit.log +log/audit.log install_old.php diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 554a289b1b..f068d4f0a9 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.746-200612 +Version: 7.0NG.747-200717 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index 37ec4980df..514052b533 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.746-200612" +pandora_version="7.0NG.747-200717" package_pear=0 package_pandora=1 diff --git a/pandora_console/ajax.php b/pandora_console/ajax.php index a304fd516b..9ccb73b8ae 100644 --- a/pandora_console/ajax.php +++ b/pandora_console/ajax.php @@ -27,6 +27,8 @@ */ // Begin. +require 'vendor/autoload.php'; + define('AJAX', true); if (!defined('__PAN_XHPROF__')) { @@ -50,6 +52,15 @@ require_once 'include/functions.php'; require_once 'include/functions_db.php'; require_once 'include/auth/mysql.php'; +if (isset($config['console_log_enabled']) && $config['console_log_enabled'] == 1) { + ini_set('log_errors', 1); + ini_set('error_log', $config['homedir'].'/log/console.log'); +} else { + ini_set('log_errors', 0); + ini_set('error_log', 0); +} + + // Hash login process if (isset($_GET['loginhash'])) { $loginhash_data = get_parameter('loginhash_data', ''); diff --git a/pandora_console/extensions/pandora_logs.php b/pandora_console/extensions/pandora_logs.php index bbdac372cd..038997f156 100644 --- a/pandora_console/extensions/pandora_logs.php +++ b/pandora_console/extensions/pandora_logs.php @@ -69,7 +69,11 @@ function pandoralogs_extension_main() $logs_directory = (!empty($config['server_log_dir'])) ? io_safe_output($config['server_log_dir']) : '/var/log/pandora'; - view_logfile($config['homedir'].'/pandora_console.log'); + // Do not attempt to show console log if disabled. + if ($config['console_log_enabled']) { + view_logfile($config['homedir'].'/log/console.log'); + } + view_logfile($logs_directory.'/pandora_server.log'); view_logfile($logs_directory.'/pandora_server.error'); } diff --git a/pandora_console/extensions/realtime_graphs.php b/pandora_console/extensions/realtime_graphs.php index e487d49ee5..8940b36c2d 100644 --- a/pandora_console/extensions/realtime_graphs.php +++ b/pandora_console/extensions/realtime_graphs.php @@ -199,8 +199,8 @@ function pandora_realtime_graphs() html_print_input_hidden('custom_action', urlencode(base64_encode(' ')), false); html_print_input_hidden('incremental_base', '0'); - echo ''; echo ''; + echo ''; echo ''; // Store servers timezone offset to be retrieved from js diff --git a/pandora_console/extras/mr/39.sql b/pandora_console/extras/mr/39.sql new file mode 100644 index 0000000000..a8d8d2e3dd --- /dev/null +++ b/pandora_console/extras/mr/39.sql @@ -0,0 +1,1050 @@ +START TRANSACTION; + +ALTER TABLE `tnetwork_component` ADD COLUMN `manufacturer_id` varchar(200) NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `protocol` tinytext NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `module_type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1; +ALTER TABLE `tnetwork_component` ADD COLUMN `execution_type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1; +ALTER TABLE `tnetwork_component` ADD COLUMN `scan_type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1; +ALTER TABLE `tnetwork_component` ADD COLUMN `value` text NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `value_operations` text NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `module_enabled` tinyint(1) UNSIGNED DEFAULT 0; +ALTER TABLE `tnetwork_component` ADD COLUMN `name_oid` varchar(255) NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `query_class` varchar(200) NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `query_key_field` varchar(200) NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `scan_filters` text NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `query_filters` text NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `enabled` tinyint(1) UNSIGNED DEFAULT 1; + +INSERT INTO tmodule VALUES (9, 'Wizard module'); + +SET @plugin_name = 'Wizard SNMP module'; +SET @plugin_description = 'Get the result of an arithmetic operation using several OIDs values.'; +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; +INSERT IGNORE INTO `tplugin` (`id`, `name`, `description`, `max_timeout`, `max_retries`, `execute`, `net_dst_opt`, `net_port_opt`, `user_opt`, `pass_opt`, `plugin_type`, `macros`, `parameters`) VALUES (@plugin_id,@plugin_name,@plugin_description,20,0,'/usr/share/pandora_server/util/plugin/wizard_snmp_module',NULL,NULL,NULL,NULL,0,'{\"1\":{\"macro\":\"_field1_\",\"desc\":\"Host\",\"help\":\"\",\"value\":\"_address_\",\"hide\":\"\"},\"2\":{\"macro\":\"_field2_\",\"desc\":\"Port\",\"help\":\"\",\"value\":\"161\",\"hide\":\"\"},\"3\":{\"macro\":\"_field3_\",\"desc\":\"Version\",\"help\":\"1, 2c, 3\",\"value\":\"1\",\"hide\":\"\"},\"4\":{\"macro\":\"_field4_\",\"desc\":\"Community\",\"help\":\"\",\"value\":\"public\",\"hide\":\"\"},\"5\":{\"macro\":\"_field5_\",\"desc\":\"Security level (v3)\",\"help\":\"noAuthNoPriv, authNoPriv, authPriv\",\"value\":\"\",\"hide\":\"\"},\"6\":{\"macro\":\"_field6_\",\"desc\":\"Username (v3)\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"7\":{\"macro\":\"_field7_\",\"desc\":\"Authentication method (v3)\",\"help\":\"MD5, SHA\",\"value\":\"\",\"hide\":\"\"},\"8\":{\"macro\":\"_field8_\",\"desc\":\"Authentication password (v3)\",\"help\":\"\",\"value\":\"\",\"hide\":\"1\"},\"9\":{\"macro\":\"_field9_\",\"desc\":\"Privacy method (v3)\",\"help\":\"DES, AES\",\"value\":\"\",\"hide\":\"\"},\"10\":{\"macro\":\"_field10_\",\"desc\":\"Privacy password (v3)\",\"help\":\"\",\"value\":\"\",\"hide\":\"1\"},\"11\":{\"macro\":\"_field11_\",\"desc\":\"OID list\",\"help\":\"Comma separated OIDs used\",\"value\":\"\",\"hide\":\"\"},\"12\":{\"macro\":\"_field12_\",\"desc\":\"Operation\",\"help\":\"Aritmetic operation to get data. Macros _oN_ will be changed by OIDs in list. Example: (_o1_ * 100) / _o2_\",\"value\":\"\",\"hide\":\"\"}}','-host '_field1_' -port '_field2_' -version '_field3_' -community '_field4_' -secLevel '_field5_' -user '_field6_' -authMethod '_field7_' -authPass '_field8_' -privMethod '_field9_' -privPass '_field10_' -oidList '_field11_' -operation '_field12_''); + +SET @plugin_name = 'Wizard SNMP process'; +SET @plugin_description = 'Check if a process is running (1) or not (0) in OID .1.3.6.1.2.1.25.4.2.1.2 SNMP tree.'; +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; +INSERT IGNORE INTO `tplugin` (`id`, `name`, `description`, `max_timeout`, `max_retries`, `execute`, `net_dst_opt`, `net_port_opt`, `user_opt`, `pass_opt`, `plugin_type`, `macros`, `parameters`) VALUES (@plugin_id,@plugin_name,@plugin_description,20,0,'/usr/share/pandora_server/util/plugin/wizard_snmp_process',NULL,NULL,NULL,NULL,0,'{\"1\":{\"macro\":\"_field1_\",\"desc\":\"Host\",\"help\":\"\",\"value\":\"_address_\",\"hide\":\"\"},\"2\":{\"macro\":\"_field2_\",\"desc\":\"Port\",\"help\":\"\",\"value\":\"161\",\"hide\":\"\"},\"3\":{\"macro\":\"_field3_\",\"desc\":\"Version\",\"help\":\"1, 2c, 3\",\"value\":\"1\",\"hide\":\"\"},\"4\":{\"macro\":\"_field4_\",\"desc\":\"Community\",\"help\":\"\",\"value\":\"public\",\"hide\":\"\"},\"5\":{\"macro\":\"_field5_\",\"desc\":\"Security level (v3)\",\"help\":\"noAuthNoPriv, authNoPriv, authPriv\",\"value\":\"\",\"hide\":\"\"},\"6\":{\"macro\":\"_field6_\",\"desc\":\"Username (v3)\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"7\":{\"macro\":\"_field7_\",\"desc\":\"Authentication method (v3)\",\"help\":\"MD5, SHA\",\"value\":\"\",\"hide\":\"\"},\"8\":{\"macro\":\"_field8_\",\"desc\":\"Authentication password (v3)\",\"help\":\"\",\"value\":\"\",\"hide\":\"1\"},\"9\":{\"macro\":\"_field9_\",\"desc\":\"Privacy method (v3)\",\"help\":\"DES, AES\",\"value\":\"\",\"hide\":\"\"},\"10\":{\"macro\":\"_field10_\",\"desc\":\"Privacy password (v3)\",\"help\":\"\",\"value\":\"\",\"hide\":\"1\"},\"11\":{\"macro\":\"_field11_\",\"desc\":\"Process\",\"help\":\"Process name to check if is running (case sensitive)\",\"value\":\"\",\"hide\":\"\"}}','-host '_field1_' -port '_field2_' -version '_field3_' -community '_field4_' -secLevel '_field5_' -user '_field6_' -authMethod '_field7_' -authPass '_field8_' -privMethod '_field9_' -privPass '_field10_' -process '_field11_''); + +SET @plugin_name = 'Wizard WMI module'; +SET @plugin_description = 'Get the result of an arithmetic operation using distinct fields in a WMI query (Query must return only 1 row).'; +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; +INSERT IGNORE INTO `tplugin` (`id`, `name`, `description`, `max_timeout`, `max_retries`, `execute`, `net_dst_opt`, `net_port_opt`, `user_opt`, `pass_opt`, `plugin_type`, `macros`, `parameters`) VALUES (@plugin_id,@plugin_name,@plugin_description,20,0,'/usr/share/pandora_server/util/plugin/wizard_wmi_module',NULL,NULL,NULL,NULL,0,'{\"1\":{\"macro\":\"_field1_\",\"desc\":\"Host\",\"help\":\"\",\"value\":\"_address_\",\"hide\":\"\"},\"2\":{\"macro\":\"_field2_\",\"desc\":\"Namespace (Optional)\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"3\":{\"macro\":\"_field3_\",\"desc\":\"User\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"4\":{\"macro\":\"_field4_\",\"desc\":\"Password\",\"help\":\"\",\"value\":\"\",\"hide\":\"1\"},\"5\":{\"macro\":\"_field5_\",\"desc\":\"WMI Class\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"6\":{\"macro\":\"_field6_\",\"desc\":\"Fields list\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"7\":{\"macro\":\"_field7_\",\"desc\":\"Query filter (Optional)\",\"help\":\"Use single quotes for query conditions\",\"value\":\"\",\"hide\":\"\"},\"8\":{\"macro\":\"_field8_\",\"desc\":\"Operation\",\"help\":\"Aritmetic operation to get data. Macros _fN_ will be changed by fields in list. Example: ((_f1_ - _f2_) * 100) / _f1_\",\"value\":\"\",\"hide\":\"\"}}','-host '_field1_' -namespace '_field2_' -user '_field3_' -pass '_field4_' -wmiClass '_field5_' -fieldsList '_field6_' -queryFilter "_field7_" -operation '_field8_' -wmicPath /usr/bin/wmic'); + +SET @main_component_group_name = 'Wizard'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @main_component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@main_component_group_name,0); + +SELECT @component_group_parent := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @main_component_group_name; + +SET @component_group_name = 'CPU'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Memory'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Disk devices'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Storage'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Temperature sensors'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Processes'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Other'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Power supply'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Fans'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Temperature'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Sessions'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'VPN'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Intrussions'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Antivirus'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Services'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Disks'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'CPU'; + +SET @component_name = 'CPU User (%)'; +SET @component_description = 'The percentage of CPU time spent processing user-level code, calculated over the last minute'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,1,'1.3.6.1.4.1.2021.11.9.0','',1,'','','','','',1); + +SET @component_name = 'CPU System (%)'; +SET @component_description = 'The percentage of CPU time spent processing system-level code, calculated over the last minute'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,1,'1.3.6.1.4.1.2021.11.10.0','',1,'','','','','',1); + +SET @component_name = 'CPU Idle (%)'; +SET @component_description = 'The percentage of CPU time spent idle, calculated over the last minute'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,1,'1.3.6.1.4.1.2021.11.11.0','',0,'','','','','',1); + +SET @component_name = 'Load average - _nameOID_'; +SET @component_description = 'The 1, 5 or 15 minutes load average'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,2,'1.3.6.1.4.1.2021.10.1.3','',0,'1.3.6.1.4.1.2021.10.1.2','','','','',1); + +SET @component_name = 'Cisco CPU _nameOID_ usage (%)'; +SET @component_description = 'The overall CPU busy percentage in the last 5 minute period'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','cisco',1,2,'1.3.6.1.4.1.9.9.109.1.1.1.1.8','',1,'1.3.6.1.4.1.9.9.109.1.1.1.1.2','','','','',1); + +SET @component_name = 'F5 CPU _nameOID_ usage (%)'; +SET @component_description = 'This is average usage ratio of CPU for the associated host in the last five minutes'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,2,'1.3.6.1.4.1.3375.2.1.7.5.2.1.35','',1,'1.3.6.1.4.1.3375.2.1.7.5.2.1.3','','','','',1); + +SET @component_name = 'Juniper _nameOID_ CPU usage (%)'; +SET @component_description = 'The average usage ratio of CPU in the last five minutes'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.2636.3.1.13.1.21','',1,'1.3.6.1.4.1.2636.3.1.13.1.5','','','','',1); + +SET @component_name = 'HP CPU usage (%)'; +SET @component_description = 'The CPU utilization in percent(%)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','hp',1,1,'1.3.6.1.4.1.11.2.14.11.5.1.9.6.1.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet system CPU usage (%)'; +SET @component_description = 'CPU usage of the system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.1.3.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ CPU usage (%)'; +SET @component_description = 'CPU usage of the virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.3.2.1.1.5','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'WMI _DeviceID_ usage (%)'; +SET @component_description = 'Load capacity of each processor, averaged to the last second'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','{\"extra_field_1\":\"LoadPercentage\",\"satellite_execution\":\"\",\"value_operation\":\"\",\"server_plugin\":\"\",\"_field11__wmi_field\":\"_field11_\",\"_field12__wmi_field\":\"_field12_\",\"_field9__wmi_field\":\"_field9_\",\"_field10__wmi_field\":\"_field10_\",\"_field7__wmi_field\":\"_field7_\",\"_field8__wmi_field\":\"_field8_\",\"_field5__wmi_field\":\"_field5_\",\"_field6__wmi_field\":\"_field6_\",\"_field3__wmi_field\":\"_field3_\",\"_field4__wmi_field\":\"_field4_\",\"_field1__wmi_field\":\"_field1_\",\"_field2__wmi_field\":\"_field2_\",\"field0_wmi_field\":\"\"}','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',1,2,'','',1,'','Win32_Processor','DeviceID','','{\"scan\":\"\",\"execution\":\"DeviceID = '_DeviceID_'\",\"field\":\"1\",\"key_string\":\"\"}',1); + +SET @component_group_name = 'Memory'; + +SET @component_name = 'Total RAM used (%)'; +SET @component_description = 'Total real/physical memory used on the host'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.4.1.2021.4.6.0\",\"extra_field_2\":\"1.3.6.1.4.1.2021.4.5.0\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / _o2_"\",\"value_operation\":\"(_oid_1_ * 100) / _oid_2_\",\"server_plugin\":\"',@plugin_id,'\",\"_field2__snmp_field\":\"_port_\",\"_field1__snmp_field\":\"_address_\",\"_field4__snmp_field\":\"_community_\",\"_field3__snmp_field\":\"_version_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field12__snmp_field\":\"(_o1_ * 100) / _o2_\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',2,1,'','',1,'','','','','',1); + +SET @component_name = 'F5 host RAM used (%)'; +SET @component_description = 'The host memory percentage currently in use'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.4.1.3375.2.1.7.1.2.0\",\"extra_field_2\":\"1.3.6.1.4.1.3375.2.1.7.1.1.0\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / _o2_"\",\"value_operation\":\"(_oid_1_ * 100) / _oid_2_\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"_field12__snmp_field\":\"(_o1_ * 100) / _o2_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',2,1,'','',1,'','','','','',1); + +SET @component_name = 'F5 Host _nameOID_ RAM used (%)'; +SET @component_description = 'The host memory percentage currently in use for the specified host'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.4.1.3375.2.1.7.4.2.1.3\",\"extra_field_2\":\"1.3.6.1.4.1.3375.2.1.7.4.2.1.2\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / _o2_"\",\"value_operation\":\"(_oid_1_ * 100) / _oid_2_\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"_field12__snmp_field\":\"(_o1_ * 100) / _o2_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',2,2,'','',1,'1.3.6.1.4.1.3375.2.1.7.4.2.1.1','','','','',1); + +SET @component_name = 'Fortinet system RAM usage (%)'; +SET @component_description = 'Memory usage of the system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.1.4.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ RAM usage (%)'; +SET @component_description = 'Memory usage of the virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.3.2.1.1.6','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'WMI total RAM used (%)'; +SET @component_description = 'Percentage of physical memory currently used'; +SET @plugin_name = 'Wizard WMI module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"TotalVisibleMemorySize\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_wmi_module -host "_address_" -namespace "_namespace_wmi_" -user "_user_wmi_" -pass "_pass_wmi_" -wmiClass "_class_wmi_" -fieldsList "_field_wmi_0_,_field_wmi_1_" -queryFilter "" -operation "((_f2_ - _f1_) * 100) / _f2_" -wmicPath /usr/bin/wmic\",\"value_operation\":\"((_TotalVisibleMemorySize_ - _FreePhysicalMemory_) * 100) / _TotalVisibleMemorySize_\",\"server_plugin\":\"',@plugin_id,'\",\"_field2__wmi_field\":\"_namespace_wmi_\",\"_field1__wmi_field\":\"_address_\",\"_field4__wmi_field\":\"_pass_wmi_\",\"_field3__wmi_field\":\"_user_wmi_\",\"_field6__wmi_field\":\"_field_wmi_0_,_field_wmi_1_\",\"_field5__wmi_field\":\"_class_wmi_\",\"_field8__wmi_field\":\"((_f2_ - _f1_) * 100) / _f2_\",\"_field7__wmi_field\":\"\",\"field0_wmi_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',2,1,'','',1,'','Win32_OperatingSystem','FreePhysicalMemory','','{\"scan\":\"\",\"execution\":\"\",\"field\":\"\",\"key_string\":\"\"}',1); + +SET @component_name = 'Total Swap used (%)'; +SET @component_description = 'Total swap memory used on the host'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.4.1.2021.4.4.0\",\"extra_field_2\":\"1.3.6.1.4.1.2021.4.3.0\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / _o2_"\",\"value_operation\":\"(_oid_1_ * 100) / _oid_2_\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"_field12__snmp_field\":\"(_o1_ * 100) / _o2_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',2,1,'','',1,'','','','','',1); + +SET @component_name = 'Cisco memory pool _nameOID_ usage (%)'; +SET @component_description = 'Indicates the percentage of bytes from the memory pool that are currently in use by applications on the managed device'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.4.1.9.9.48.1.1.1.5\",\"extra_field_2\":\"1.3.6.1.4.1.9.9.48.1.1.1.6\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / (_o1_ + _o2_)"\",\"value_operation\":\"(_oid_1_ * 100) / (_oid_1_ + _oid_2_)\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"_field12__snmp_field\":\"(_o1_ * 100) / (_o1_ + _o2_)\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','cisco',2,2,'','',1,'1.3.6.1.4.1.9.9.48.1.1.1.2','','','','',1); + +SET @component_name = 'Juniper _nameOID_ memory usage (%)'; +SET @component_description = 'The buffer pool utilization in percentage of this subject'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.2636.3.1.13.1.11','',1,'1.3.6.1.4.1.2636.3.1.13.1.5','','','','',1); + +SET @component_name = 'HP memory slot _nameOID_ usage (%)'; +SET @component_description = 'The percentage of currently allocated bytes'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.7\",\"extra_field_2\":\"1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.5\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / _o2_"\",\"value_operation\":\"(_oid_1_ * 100) / _oid_2_\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"_field12__snmp_field\":\"(_o1_ * 100) / _o2_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','hp',2,2,'','',1,'1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.1','','','','',1); + +SET @component_group_name = 'Disk devices'; + +SET @component_name = 'Disk _nameOID_ bytes read'; +SET @component_description = 'The number of bytes read from this device since boot'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,16,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'bytes/sec','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,2,'1.3.6.1.4.1.2021.13.15.1.1.3','',0,'1.3.6.1.4.1.2021.13.15.1.1.2','','','','',1); + +SET @component_name = 'Disk _nameOID_ bytes written'; +SET @component_description = 'The number of bytes written to this device since boot'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,16,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'bytes/sec','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,2,'1.3.6.1.4.1.2021.13.15.1.1.4','',0,'1.3.6.1.4.1.2021.13.15.1.1.2','','','','',1); + +SET @component_name = 'Disk _nameOID_ read accesses'; +SET @component_description = 'The number of read accesses from this device since boot'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,16,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'accesses/sec','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,2,'1.3.6.1.4.1.2021.13.15.1.1.5','',0,'1.3.6.1.4.1.2021.13.15.1.1.2','','','','',1); + +SET @component_name = 'Disk _nameOID_ write accesses'; +SET @component_description = 'The number of write accesses to this device since boot'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,16,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'accesses/sec','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,2,'1.3.6.1.4.1.2021.13.15.1.1.6','',0,'1.3.6.1.4.1.2021.13.15.1.1.2','','','','',1); + +SET @component_group_name = 'Storage'; + +SET @component_name = 'Storage _nameOID_ (%)'; +SET @component_description = 'The amount of the storage represented by this entry that is allocated'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.2.1.25.2.3.1.6\",\"extra_field_2\":\"1.3.6.1.2.1.25.2.3.1.5\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / _o2_"\",\"value_operation\":\"(_oid_1_ * 100) / _oid_2_\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"_field12__snmp_field\":\"(_o1_ * 100) / _o2_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',2,2,'','',1,'1.3.6.1.2.1.25.2.3.1.3','','','','',1); + +SET @component_group_name = 'Temperature sensors'; + +SET @component_name = 'Temperature _nameOID_'; +SET @component_description = 'The temperature of this sensor'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'ºC','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,2,'1.3.6.1.4.1.2021.13.16.2.1.3','',0,'1.3.6.1.4.1.2021.13.16.2.1.2','','','','',1); + +SET @component_group_name = 'Processes'; + +SET @component_name = 'Process _nameOID_'; +SET @component_description = 'Check if the process is running'; +SET @plugin_name = 'Wizard SNMP process'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,2,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.2.1.25.4.2.1.7\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_process -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -process "_nameOID_"\",\"value_operation\":\"1\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_nameOID_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',2,2,'','',0,'1.3.6.1.2.1.25.4.2.1.2','','','','',1); + +SET @component_name = 'WMI Number of processes'; +SET @component_description = 'Number of process contexts currently loaded or running on the operating system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','{\"extra_field_1\":\"\",\"satellite_execution\":\"\",\"value_operation\":\"\",\"server_plugin\":\"0\",\"field0_wmi_field\":\"\"}','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',1,1,'','',1,'','Win32_OperatingSystem','NumberOfProcesses','','{\"scan\":\"\",\"execution\":\"\",\"field\":\"0\",\"key_string\":\"\"}',1); + +SET @component_name = 'WMI process _Name_ running'; +SET @component_description = 'Check if process is running'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,2,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','{\"extra_field_1\":\"Name\",\"satellite_execution\":\"\",\"value_operation\":\"\",\"server_plugin\":\"0\",\"field0_wmi_field\":\"\"}','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',1,2,'','',0,'','Win32_Process','Handle','','{\"scan\":\"\",\"execution\":\"Name = '_Name_'\",\"field\":\"1\",\"key_string\":\"_Name_\"}',1); + +SET @component_group_name = 'Other'; + +SET @component_name = 'Wizard system uptime'; +SET @component_description = 'The time (in hundredths of a second) since the network management portion of the system was last re-initialized'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'_timeticks_','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','all',1,1,'1.3.6.1.2.1.25.1.1.0','',1,'','','','','',1); + +SET @component_name = 'Wizard network uptime'; +SET @component_description = 'The time (in hundredths of a second) since the network management portion of the system was last re-initialized'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'_timeticks_','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','all',1,1,'1.3.6.1.2.1.1.3.0','',1,'','','','','',1); + +SET @component_name = 'Blocks sent'; +SET @component_description = 'Number of blocks sent to a block device'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,1,'1.3.6.1.4.1.2021.11.57.0','',0,'','','','','',1); + +SET @component_name = 'Blocks received'; +SET @component_description = 'Number of blocks received from a block device'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,1,'1.3.6.1.4.1.2021.11.58.0','',0,'','','','','',1); + +SET @component_name = 'Interrupts processed'; +SET @component_description = 'Number of interrupts processed'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,1,'1.3.6.1.4.1.2021.11.59.0','',0,'','','','','',1); + +SET @component_group_name = 'Power supply'; + +SET @component_name = 'Cisco _nameOID_ power state'; +SET @component_description = 'The current state of the power supply: normal(1), warning(2), critical(3), shutdown(4), notPresent(5), notFunctioning(6)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','cisco',1,2,'1.3.6.1.4.1.9.9.13.1.5.1.3','',0,'1.3.6.1.4.1.9.9.13.1.5.1.2','','','','',1); + +SET @component_name = 'F5 Power supply _nameOID_ status'; +SET @component_description = 'The status of the indexed power supply on the system: bad(0), good(1), notpresent(2)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,2,'1.3.6.1.4.1.3375.2.1.3.2.2.2.1.2','',1,'1.3.6.1.4.1.3375.2.1.3.2.2.2.1','','','','',1); + +SET @component_name = 'WMI _Name_ power supply state'; +SET @component_description = 'State of the power supply or supplies when last booted: Other (1), Unknown (2), Safe (3), Warning (4), Critical (5), Non-recoverable (6)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','{\"extra_field_1\":\"PowerSupplyState\",\"satellite_execution\":\"\",\"value_operation\":\"\",\"server_plugin\":\"0\",\"field0_wmi_field\":\"\"}','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',1,2,'','',0,'','Win32_ComputerSystem','Name','','{\"scan\":\"\",\"execution\":\"Name = '_Name_'\",\"field\":\"1\",\"key_string\":\"\"}',1); + +SET @component_name = 'WMI _Name_ Power state'; +SET @component_description = 'Current power state of a computer and its associated operating system: Unknown (0), Full Power (1), Low Power Mode (2), Standby (3), Unknown (4), Power Cycle (5), Power Off (6), Warning (7), Hibernate (8), Soft Off (9)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','{\"extra_field_1\":\"PowerState\",\"satellite_execution\":\"\",\"value_operation\":\"\",\"server_plugin\":\"0\",\"field0_wmi_field\":\"\"}','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',1,1,'','',0,'','Win32_ComputerSystem','Name','','{\"scan\":\"\",\"execution\":\"Name = '_Name_'\",\"field\":\"1\",\"key_string\":\"\"}',1); + +SET @component_group_name = 'Fans'; + +SET @component_name = 'Cisco _nameOID_ fan state'; +SET @component_description = 'The current state of the fan: normal(1), warning(2), critical(3), shutdown(4), notPresent(5), notFunctioning(6)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','cisco',1,2,'1.3.6.1.4.1.9.9.13.1.4.1.3','',1,'1.3.6.1.4.1.9.9.13.1.4.1.2','','','','',1); + +SET @component_name = 'F5 Fan _nameOID_ status'; +SET @component_description = 'The status of the indexed chassis fan on the system: bad(0), good(1), notpresent(2)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,2,'1.3.6.1.4.1.3375.2.1.3.2.1.2.1.2','',1,'1.3.6.1.4.1.3375.2.1.3.2.1.2.1.1','','','','',1); + +SET @component_name = 'HP fan tray _nameOID_ state'; +SET @component_description = 'Current state of the fan: failed(0), removed(1), off(2), underspeed(3), overspeed(4), ok(5), maxstate(6)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.4','',1,'1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.2','','','','',1); + +SET @component_group_name = 'Temperature'; + +SET @component_name = 'Cisco _nameOID_ temperature'; +SET @component_description = 'The current measurement of the testpoint being instrumented'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'ºC','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','cisco',1,2,'1.3.6.1.4.1.9.9.13.1.3.1.3','',1,'1.3.6.1.4.1.9.9.13.1.3.1.2','','','','',1); + +SET @component_name = 'F5 Temperature sensor _nameOID_'; +SET @component_description = 'The chassis temperature of the indexed sensor on the system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'ºC','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,2,'1.3.6.1.4.1.3375.2.1.3.2.3.2.1.2','',1,'1.3.6.1.4.1.3375.2.1.3.2.3.2.1.1','','','','',1); + +SET @component_name = 'Juniper _nameOID_ temperature'; +SET @component_description = 'The temperature of this subject'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'ºC','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.2636.3.1.13.1.7','',1,'1.3.6.1.4.1.2636.3.1.13.1.5','','','','',1); + +SET @component_name = 'HP _nameOID_ temperature'; +SET @component_description = 'The current temperature given by the indexed chassis'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'ºC','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','hp',1,2,'1.3.6.1.4.1.11.2.14.11.1.2.8.1.1.3','',0,'1.3.6.1.4.1.11.2.14.11.1.2.8.1.1.2','','','','',1); + +SET @component_group_name = 'Sessions'; + +SET @component_name = 'F5 Current auth sessions'; +SET @component_description = 'The current number of concurrent auth sessions'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.1.1.2.2.3.0','',1,'','','','','',1); + +SET @component_name = 'F5 Total auth success results'; +SET @component_description = 'The total number of auth success results'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.1.1.2.2.5.0','',1,'','','','','',1); + +SET @component_name = 'F5 Total auth failure results'; +SET @component_description = 'The total number of auth failure results'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.1.1.2.2.6.0','',1,'','','','','',1); + +SET @component_name = 'F5 Total auth error results'; +SET @component_description = 'The total number of auth error results'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.1.1.2.2.8.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet ephemeral sessions count'; +SET @component_description = 'The current number of ephemeral sessions on the device'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.6.2.1.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet direct requests count'; +SET @component_description = 'The number of direct requests to Fortigate local stack from external, reflecting DOS attack towards the Fortigate'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.6.2.7.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet clash sessions count'; +SET @component_description = 'The number of new sessions which have collision with existing sessions. This generally highlights a shortage of ports or IP in ip-pool during source natting (PNAT)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.6.2.3.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet expectation sessions count'; +SET @component_description = 'The number of current expectation sessions'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.6.2.4.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet sync queue sessions count'; +SET @component_description = 'The sync queue full counter, reflecting bursts on the sync queue'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.6.2.5.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet accept queue sessions count'; +SET @component_description = 'The accept queue full counter, reflecting bursts on the accept queue'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.6.2.6.0','',1,'','','','','',1); + +SET @component_group_name = 'VPN'; + +SET @component_name = 'F5 Current SSL/VPN connections'; +SET @component_description = 'The total current SSL/VPN connections in the system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.6.1.5.3.0','',1,'','','','','',1); + +SET @component_name = 'F5 Total SSL/VPN bytes received'; +SET @component_description = 'The total raw bytes received by SSL/VPN connections in the system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'bytes','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.6.1.5.5.0','',1,'','','','','',1); + +SET @component_name = 'F5 Total SSL/VPN bytes transmitted'; +SET @component_description = 'The total raw bytes transmitted by SSL/VPN connections in the system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'bytes','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.6.1.5.6.0','',1,'','','','','',1); + +SET @component_name = 'Juniper _nameOID_ active sites'; +SET @component_description = 'The number of active sites in the VPN'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.2636.3.26.1.2.1.9','',1,'1.3.6.1.4.1.2636.3.26.1.2.1.2','','','','',1); + +SET @component_name = 'Juniper _nameOID_ age'; +SET @component_description = 'The age (i.e., time from creation till now) of this VPN in hundredths of a second'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'_timeticks_','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.2636.3.26.1.2.1.12','',1,'1.3.6.1.4.1.2636.3.26.1.2.1.2','','','','',1); + +SET @component_name = 'Juniper _nameOID_ interface status'; +SET @component_description = 'Status of this interface: unknown(0), noLocalInterface(1), disabled(2), encapsulationMismatch(3), down(4), up(5)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.2636.3.26.1.3.1.10','',1,'1.3.6.1.4.1.2636.3.26.1.3.1.2','','','','',1); + +SET @component_group_name = 'Intrussions'; + +SET @component_name = 'Fortinet virtual domain _nameOID_ intrussions detected'; +SET @component_description = 'Number of intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.1','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ intrussions blocked'; +SET @component_description = 'Number of intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.1','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ critical severity intrussions'; +SET @component_description = 'Number of critical severity intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.3','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ high severity intrussions'; +SET @component_description = 'Number of high severity intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.4','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ medium severity intrussions'; +SET @component_description = 'Number of medium severity intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.5','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ low severity intrussions'; +SET @component_description = 'Number of low severity intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.6','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ informational severity intrussions'; +SET @component_description = 'Number of informational severity intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.7','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ signature detections'; +SET @component_description = 'Number of intrusions detected by signature since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.8','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ anomaly detections'; +SET @component_description = 'Number of intrusions DECed as anomalies since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.9','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_group_name = 'Antivirus'; + +SET @component_name = 'Fortinet virtual domain _nameOID_ virus detected'; +SET @component_description = 'Number of virus transmissions detected in the virtual domain since start-up'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.8.2.1.1.1','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ virus blocked'; +SET @component_description = 'Number of virus transmissions blocked in the virtual domain since start-up'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.8.2.1.1.2','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ oversized detected'; +SET @component_description = 'Number of over-sized file transmissions detected in the virtual domain since start-up'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.8.2.1.1.17','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ oversized blocked'; +SET @component_description = 'Number of over-sized file transmissions blocked in the virtual domain since start-up'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.8.2.1.1.18','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_group_name = 'Services'; + +SET @component_name = 'WMI Service _Name_ running'; +SET @component_description = '_Caption_'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,2,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','{\"extra_field_1\":\"State\",\"extra_field_2\":\"Caption\",\"satellite_execution\":\"\",\"value_operation\":\"\",\"server_plugin\":\"0\",\"field0_wmi_field\":\"\"}','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',1,2,'','',0,'','Win32_Service','Name','','{\"scan\":\"\",\"execution\":\"Name = '_Name_'\",\"field\":\"1\",\"key_string\":\"Running\"}',1); + +SET @component_group_name = 'Disks'; + +SET @component_name = 'WMI disk _DeviceID_ used (%)'; +SET @component_description = 'Space percentage used on the logical disk'; +SET @plugin_name = 'Wizard WMI module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"Size\",\"extra_field_2\":\"FreeSpace\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_wmi_module -host "_address_" -namespace "_namespace_wmi_" -user "_user_wmi_" -pass "_pass_wmi_" -wmiClass "_class_wmi_" -fieldsList "_field_wmi_1_,_field_wmi_2_" -queryFilter "DeviceID = '_DeviceID_'" -operation "((_f1_ - _f2_) * 100) / _f1_" -wmicPath /usr/bin/wmic\",\"value_operation\":\"((_Size_ - _FreeSpace_) * 100) / _Size_\",\"server_plugin\":\"',@plugin_id,'\",\"_field2__wmi_field\":\"_namespace_wmi_\",\"_field1__wmi_field\":\"_address_\",\"_field4__wmi_field\":\"_pass_wmi_\",\"_field3__wmi_field\":\"_user_wmi_\",\"_field6__wmi_field\":\"_field_wmi_1_,_field_wmi_2_\",\"_field5__wmi_field\":\"_class_wmi_\",\"_field8__wmi_field\":\"((_f1_ - _f2_) * 100) / _f1_\",\"_field7__wmi_field\":\"DeviceID = '_DeviceID_'\",\"field0_wmi_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',2,2,'','',1,'','Win32_LogicalDisk','DeviceID','','{\"scan\":\"DriveType = 3\",\"execution\":\"\",\"field\":\"\",\"key_string\":\"\"}',1); + +INSERT IGNORE INTO `tpen` VALUES (171,'dlink','D-Link Systems, Inc.'),(14988,'mikrotik','MikroTik'),(6486,'alcatel','Alcatel-Lucent Enterprise'),(41112,'ubiquiti','Ubiquiti Networks, Inc.'),(207,'telesis','Allied Telesis, Inc.'),(10002,'frogfoot','Frogfoot Networks'),(2,'ibm','IBM'),(4,'unix','Unix'),(63,'apple','Apple Computer, Inc.'),(674,'dell','Dell Inc.'),(111,'oracle','Oracle'),(116,'hitachi','Hitachi, Ltd.'),(173,'netlink','Netlink'),(188,'ascom','Ascom'),(6574,'synology','Synology Inc.'),(3861,'fujitsu','Fujitsu Network Communications, Inc.'),(53526,'dell','Dell ATC'),(52627,'apple','Apple Inc'),(19464,'hitachi','Hitachi Communication Technologies, Ltd.'),(13062,'ascom','Ascom'); + +ALTER TABLE `tmensajes` ADD COLUMN `hidden_sent` TINYINT(1) UNSIGNED DEFAULT 0; + +COMMIT; diff --git a/pandora_console/extras/mr/40.sql b/pandora_console/extras/mr/40.sql new file mode 100644 index 0000000000..7ee43f98ed --- /dev/null +++ b/pandora_console/extras/mr/40.sql @@ -0,0 +1,12 @@ +START TRANSACTION; + +ALTER TABLE `tservice_element` ADD COLUMN `rules` text; +ALTER TABLE `tservice` ADD COLUMN `unknown_as_critical` tinyint(1) NOT NULL default 0 AFTER `warning`; + +UPDATE `tservice` SET `auto_calculate`=0; + +UPDATE `tservice` SET `cps`= `cps` - 1 WHERE `cps` > 0; +UPDATE `tagente` SET `cps`= `cps` - 1 WHERE `cps` > 0; +UPDATE `tagente_modulo` SET `cps`= `cps` - 1 WHERE `cps` > 0; + +COMMIT; diff --git a/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql b/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql index b148f0f58d..666fdea9d4 100644 --- a/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql +++ b/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql @@ -1342,13 +1342,13 @@ ALTER TABLE `tmap` MODIFY COLUMN `id_user` varchar(250) NOT NULL DEFAULT ''; INSERT INTO `tconfig` (`token`, `value`) VALUES ('big_operation_step_datos_purge', '100'); INSERT INTO `tconfig` (`token`, `value`) VALUES ('small_operation_step_datos_purge', '1000'); INSERT INTO `tconfig` (`token`, `value`) VALUES ('days_autodisable_deletion', '30'); -INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 38); +INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 40); INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_docs_logo', 'default_docs.png'); INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_support_logo', 'default_support.png'); INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_logo_white_bg_preview', 'pandora_logo_head_white_bg.png'); UPDATE tconfig SET value = 'https://licensing.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager'; DELETE FROM `tconfig` WHERE `token` = 'current_package_enterprise'; -INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '746'); +INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '748'); INSERT INTO `tconfig` (`token`, `value`) VALUES ('status_monitor_fields', 'policy,agent,data_type,module_name,server_type,interval,status,graph,warn,data,timestamp'); UPDATE `tconfig` SET `value` = 'mini_severity,evento,id_agente,estado,timestamp' WHERE `token` LIKE 'event_fields'; DELETE FROM `tconfig` WHERE `token` LIKE 'integria_api_password'; @@ -1476,6 +1476,20 @@ ALTER TABLE tnetwork_component ADD COLUMN `dynamic_next` bigint(20) NOT NULL def ALTER TABLE tnetwork_component ADD COLUMN `dynamic_two_tailed` tinyint(1) unsigned default '0'; ALTER TABLE `tnetwork_component` ADD COLUMN `ff_type` tinyint(1) unsigned default '0'; ALTER TABLE `tnetwork_component` MODIFY COLUMN `ff_type` tinyint(1) unsigned NULL DEFAULT '0'; +ALTER TABLE `tnetwork_component` ADD COLUMN `manufacturer_id` varchar(200) NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `protocol` tinytext NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `module_type` tinyint UNSIGNED NOT NULL DEFAULT 1; +ALTER TABLE `tnetwork_component` ADD COLUMN `execution_type` tinyint UNSIGNED NOT NULL DEFAULT 1; +ALTER TABLE `tnetwork_component` ADD COLUMN `scan_type` tinyint UNSIGNED NOT NULL DEFAULT 1; +ALTER TABLE `tnetwork_component` ADD COLUMN `value` text NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `value_operations` text NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `module_enabled` tinyint(1) UNSIGNED DEFAULT '0'; +ALTER TABLE `tnetwork_component` ADD COLUMN `name_oid` varchar(255) NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `query_class` varchar(200) NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `query_key_field` varchar(200) NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `scan_filters` text NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `query_filters` text NOT NULL; +ALTER TABLE `tnetwork_component` ADD COLUMN `enabled` tinyint(1) UNSIGNED DEFAULT 1; -- ---------------------------------------------------------------------- -- Table `tpen` @@ -1526,7 +1540,16 @@ ALTER TABLE `tservice` ADD COLUMN `cps` int NOT NULL default 0; ALTER TABLE `tservice` ADD COLUMN `cascade_protection` tinyint(1) NOT NULL default 0; ALTER TABLE `tservice` ADD COLUMN `evaluate_sla` int(1) NOT NULL default 0; ALTER TABLE `tservice` ADD COLUMN `is_favourite` tinyint(1) NOT NULL default 0; +ALTER TABLE `tservice` ADD COLUMN `unknown_as_critical` tinyint(1) NOT NULL default 0 AFTER `warning`; + UPDATE tservice SET `is_favourite` = 1 WHERE `name` REGEXP '^[_|.|\[|\(]'; +-- ALl previous services are manual now. +UPDATE `tservice` SET `auto_calculate` = 0; + +-- --------------------------------------------------------------------- +-- Table `tservice_element` +-- --------------------------------------------------------------------- +ALTER TABLE `tservice_element` ADD COLUMN `rules` text; -- --------------------------------------------------------------------- -- Table `tlayout` @@ -1856,6 +1879,7 @@ ALTER TABLE tevent_response ADD COLUMN command_timeout int(5) unsigned NOT NULL -- --------------------------------------------------------------------- INSERT INTO tmodule VALUES (8, 'Wux module'); +INSERT INTO tmodule VALUES (9, 'Wizard module'); -- --------------------------------------------------------------------- -- Table `ttipo_modulo` @@ -2314,6 +2338,7 @@ ALTER TABLE `tmensajes` ADD COLUMN `response_mode` VARCHAR(200) DEFAULT NULL; ALTER TABLE `tmensajes` ADD COLUMN `citicity` INT(10) UNSIGNED DEFAULT '0'; ALTER TABLE `tmensajes` ADD COLUMN `id_source` BIGINT(20) UNSIGNED NOT NULL; ALTER TABLE `tmensajes` ADD COLUMN `subtype` VARCHAR(255) DEFAULT ''; +ALTER TABLE `tmensajes` ADD COLUMN `hidden_sent` TINYINT(1) UNSIGNED DEFAULT 0; ALTER TABLE `tmensajes` ADD CONSTRAINT `tsource_fk` FOREIGN KEY (`id_source`) REFERENCES `tnotification_source` (`id`) ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE `tmensajes` DROP COLUMN `id_usuario_destino`, ADD UNIQUE INDEX `id_mensaje` (`id_mensaje`); @@ -2734,4 +2759,1034 @@ CREATE TABLE `tnode_relations` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +-- ------------------------------------------------------------------------ +-- New wizards components and plugins +-- ------------------------------------------------------------------------ +SET @plugin_name = 'Wizard SNMP module'; +SET @plugin_description = 'Get the result of an arithmetic operation using several OIDs values.'; +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; +INSERT IGNORE INTO `tplugin` (`id`, `name`, `description`, `max_timeout`, `max_retries`, `execute`, `net_dst_opt`, `net_port_opt`, `user_opt`, `pass_opt`, `plugin_type`, `macros`, `parameters`) VALUES (@plugin_id,@plugin_name,@plugin_description,20,0,'/usr/share/pandora_server/util/plugin/wizard_snmp_module',NULL,NULL,NULL,NULL,0,'{\"1\":{\"macro\":\"_field1_\",\"desc\":\"Host\",\"help\":\"\",\"value\":\"_address_\",\"hide\":\"\"},\"2\":{\"macro\":\"_field2_\",\"desc\":\"Port\",\"help\":\"\",\"value\":\"161\",\"hide\":\"\"},\"3\":{\"macro\":\"_field3_\",\"desc\":\"Version\",\"help\":\"1, 2c, 3\",\"value\":\"1\",\"hide\":\"\"},\"4\":{\"macro\":\"_field4_\",\"desc\":\"Community\",\"help\":\"\",\"value\":\"public\",\"hide\":\"\"},\"5\":{\"macro\":\"_field5_\",\"desc\":\"Security level (v3)\",\"help\":\"noAuthNoPriv, authNoPriv, authPriv\",\"value\":\"\",\"hide\":\"\"},\"6\":{\"macro\":\"_field6_\",\"desc\":\"Username (v3)\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"7\":{\"macro\":\"_field7_\",\"desc\":\"Authentication method (v3)\",\"help\":\"MD5, SHA\",\"value\":\"\",\"hide\":\"\"},\"8\":{\"macro\":\"_field8_\",\"desc\":\"Authentication password (v3)\",\"help\":\"\",\"value\":\"\",\"hide\":\"1\"},\"9\":{\"macro\":\"_field9_\",\"desc\":\"Privacy method (v3)\",\"help\":\"DES, AES\",\"value\":\"\",\"hide\":\"\"},\"10\":{\"macro\":\"_field10_\",\"desc\":\"Privacy password (v3)\",\"help\":\"\",\"value\":\"\",\"hide\":\"1\"},\"11\":{\"macro\":\"_field11_\",\"desc\":\"OID list\",\"help\":\"Comma separated OIDs used\",\"value\":\"\",\"hide\":\"\"},\"12\":{\"macro\":\"_field12_\",\"desc\":\"Operation\",\"help\":\"Aritmetic operation to get data. Macros _oN_ will be changed by OIDs in list. Example: (_o1_ * 100) / _o2_\",\"value\":\"\",\"hide\":\"\"}}','-host '_field1_' -port '_field2_' -version '_field3_' -community '_field4_' -secLevel '_field5_' -user '_field6_' -authMethod '_field7_' -authPass '_field8_' -privMethod '_field9_' -privPass '_field10_' -oidList '_field11_' -operation '_field12_''); + +SET @plugin_name = 'Wizard SNMP process'; +SET @plugin_description = 'Check if a process is running (1) or not (0) in OID .1.3.6.1.2.1.25.4.2.1.2 SNMP tree.'; +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; +INSERT IGNORE INTO `tplugin` (`id`, `name`, `description`, `max_timeout`, `max_retries`, `execute`, `net_dst_opt`, `net_port_opt`, `user_opt`, `pass_opt`, `plugin_type`, `macros`, `parameters`) VALUES (@plugin_id,@plugin_name,@plugin_description,20,0,'/usr/share/pandora_server/util/plugin/wizard_snmp_process',NULL,NULL,NULL,NULL,0,'{\"1\":{\"macro\":\"_field1_\",\"desc\":\"Host\",\"help\":\"\",\"value\":\"_address_\",\"hide\":\"\"},\"2\":{\"macro\":\"_field2_\",\"desc\":\"Port\",\"help\":\"\",\"value\":\"161\",\"hide\":\"\"},\"3\":{\"macro\":\"_field3_\",\"desc\":\"Version\",\"help\":\"1, 2c, 3\",\"value\":\"1\",\"hide\":\"\"},\"4\":{\"macro\":\"_field4_\",\"desc\":\"Community\",\"help\":\"\",\"value\":\"public\",\"hide\":\"\"},\"5\":{\"macro\":\"_field5_\",\"desc\":\"Security level (v3)\",\"help\":\"noAuthNoPriv, authNoPriv, authPriv\",\"value\":\"\",\"hide\":\"\"},\"6\":{\"macro\":\"_field6_\",\"desc\":\"Username (v3)\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"7\":{\"macro\":\"_field7_\",\"desc\":\"Authentication method (v3)\",\"help\":\"MD5, SHA\",\"value\":\"\",\"hide\":\"\"},\"8\":{\"macro\":\"_field8_\",\"desc\":\"Authentication password (v3)\",\"help\":\"\",\"value\":\"\",\"hide\":\"1\"},\"9\":{\"macro\":\"_field9_\",\"desc\":\"Privacy method (v3)\",\"help\":\"DES, AES\",\"value\":\"\",\"hide\":\"\"},\"10\":{\"macro\":\"_field10_\",\"desc\":\"Privacy password (v3)\",\"help\":\"\",\"value\":\"\",\"hide\":\"1\"},\"11\":{\"macro\":\"_field11_\",\"desc\":\"Process\",\"help\":\"Process name to check if is running (case sensitive)\",\"value\":\"\",\"hide\":\"\"}}','-host '_field1_' -port '_field2_' -version '_field3_' -community '_field4_' -secLevel '_field5_' -user '_field6_' -authMethod '_field7_' -authPass '_field8_' -privMethod '_field9_' -privPass '_field10_' -process '_field11_''); + +SET @plugin_name = 'Wizard WMI module'; +SET @plugin_description = 'Get the result of an arithmetic operation using distinct fields in a WMI query (Query must return only 1 row).'; +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; +INSERT IGNORE INTO `tplugin` (`id`, `name`, `description`, `max_timeout`, `max_retries`, `execute`, `net_dst_opt`, `net_port_opt`, `user_opt`, `pass_opt`, `plugin_type`, `macros`, `parameters`) VALUES (@plugin_id,@plugin_name,@plugin_description,20,0,'/usr/share/pandora_server/util/plugin/wizard_wmi_module',NULL,NULL,NULL,NULL,0,'{\"1\":{\"macro\":\"_field1_\",\"desc\":\"Host\",\"help\":\"\",\"value\":\"_address_\",\"hide\":\"\"},\"2\":{\"macro\":\"_field2_\",\"desc\":\"Namespace (Optional)\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"3\":{\"macro\":\"_field3_\",\"desc\":\"User\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"4\":{\"macro\":\"_field4_\",\"desc\":\"Password\",\"help\":\"\",\"value\":\"\",\"hide\":\"1\"},\"5\":{\"macro\":\"_field5_\",\"desc\":\"WMI Class\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"6\":{\"macro\":\"_field6_\",\"desc\":\"Fields list\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"7\":{\"macro\":\"_field7_\",\"desc\":\"Query filter (Optional)\",\"help\":\"Use single quotes for query conditions\",\"value\":\"\",\"hide\":\"\"},\"8\":{\"macro\":\"_field8_\",\"desc\":\"Operation\",\"help\":\"Aritmetic operation to get data. Macros _fN_ will be changed by fields in list. Example: ((_f1_ - _f2_) * 100) / _f1_\",\"value\":\"\",\"hide\":\"\"}}','-host '_field1_' -namespace '_field2_' -user '_field3_' -pass '_field4_' -wmiClass '_field5_' -fieldsList '_field6_' -queryFilter "_field7_" -operation '_field8_' -wmicPath /usr/bin/wmic'); + +SET @main_component_group_name = 'Wizard'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @main_component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@main_component_group_name,0); + +SELECT @component_group_parent := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @main_component_group_name; + +SET @component_group_name = 'CPU'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Memory'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Disk devices'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Storage'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Temperature sensors'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Processes'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Other'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Power supply'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Fans'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Temperature'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Sessions'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'VPN'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Intrussions'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Antivirus'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Services'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'Disks'; +SET @component_id = ''; +SELECT @component_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; +INSERT IGNORE INTO `tnetwork_component_group` (`id_sg`, `name`, `parent`) VALUES (@component_id,@component_group_name,@component_group_parent); + +SET @component_group_name = 'CPU'; + +SET @component_name = 'CPU User (%)'; +SET @component_description = 'The percentage of CPU time spent processing user-level code, calculated over the last minute'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,1,'1.3.6.1.4.1.2021.11.9.0','',1,'','','','','',1); + +SET @component_name = 'CPU System (%)'; +SET @component_description = 'The percentage of CPU time spent processing system-level code, calculated over the last minute'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,1,'1.3.6.1.4.1.2021.11.10.0','',1,'','','','','',1); + +SET @component_name = 'CPU Idle (%)'; +SET @component_description = 'The percentage of CPU time spent idle, calculated over the last minute'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,1,'1.3.6.1.4.1.2021.11.11.0','',0,'','','','','',1); + +SET @component_name = 'Load average - _nameOID_'; +SET @component_description = 'The 1, 5 or 15 minutes load average'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,2,'1.3.6.1.4.1.2021.10.1.3','',0,'1.3.6.1.4.1.2021.10.1.2','','','','',1); + +SET @component_name = 'Cisco CPU _nameOID_ usage (%)'; +SET @component_description = 'The overall CPU busy percentage in the last 5 minute period'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','cisco',1,2,'1.3.6.1.4.1.9.9.109.1.1.1.1.8','',1,'1.3.6.1.4.1.9.9.109.1.1.1.1.2','','','','',1); + +SET @component_name = 'F5 CPU _nameOID_ usage (%)'; +SET @component_description = 'This is average usage ratio of CPU for the associated host in the last five minutes'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,2,'1.3.6.1.4.1.3375.2.1.7.5.2.1.35','',1,'1.3.6.1.4.1.3375.2.1.7.5.2.1.3','','','','',1); + +SET @component_name = 'Juniper _nameOID_ CPU usage (%)'; +SET @component_description = 'The average usage ratio of CPU in the last five minutes'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.2636.3.1.13.1.21','',1,'1.3.6.1.4.1.2636.3.1.13.1.5','','','','',1); + +SET @component_name = 'HP CPU usage (%)'; +SET @component_description = 'The CPU utilization in percent(%)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','hp',1,1,'1.3.6.1.4.1.11.2.14.11.5.1.9.6.1.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet system CPU usage (%)'; +SET @component_description = 'CPU usage of the system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.1.3.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ CPU usage (%)'; +SET @component_description = 'CPU usage of the virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.3.2.1.1.5','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'WMI _DeviceID_ usage (%)'; +SET @component_description = 'Load capacity of each processor, averaged to the last second'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','{\"extra_field_1\":\"LoadPercentage\",\"satellite_execution\":\"\",\"value_operation\":\"\",\"server_plugin\":\"\",\"_field11__wmi_field\":\"_field11_\",\"_field12__wmi_field\":\"_field12_\",\"_field9__wmi_field\":\"_field9_\",\"_field10__wmi_field\":\"_field10_\",\"_field7__wmi_field\":\"_field7_\",\"_field8__wmi_field\":\"_field8_\",\"_field5__wmi_field\":\"_field5_\",\"_field6__wmi_field\":\"_field6_\",\"_field3__wmi_field\":\"_field3_\",\"_field4__wmi_field\":\"_field4_\",\"_field1__wmi_field\":\"_field1_\",\"_field2__wmi_field\":\"_field2_\",\"field0_wmi_field\":\"\"}','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',1,2,'','',1,'','Win32_Processor','DeviceID','','{\"scan\":\"\",\"execution\":\"DeviceID = '_DeviceID_'\",\"field\":\"1\",\"key_string\":\"\"}',1); + +SET @component_group_name = 'Memory'; + +SET @component_name = 'Total RAM used (%)'; +SET @component_description = 'Total real/physical memory used on the host'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.4.1.2021.4.6.0\",\"extra_field_2\":\"1.3.6.1.4.1.2021.4.5.0\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / _o2_"\",\"value_operation\":\"(_oid_1_ * 100) / _oid_2_\",\"server_plugin\":\"',@plugin_id,'\",\"_field2__snmp_field\":\"_port_\",\"_field1__snmp_field\":\"_address_\",\"_field4__snmp_field\":\"_community_\",\"_field3__snmp_field\":\"_version_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field12__snmp_field\":\"(_o1_ * 100) / _o2_\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',2,1,'','',1,'','','','','',1); + +SET @component_name = 'F5 host RAM used (%)'; +SET @component_description = 'The host memory percentage currently in use'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.4.1.3375.2.1.7.1.2.0\",\"extra_field_2\":\"1.3.6.1.4.1.3375.2.1.7.1.1.0\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / _o2_"\",\"value_operation\":\"(_oid_1_ * 100) / _oid_2_\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"_field12__snmp_field\":\"(_o1_ * 100) / _o2_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',2,1,'','',1,'','','','','',1); + +SET @component_name = 'F5 Host _nameOID_ RAM used (%)'; +SET @component_description = 'The host memory percentage currently in use for the specified host'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.4.1.3375.2.1.7.4.2.1.3\",\"extra_field_2\":\"1.3.6.1.4.1.3375.2.1.7.4.2.1.2\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / _o2_"\",\"value_operation\":\"(_oid_1_ * 100) / _oid_2_\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"_field12__snmp_field\":\"(_o1_ * 100) / _o2_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',2,2,'','',1,'1.3.6.1.4.1.3375.2.1.7.4.2.1.1','','','','',1); + +SET @component_name = 'Fortinet system RAM usage (%)'; +SET @component_description = 'Memory usage of the system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.1.4.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ RAM usage (%)'; +SET @component_description = 'Memory usage of the virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.3.2.1.1.6','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'WMI total RAM used (%)'; +SET @component_description = 'Percentage of physical memory currently used'; +SET @plugin_name = 'Wizard WMI module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"TotalVisibleMemorySize\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_wmi_module -host "_address_" -namespace "_namespace_wmi_" -user "_user_wmi_" -pass "_pass_wmi_" -wmiClass "_class_wmi_" -fieldsList "_field_wmi_0_,_field_wmi_1_" -queryFilter "" -operation "((_f2_ - _f1_) * 100) / _f2_" -wmicPath /usr/bin/wmic\",\"value_operation\":\"((_TotalVisibleMemorySize_ - _FreePhysicalMemory_) * 100) / _TotalVisibleMemorySize_\",\"server_plugin\":\"',@plugin_id,'\",\"_field2__wmi_field\":\"_namespace_wmi_\",\"_field1__wmi_field\":\"_address_\",\"_field4__wmi_field\":\"_pass_wmi_\",\"_field3__wmi_field\":\"_user_wmi_\",\"_field6__wmi_field\":\"_field_wmi_0_,_field_wmi_1_\",\"_field5__wmi_field\":\"_class_wmi_\",\"_field8__wmi_field\":\"((_f2_ - _f1_) * 100) / _f2_\",\"_field7__wmi_field\":\"\",\"field0_wmi_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',2,1,'','',1,'','Win32_OperatingSystem','FreePhysicalMemory','','{\"scan\":\"\",\"execution\":\"\",\"field\":\"\",\"key_string\":\"\"}',1); + +SET @component_name = 'Total Swap used (%)'; +SET @component_description = 'Total swap memory used on the host'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.4.1.2021.4.4.0\",\"extra_field_2\":\"1.3.6.1.4.1.2021.4.3.0\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / _o2_"\",\"value_operation\":\"(_oid_1_ * 100) / _oid_2_\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"_field12__snmp_field\":\"(_o1_ * 100) / _o2_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',2,1,'','',1,'','','','','',1); + +SET @component_name = 'Cisco memory pool _nameOID_ usage (%)'; +SET @component_description = 'Indicates the percentage of bytes from the memory pool that are currently in use by applications on the managed device'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.4.1.9.9.48.1.1.1.5\",\"extra_field_2\":\"1.3.6.1.4.1.9.9.48.1.1.1.6\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / (_o1_ + _o2_)"\",\"value_operation\":\"(_oid_1_ * 100) / (_oid_1_ + _oid_2_)\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"_field12__snmp_field\":\"(_o1_ * 100) / (_o1_ + _o2_)\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','cisco',2,2,'','',1,'1.3.6.1.4.1.9.9.48.1.1.1.2','','','','',1); + +SET @component_name = 'Juniper _nameOID_ memory usage (%)'; +SET @component_description = 'The buffer pool utilization in percentage of this subject'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.2636.3.1.13.1.11','',1,'1.3.6.1.4.1.2636.3.1.13.1.5','','','','',1); + +SET @component_name = 'HP memory slot _nameOID_ usage (%)'; +SET @component_description = 'The percentage of currently allocated bytes'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.7\",\"extra_field_2\":\"1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.5\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / _o2_"\",\"value_operation\":\"(_oid_1_ * 100) / _oid_2_\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"_field12__snmp_field\":\"(_o1_ * 100) / _o2_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','hp',2,2,'','',1,'1.3.6.1.4.1.11.2.14.11.5.1.1.2.1.1.1.1','','','','',1); + +SET @component_group_name = 'Disk devices'; + +SET @component_name = 'Disk _nameOID_ bytes read'; +SET @component_description = 'The number of bytes read from this device since boot'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,16,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'bytes/sec','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,2,'1.3.6.1.4.1.2021.13.15.1.1.3','',0,'1.3.6.1.4.1.2021.13.15.1.1.2','','','','',1); + +SET @component_name = 'Disk _nameOID_ bytes written'; +SET @component_description = 'The number of bytes written to this device since boot'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,16,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'bytes/sec','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,2,'1.3.6.1.4.1.2021.13.15.1.1.4','',0,'1.3.6.1.4.1.2021.13.15.1.1.2','','','','',1); + +SET @component_name = 'Disk _nameOID_ read accesses'; +SET @component_description = 'The number of read accesses from this device since boot'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,16,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'accesses/sec','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,2,'1.3.6.1.4.1.2021.13.15.1.1.5','',0,'1.3.6.1.4.1.2021.13.15.1.1.2','','','','',1); + +SET @component_name = 'Disk _nameOID_ write accesses'; +SET @component_description = 'The number of write accesses to this device since boot'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,16,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'accesses/sec','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,2,'1.3.6.1.4.1.2021.13.15.1.1.6','',0,'1.3.6.1.4.1.2021.13.15.1.1.2','','','','',1); + +SET @component_group_name = 'Storage'; + +SET @component_name = 'Storage _nameOID_ (%)'; +SET @component_description = 'The amount of the storage represented by this entry that is allocated'; +SET @plugin_name = 'Wizard SNMP module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.2.1.25.2.3.1.6\",\"extra_field_2\":\"1.3.6.1.2.1.25.2.3.1.5\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_module -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -oidList "_oid_1_,_oid_2_" -operation "(_o1_ * 100) / _o2_"\",\"value_operation\":\"(_oid_1_ * 100) / _oid_2_\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_oid_1_,_oid_2_\",\"_field12__snmp_field\":\"(_o1_ * 100) / _o2_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',2,2,'','',1,'1.3.6.1.2.1.25.2.3.1.3','','','','',1); + +SET @component_group_name = 'Temperature sensors'; + +SET @component_name = 'Temperature _nameOID_'; +SET @component_description = 'The temperature of this sensor'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'ºC','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,2,'1.3.6.1.4.1.2021.13.16.2.1.3','',0,'1.3.6.1.4.1.2021.13.16.2.1.2','','','','',1); + +SET @component_group_name = 'Processes'; + +SET @component_name = 'Process _nameOID_'; +SET @component_description = 'Check if the process is running'; +SET @plugin_name = 'Wizard SNMP process'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,2,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard',CONCAT('{\"extra_field_1\":\"1.3.6.1.2.1.25.4.2.1.7\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_snmp_process -host "_address_" -port "_port_" -version "_version_" -community "_community_" -secLevel "_sec_level_" -user "_auth_user_" -authMethod "_auth_method_" -authPass "_auth_pass_" -privMethod "_priv_method_" -privPass "_priv_pass_" -process "_nameOID_"\",\"value_operation\":\"1\",\"server_plugin\":\"',@plugin_id,'\",\"_field11__snmp_field\":\"_nameOID_\",\"_field9__snmp_field\":\"_priv_method_\",\"_field10__snmp_field\":\"_priv_pass_\",\"_field7__snmp_field\":\"_auth_method_\",\"_field8__snmp_field\":\"_auth_pass_\",\"_field5__snmp_field\":\"_sec_level_\",\"_field6__snmp_field\":\"_auth_user_\",\"_field3__snmp_field\":\"_version_\",\"_field4__snmp_field\":\"_community_\",\"_field1__snmp_field\":\"_address_\",\"_field2__snmp_field\":\"_port_\",\"field0_snmp_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',2,2,'','',0,'1.3.6.1.2.1.25.4.2.1.2','','','','',1); + +SET @component_name = 'WMI Number of processes'; +SET @component_description = 'Number of process contexts currently loaded or running on the operating system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','{\"extra_field_1\":\"\",\"satellite_execution\":\"\",\"value_operation\":\"\",\"server_plugin\":\"0\",\"field0_wmi_field\":\"\"}','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',1,1,'','',1,'','Win32_OperatingSystem','NumberOfProcesses','','{\"scan\":\"\",\"execution\":\"\",\"field\":\"0\",\"key_string\":\"\"}',1); + +SET @component_name = 'WMI process _Name_ running'; +SET @component_description = 'Check if process is running'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,2,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','{\"extra_field_1\":\"Name\",\"satellite_execution\":\"\",\"value_operation\":\"\",\"server_plugin\":\"0\",\"field0_wmi_field\":\"\"}','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',1,2,'','',0,'','Win32_Process','Handle','','{\"scan\":\"\",\"execution\":\"Name = '_Name_'\",\"field\":\"1\",\"key_string\":\"_Name_\"}',1); + +SET @component_group_name = 'Other'; + +SET @component_name = 'Wizard system uptime'; +SET @component_description = 'The time (in hundredths of a second) since the network management portion of the system was last re-initialized'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'_timeticks_','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','all',1,1,'1.3.6.1.2.1.25.1.1.0','',1,'','','','','',1); + +SET @component_name = 'Wizard network uptime'; +SET @component_description = 'The time (in hundredths of a second) since the network management portion of the system was last re-initialized'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'_timeticks_','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','all',1,1,'1.3.6.1.2.1.1.3.0','',1,'','','','','',1); + +SET @component_name = 'Blocks sent'; +SET @component_description = 'Number of blocks sent to a block device'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,1,'1.3.6.1.4.1.2021.11.57.0','',0,'','','','','',1); + +SET @component_name = 'Blocks received'; +SET @component_description = 'Number of blocks received from a block device'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,1,'1.3.6.1.4.1.2021.11.58.0','',0,'','','','','',1); + +SET @component_name = 'Interrupts processed'; +SET @component_description = 'Number of interrupts processed'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','general_snmp',1,1,'1.3.6.1.4.1.2021.11.59.0','',0,'','','','','',1); + +SET @component_group_name = 'Power supply'; + +SET @component_name = 'Cisco _nameOID_ power state'; +SET @component_description = 'The current state of the power supply: normal(1), warning(2), critical(3), shutdown(4), notPresent(5), notFunctioning(6)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','cisco',1,2,'1.3.6.1.4.1.9.9.13.1.5.1.3','',0,'1.3.6.1.4.1.9.9.13.1.5.1.2','','','','',1); + +SET @component_name = 'F5 Power supply _nameOID_ status'; +SET @component_description = 'The status of the indexed power supply on the system: bad(0), good(1), notpresent(2)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,2,'1.3.6.1.4.1.3375.2.1.3.2.2.2.1.2','',1,'1.3.6.1.4.1.3375.2.1.3.2.2.2.1','','','','',1); + +SET @component_name = 'WMI _Name_ power supply state'; +SET @component_description = 'State of the power supply or supplies when last booted: Other (1), Unknown (2), Safe (3), Warning (4), Critical (5), Non-recoverable (6)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','{\"extra_field_1\":\"PowerSupplyState\",\"satellite_execution\":\"\",\"value_operation\":\"\",\"server_plugin\":\"0\",\"field0_wmi_field\":\"\"}','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',1,2,'','',0,'','Win32_ComputerSystem','Name','','{\"scan\":\"\",\"execution\":\"Name = '_Name_'\",\"field\":\"1\",\"key_string\":\"\"}',1); + +SET @component_name = 'WMI _Name_ Power state'; +SET @component_description = 'Current power state of a computer and its associated operating system: Unknown (0), Full Power (1), Low Power Mode (2), Standby (3), Unknown (4), Power Cycle (5), Power Off (6), Warning (7), Hibernate (8), Soft Off (9)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','{\"extra_field_1\":\"PowerState\",\"satellite_execution\":\"\",\"value_operation\":\"\",\"server_plugin\":\"0\",\"field0_wmi_field\":\"\"}','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',1,1,'','',0,'','Win32_ComputerSystem','Name','','{\"scan\":\"\",\"execution\":\"Name = '_Name_'\",\"field\":\"1\",\"key_string\":\"\"}',1); + +SET @component_group_name = 'Fans'; + +SET @component_name = 'Cisco _nameOID_ fan state'; +SET @component_description = 'The current state of the fan: normal(1), warning(2), critical(3), shutdown(4), notPresent(5), notFunctioning(6)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','cisco',1,2,'1.3.6.1.4.1.9.9.13.1.4.1.3','',1,'1.3.6.1.4.1.9.9.13.1.4.1.2','','','','',1); + +SET @component_name = 'F5 Fan _nameOID_ status'; +SET @component_description = 'The status of the indexed chassis fan on the system: bad(0), good(1), notpresent(2)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,2,'1.3.6.1.4.1.3375.2.1.3.2.1.2.1.2','',1,'1.3.6.1.4.1.3375.2.1.3.2.1.2.1.1','','','','',1); + +SET @component_name = 'HP fan tray _nameOID_ state'; +SET @component_description = 'Current state of the fan: failed(0), removed(1), off(2), underspeed(3), overspeed(4), ok(5), maxstate(6)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.4','',1,'1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.2','','','','',1); + +SET @component_group_name = 'Temperature'; + +SET @component_name = 'Cisco _nameOID_ temperature'; +SET @component_description = 'The current measurement of the testpoint being instrumented'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'ºC','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','cisco',1,2,'1.3.6.1.4.1.9.9.13.1.3.1.3','',1,'1.3.6.1.4.1.9.9.13.1.3.1.2','','','','',1); + +SET @component_name = 'F5 Temperature sensor _nameOID_'; +SET @component_description = 'The chassis temperature of the indexed sensor on the system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'ºC','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,2,'1.3.6.1.4.1.3375.2.1.3.2.3.2.1.2','',1,'1.3.6.1.4.1.3375.2.1.3.2.3.2.1.1','','','','',1); + +SET @component_name = 'Juniper _nameOID_ temperature'; +SET @component_description = 'The temperature of this subject'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'ºC','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.2636.3.1.13.1.7','',1,'1.3.6.1.4.1.2636.3.1.13.1.5','','','','',1); + +SET @component_name = 'HP _nameOID_ temperature'; +SET @component_description = 'The current temperature given by the indexed chassis'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'ºC','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','hp',1,2,'1.3.6.1.4.1.11.2.14.11.1.2.8.1.1.3','',0,'1.3.6.1.4.1.11.2.14.11.1.2.8.1.1.2','','','','',1); + +SET @component_group_name = 'Sessions'; + +SET @component_name = 'F5 Current auth sessions'; +SET @component_description = 'The current number of concurrent auth sessions'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.1.1.2.2.3.0','',1,'','','','','',1); + +SET @component_name = 'F5 Total auth success results'; +SET @component_description = 'The total number of auth success results'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.1.1.2.2.5.0','',1,'','','','','',1); + +SET @component_name = 'F5 Total auth failure results'; +SET @component_description = 'The total number of auth failure results'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.1.1.2.2.6.0','',1,'','','','','',1); + +SET @component_name = 'F5 Total auth error results'; +SET @component_description = 'The total number of auth error results'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.1.1.2.2.8.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet ephemeral sessions count'; +SET @component_description = 'The current number of ephemeral sessions on the device'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.6.2.1.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet direct requests count'; +SET @component_description = 'The number of direct requests to Fortigate local stack from external, reflecting DOS attack towards the Fortigate'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.6.2.7.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet clash sessions count'; +SET @component_description = 'The number of new sessions which have collision with existing sessions. This generally highlights a shortage of ports or IP in ip-pool during source natting (PNAT)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.6.2.3.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet expectation sessions count'; +SET @component_description = 'The number of current expectation sessions'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.6.2.4.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet sync queue sessions count'; +SET @component_description = 'The sync queue full counter, reflecting bursts on the sync queue'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.6.2.5.0','',1,'','','','','',1); + +SET @component_name = 'Fortinet accept queue sessions count'; +SET @component_description = 'The accept queue full counter, reflecting bursts on the accept queue'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,1,'1.3.6.1.4.1.12356.101.4.6.2.6.0','',1,'','','','','',1); + +SET @component_group_name = 'VPN'; + +SET @component_name = 'F5 Current SSL/VPN connections'; +SET @component_description = 'The total current SSL/VPN connections in the system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.6.1.5.3.0','',1,'','','','','',1); + +SET @component_name = 'F5 Total SSL/VPN bytes received'; +SET @component_description = 'The total raw bytes received by SSL/VPN connections in the system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'bytes','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.6.1.5.5.0','',1,'','','','','',1); + +SET @component_name = 'F5 Total SSL/VPN bytes transmitted'; +SET @component_description = 'The total raw bytes transmitted by SSL/VPN connections in the system'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'bytes','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','f5',1,1,'1.3.6.1.4.1.3375.2.6.1.5.6.0','',1,'','','','','',1); + +SET @component_name = 'Juniper _nameOID_ active sites'; +SET @component_description = 'The number of active sites in the VPN'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.2636.3.26.1.2.1.9','',1,'1.3.6.1.4.1.2636.3.26.1.2.1.2','','','','',1); + +SET @component_name = 'Juniper _nameOID_ age'; +SET @component_description = 'The age (i.e., time from creation till now) of this VPN in hundredths of a second'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'_timeticks_','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.2636.3.26.1.2.1.12','',1,'1.3.6.1.4.1.2636.3.26.1.2.1.2','','','','',1); + +SET @component_name = 'Juniper _nameOID_ interface status'; +SET @component_description = 'Status of this interface: unknown(0), noLocalInterface(1), disabled(2), encapsulationMismatch(3), down(4), up(5)'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','juniper',1,2,'1.3.6.1.4.1.2636.3.26.1.3.1.10','',1,'1.3.6.1.4.1.2636.3.26.1.3.1.2','','','','',1); + +SET @component_group_name = 'Intrussions'; + +SET @component_name = 'Fortinet virtual domain _nameOID_ intrussions detected'; +SET @component_description = 'Number of intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.1','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ intrussions blocked'; +SET @component_description = 'Number of intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.1','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ critical severity intrussions'; +SET @component_description = 'Number of critical severity intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.3','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ high severity intrussions'; +SET @component_description = 'Number of high severity intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.4','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ medium severity intrussions'; +SET @component_description = 'Number of medium severity intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.5','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ low severity intrussions'; +SET @component_description = 'Number of low severity intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.6','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ informational severity intrussions'; +SET @component_description = 'Number of informational severity intrusions detected since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.7','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ signature detections'; +SET @component_description = 'Number of intrusions detected by signature since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.8','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ anomaly detections'; +SET @component_description = 'Number of intrusions DECed as anomalies since start-up in this virtual domain'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.9.2.1.1.9','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_group_name = 'Antivirus'; + +SET @component_name = 'Fortinet virtual domain _nameOID_ virus detected'; +SET @component_description = 'Number of virus transmissions detected in the virtual domain since start-up'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.8.2.1.1.1','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ virus blocked'; +SET @component_description = 'Number of virus transmissions blocked in the virtual domain since start-up'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.8.2.1.1.2','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ oversized detected'; +SET @component_description = 'Number of over-sized file transmissions detected in the virtual domain since start-up'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.8.2.1.1.17','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_name = 'Fortinet virtual domain _nameOID_ oversized blocked'; +SET @component_description = 'Number of over-sized file transmissions blocked in the virtual domain since start-up'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,15,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','Array','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'snmp','fortinet',1,2,'1.3.6.1.4.1.12356.101.8.2.1.1.18','',1,'1.3.6.1.4.1.12356.101.3.2.1.1.2','','','','',1); + +SET @component_group_name = 'Services'; + +SET @component_name = 'WMI Service _Name_ running'; +SET @component_description = '_Caption_'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,2,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,0.00,0.00,'',0.00,0.00,'',0,'','','',0,0,0.000000000000000,'','nowizard','{\"extra_field_1\":\"State\",\"extra_field_2\":\"Caption\",\"satellite_execution\":\"\",\"value_operation\":\"\",\"server_plugin\":\"0\",\"field0_wmi_field\":\"\"}','','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',1,2,'','',0,'','Win32_Service','Name','','{\"scan\":\"\",\"execution\":\"Name = '_Name_'\",\"field\":\"1\",\"key_string\":\"Running\"}',1); + +SET @component_group_name = 'Disks'; + +SET @component_name = 'WMI disk _DeviceID_ used (%)'; +SET @component_description = 'Space percentage used on the logical disk'; +SET @plugin_name = 'Wizard WMI module'; + +SET @component_id = ''; +SELECT @component_id := `id_nc` FROM `tnetwork_component` WHERE `name` = @component_name; + +SET @group_id = ''; +SELECT @group_id := `id_sg` FROM `tnetwork_component_group` WHERE `name` = @component_group_name; + +SET @plugin_id = ''; +SELECT @plugin_id := `id` FROM `tplugin` WHERE `name` = @plugin_name; + +INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_group`, `type`, `max`, `min`, `module_interval`, `tcp_port`, `tcp_send`, `tcp_rcv`, `snmp_community`, `snmp_oid`, `id_module_group`, `id_modulo`, `id_plugin`, `plugin_user`, `plugin_pass`, `plugin_parameter`, `max_timeout`, `max_retries`, `history_data`, `min_warning`, `max_warning`, `str_warning`, `min_critical`, `max_critical`, `str_critical`, `min_ff_event`, `custom_string_1`, `custom_string_2`, `custom_string_3`, `custom_integer_1`, `custom_integer_2`, `post_process`, `unit`, `wizard_level`, `macros`, `critical_instructions`, `warning_instructions`, `unknown_instructions`, `critical_inverse`, `warning_inverse`, `id_category`, `tags`, `disabled_types_event`, `module_macros`, `min_ff_event_normal`, `min_ff_event_warning`, `min_ff_event_critical`, `ff_type`, `each_ff`, `dynamic_interval`, `dynamic_max`, `dynamic_min`, `dynamic_next`, `dynamic_two_tailed`, `module_type`, `protocol`, `manufacturer_id`, `execution_type`, `scan_type`, `value`, `value_operations`, `module_enabled`, `name_oid`, `query_class`, `query_key_field`, `scan_filters`, `query_filters`, `enabled`) VALUES (@component_id,@component_name,@component_description,@group_id,1,0,0,0,0,'','','','',0,9,0,'','','',0,0,0,80.00,90.00,'',90.00,0.00,'',0,'','','',0,0,0.000000000000000,'%','nowizard',CONCAT('{\"extra_field_1\":\"Size\",\"extra_field_2\":\"FreeSpace\",\"satellite_execution\":\"/etc/pandora/satellite_plugins/wizard_wmi_module -host "_address_" -namespace "_namespace_wmi_" -user "_user_wmi_" -pass "_pass_wmi_" -wmiClass "_class_wmi_" -fieldsList "_field_wmi_1_,_field_wmi_2_" -queryFilter "DeviceID = '_DeviceID_'" -operation "((_f1_ - _f2_) * 100) / _f1_" -wmicPath /usr/bin/wmic\",\"value_operation\":\"((_Size_ - _FreeSpace_) * 100) / _Size_\",\"server_plugin\":\"',@plugin_id,'\",\"_field2__wmi_field\":\"_namespace_wmi_\",\"_field1__wmi_field\":\"_address_\",\"_field4__wmi_field\":\"_pass_wmi_\",\"_field3__wmi_field\":\"_user_wmi_\",\"_field6__wmi_field\":\"_field_wmi_1_,_field_wmi_2_\",\"_field5__wmi_field\":\"_class_wmi_\",\"_field8__wmi_field\":\"((_f1_ - _f2_) * 100) / _f1_\",\"_field7__wmi_field\":\"DeviceID = '_DeviceID_'\",\"field0_wmi_field\":\"\"}'),'','','',0,0,0,'','{\"going_unknown\":0}','',0,0,0,0,0,0,0,0,0,0,1,'wmi','',2,2,'','',1,'','Win32_LogicalDisk','DeviceID','','{\"scan\":\"DriveType = 3\",\"execution\":\"\",\"field\":\"\",\"key_string\":\"\"}',1); + +INSERT IGNORE INTO `tpen` VALUES (171,'dlink','D-Link Systems, Inc.'),(14988,'mikrotik','MikroTik'),(6486,'alcatel','Alcatel-Lucent Enterprise'),(41112,'ubiquiti','Ubiquiti Networks, Inc.'),(207,'telesis','Allied Telesis, Inc.'),(10002,'frogfoot','Frogfoot Networks'),(2,'ibm','IBM'),(4,'unix','Unix'),(63,'apple','Apple Computer, Inc.'),(674,'dell','Dell Inc.'),(111,'oracle','Oracle'),(116,'hitachi','Hitachi, Ltd.'),(173,'netlink','Netlink'),(188,'ascom','Ascom'),(6574,'synology','Synology Inc.'),(3861,'fujitsu','Fujitsu Network Communications, Inc.'),(53526,'dell','Dell ATC'),(52627,'apple','Apple Inc'),(19464,'hitachi','Hitachi Communication Technologies, Ltd.'),(13062,'ascom','Ascom'); diff --git a/pandora_console/general/first_task/HA_cluster_builder.php b/pandora_console/general/first_task/HA_cluster_builder.php index 7ae56a4287..8261ee5c08 100644 --- a/pandora_console/general/first_task/HA_cluster_builder.php +++ b/pandora_console/general/first_task/HA_cluster_builder.php @@ -53,8 +53,8 @@ ui_print_info_message(['no_close' => true, 'message' => __('There are no HA clus "; - echo "
"; + echo ""; + echo ""; ?> - images/icono_cerrar.png'> + /images/icono_cerrar.png'>
diff --git a/pandora_console/godmode/agentes/agent_wizard.php b/pandora_console/godmode/agentes/agent_wizard.php index c04edf4d66..3671d7053e 100644 --- a/pandora_console/godmode/agentes/agent_wizard.php +++ b/pandora_console/godmode/agentes/agent_wizard.php @@ -1,66 +1,67 @@ "; - echo "" . __('SNMP Interfaces explorer') . ""; - echo " | "; - echo "" . __('WMI explorer') . ""; - echo "
"; -*/ - -require 'agent_wizard.'.$wizard_section.'.php'; - -?> - \ No newline at end of file +// AJAX controller. +if (is_ajax()) { + $method = get_parameter('method'); + + if (method_exists($obj, $method) === true) { + $obj->{$method}(); + } else { + $obj->error('Method not found. ['.$method.']'); + } + + // Stop any execution. + exit; +} else { + // Run. + $obj->run(); +} diff --git a/pandora_console/godmode/agentes/agent_wizard.snmp_explorer.php b/pandora_console/godmode/agentes/agent_wizard.snmp_explorer.php deleted file mode 100644 index 21cb4eb378..0000000000 --- a/pandora_console/godmode/agentes/agent_wizard.snmp_explorer.php +++ /dev/null @@ -1,1179 +0,0 @@ - __('The SNMP remote plugin doesnt seem to be installed').'. '.__('It is necessary to use some features').'.

'.__('Please, install the SNMP remote plugin (The name of the plugin must be snmp_remote.pl)'), 'no_close' => true]); -} - -// Using plugin -if (!empty($plugin)) { - $static_snmp_descriptions['avgCpuLoad'] = 'Average of CPUs Load (%)'; - $static_snmp_descriptions['memoryUse'] = 'Memory use (%)'; -} - -$fail = false; - -$devices = []; -$processes = []; -$disks = []; -$temperatures = []; - -$arrow = false; - -$snmp_translation_data = index_array(snmp_get_translation_wizard(), null, 'description'); -$other_snmp_data = []; - -if ($snmpwalk) { - // OID Used is for DISKS - $snmpis = get_snmpwalk( - $ip_target, - $snmp_version, - $snmp_community, - $snmp3_auth_user, - $snmp3_security_level, - $snmp3_auth_method, - $snmp3_auth_pass, - $snmp3_privacy_method, - $snmp3_privacy_pass, - 0, - '.1.3.6.1.2.1.25.2.3.1.3', - $tcp_port, - $server_to_exec - ); - - if (empty($snmpis)) { - $fail = true; - $snmpis = []; - } else { - // We get here only the interface part of the MIB, not full mib - foreach ($snmpis as $key => $snmp) { - $data = explode(': ', $snmp); - $keydata = explode('::', $key); - $keydata2 = explode('.', $keydata[1]); - - // Avoid results without index and results without name - if (!isset($keydata2[1]) || !isset($data[1])) { - continue; - } - - - if (array_key_exists(1, $data)) { - $disks[$data[1]] = $data[1]; - } else { - $disks[$data[0]] = $data[0]; - } - } - - // OID Used is for PROCESSES - $snmpis = get_snmpwalk( - $ip_target, - $snmp_version, - $snmp_community, - $snmp3_auth_user, - $snmp3_security_level, - $snmp3_auth_method, - $snmp3_auth_pass, - $snmp3_privacy_method, - $snmp3_privacy_pass, - 0, - '.1.3.6.1.2.1.25.4.2.1.2', - $tcp_port, - $server_to_exec - ); - - if ($snmpis === false) { - $snmpis = []; - } - - - // We get here only the interface part of the MIB, not full mib - foreach ($snmpis as $key => $snmp) { - $data = explode(': ', $snmp); - $keydata = explode('::', $key); - $keydata2 = explode('.', $keydata[1]); - - // Avoid results without index and results without name - if (!isset($keydata2[1]) || !isset($data[1])) { - continue; - } - - if (array_key_exists(1, $data)) { - $process_name = str_replace('"', '', $data[1]); - } else { - $process_name = str_replace('"', '', $data[0]); - } - - $processes[$process_name] = $process_name; - } - - // Keep only the first process found - $processes = array_unique($processes); - - - // OID Used is for SENSOR TEMPERATURES - $snmpis = get_snmpwalk( - $ip_target, - $snmp_version, - $snmp_community, - $snmp3_auth_user, - $snmp3_security_level, - $snmp3_auth_method, - $snmp3_auth_pass, - $snmp3_privacy_method, - $snmp3_privacy_pass, - 0, - '.1.3.6.1.4.1.2021.13.16.2.1', - $tcp_port, - $server_to_exec - ); - - if ($snmpis === false) { - $snmpis = []; - } - - - // We get here only the interface part of the MIB, not full mib - foreach ($snmpis as $key => $snmp) { - $data = explode(': ', $snmp); - $keydata = explode('::', $key); - $keydata2 = explode('.', $keydata[1]); - - // Avoid results without index and results without name - if (!isset($keydata2[1]) || !isset($data[1])) { - continue; - } - - - if ($keydata2[0] == 'lmTempSensorsDevice') { - if (array_key_exists(1, $data)) { - $temperatures[$keydata2[1]] = $data[1]; - } else { - $temperatures[$keydata2[1]] = $data[0]; - } - } - } - - // Keep only the first sensor found - $temperatures = array_unique($temperatures); - - // OID Used is for DEVICES - $snmpis = get_snmpwalk( - $ip_target, - $snmp_version, - $snmp_community, - $snmp3_auth_user, - $snmp3_security_level, - $snmp3_auth_method, - $snmp3_auth_pass, - $snmp3_privacy_method, - $snmp3_privacy_pass, - 0, - '.1.3.6.1.4.1.2021.13.15.1.1', - $tcp_port, - $server_to_exec - ); - - if ($snmpis === false) { - $snmpis = []; - } - - - // We get here only the interface part of the MIB, not full mib - foreach ($snmpis as $key => $snmp) { - $data = explode(': ', $snmp); - $keydata = explode('::', $key); - $keydata2 = explode('.', $keydata[1]); - - // Avoid results without index and results without name - if (!isset($keydata2[1]) || !isset($data[1])) { - continue; - } - - - if ($keydata2[0] == 'diskIODevice') { - if (array_key_exists(1, $data)) { - $devices['diskIONRead'.$separator.$keydata2[1]] = $data[1].' - Bytes read'; - $devices['diskIONWritten'.$separator.$keydata2[1]] = $data[1].' - Bytes written'; - $devices['diskIONReads'.$separator.$keydata2[1]] = $data[1].' - Read accesses'; - $devices['diskIONWrites'.$separator.$keydata2[1]] = $data[1].' - Write accesses'; - } else { - $devices['diskIONRead'.$separator.$keydata2[1]] = $data[0].' - Bytes read'; - $devices['diskIONWritten'.$separator.$keydata2[1]] = $data[0].' - Bytes written'; - $devices['diskIONReads'.$separator.$keydata2[1]] = $data[0].' - Read accesses'; - $devices['diskIONWrites'.$separator.$keydata2[1]] = $data[0].' - Write accesses'; - } - } - } - } - - // Other SNMP Data - $arrow = true; - - foreach ($snmp_translation_data as $oid => $temp) { - if ($snmp_version == 3) { - $result = false; - // It is statics oids. - } else { - $result = @snmpget($ip_target, $snmp_community, $oid); - } - - if ($result != false) { - $other_snmp_data[$oid] = $snmp_translation_data[$oid]; - } - } - - if (empty($other_snmp_data)) { - $arrow = false; - $other_snmp_data[0] = __('Remote system doesnt support host SNMP information'); - } -} - -if ($create_modules) { - $modules = io_safe_output(get_parameter('module', [])); - - $devices = []; - $processes = []; - $disks = []; - $temperatures = []; - $snmpdata = []; - - foreach ($modules as $module) { - // Split module data to get type - $module_exploded = explode($separator, $module); - $type = $module_exploded[0]; - - // Delete type from module data - unset($module_exploded[0]); - - // Rebuild module data - $module = implode($separator, $module_exploded); - - switch ($type) { - case 'device': - $devices[] = $module; - break; - - case 'process': - $processes[] = $module; - break; - - case 'disk': - $disks[] = $module; - break; - - case 'temperature': - $temperatures[] = $module; - break; - - case 'snmpdata': - $snmpdata[] = $module; - break; - } - } - - if (agents_get_name($id_agent) == false) { - ui_print_error_message(__('No agent selected or the agent does not exist')); - } else { - // Common values - $common_values = []; - - if ($tcp_port != '') { - $common_values['tcp_port'] = $tcp_port; - } - - $common_values['snmp_community'] = $snmp_community; - if ($use_agent) { - $common_values['ip_target'] = 'auto'; - } else { - $common_values['ip_target'] = $ip_target; - } - - $common_values['tcp_send'] = $snmp_version; - - if ($snmp_version == '3') { - $common_values['plugin_user'] = $snmp3_auth_user; - $common_values['plugin_pass'] = $snmp3_auth_pass; - $common_values['plugin_parameter'] = $snmp3_auth_method; - $common_values['custom_string_1'] = $snmp3_privacy_method; - $common_values['custom_string_2'] = $snmp3_privacy_pass; - $common_values['custom_string_3'] = $snmp3_security_level; - } - - - // DEVICES - $devices_prefix_oids = [ - 'diskIONRead' => '.1.3.6.1.4.1.2021.13.15.1.1.3.', - 'diskIONWritten' => '.1.3.6.1.4.1.2021.13.15.1.1.4.', - 'diskIONReads' => '.1.3.6.1.4.1.2021.13.15.1.1.5.', - 'diskIONWrites' => '.1.3.6.1.4.1.2021.13.15.1.1.6.', - ]; - - $devices_prefix_descriptions = [ - 'diskIONRead' => __('The number of bytes read from this device since boot'), - 'diskIONWritten' => __('The number of bytes written to this device since boot'), - 'diskIONReads' => __('The number of read accesses from this device since boot'), - 'diskIONWrites' => __('The number of write accesses from this device since boot'), - ]; - - $results = []; - - foreach ($devices as $device) { - $module_values = $common_values; - - // Split module data to get type, name, etc - $device_exploded = explode($separator, $device); - $device_name = $device_exploded[0]; - - $name_exploded = explode('-', $device_name); - $name = ltrim(html_entity_decode($name_exploded[1])); - - $device_type = $device_exploded[1]; - - // Delete type from device id - unset($device_exploded[0]); - unset($device_exploded[1]); - - // Rebuild device_name - $device_id = implode($separator, $device_exploded); - - $module_values['descripcion'] = $devices_prefix_descriptions[$device_type]; - - if (($name == 'Bytes read') || ($name == 'Bytes written')) { - $module_values['id_tipo_modulo'] = modules_get_type_id('remote_snmp_inc'); - } else { - $module_values['id_tipo_modulo'] = modules_get_type_id('remote_snmp'); - } - - $module_values['snmp_oid'] = $devices_prefix_oids[$device_type].$device_id; - - $module_values['id_modulo'] = MODULE_SNMP; - - $result = modules_create_agent_module($id_agent, io_safe_input($device_name), $module_values); - - $results[$result][] = $device_name; - } - - // TEMPERATURE SENSORS - $temperatures_prefix_oid = '.1.3.6.1.4.1.2021.13.16.2.1.3.'; - $temperatures_description = 'The temperature of this sensor in C'; - - foreach ($temperatures as $temperature) { - $module_values = $common_values; - - // Split module data to get type, name, etc - $temperature_exploded = explode($separator, $temperature); - $temperature_name = $temperature_exploded[0]; - - // Delete name from temperature sensor id - unset($temperature_exploded[0]); - - // Rebuild device_name - $temperature_id = implode($separator, $temperature_exploded); - - $module_values['descripcion'] = $temperatures_description; - - $module_values['id_tipo_modulo'] = modules_get_type_id('remote_snmp'); - - $module_values['snmp_oid'] = $temperatures_prefix_oid.$temperature_id; - - $module_values['id_modulo'] = MODULE_SNMP; - - // Temperature are given in mC. Convert to Celsius - $module_values['post_process'] = 0.001; - - $module_values['unit'] = 'C'; - - $result = modules_create_agent_module($id_agent, io_safe_input($temperature_name), $module_values); - - $results[$result][] = $temperature_name; - } - - // SNMP DATA (STATIC MODULES) - foreach ($snmpdata as $snmpdata_oid) { - $module_values = $common_values; - $snmp_translation = snmp_get_translation($snmpdata_oid); - - $module_values['descripcion'] = $snmp_translation['description']; - $module_values['id_tipo_modulo'] = modules_get_type_id('remote_snmp'); - $module_values['post_process'] = $snmp_translation['post_process']; - - // Average use of CPUs is a plugin module - switch ($snmpdata_oid) { - case 'avgCpuLoad': - case 'memoryUse': - $module_values['id_modulo'] = MODULE_PLUGIN; - $module_values['id_plugin'] = $plugin['id']; - - // Avoid the return of a string containing the word 'null' if the macros column is not defined - $macros = []; - if (isset($plugin['macros']) && !empty($plugin['macros'])) { - $macros = json_decode($plugin['macros'], true); - } - - foreach ($macros as $k => $macro) { - switch ($macro['macro']) { - case '_field1_': - // Field 1 is the IP Address - $macros[$k]['value'] = $module_values['ip_target']; - break; - - case '_field2_': - // Field 2 is the community - $macros[$k]['value'] = $module_values['snmp_community']; - break; - - case '_field3_': - // Field 3 is the plugin parameters - switch ($snmpdata_name) { - case 'avgCpuLoad': - $macros[$k]['value'] = '-m cpuload'; - break; - - case 'memoryUse': - $macros[$k]['value'] = '-m memuse'; - break; - } - - if ($snmp_version == '3') { - $macros[$k]['value'] .= ' -v3 '; - switch ($snmp3_security_level) { - case 'authNoPriv': - $macros[$k]['value'] .= ' -u '.$snmp3_auth_user.' -A '.$snmp3_auth_pass.' -l '.$snmp3_security_level.' -a '.$snmp3_auth_method; - break; - - case 'noAuthNoPriv': - $macros[$k]['value'] .= ' -u '.$snmp3_auth_user.' -l '.$snmp3_security_level; - break; - - default: - $macros[$k]['value'] .= ' -u '.$snmp3_auth_user.' -A '.$snmp3_auth_pass.' -l '.$snmp3_security_level.' -a '.$snmp3_auth_method.' -x '.$snmp3_privacy_method.' -X '.$snmp3_privacy_pass; - break; - } - } - break; - } - } - - if (!empty($macros)) { - $module_values['macros'] = io_json_mb_encode($macros); - } - - unset($module_values['snmp_community']); - // snmp_community - unset($module_values['ip_target']); - // ip_target - unset($module_values['tcp_send']); - // snmp_version - break; - - default: - $module_values['snmp_oid'] = $snmpdata_oid; - - $module_values['id_modulo'] = MODULE_SNMP; - break; - } - - $result = modules_create_agent_module( - $id_agent, - io_safe_input($snmp_translation['description']), - $module_values - ); - - $results[$result][] = $snmp_translation['description']; - } - - // PROCESSES - foreach ($processes as $process) { - $module_values = $common_values; - - $module_values['descripcion'] = sprintf(__('Check if the process %s is running or not'), $process); - $module_values['id_tipo_modulo'] = modules_get_type_id('generic_proc'); - $module_values['id_modulo'] = MODULE_PLUGIN; - $module_values['id_plugin'] = $plugin['id']; - - // Avoid the return of a string containing the word 'null' if the macros column is not defined - $macros = []; - if (isset($plugin['macros']) && !empty($plugin['macros'])) { - $macros = json_decode($plugin['macros'], true); - } - - foreach ($macros as $k => $macro) { - switch ($macro['macro']) { - case '_field1_': - // Field 1 is the IP Address - $macros[$k]['value'] = $module_values['ip_target']; - break; - - case '_field2_': - // Field 2 is the community - $macros[$k]['value'] = $module_values['snmp_community']; - break; - - case '_field3_': - // Field 3 is the plugin parameters - $macros[$k]['value'] = io_safe_input('-m process -p "'.$process.'"'); - - if ($snmp_version == '3') { - $macros[$k]['value'] .= ' -v3 '; - switch ($snmp3_security_level) { - case 'authNoPriv': - $macros[$k]['value'] .= ' -u '.$snmp3_auth_user.' -A '.$snmp3_auth_pass.' -l '.$snmp3_security_level.' -a '.$snmp3_auth_method; - break; - - case 'noAuthNoPriv': - $macros[$k]['value'] .= ' -u '.$snmp3_auth_user.' -l '.$snmp3_security_level; - break; - - default: - $macros[$k]['value'] .= ' -u '.$snmp3_auth_user.' -A '.$snmp3_auth_pass.' -l '.$snmp3_security_level.' -a '.$snmp3_auth_method.' -x '.$snmp3_privacy_method.' -X '.$snmp3_privacy_pass; - break; - } - } - break; - } - } - - if (!empty($macros)) { - $module_values['macros'] = io_json_mb_encode($macros); - } - - unset($module_values['snmp_community']); - // snmp_community - unset($module_values['ip_target']); - // ip_target - unset($module_values['tcp_send']); - // snmp_version - $result = modules_create_agent_module($id_agent, io_safe_input($process), $module_values); - - $results[$result][] = $process; - } - - - // DISKS USE - foreach ($disks as $disk) { - $module_values = $common_values; - - $module_values['descripcion'] = __('Disk use information'); - $module_values['id_tipo_modulo'] = modules_get_type_id('remote_snmp'); - $module_values['id_modulo'] = MODULE_PLUGIN; - $module_values['id_plugin'] = $plugin['id']; - - // Avoid the return of a string containing the word 'null' if the macros column is not defined - $macros = []; - if (isset($plugin['macros']) && !empty($plugin['macros'])) { - $macros = json_decode($plugin['macros'], true); - } - - foreach ($macros as $k => $macro) { - switch ($macro['macro']) { - case '_field1_': - // Field 1 is the IP Address - $macros[$k]['value'] = $module_values['ip_target']; - break; - - case '_field2_': - // Field 2 is the community - $macros[$k]['value'] = $module_values['snmp_community']; - break; - - case '_field3_': - // Field 3 is the plugin parameters - $macros[$k]['value'] = io_safe_input('-m diskuse -d "'.io_safe_output($disk).'"'); - - if ($snmp_version == '3') { - $macros[$k]['value'] .= ' -v3 '; - switch ($snmp3_security_level) { - case 'authNoPriv': - $macros[$k]['value'] .= ' -u '.$snmp3_auth_user.' -A '.$snmp3_auth_pass.' -l '.$snmp3_security_level.' -a '.$snmp3_auth_method; - break; - - case 'noAuthNoPriv': - $macros[$k]['value'] .= ' -u '.$snmp3_auth_user.' -l '.$snmp3_security_level; - break; - - default: - $macros[$k]['value'] .= ' -u '.$snmp3_auth_user.' -A '.$snmp3_auth_pass.' -l '.$snmp3_security_level.' -a '.$snmp3_auth_method.' -x '.$snmp3_privacy_method.' -X '.$snmp3_privacy_pass; - break; - } - } - } - } - - if (!empty($macros)) { - $module_values['macros'] = io_json_mb_encode($macros); - } - - unset($module_values['snmp_community']); - // snmp_community - unset($module_values['ip_target']); - // ip_target - unset($module_values['tcp_send']); - // snmp_version - $result = modules_create_agent_module( - $id_agent, - io_safe_input($disk), - $module_values - ); - - $results[$result][] = $disk; - } - - $success_message = ''; - $error_message = ''; - - if (isset($results[NOERR])) { - if (count($results[NOERR]) > 0) { - $success_message .= sprintf(__('%s modules created succesfully'), count($results[NOERR])).'
'; - } - } - - if (isset($results[ERR_GENERIC])) { - if (count($results[ERR_GENERIC]) > 0) { - $error_message .= sprintf(__('Error creating %s modules').':
  * '.implode('
  * ', $results[ERR_GENERIC]), count($results[ERR_GENERIC])).'
'; - } - } - - if (isset($results[ERR_DB])) { - if (count($results[ERR_DB]) > 0) { - $error_message .= sprintf(__('Error creating %s modules').':
  * '.implode('
  * ', $results[ERR_DB]), count($results[ERR_DB])).'
'; - } - } - - if (isset($results[ERR_EXIST])) { - if (count($results[ERR_EXIST]) > 0) { - $error_message .= sprintf(__('%s modules already exist').':
  * '.implode('
  * ', $results[ERR_EXIST]), count($results[ERR_EXIST])).'
'; - } - } - - if (!empty($error_message)) { - ui_print_error_message($error_message); - } else { - if (empty($success_message)) { - $success_message .= sprintf(__('Modules created succesfully')).'
'; - } - - ui_print_success_message($success_message); - } - } -} - -echo ''; -echo "
"; - -$table->width = '100%'; -$table->cellpadding = 0; -$table->cellspacing = 0; -$table->class = 'databox filters'; - -$table->data[0][0] = ''.__('Target IP').''; -$table->data[0][1] = html_print_input_text('ip_target', $ip_target, '', 15, 60, true); - -$table->data[0][2] = ''.__('Port').''; -$table->data[0][3] = html_print_input_text('tcp_port', $tcp_port, '', 5, 20, true); - -$table->data[1][0] = ''.__('Use agent ip').''; -$table->data[1][1] = html_print_checkbox('use_agent', 1, $use_agent, true); - -$servers_to_exec = []; -$servers_to_exec[0] = __('Local console'); -if (enterprise_installed()) { - enterprise_include_once('include/functions_satellite.php'); - - $rows = get_proxy_servers(); - - // Check if satellite server has remote configuration enabled. - $satellite_remote = config_agents_has_remote_configuration($id_agent); - - foreach ($rows as $row) { - if ($row['server_type'] != 13) { - $s_type = ' (Standard)'; - } else { - $id_satellite = $row['id_server']; - $s_type = ' (Satellite)'; - } - - $servers_to_exec[$row['id_server']] = $row['name'].$s_type; - } -} - -$table->data[1][2] = ''.__('Server to execute command').''.ui_print_help_icon('agent_snmp_explorer_tab', true); -$table->data[1][3] = html_print_select( - $servers_to_exec, - 'server_to_exec', - $server_to_exec, - 'satellite_remote_warn('.$id_satellite.','.$satellite_remote.')', - '', - '', - true -); - -$snmp_versions['1'] = 'v. 1'; -$snmp_versions['2'] = 'v. 2'; -$snmp_versions['2c'] = 'v. 2c'; -$snmp_versions['3'] = 'v. 3'; - -$table->data[2][0] = ''.__('SNMP community').''; -$table->data[2][1] = html_print_input_text('snmp_community', $snmp_community, '', 15, 60, true); - -$table->data[2][2] = ''.__('SNMP version').''; -$table->data[2][3] = html_print_select($snmp_versions, 'snmp_version', $snmp_version, '', '', '', true, false, false, ''); - -$table->data[2][3] .= ''; - -html_print_input_hidden('snmpwalk', 1); - -html_print_table($table); - -unset($table); - -// SNMP3 OPTIONS -$table->width = '100%'; - -$table->data[2][1] = ''.__('Auth user').''; -$table->data[2][2] = html_print_input_text('snmp3_auth_user', $snmp3_auth_user, '', 15, 60, true); -$table->data[2][3] = ''.__('Auth password').''; -$table->data[2][4] = html_print_input_password('snmp3_auth_pass', $snmp3_auth_pass, '', 15, 60, true); -$table->data[2][4] .= html_print_input_hidden_extended('active_snmp_v3', 0, 'active_snmp_v3_awse', true); - -$table->data[5][0] = ''.__('Privacy method').''; -$table->data[5][1] = html_print_select(['DES' => __('DES'), 'AES' => __('AES')], 'snmp3_privacy_method', $snmp3_privacy_method, '', '', '', true); -$table->data[5][2] = ''.__('privacy pass').''; -$table->data[5][3] = html_print_input_password('snmp3_privacy_pass', $snmp3_privacy_pass, '', 15, 60, true); - -$table->data[6][0] = ''.__('Auth method').''; -$table->data[6][1] = html_print_select(['MD5' => __('MD5'), 'SHA' => __('SHA')], 'snmp3_auth_method', $snmp3_auth_method, '', '', '', true); -$table->data[6][2] = ''.__('Security level').''; -$table->data[6][3] = html_print_select( - [ - 'noAuthNoPriv' => __('Not auth and not privacy method'), - 'authNoPriv' => __('Auth and not privacy method'), - 'authPriv' => __('Auth and privacy method'), - ], - 'snmp3_security_level', - $snmp3_security_level, - '', - '', - '', - true -); - -if ($snmp_version == 3) { - echo '
'; -} else { - echo ''; - -echo "
"; -echo ''; -html_print_submit_button(__('SNMP Walk'), 'snmp_walk', false, ['class' => 'sub next']); -echo '
'; - -if ($snmpwalk && $fail) { - ui_print_error_message('
'.__('No data found').'

'.__('If the device is a network device, try with the SNMP Interfaces wizard')); -} - -unset($table); - -echo ''; - -if (!$fail) { - echo ''; - echo "
"; - echo ''; - - html_print_input_hidden('create_modules', 1); - html_print_input_hidden('ip_target', $ip_target); - html_print_input_hidden('use_agent', $use_agent); - html_print_input_hidden('tcp_port', $tcp_port); - html_print_input_hidden('snmp_community', $snmp_community); - html_print_input_hidden('snmp_version', $snmp_version); - html_print_input_hidden('snmp3_auth_user', $snmp3_auth_user); - html_print_input_hidden('snmp3_auth_pass', $snmp3_auth_pass); - html_print_input_hidden('snmp3_auth_method', $snmp3_auth_method); - html_print_input_hidden('snmp3_privacy_method', $snmp3_privacy_method); - html_print_input_hidden('snmp3_privacy_pass', $snmp3_privacy_pass); - html_print_input_hidden('snmp3_security_level', $snmp3_security_level); - - $table->width = '100%'; - - // Mode selector - $modes = []; - $modes['devices'] = __('Devices'); - $modes['processes'] = __('Processes'); - $modes['disks'] = __('Free space on disk'); - $modes['temperatures'] = __('Temperature sensors'); - $modes['snmpdata'] = __('Other SNMP data'); - - $table->data[1][0] = __('Wizard mode').': '; - $table->data[1][0] .= html_print_select( - $modes, - 'snmp_wizard_modes', - '', - '', - '', - '', - true, - false, - false - ); - $table->cellstyle[1][0] = 'vertical-align: middle;'; - - $table->colspan[1][0] = 2; - $table->data[1][2] = ''.__('Modules').''; - $table->cellstyle[1][2] = 'vertical-align: middle;'; - - // Devices list - $table->data[2][0] = '
'; - $table->data[2][0] .= html_print_select( - $devices, - 'devices', - '', - '', - '', - '', - true, - true, - true, - '', - false, - 'width: 300px;' - ); - $table->data[2][0] .= '
'; - - // If SNMP remote plugin is not installed, show an advice - if (empty($plugin)) { - // Processes list - $table->data[2][0] .= '
'; - $table->data[2][0] .= ui_print_info_message(__('SNMP remote plugin is necessary for this feature'), '', true); - $table->data[2][0] .= '
'; - - // Disks list - $table->data[2][0] .= '
'; - $table->data[2][0] .= ui_print_info_message(__('SNMP remote plugin is necessary for this feature'), '', true); - $table->data[2][0] .= '
'; - } else { - // Processes list - $table->data[2][0] .= '
'; - $table->data[2][0] .= html_print_select( - $processes, - 'processes', - '', - '', - '', - '', - true, - true, - true, - '', - false, - 'width: 300px;' - ); - $table->data[2][0] .= '
'; - - // Disks list - $table->data[2][0] .= '
'; - $table->data[2][0] .= html_print_select( - $disks, - 'disks', - '', - '', - '', - '', - true, - true, - true, - '', - false, - 'width: 300px;' - ); - $table->data[2][0] .= '
'; - } - - // Sensors temperatures list - $table->data[2][0] .= '
'; - $table->data[2][0] .= html_print_select( - $temperatures, - 'temperatures', - '', - '', - '', - '', - true, - true, - true, - '', - false, - 'width: 300px;' - ); - $table->data[2][0] .= '
'; - - // SNMP data list - $table->data[2][0] .= '
'; - $table->data[2][0] .= html_print_select( - $other_snmp_data, - 'snmpdata', - '', - '', - '', - '', - true, - true, - true, - '', - false, - 'width: 300px;' - ); - $table->data[2][0] .= '
'; - - $table->cellstyle[2][0] = 'vertical-align: top; text-align: center;'; - - // Devices arrow - $table->data[2][1] = '
'.html_print_image('images/darrowright.png', true, ['title' => __('Add to modules list')]).'
'; - // Processes arrow - $table->data[2][1] .= '
'.html_print_image('images/darrowright.png', true, ['title' => __('Add to modules list')]).'
'; - // Disks arrow - $table->data[2][1] .= '
'.html_print_image('images/darrowright.png', true, ['title' => __('Add to modules list')]).'
'; - // Temperatures arrow - $table->data[2][1] .= '
'.html_print_image('images/darrowright.png', true, ['title' => __('Add to modules list')]).'
'; - // SNMP data arrow - if ($arrow) { - $table->data[2][1] .= '
'.html_print_image('images/darrowright.png', true, ['title' => __('Add to modules list')]).'
'; - } - - $table->data[2][1] .= '

'.html_print_image('images/cross.png', true, ['title' => __('Remove from modules list')]).'
'; - $table->cellstyle[2][1] = 'vertical-align: middle; text-align: center;'; - - $table->data[2][2] = html_print_select([], 'module[]', 0, false, '', 0, true, true, true, '', false, 'width:300px; height: 100%;'); - $table->data[2][2] .= html_print_input_hidden('agent', $id_agent, true); - $table->cellstyle[2][2] = 'vertical-align: top; text-align: center;'; - - html_print_table($table); - - echo "
"; - html_print_submit_button(__('Create modules'), 'create_modules_btn', false, ['class' => 'sub add']); - echo '
'; - unset($table); - - echo '
'; - echo '
'; - echo '
'; -} - -ui_require_jquery_file('pandora.controls'); -ui_require_jquery_file('ajaxqueue'); -ui_require_jquery_file('bgiframe'); -ui_require_javascript_file('pandora_modules'); - -?> - diff --git a/pandora_console/godmode/agentes/agent_wizard.snmp_interfaces_explorer.php b/pandora_console/godmode/agentes/agent_wizard.snmp_interfaces_explorer.php deleted file mode 100644 index 3c197ac4a1..0000000000 --- a/pandora_console/godmode/agentes/agent_wizard.snmp_interfaces_explorer.php +++ /dev/null @@ -1,743 +0,0 @@ -] => [] array. - if (!empty($snmp_int_ip)) { - foreach ($snmp_int_ip as $key => $value) { - // The key is something like IP-MIB::ipAddressIfIndex.ipv4."". - // or IP-MIB::ipAddressIfIndex.ipv6."". - // The value is something like INTEGER: . - $data = explode(': ', $value); - $interface_id = !empty($data) && isset($data[1]) ? $data[1] : false; - - if (preg_match('/^.+"(.+)"$/', $key, $matches) && isset($matches[1])) { - $interface_ip = $matches[1]; - } - - // Get the first ip. - if ($interface_id !== false && !empty($interface_ip) && !isset($interfaces_ip[$interface_id])) { - $interfaces_ip[$interface_id] = $interface_ip; - } - } - - unset($snmp_int_ip); - } - - $snmpis = array_merge((($snmpis === false) ? [] : $snmpis), (($ifxitems === false) ? [] : $ifxitems)); - - $interfaces = []; - - // We get here only the interface part of the MIB, not full mib. - foreach ($snmpis as $key => $snmp) { - $data = explode(': ', $snmp, 2); - $keydata = explode('::', $key); - $keydata2 = explode('.', $keydata[1]); - - // Avoid results without index and interfaces without name. - if (!isset($keydata2[1]) || !isset($data[1])) { - continue; - } - - if (array_key_exists(1, $data)) { - $interfaces[$keydata2[1]][$keydata2[0]]['type'] = $data[0]; - $interfaces[$keydata2[1]][$keydata2[0]]['value'] = $data[1]; - } else { - $interfaces[$keydata2[1]][$keydata2[0]]['type'] = ''; - $interfaces[$keydata2[1]][$keydata2[0]]['value'] = $data[0]; - } - - $interfaces[$keydata2[1]][$keydata2[0]]['oid'] = $key; - $interfaces[$keydata2[1]][$keydata2[0]]['checked'] = 0; - } - - unset($interfaces[0]); -} - -if ($create_modules) { - $id_snmp_serialize = get_parameter_post('id_snmp_serialize'); - $interfaces = unserialize_in_temp($id_snmp_serialize); - - $id_snmp_int_ip_serialize = get_parameter_post('id_snmp_int_ip_serialize'); - $interfaces_ip = unserialize_in_temp($id_snmp_int_ip_serialize); - - if (!$interfaces) { - $interfaces = []; - } - - if (!$interfaces_ip) { - $interfaces_ip = []; - } - - $values = []; - - if ($tcp_port != '') { - $values['tcp_port'] = $tcp_port; - } - - $values['snmp_community'] = $snmp_community; - if ($use_agent) { - $values['ip_target'] = 'auto'; - } else { - $values['ip_target'] = $ip_target; - } - - $values['tcp_send'] = $snmp_version; - - if ($snmp_version == '3') { - $values['plugin_user'] = $snmp3_auth_user; - $values['plugin_pass'] = $snmp3_auth_pass; - $values['plugin_parameter'] = $snmp3_auth_method; - $values['custom_string_1'] = $snmp3_privacy_method; - $values['custom_string_2'] = $snmp3_privacy_pass; - $values['custom_string_3'] = $snmp3_security_level; - } - - $oids = []; - foreach ($interfaces as $key => $interface) { - foreach ($interface as $key2 => $module) { - $oid = get_parameter($key.'-'.$key2, ''); - if ($oid != '') { - $interfaces[$key][$key2]['checked'] = 1; - $oids[$key][] = $interfaces[$key][$key2]['oid']; - } else { - $interfaces[$key][$key2]['checked'] = 0; - } - } - } - - $modules = get_parameter('module', []); - $id_snmp = get_parameter('id_snmp'); - - if ($id_snmp == false) { - ui_print_error_message(__('No modules selected')); - $id_snmp = []; - } - - if (agents_get_name($id_agent) == false) { - ui_print_error_message(__('No agent selected or the agent does not exist')); - $id_snmp = []; - } - - $result = false; - - $errors = []; - $done = 0; - - foreach ($id_snmp as $id) { - $ifname = ''; - $ifPhysAddress = ''; - - if (isset($interfaces[$id]['ifName']) && $interfaces[$id]['ifName']['value'] != '') { - $ifname = $interfaces[$id]['ifName']['value']; - } else if (isset($interfaces[$id]['ifDescr']) && $interfaces[$id]['ifDescr']['value'] != '') { - $ifname = $interfaces[$id]['ifDescr']['value']; - } - - if (isset($interfaces[$id]['ifPhysAddress']) && $interfaces[$id]['ifPhysAddress']['value'] != '') { - $ifPhysAddress = $interfaces[$id]['ifPhysAddress']['value']; - $ifPhysAddress = strtoupper($ifPhysAddress); - } - - foreach ($modules as $module) { - $oid_array = explode('.', $module); - $oid_array[(count($oid_array) - 1)] = $id; - $oid = implode('.', $oid_array); - - // Get the name. - $name_array = explode('::', $oid_array[0]); - $name = $ifname.'_'.$name_array[1]; - - // If you select "show all modules" and the module is not from the interface. - if (!array_key_exists($name_array[1], $interfaces[$id])) { - continue; - } - - // Clean the name. - $name = str_replace('"', '', $name); - - // Proc moduletypes. - if (preg_match('/Status/', $name_array[1])) { - $module_type = 18; - } else if (preg_match('/Present/', $name_array[1])) { - $module_type = 18; - } else if (preg_match('/PromiscuousMode/', $name_array[1])) { - $module_type = 18; - } else if (preg_match('/Alias/', $name_array[1])) { - // String moduletypes. - $module_type = 17; - } else if (preg_match('/Address/', $name_array[1])) { - $module_type = 17; - } else if (preg_match('/Name/', $name_array[1])) { - $module_type = 17; - } else if (preg_match('/Specific/', $name_array[1])) { - $module_type = 17; - } else if (preg_match('/Descr/', $name_array[1])) { - $module_type = 17; - } else if (preg_match('/s$/', $name_array[1])) { - // Specific counters (ends in s). - $module_type = 16; - } else { - // Otherwise, numeric. - $module_type = 15; - } - - $values['unit'] = ''; - if (preg_match('/Octets/', $name_array[1])) { - $values['unit'] = 'Bytes'; - } - - $module_server = 2; - - if ($server_to_exec != 0) { - $sql = sprintf('SELECT server_type, ip_address FROM tserver WHERE id_server = %d', $server_to_exec); - $row = db_get_row_sql($sql); - - if ($row['server_type'] == 13) { - if (preg_match('/ifPhysAddress/', $name_array[1])) { - $module_type = 3; - } else if (preg_match('/ifSpecific/', $name_array[1])) { - $module_type = 3; - } else if (preg_match('/ifType/', $name_array[1])) { - $module_type = 1; - } else if (preg_match('/ifSpeed/', $name_array[1])) { - $module_type = 1; - } else if (preg_match('/ifPromiscuousMode/', $name_array[1])) { - $module_type = 2; - } else if (preg_match('/ifOutQLen/', $name_array[1])) { - $module_type = 1; - } else if (preg_match('/ifName/', $name_array[1])) { - $module_type = 3; - } else if (preg_match('/ifMtu/', $name_array[1])) { - $module_type = 1; - } else if (preg_match('/ifLinkUpDownTrapEnable/', $name_array[1])) { - $module_type = 1; - } else if (preg_match('/ifLastChange/', $name_array[1])) { - $module_type = 1; - } else if (preg_match('/ifIndex/', $name_array[1])) { - $module_type = 1; - } else if (preg_match('/ifDescr/', $name_array[1])) { - $module_type = 3; - } else if (preg_match('/ifCounterDiscontinuityTime/', $name_array[1])) { - $module_type = 1; - } else if (preg_match('/ifConnectorPresent/', $name_array[1])) { - $module_type = 2; - } else if (preg_match('/ifAdminStatus/', $name_array[1])) { - $module_type = 2; - } else if (preg_match('/ifOperStatus/', $name_array[1])) { - $module_type = 2; - } else { - $module_type = 4; - } - - $module_server = 1; - - $output_oid = ''; - - exec('snmptranslate -On '.$oid, $output_oid, $rc); - - $conf_oid = $output_oid[0]; - $oid = $conf_oid; - } - } - - $values['id_tipo_modulo'] = $module_type; - - if (!empty($ifPhysAddress) && isset($interfaces_ip[$id])) { - $values['descripcion'] = io_safe_input('(IP: '.$interfaces_ip[$id].' - MAC: '.$ifPhysAddress.' - '.$name.') '.$interfaces[$id]['ifDescr']['value']); - } else if (!empty($ifPhysAddress)) { - $values['descripcion'] = io_safe_input('(MAC: '.$ifPhysAddress.' - '.$name.') '.$interfaces[$id]['ifDescr']['value']); - } else if (isset($interfaces_ip[$id])) { - $values['descripcion'] = io_safe_input('(IP: '.$interfaces_ip[$id].' - '.$name.') '.$interfaces[$id]['ifDescr']['value']); - } else { - $values['descripcion'] = io_safe_input('('.$name.') '.$interfaces[$id]['ifDescr']['value']); - } - - $values['snmp_oid'] = $oid; - $values['id_modulo'] = $module_server; - - $result = modules_create_agent_module($id_agent, io_safe_input($name), $values); - - if (is_error($result)) { - if (!isset($errors[$result])) { - $errors[$result] = 0; - } - - $errors[$result]++; - } else { - if ($server_to_exec != 0) { - $sql = sprintf('SELECT server_type FROM tserver WHERE id_server = %d', $server_to_exec); - $row = db_get_row_sql($sql); - - if ($row['server_type'] == 13) { - $module_type_name = db_get_value_filter('nombre', 'ttipo_modulo', ['id_tipo' => $values['id_tipo_modulo']]); - - $new_module_configuration_data = "module_begin\nmodule_name ".io_safe_input($name)."\nmodule_description ".io_safe_output($values['descripcion'])."\nmodule_type ".$module_type_name."\nmodule_snmp\nmodule_version ".$snmp_version."\nmodule_oid ".$conf_oid."\nmodule_community ".$values['snmp_community']; - - if ($snmp_version == '3') { - $new_module_configuration_data .= "\nmodule_secname ".$snmp3_auth_user; - $new_module_configuration_data .= "\nmodule_seclevel ".$snmp3_security_level; - - if ($snmp3_security_level == 'authNoPriv' || $snmp3_security_level == 'authPriv') { - $new_module_configuration_data .= "\nmodule_authpass ".$snmp3_auth_pass; - $new_module_configuration_data .= "\nmodule_authproto ".$snmp3_auth_method; - } - - if ($snmp3_security_level == 'authPriv') { - $new_module_configuration_data .= "\nmodule_privproto ".$snmp3_privacy_method; - $new_module_configuration_data .= "\nmodule_privpass ".$snmp3_privacy_pass; - } - } - - $new_module_configuration_data .= "\nmodule_end"; - - config_agents_add_module_in_conf($id_agent, $new_module_configuration_data); - } - } - - $done++; - } - } - } - - if ($done > 0) { - ui_print_success_message( - __('Successfully modules created').' ('.$done.')' - ); - } - - if (!empty($errors)) { - $msg = __('Could not be created').':'; - - - foreach ($errors as $code => $number) { - switch ($code) { - case ERR_EXIST: - $msg .= '
'.__('Another module already exists with the same name').' ('.$number.')'; - break; - - case ERR_INCOMPLETE: - $msg .= '
'.__('Some required fields are missed').': ('.__('name').') ('.$number.')'; - break; - - case ERR_DB: - case ERR_GENERIC: - default: - $msg .= '
'.__('Processing error').' ('.$number.')'; - break; - } - } - - ui_print_error_message($msg); - } -} - -// Create the interface list for the interface. -$interfaces_list = []; -foreach ($interfaces as $interface) { - // Get the interface name, removing " " characters and avoid "blank" interfaces. - if (isset($interface['ifDescr']) && $interface['ifDescr']['value'] != '') { - $ifname = $interface['ifDescr']['value']; - } else if (isset($interface['ifName']) && $interface['ifName']['value'] != '') { - $ifname = $interface['ifName']['value']; - } else { - continue; - } - - $interfaces_list[$interface['ifIndex']['value']] = str_replace('"', '', $ifname); -} - -echo ''; -echo "
"; - -$table->width = '100%'; -$table->cellpadding = 0; -$table->cellspacing = 0; -$table->class = 'databox filters'; - -$table->data[0][0] = ''.__('Target IP').''; -$table->data[0][1] = html_print_input_text('ip_target', $ip_target, '', 15, 60, true); - -$table->data[0][2] = ''.__('Port').''; -$table->data[0][3] = html_print_input_text('tcp_port', $tcp_port, '', 5, 20, true); - -$table->data[1][0] = ''.__('Use agent ip').''; -$table->data[1][1] = html_print_checkbox('use_agent', 1, $use_agent, true); - -$servers_to_exec = []; -$servers_to_exec[0] = __('Local console'); -if (enterprise_installed()) { - enterprise_include_once('include/functions_satellite.php'); - - $rows = get_proxy_servers(); - - // Check if satellite server has remote configuration enabled. - $satellite_remote = config_agents_has_remote_configuration($id_agent); - - foreach ($rows as $row) { - if ($row['server_type'] != 13) { - $s_type = ' (Standard)'; - } else { - $id_satellite = $row['id_server']; - $s_type = ' (Satellite)'; - } - - $servers_to_exec[$row['id_server']] = $row['name'].$s_type; - } -} - -$table->data[1][2] = ''.__('Server to execute command').''.ui_print_help_icon('agent_snmp_explorer_tab', true); -$table->data[1][2] .= ''.ui_print_help_tip(__('In order to use remote executions you need to enable remote execution in satellite server'), true, 'images/tip_help.png', false, 'display:').''; -$table->data[1][4] = html_print_select( - $servers_to_exec, - 'server_to_exec', - $server_to_exec, - 'satellite_remote_warn('.$id_satellite.','.$satellite_remote.')', - '', - '', - true -); - -$snmp_versions['1'] = 'v. 1'; -$snmp_versions['2'] = 'v. 2'; -$snmp_versions['2c'] = 'v. 2c'; -$snmp_versions['3'] = 'v. 3'; - -$table->data[2][0] = ''.__('SNMP community').''; -$table->data[2][1] = html_print_input_text('snmp_community', $snmp_community, '', 15, 60, true); - -$table->data[2][2] = ''.__('SNMP version').''; -$table->data[2][3] = html_print_select($snmp_versions, 'snmp_version', $snmp_version, '', '', '', true, false, false, ''); - -$table->data[2][3] .= ''; -html_print_input_hidden('snmpwalk', 1); - -html_print_table($table); - -unset($table); - -// SNMP3 OPTIONS. -$table->width = '100%'; - -$table->data[2][1] = ''.__('Auth user').''; -$table->data[2][2] = html_print_input_text('snmp3_auth_user', $snmp3_auth_user, '', 15, 60, true); -$table->data[2][3] = ''.__('Auth password').''; -$table->data[2][4] = html_print_input_password('snmp3_auth_pass', $snmp3_auth_pass, '', 15, 60, true); -$table->data[2][4] .= html_print_input_hidden_extended('active_snmp_v3', 0, 'active_snmp_v3_awsie', true); - -$table->data[5][0] = ''.__('Privacy method').''; -$table->data[5][1] = html_print_select(['DES' => __('DES'), 'AES' => __('AES')], 'snmp3_privacy_method', $snmp3_privacy_method, '', '', '', true); -$table->data[5][2] = ''.__('privacy pass').''; -$table->data[5][3] = html_print_input_password('snmp3_privacy_pass', $snmp3_privacy_pass, '', 15, 60, true); - -$table->data[6][0] = ''.__('Auth method').''; -$table->data[6][1] = html_print_select(['MD5' => __('MD5'), 'SHA' => __('SHA')], 'snmp3_auth_method', $snmp3_auth_method, '', '', '', true); -$table->data[6][2] = ''.__('Security level').''; -$table->data[6][3] = html_print_select( - [ - 'noAuthNoPriv' => __('Not auth and not privacy method'), - 'authNoPriv' => __('Auth and not privacy method'), - 'authPriv' => __('Auth and privacy method'), - ], - 'snmp3_security_level', - $snmp3_security_level, - '', - '', - '', - true -); - -if ($snmp_version == 3) { - echo '
'; -} else { - echo ''; - -echo "
"; -echo ''; -html_print_submit_button(__('SNMP Walk'), 'snmp_walk', false, ['class' => 'sub next']); -echo '
'; - -if ($snmpwalk && !$snmpis) { - ui_print_error_message(__('Unable to do SNMP walk')); -} - -unset($table); - -echo ''; - -if (!empty($interfaces_list)) { - echo ''; - echo "
"; - echo ''; - - $id_snmp_serialize = serialize_in_temp($interfaces, $config['id_user'].'_snmp'); - html_print_input_hidden('id_snmp_serialize', $id_snmp_serialize); - - $id_snmp_int_ip_serialize = serialize_in_temp($interfaces_ip, $config['id_user'].'_snmp_int_ip'); - html_print_input_hidden('id_snmp_int_ip_serialize', $id_snmp_int_ip_serialize); - - html_print_input_hidden('create_modules', 1); - html_print_input_hidden('ip_target', $ip_target); - html_print_input_hidden('use_agent', $use_agent); - html_print_input_hidden('tcp_port', $tcp_port); - html_print_input_hidden('snmp_community', $snmp_community); - html_print_input_hidden('snmp_version', $snmp_version); - html_print_input_hidden('snmp3_auth_user', $snmp3_auth_user); - html_print_input_hidden('snmp3_auth_pass', $snmp3_auth_pass); - html_print_input_hidden('snmp3_auth_method', $snmp3_auth_method); - html_print_input_hidden('snmp3_privacy_method', $snmp3_privacy_method); - html_print_input_hidden('snmp3_privacy_pass', $snmp3_privacy_pass); - html_print_input_hidden('snmp3_security_level', $snmp3_security_level); - html_print_input_hidden('server_to_exec', $server_to_exec); - - $table->width = '100%'; - - // Agent selector. - $table->data[0][0] = ''.__('Interfaces').''; - $table->data[0][1] = ''; - $table->data[0][2] = ''.__('Modules').''; - - $table->data[1][0] = html_print_select($interfaces_list, 'id_snmp[]', 0, false, '', '', true, true, true, '', false, 'width:500px; overflow: auto;'); - - $table->data[1][1] = __('When selecting interfaces'); - $table->data[1][1] .= '
'; - $table->data[1][1] .= html_print_select( - [ - 1 => __('Show common modules'), - 0 => __('Show all modules'), - ], - 'modules_selection_mode', - 1, - false, - '', - '', - true, - false, - false - ); - - $table->data[1][2] = html_print_select([], 'module[]', 0, false, '', 0, true, true, true, '', false, 'width:200px;'); - $table->data[1][2] .= html_print_input_hidden('agent', $id_agent, true); - - html_print_table($table); - - echo "
"; - html_print_submit_button(__('Create modules'), '', false, ['class' => 'sub add']); - echo '
'; - unset($table); - - echo '
'; - echo '
'; - echo '
'; -} - -ui_require_jquery_file('pandora.controls'); -ui_require_jquery_file('ajaxqueue'); -ui_require_jquery_file('bgiframe'); -?> - diff --git a/pandora_console/godmode/agentes/agent_wizard.wmi_explorer.php b/pandora_console/godmode/agentes/agent_wizard.wmi_explorer.php deleted file mode 100644 index 20c955ab05..0000000000 --- a/pandora_console/godmode/agentes/agent_wizard.wmi_explorer.php +++ /dev/null @@ -1,873 +0,0 @@ - $row) { - // First and second rows are Class and column names, ignore it. - if ($index < 2) { - continue; - } - - $row_exploded = explode('|', $row); - - if (!in_array($row_exploded[$processes_name_field], $processes)) { - if (preg_match('/ERROR/', $row_exploded[$processes_name_field])) { - $processes[$row_exploded[$prouycesses_name_field]] = __('None'); - } else { - $processes[$row_exploded[$prouycesses_name_field]] = $row_exploded[$processes_name_field]; - } - } - } - - unset($output); - - // Services. - $wmi_services = $wmi_command.' "select Name from Win32_Service"'; - $services_name_field = 0; - $services_check_field = 1; - - if (enterprise_installed() && (int) $server_to_exec != 0) { - $server_data = db_get_row( - 'tserver', - 'id_server', - $server_to_exec - ); - if (empty($server_data['port'])) { - exec( - 'ssh pandora_exec_proxy@'.$server_data['ip_address']." - '".$wmi_services."'", - $output, - $rc - ); - } else { - exec( - 'ssh -p '.$server_data['port'].' pandora_exec_proxy@'.$server_data['ip_address']." - '".$wmi_services."'", - $output, - $rc - ); - } - } else { - exec($wmi_services, $output); - } - - foreach ($output as $index => $row) { - // First and second rows are Class and column names, ignore it. - if ($index < 2) { - continue; - } - - $row_exploded = explode('|', $row); - - if (!in_array($row_exploded[$services_name_field], $services)) { - if (preg_match('/ERROR/', $row_exploded[$services_name_field])) { - $services[$row_exploded[$services_name_field]] = __('None'); - } else { - $services[$row_exploded[$services_name_field]] = $row_exploded[$services_name_field]; - } - } - } - - unset($output); - - // Disks. - $wmi_disks = $wmi_command.' "Select DeviceID from Win32_LogicalDisk"'; - $disks_name_field = 0; - - if (enterprise_installed() && (int) $server_to_exec != 0) { - $server_data = db_get_row('tserver', 'id_server', $server_to_exec); - - if (empty($server_data['port'])) { - exec( - 'ssh pandora_exec_proxy@'.$server_data['ip_address']." - '".$wmi_disks."'", - $output, - $rc - ); - } else { - exec( - 'ssh -p '.$server_data['port'].' pandora_exec_proxy@'.$server_data['ip_address']." - '".$wmi_disks."'", - $output, - $rc - ); - } - } else { - exec($wmi_disks, $output); - } - - foreach ($output as $index => $row) { - // First and second rows are Class and column names, ignore it. - if ($index < 2) { - continue; - } - - $row_exploded = explode('|', $row); - - if (!in_array($row_exploded[$disks_name_field], $services)) { - if (preg_match('/ERROR/', $row_exploded[$disks_name_field])) { - $disks[$row_exploded[$disks_name_field]] = __('None'); - } else { - $disk_string = sprintf( - __('Free space on %s'), - $row_exploded[$disks_name_field] - ); - $disks[$row_exploded[$disks_name_field]] = $disk_string; - } - } - } - - unset($output); - - // WMI Components. - $network_component_groups = network_components_get_groups(MODULE_WMI); - } -} - -if ($create_modules) { - $modules = get_parameter('module', []); - - $services = []; - $processes = []; - $disks = []; - $components = []; - - foreach ($modules as $module) { - // Split module data to get type. - $module_exploded = explode('_', $module); - $type = $module_exploded[0]; - - // Delete type from module data. - unset($module_exploded[0]); - - // Rebuild module data. - $module = implode('_', $module_exploded); - - switch ($type) { - case 'service': - $services[] = $module; - break; - - case 'process': - $processes[] = $module; - break; - - case 'disk': - $disks[] = $module; - break; - - case 'component': - $components[] = $module; - break; - - default: - // Default. - break; - } - } - - // Common values for WMI modules. - $values = [ - 'ip_target' => $ip_target, - 'tcp_send' => $tcp_send, - 'plugin_user' => $plugin_user, - 'plugin_pass' => $plugin_pass, - 'id_modulo' => MODULE_WMI, - ]; - - if ($server_to_exec != 0) { - $sql = sprintf( - 'SELECT server_type FROM tserver WHERE id_server = %d', - $server_to_exec - ); - $row = db_get_row_sql($sql); - - if ($row['server_type'] == 13) { - $values['id_modulo'] = 1; - } - } - - // Create Service modules. - $services_values = $values; - - $services_values['snmp_community'] = 'Running'; - // Key string. - $services_values['tcp_port'] = 1; - // Field number (Running/Stopped). - $services_values['id_tipo_modulo'] = 2; - // Generic boolean. - $services_result = wmi_create_wizard_modules( - $id_agent, - $services, - 'services', - $services_values, - 0, - 0, - $server_to_exec - ); - - // Create Process modules. - $processes_values = $values; - - $processes_values['tcp_port'] = 0; - // Field number (OID). - $processes_values['id_tipo_modulo'] = 2; - // Generic boolean. - $processes_result = wmi_create_wizard_modules( - $id_agent, - $processes, - 'processes', - $processes_values, - 0, - 0, - $server_to_exec - ); - - // Create Space on disk modules. - $disks_values = $values; - - $disks_values['tcp_port'] = 1; - // Free space in bytes. - $disks_values['id_tipo_modulo'] = 1; - // Generic numeric. - $disks_values['unit'] = 'Bytes'; - // Unit. - $disks_result = wmi_create_wizard_modules( - $id_agent, - $disks, - 'disks', - $disks_values, - 0, - 0, - $server_to_exec - ); - - // Create modules from component. - $components_values = $values; - - $components_values['id_agente'] = $id_agent; - - $components_result = wmi_create_module_from_components( - $components, - $components_values, - 0, - 0, - $server_to_exec - ); - - - // Errors/Success messages. - $success_message = ''; - $error_message = ''; - if (!empty($services_result)) { - if (count($services_result[NOERR]) > 0) { - $success_message .= sprintf( - __('%s service modules created succesfully'), - count($services_result[NOERR]) - ).'
'; - } - - if (count($services_result[ERR_GENERIC]) > 0) { - $error_message .= sprintf( - __('Error creating %s service modules'), - count($services_result[ERR_GENERIC]) - ).'
'; - } - } - - if (!empty($processes_result)) { - if (count($processes_result[NOERR]) > 0) { - $success_message .= sprintf( - __('%s process modules created succesfully'), - count($processes_result[NOERR]) - ).'
'; - } - - if (count($processes_result[ERR_GENERIC]) > 0) { - $error_message .= sprintf( - __('Error creating %s process modules'), - count($processes_result[ERR_GENERIC]) - ).'
'; - } - } - - if (!empty($disks_result)) { - if (count($disks_result[NOERR]) > 0) { - $success_message .= sprintf( - __('%s disk space modules created succesfully'), - count($disks_result[NOERR]) - ).'
'; - } - - if (count($disks_result[ERR_GENERIC]) > 0) { - $error_message .= sprintf( - __('Error creating %s disk space modules'), - count($disks_result[ERR_GENERIC]) - ).'
'; - } - } - - if (!empty($components_result)) { - if (count($components_result[NOERR]) > 0) { - $success_message .= sprintf( - __('%s modules created from components succesfully'), - count($components_result[NOERR]) - ).'
'; - } - - if (count($components_result[ERR_GENERIC]) > 0) { - $error_message .= sprintf( - __('Error creating %s modules from components'), - count($components_result[ERR_GENERIC]) - ).'
'; - } - - if (count($components_result[ERR_EXIST]) > 0) { - $error_message .= sprintf( - __('%s modules already exist'), - count($components_result[ERR_EXIST]) - ).'
'; - } - } - - if (!empty($success_message)) { - ui_print_success_message($success_message); - } - - if (!empty($error_message)) { - ui_print_error_message($error_message); - } -} - -echo ''; -echo "
"; - -$table->width = '100%'; -$table->cellpadding = 0; -$table->cellspacing = 0; -$table->class = 'databox filters'; - -$table->data[0][0] = ''.__('Target IP').''; -$table->data[0][1] = html_print_input_text( - 'ip_target', - $ip_target, - '', - 15, - 60, - true -); - -$table->data[0][2] = ''.__('Namespace').''; -$table->data[0][3] = html_print_input_text( - 'tcp_send', - $tcp_send, - '', - 15, - 60, - true -); - -$table->data[1][0] = ''.__('Username').''; -$table->data[1][1] = html_print_input_text( - 'plugin_user', - $plugin_user, - '', - 15, - 60, - true -); - -$table->data[1][2] = ''.__('Password').''; -$table->data[1][3] = html_print_input_password( - 'plugin_pass', - $plugin_pass, - '', - 15, - 60, - true -); - -$table->data[1][3] .= ''; -html_print_input_hidden('wmiexplore', 1); - -$servers_to_exec = []; -$servers_to_exec[0] = __('Local console'); -if (enterprise_installed()) { - enterprise_include_once('include/functions_satellite.php'); - - $rows = get_proxy_servers(); - foreach ($rows as $row) { - if ($row['server_type'] != 13) { - $s_type = ' (Standard)'; - } else { - $s_type = ' (Satellite)'; - } - - $servers_to_exec[$row['id_server']] = $row['name'].$s_type; - } -} - -$table->data[2][0] = ''.__('Server to execute command').''.ui_print_help_icon('agent_snmp_explorer_tab', true); -$table->data[2][1] = html_print_select( - $servers_to_exec, - 'server_to_exec', - $server_to_exec, - '', - '', - '', - true -); - -html_print_table($table); - -echo "
"; -echo ''; -html_print_submit_button( - __('WMI Explore'), - 'wmi_explore', - false, - ['class' => 'sub next'] -); -echo '

'; - -if ($wmiexplore && $fail) { - ui_print_error_message(__('Unable to do WMI explorer')); -} - -unset($table); - -echo '
'; - -if ($wmiexplore && !$fail) { - echo '
'; - echo "
"; - echo ''; - - html_print_input_hidden('create_modules', 1); - html_print_input_hidden('ip_target', $ip_target); - // Host. - html_print_input_hidden('plugin_user', $plugin_user); - // User. - html_print_input_hidden('plugin_pass', $plugin_pass); - // Password. - html_print_input_hidden('tcp_send', $tcp_send); - // Namespace. - html_print_input_hidden('server_to_exec', $server_to_exec); - - $table->width = '100%'; - - // Mode selector. - $modes = []; - $modes['services'] = __('Services'); - $modes['processes'] = __('Processes'); - $modes['disks'] = __('Free space on disk'); - $modes['components'] = __('WMI components'); - - $table->data[1][0] = __('Wizard mode').': '; - $table->data[1][0] .= html_print_select( - $modes, - 'wmi_wizard_modes', - '', - '', - '', - '', - true, - false, - false - ); - $table->cellstyle[1][0] = 'vertical-align: middle;'; - - $table->colspan[1][0] = 2; - $table->data[1][2] = ''.__('Modules').''; - $table->cellstyle[1][2] = 'text-align: center;'; - - // Components list. - $table->data[2][0] = '
'; - $table->data[2][0] .= __('Filter by group').'
'; - $table->data[2][0] .= html_print_select( - $network_component_groups, - 'network_component_group', - '', - '', - '', - '', - true, - false, - false, - '', - false, - 'width: 300px;' - ).'
'; - $table->data[2][0] .= html_print_select( - [], - 'network_component', - '', - '', - '', - '', - true, - true, - true, - '', - false, - 'width: 300px;' - ); - $table->data[2][0] .= '
'; - - // Services list. - $table->data[2][0] .= '
'; - $table->data[2][0] .= html_print_select( - $services, - 'services', - '', - '', - '', - '', - true, - true, - true, - '', - false, - 'width: 300px;' - ); - $table->data[2][0] .= '
'; - // Processes list. - $table->data[2][0] .= '
'; - $table->data[2][0] .= html_print_select( - $processes, - 'processes', - '', - '', - '', - '', - true, - true, - true, - '', - false, - 'width: 300px;' - ); - $table->data[2][0] .= '
'; - $table->data[2][0] .= ''; - - // Disks list. - $table->data[2][0] .= '
'; - $table->data[2][0] .= html_print_select( - $disks, - 'disks', - '', - '', - '', - '', - true, - true, - true, - '', - false, - 'width: 300px;' - ); - $table->data[2][0] .= '
'; - $table->cellstyle[2][0] = 'vertical-align: bottom; text-align: center;'; - - - // Components arrow. - $table->data[2][1] = '
- '.html_print_image( - 'images/darrowright.png', - true, - ['title' => __('Add to modules list')] - ).'
'; - // Services arrow. - $table->data[2][1] .= '
- '.html_print_image( - 'images/darrowright.png', - true, - ['title' => __('Add to modules list')] - ).'
'; - // Processes arrow. - $table->data[2][1] .= '
- '.html_print_image( - 'images/darrowright.png', - true, - ['title' => __('Add to modules list')] - ).'
'; - // Disks arrow. - $table->data[2][1] .= '
- '.html_print_image( - 'images/darrowright.png', - true, - ['title' => __('Add to modules list')] - ).'
'; - - - $table->data[2][1] .= '

-
- '.html_print_image( - 'images/cross.png', - true, - ['title' => __('Remove from modules list')] - ).'
'; - $table->cellstyle[2][1] = 'vertical-align: middle; text-align: center;'; - - $table->data[2][2] = html_print_select( - [], - 'module[]', - 0, - false, - '', - 0, - true, - true, - true, - '', - false, - 'width:300px; height: 100%;' - ); - $table->data[2][2] .= html_print_input_hidden( - 'agent', - $id_agent, - true - ); - $table->cellstyle[2][2] = 'vertical-align: top; text-align: center;'; - - html_print_table($table); - - echo "
"; - html_print_submit_button( - __('Create modules'), - 'create_modules_btn', - false, - ['class' => 'sub add'] - ); - echo '
'; - unset($table); - - echo '
'; - echo '
'; - echo ''; -} - -ui_require_jquery_file('pandora.controls'); -ui_require_jquery_file('ajaxqueue'); -ui_require_jquery_file('bgiframe'); -ui_require_javascript_file('pandora_modules'); - -?> - \ No newline at end of file diff --git a/pandora_console/godmode/agentes/configurar_agente.php b/pandora_console/godmode/agentes/configurar_agente.php index 0635e8e6be..1cd65a95db 100644 --- a/pandora_console/godmode/agentes/configurar_agente.php +++ b/pandora_console/godmode/agentes/configurar_agente.php @@ -1378,8 +1378,8 @@ if ($update_module || $create_module) { $ip_target = (string) get_parameter('ip_target'); // No autofill if the module is a webserver module. if ($ip_target == '' - && $id_module_type < MODULE_WEBSERVER_CHECK_LATENCY - && $id_module_type > MODULE_WEBSERVER_RETRIEVE_STRING_DATA + && $id_module_type < MODULE_TYPE_WEB_DATA + && $id_module_type > MODULE_TYPE_WEB_CONTENT_STRING ) { $ip_target = 'auto'; } diff --git a/pandora_console/godmode/agentes/module_manager_editor_wmi.php b/pandora_console/godmode/agentes/module_manager_editor_wmi.php index 09501c358b..9a85c3c19d 100644 --- a/pandora_console/godmode/agentes/module_manager_editor_wmi.php +++ b/pandora_console/godmode/agentes/module_manager_editor_wmi.php @@ -43,7 +43,47 @@ if (empty($update_module_id)) { $data = []; $data[0] = __('Target IP').' '.ui_print_help_icon('wmi_module_tab', true); -$data[1] = html_print_input_text('ip_target', $ip_target, '', 15, 60, true); + +if ($page == 'enterprise/godmode/policies/policy_modules') { + if ($ip_target != 'auto' && $ip_target != '') { + $custom_ip_target = $ip_target; + $ip_target = 'custom'; + } else if ($ip_target == '') { + $ip_target = 'force_pri'; + $custom_ip_target = ''; + } else { + $custom_ip_target = ''; + } + + $target_ip_values = []; + $target_ip_values['auto'] = __('Auto'); + $target_ip_values['force_pri'] = __('Force primary key'); + $target_ip_values['custom'] = __('Custom'); + + $data[1] = html_print_select( + $target_ip_values, + 'ip_target', + $ip_target, + '', + '', + '', + true, + false, + false, + '', + false, + 'width:200px;' + ); + + $data[1] .= html_print_input_text('custom_ip_target', $custom_ip_target, '', 15, 60, true); +} else { + if ($ip_target == 'auto') { + $ip_target = agents_get_address($id_agente); + } + + $data[1] = html_print_input_text('ip_target', $ip_target, '', 15, 60, true); +} + $data[2] = __('Namespace').ui_print_help_tip(__('Optional. WMI namespace. If unsure leave blank.'), true); $data[3] = html_print_input_text( 'tcp_send', @@ -136,3 +176,21 @@ $data[3] = html_print_input_text( ); push_table_simple($data, 'key_field'); +?> + diff --git a/pandora_console/godmode/alerts/alert_actions.php b/pandora_console/godmode/alerts/alert_actions.php index 672470397a..f4502c1413 100644 --- a/pandora_console/godmode/alerts/alert_actions.php +++ b/pandora_console/godmode/alerts/alert_actions.php @@ -171,6 +171,11 @@ if ($delete_action) { ); } +if (is_central_policies_on_node() === true) { + ui_print_warning_message( + __('This node is configured with centralized mode. All alerts templates information is read only. Go to metaconsole to manage it.') + ); +} $search_string = (string) get_parameter('search_string', ''); $group = (int) get_parameter('group', 0); @@ -224,8 +229,11 @@ $table->data = []; $table->head = []; $table->head[0] = __('Name'); $table->head[1] = __('Group'); -$table->head[2] = __('Copy'); -$table->head[3] = __('Delete'); +if (is_central_policies_on_node() === false) { + $table->head[2] = __('Copy'); + $table->head[3] = __('Delete'); +} + $table->style = []; $table->style[0] = 'font-weight: bold'; $table->size = []; @@ -292,7 +300,9 @@ foreach ($actions as $action) { ); } - if (check_acl($config['id_user'], $action['id_group'], 'LM')) { + if (is_central_policies_on_node() === false + && check_acl($config['id_user'], $action['id_group'], 'LM') + ) { $table->cellclass[] = [ 2 => 'action_buttons', 3 => 'action_buttons', @@ -318,12 +328,14 @@ if (isset($data)) { ui_print_info_message(['no_close' => true, 'message' => __('No alert actions configured') ]); } -echo '
'; -echo '
'; -html_print_submit_button(__('Create'), 'create', false, 'class="sub next"'); -html_print_input_hidden('create_alert', 1); -echo '
'; -echo '
'; +if (is_central_policies_on_node() === false) { + echo '
'; + echo '
'; + html_print_submit_button(__('Create'), 'create', false, 'class="sub next"'); + html_print_input_hidden('create_alert', 1); + echo '
'; + echo '
'; +} enterprise_hook('close_meta_frame'); ?> diff --git a/pandora_console/godmode/alerts/alert_commands.php b/pandora_console/godmode/alerts/alert_commands.php index f14cc37902..5df94f29c3 100644 --- a/pandora_console/godmode/alerts/alert_commands.php +++ b/pandora_console/godmode/alerts/alert_commands.php @@ -46,6 +46,8 @@ if (is_ajax()) { $id = (int) get_parameter('id', 0); $get_recovery_fields = (int) get_parameter('get_recovery_fields', 1); + $is_central_policies_on_node = is_central_policies_on_node(); + // If command ID is not provided, check for action id. if ($id == 0) { $id_action = (int) get_parameter('id_action'); @@ -124,40 +126,142 @@ if (is_ajax()) { // HTML type. if (preg_match('/^_html_editor_$/i', $field_value)) { $editor_type_chkbx = '
'; - $editor_type_chkbx .= __('Basic').ui_print_help_tip(__('For sending emails, text must be HTML format, if you want to use plain text, type it between the following labels:
'), true);
-                    $editor_type_chkbx .= html_print_radio_button_extended('editor_type_value_'.$i, 0, '', false, false, "removeTinyMCE('textarea_field".$i."_value')", '', true);
+                    $editor_type_chkbx .= __('Basic');
+                    $editor_type_chkbx .= ui_print_help_tip(
+                        __('For sending emails, text must be HTML format, if you want to use plain text, type it between the following labels: 
'),
+                        true
+                    );
+                    $editor_type_chkbx .= html_print_radio_button_extended(
+                        'editor_type_value_'.$i,
+                        0,
+                        '',
+                        false,
+                        $is_central_policies_on_node,
+                        "removeTinyMCE('textarea_field".$i."_value')",
+                        '',
+                        true
+                    );
                     $editor_type_chkbx .= '    ';
                     $editor_type_chkbx .= __('Advanced').'  ';
-                    $editor_type_chkbx .= html_print_radio_button_extended('editor_type_value_'.$i, 0, '', true, false, "addTinyMCE('textarea_field".$i."_value')", '', true);
+                    $editor_type_chkbx .= html_print_radio_button_extended(
+                        'editor_type_value_'.$i,
+                        0,
+                        '',
+                        true,
+                        $is_central_policies_on_node,
+                        "addTinyMCE('textarea_field".$i."_value')",
+                        '',
+                        true
+                    );
                     $editor_type_chkbx .= '
'; $ffield = $editor_type_chkbx; - $ffield .= html_print_textarea('field'.$i.'_value', 1, 1, '', 'class="fields"', true); + $ffield .= html_print_textarea( + 'field'.$i.'_value', + 1, + 1, + '', + 'class="fields"', + true, + '', + $is_central_policies_on_node + ); $editor_type_chkbx = '
'; $editor_type_chkbx .= __('Basic').'  '; - $editor_type_chkbx .= html_print_radio_button_extended('editor_type_recovery_value_'.$i, 0, '', false, false, "removeTinyMCE('textarea_field".$i."_recovery_value')", '', true); + $editor_type_chkbx .= html_print_radio_button_extended( + 'editor_type_recovery_value_'.$i, + 0, + '', + false, + $is_central_policies_on_node, + "removeTinyMCE('textarea_field".$i."_recovery_value')", + '', + true + ); $editor_type_chkbx .= '    '; $editor_type_chkbx .= __('Advanced').'  '; - $editor_type_chkbx .= html_print_radio_button_extended('editor_type_recovery_value_'.$i, 0, '', true, false, "addTinyMCE('textarea_field".$i."_recovery_value')", '', true); + $editor_type_chkbx .= html_print_radio_button_extended( + 'editor_type_recovery_value_'.$i, + 0, + '', + true, + $is_central_policies_on_node, + "addTinyMCE('textarea_field".$i."_recovery_value')", + '', + true + ); $editor_type_chkbx .= '
'; $rfield = $editor_type_chkbx; - $rfield .= html_print_textarea('field'.$i.'_recovery_value', 1, 1, '', 'class="fields_recovery"', true); + $rfield .= html_print_textarea( + 'field'.$i.'_recovery_value', + 1, + 1, + '', + 'class="fields_recovery"', + true, + '', + $is_central_policies_on_node + ); } else if (preg_match('/^_content_type_$/i', $field_value)) { $editor_type_chkbx = '
'; - $editor_type_chkbx .= __('Text/plain').ui_print_help_tip(__('For sending emails only text plain'), true); - $editor_type_chkbx .= html_print_radio_button_extended('field'.$i.'_value', 'text/plain', '', '', false, '', '', true); + $editor_type_chkbx .= __('Text/plain'); + $editor_type_chkbx .= ui_print_help_tip( + __('For sending emails only text plain'), + true + ); + $editor_type_chkbx .= html_print_radio_button_extended( + 'field'.$i.'_value', + 'text/plain', + '', + '', + $is_central_policies_on_node, + '', + '', + true + ); $editor_type_chkbx .= '    '; $editor_type_chkbx .= __('Text/html').'  '; - $editor_type_chkbx .= html_print_radio_button_extended('field'.$i.'_value', 'text/html', '', 'text/html', false, '', '', true); + $editor_type_chkbx .= html_print_radio_button_extended( + 'field'.$i.'_value', + 'text/html', + '', + 'text/html', + $is_central_policies_on_node, + '', + '', + true + ); $editor_type_chkbx .= '
'; $ffield = $editor_type_chkbx; $editor_type_chkbx = '
'; - $editor_type_chkbx .= __('Text/plain').ui_print_help_tip(__('For sending emails only text plain'), true); - $editor_type_chkbx .= html_print_radio_button_extended('field'.$i.'_recovery_value', 'text/plain', '', '', false, '', '', true); + $editor_type_chkbx .= __('Text/plain'); + $editor_type_chkbx .= ui_print_help_tip( + __('For sending emails only text plain'), + true + ); + $editor_type_chkbx .= html_print_radio_button_extended( + 'field'.$i.'_recovery_value', + 'text/plain', + '', + '', + $is_central_policies_on_node, + '', + '', + true + ); $editor_type_chkbx .= '    '; $editor_type_chkbx .= __('Text/html').'  '; - $editor_type_chkbx .= html_print_radio_button_extended('field'.$i.'_recovery_value', 'text/html', '', 'text/html', false, '', '', true); + $editor_type_chkbx .= html_print_radio_button_extended( + 'field'.$i.'_recovery_value', + 'text/html', + '', + 'text/html', + $is_central_policies_on_node, + '', + '', + true + ); $editor_type_chkbx .= '
'; $rfield = $editor_type_chkbx; // Select type. @@ -192,7 +296,8 @@ if (is_ajax()) { true, false, false, - 'fields' + 'fields', + $is_central_policies_on_node ); $rfield = html_print_select( $fields_value_select, @@ -204,7 +309,8 @@ if (is_ajax()) { true, false, false, - 'fields_recovery' + 'fields_recovery', + $is_central_policies_on_node ); } else { $ffield = html_print_textarea( @@ -213,7 +319,9 @@ if (is_ajax()) { 1, $fv[0], 'style="min-height:40px; '.$style.'" class="fields"', - true + true, + '', + $is_central_policies_on_node ); $rfield = html_print_textarea( 'field'.$i.'_recovery_value', @@ -221,7 +329,9 @@ if (is_ajax()) { 1, $fv[0], 'style="min-height:40px; '.$style.'" class="fields_recovery', - true + true, + '', + $is_central_policies_on_node ); } } @@ -232,7 +342,9 @@ if (is_ajax()) { 1, '', 'style="min-height:40px; '.$style.'" class="fields"', - true + true, + '', + $is_central_policies_on_node ); $rfield = html_print_textarea( 'field'.$i.'_recovery_value', @@ -240,7 +352,9 @@ if (is_ajax()) { 1, '', 'style="min-height:40px; '.$style.'" class="fields_recovery"', - true + true, + '', + $is_central_policies_on_node ); } @@ -404,6 +518,15 @@ if ($copy_command) { } } +$is_central_policies_on_node = is_central_policies_on_node(); + +if ($is_central_policies_on_node === true) { + ui_print_warning_message( + __('This node is configured with centralized mode. All alerts templates information is read only. Go to metaconsole to manage it.') + ); +} + +$table = new stdClass; $table->width = '100%'; $table->class = 'info_table'; @@ -457,7 +580,7 @@ foreach ($commands as $command) { ); $data['action'] = ''; $table->cellclass[]['action'] = 'action_buttons'; - if (! $command['internal']) { + if ($is_central_policies_on_node === false && !$command['internal']) { $data['action'] = ''; $data['action'] .= ''.html_print_image('images/copy.png', true).''; @@ -475,11 +598,13 @@ if (count($table->data) > 0) { ui_print_info_message(['no_close' => true, 'message' => __('No alert commands configured') ]); } -echo '
'; -echo '
'; -html_print_submit_button(__('Create'), 'create', false, 'class="sub next"'); -html_print_input_hidden('create_alert', 1); -echo '
'; -echo '
'; +if ($is_central_policies_on_node === false) { + echo '
'; + echo '
'; + html_print_submit_button(__('Create'), 'create', false, 'class="sub next"'); + html_print_input_hidden('create_alert', 1); + echo '
'; + echo '
'; +} enterprise_hook('close_meta_frame'); diff --git a/pandora_console/godmode/alerts/alert_special_days.php b/pandora_console/godmode/alerts/alert_special_days.php index 7dd02c28bd..d1a91eb645 100644 --- a/pandora_console/godmode/alerts/alert_special_days.php +++ b/pandora_console/godmode/alerts/alert_special_days.php @@ -118,6 +118,10 @@ if ($create_special_day) { $values['id_group'] = (string) get_parameter('id_group'); $values['description'] = (string) get_parameter('description'); + $aviable_description = true; + if (preg_match('/script/i', $values['description'])) { + $aviable_description = false; + } $array_date = explode('-', $date); @@ -142,8 +146,12 @@ if ($create_special_day) { $result = ''; $messageAction = __('Could not be created, it already exists'); } else { - $result = alerts_create_alert_special_day($date, $same_day, $values); - $info = '{"Date":"'.$date.'","Same day of the week":"'.$same_day.'","Description":"'.$values['description'].'"}'; + if ($aviable_description) { + $result = alerts_create_alert_special_day($date, $same_day, $values); + $info = '{"Date":"'.$date.'","Same day of the week":"'.$same_day.'","Description":"'.$values['description'].'"}'; + } else { + $result = false; + } } } @@ -176,6 +184,11 @@ if ($update_special_day) { $id_group = (string) get_parameter('id_group'); $id_group_orig = (string) get_parameter('id_group_orig'); + $aviable_description = true; + if (preg_match('/script/i', $description)) { + $aviable_description = false; + } + $array_date = explode('-', $date); $year = $array_date[0]; @@ -206,12 +219,16 @@ if ($update_special_day) { $result = ''; $messageAction = __('Could not be updated, it already exists'); } else { + if ($aviable_description !== false) { + $result = alerts_update_alert_special_day($id, $values); + $info = '{"Date":"'.$date.'","Same day of the week":"'.$same_day.'","Description":"'.$description.'"}'; + } + } + } else { + if ($aviable_description !== false) { $result = alerts_update_alert_special_day($id, $values); $info = '{"Date":"'.$date.'","Same day of the week":"'.$same_day.'","Description":"'.$description.'"}'; } - } else { - $result = alerts_update_alert_special_day($id, $values); - $info = '{"Date":"'.$date.'","Same day of the week":"'.$same_day.'","Description":"'.$description.'"}'; } } diff --git a/pandora_console/godmode/alerts/alert_templates.php b/pandora_console/godmode/alerts/alert_templates.php index 4147367379..150245acaf 100644 --- a/pandora_console/godmode/alerts/alert_templates.php +++ b/pandora_console/godmode/alerts/alert_templates.php @@ -125,13 +125,13 @@ if (defined('METACONSOLE')) { $sec = 'galertas'; } -// This prevents to duplicate the header in case delete_templete action is performed +// This prevents to duplicate the header in +// case delete_templete action is performed. if (!$delete_template) { - // Header + // Header. if (defined('METACONSOLE')) { alerts_meta_print_header(); } else { - // ~ ui_print_page_header (__('Alerts')." » ". __('Alert templates'), "images/gm_alerts.png", false, "alerts_config", true); ui_print_page_header( __('Alerts').' » '.__('Alert templates'), 'images/gm_alerts.png', @@ -142,7 +142,6 @@ if (!$delete_template) { } } - if ($update_template) { $id = (int) get_parameter('id'); @@ -151,7 +150,7 @@ if ($update_template) { $fields_recovery = []; for ($i = 1; $i <= 10; $i++) { $values['field'.$i] = (string) get_parameter('field'.$i); - $values['field'.$i.'_recovery'] = $recovery_notify ? (string) get_parameter('field'.$i.'_recovery') : ''; + $values['field'.$i.'_recovery'] = ($recovery_notify) ? (string) get_parameter('field'.$i.'_recovery') : ''; } $values['recovery_notify'] = $recovery_notify; @@ -164,13 +163,15 @@ if ($update_template) { ); } -// If user tries to delete a template with group=ALL then must have "PM" access privileges +// If user tries to delete a template with group=ALL +// then must have "PM" access privileges. if ($delete_template) { $id = get_parameter('id'); $al_template = alerts_get_alert_template($id); if ($al_template !== false) { - // If user tries to delete a template with group=ALL then must have "PM" access privileges + // If user tries to delete a template with group=ALL + // then must have "PM" access privileges. if ($al_template['id_group'] == 0) { if (! check_acl($config['id_user'], 0, 'PM')) { db_pandora_audit( @@ -192,8 +193,7 @@ if ($delete_template) { ); } } - } //end if - else { + } else { $own_info = get_user_info($config['id_user']); if ($own_info['is_admin'] || check_acl($config['id_user'], 0, 'PM')) { $own_groups = array_keys(users_get_groups($config['id_user'], 'LM')); @@ -202,7 +202,7 @@ if ($delete_template) { } $is_in_group = in_array($al_template['id_group'], $own_groups); - // Then template group have to be is his own groups + // Then template group have to be is his own groups. if ($is_in_group) { if (defined('METACONSOLE')) { alerts_meta_print_header(); @@ -241,9 +241,15 @@ if ($delete_template) { $result = alerts_delete_alert_template($id); if ($result) { - db_pandora_audit('Template alert management', 'Delete alert template #'.$id); + db_pandora_audit( + 'Template alert management', + 'Delete alert template #'.$id + ); } else { - db_pandora_audit('Template alert management', 'Fail try to delete alert template #'.$id); + db_pandora_audit( + 'Template alert management', + 'Fail try to delete alert template #'.$id + ); } ui_print_result_message( @@ -253,6 +259,11 @@ if ($delete_template) { ); } +if (is_central_policies_on_node() === true) { + ui_print_warning_message( + __('This node is configured with centralized mode. All alerts templates information is read only. Go to metaconsole to manage it.') + ); +} $search_string = (string) get_parameter('search_string'); $search_type = (string) get_parameter('search_type'); @@ -269,7 +280,7 @@ $url = ui_get_url_refresh( $table = new stdClass(); $table->width = '100%'; $table->class = 'databox filters'; -if (defined('METACONSOLE')) { +if (is_metaconsole() === true) { $table->cellspacing = 0; $table->cellpadding = 0; } @@ -313,7 +324,7 @@ $table->data[0][4] .= html_print_submit_button( ); $table->data[0][4] .= ''; -if (defined('METACONSOLE')) { +if (is_metaconsole() === true) { $filter = '
'; $filter .= html_print_table($table, true); $filter .= '
'; @@ -394,18 +405,34 @@ foreach ($templates as $template) { $data[1] = ui_print_group_icon($template['id_group'], true); $data[3] = alerts_get_alert_templates_type_name($template['type']); - if (check_acl($config['id_user'], $template['id_group'], 'LM')) { + if (is_central_policies_on_node() === false + && check_acl($config['id_user'], $template['id_group'], 'LM') + ) { $table->cellclass[][4] = 'action_buttons'; $data[4] = '
'; $data[4] .= html_print_input_hidden('duplicate_template', 1, true); $data[4] .= html_print_input_hidden('source_id', $template['id'], true); - $data[4] .= html_print_input_image('dup', 'images/copy.png', 1, '', true, ['title' => __('Duplicate')]); + $data[4] .= html_print_input_image( + 'dup', + 'images/copy.png', + 1, + '', + true, + ['title' => __('Duplicate')] + ); $data[4] .= '
'; $data[4] .= '
'; $data[4] .= html_print_input_hidden('delete_template', 1, true); $data[4] .= html_print_input_hidden('id', $template['id'], true); - $data[4] .= html_print_input_image('del', 'images/cross.png', 1, '', true, ['title' => __('Delete')]); + $data[4] .= html_print_input_image( + 'del', + 'images/cross.png', + 1, + '', + true, + ['title' => __('Delete')] + ); $data[4] .= '
'; } else { $data[4] = ''; @@ -415,18 +442,34 @@ foreach ($templates as $template) { } ui_pagination($total_templates, $url); -if (isset($data)) { +if (isset($data) === true) { html_print_table($table); - ui_pagination($total_templates, $url, 0, 0, false, 'offset', true, 'pagination-bottom'); + ui_pagination( + $total_templates, + $url, + 0, + 0, + false, + 'offset', + true, + 'pagination-bottom' + ); } else { - ui_print_info_message(['no_close' => true, 'message' => __('No alert templates defined') ]); + ui_print_info_message( + [ + 'no_close' => true, + 'message' => __('No alert templates defined'), + ] + ); } -echo '
'; -echo '
'; -html_print_submit_button(__('Create'), 'create', false, 'class="sub next"'); -html_print_input_hidden('create_alert', 1); -echo '
'; -echo '
'; +if (is_central_policies_on_node() === false) { + echo '
'; + echo '
'; + html_print_submit_button(__('Create'), 'create', false, 'class="sub next"'); + html_print_input_hidden('create_alert', 1); + echo '
'; + echo '
'; +} enterprise_hook('close_meta_frame'); diff --git a/pandora_console/godmode/alerts/configure_alert_action.php b/pandora_console/godmode/alerts/configure_alert_action.php index 3d39941bf8..da68135ad3 100644 --- a/pandora_console/godmode/alerts/configure_alert_action.php +++ b/pandora_console/godmode/alerts/configure_alert_action.php @@ -80,12 +80,20 @@ if ($al_action !== false) { } +$is_central_policies_on_node = is_central_policies_on_node(); + +if ($is_central_policies_on_node === true) { + ui_print_warning_message( + __('This node is configured with centralized mode. All alerts templates information is read only. Go to metaconsole to manage it.') + ); +} + + $name = ''; $id_command = ''; $group = 0; -// All group is 0 $action_threshold = 0; -// All group is 0 +// All group is 0. if ($id) { $action = alerts_get_alert_action($id); $name = $action['name']; @@ -95,7 +103,7 @@ if ($id) { $action_threshold = $action['action_threshold']; } -// Hidden div with help hint to fill with javascript +// Hidden div with help hint to fill with javascript. html_print_div( [ 'id' => 'help_alert_macros_hint', @@ -126,7 +134,26 @@ $table->size = []; $table->size[0] = '20%'; $table->data = []; $table->data[0][0] = __('Name'); -$table->data[0][1] = html_print_input_text('name', $name, '', 35, 255, true); +$table->data[0][1] = html_print_input_text( + 'name', + $name, + '', + 35, + 255, + true, + false, + false, + '', + '', + '', + '', + false, + '', + '', + '', + $is_central_policies_on_node +); + if (io_safe_output($name) == 'Monitoring Event') { $table->data[0][1] .= '  '.ui_print_help_tip( __('This action may stop working, if you change its name.'), @@ -141,7 +168,21 @@ $table->data[1][0] = __('Group'); $own_info = get_user_info($config['id_user']); -$table->data[1][1] = html_print_select_groups(false, 'LW', true, 'group', $group, '', '', 0, true); +$table->data[1][1] = html_print_select_groups( + false, + 'LW', + true, + 'group', + $group, + '', + '', + 0, + true, + false, + true, + '', + $is_central_policies_on_node +); $table->colspan[1][1] = 2; $table->data[2][0] = __('Command'); @@ -163,10 +204,15 @@ $table->data[2][1] = html_print_select_from_sql( '', __('None'), 0, - true + true, + false, + false, + $is_central_policies_on_node ); $table->data[2][1] .= ' '; -if (check_acl($config['id_user'], 0, 'PM')) { +if ($is_central_policies_on_node === false + && check_acl($config['id_user'], 0, 'PM') +) { $table->data[2][1] .= __('Create Command'); $table->data[2][1] .= ''; $table->data[2][1] .= html_print_image('images/add.png', true); @@ -188,7 +234,7 @@ $table->data[3][1] = html_print_extended_select_for_time( false, true, '', - false, + $is_central_policies_on_node, false, '', false, @@ -251,46 +297,44 @@ for ($i = 1; $i <= $config['max_macro_fields']; $i++) { echo '
'; $table_html = html_print_table($table, true); -// -// Hack to hook the bubble dialog of clippy in any place, the intro.js -// fails with new elements in the dom from javascript code -// ---------------------------------------------------------------------- -/* - $table_html = str_replace( - "", - "", - $table_html); - $table_html = str_replace( - '', - " -
- - - ", - $table_html); -*/ -// echo $table_html; - -echo '
'; -if ($id) { - html_print_input_hidden('id', $id); - if ($al_action['id_group'] == 0) { - // then must have "PM" access privileges - if (check_acl($config['id_user'], 0, 'PM')) { +if ($is_central_policies_on_node === false) { + echo '
'; + if ($id) { + html_print_input_hidden('id', $id); + if ($al_action['id_group'] == 0) { + // Then must have "PM" access privileges. + if (check_acl($config['id_user'], 0, 'PM')) { + html_print_input_hidden('update_action', 1); + html_print_submit_button( + __('Update'), + 'create', + false, + 'class="sub upd"' + ); + } + } else { html_print_input_hidden('update_action', 1); - html_print_submit_button(__('Update'), 'create', false, 'class="sub upd"'); + html_print_submit_button( + __('Update'), + 'create', + false, + 'class="sub upd"' + ); } } else { - html_print_input_hidden('update_action', 1); - html_print_submit_button(__('Update'), 'create', false, 'class="sub upd"'); + html_print_input_hidden('create_action', 1); + html_print_submit_button( + __('Create'), + 'create', + false, + 'class="sub wand"' + ); } -} else { - html_print_input_hidden('create_action', 1); - html_print_submit_button(__('Create'), 'create', false, 'class="sub wand"'); + + echo '
'; } -echo '
'; echo ''; enterprise_hook('close_meta_frame'); diff --git a/pandora_console/godmode/alerts/configure_alert_command.php b/pandora_console/godmode/alerts/configure_alert_command.php index 417564e5f2..2091a9ee54 100644 --- a/pandora_console/godmode/alerts/configure_alert_command.php +++ b/pandora_console/godmode/alerts/configure_alert_command.php @@ -36,7 +36,7 @@ $pure = get_parameter('pure', 0); $alert = []; // Header. -if (defined('METACONSOLE')) { +if (is_metaconsole() === true) { alerts_meta_print_header(); } else { ui_print_page_header( @@ -135,30 +135,39 @@ if ($id) { $fields_hidden = $alert['fields_hidden']; } -if (!empty($fields_descriptions)) { +if (empty($fields_descriptions) === false) { $fields_descriptions = json_decode($fields_descriptions, true); } -if (!empty($fields_values)) { +if (empty($fields_values) === false) { $fields_values = json_decode($fields_values, true); } -if (!empty($fields_hidden)) { +if (empty($fields_hidden) === false) { $fields_hidden = json_decode($fields_hidden, true); } + +$is_central_policies_on_node = is_central_policies_on_node(); + +if ($is_central_policies_on_node === true) { + ui_print_warning_message( + __('This node is configured with centralized mode. All alerts templates information is read only. Go to metaconsole to manage it.') + ); +} + $table = new stdClass(); $table->width = '100%'; $table->class = 'databox filters'; -if (defined('METACONSOLE')) { +if (is_metaconsole() === true) { $table->head[0] = ($id) ? __('Update Command') : __('Create Command'); $table->head_colspan[0] = 4; $table->headstyle[0] = 'text-align: center'; } $table->style = []; -if (!defined('METACONSOLE')) { +if (is_metaconsole() === false) { $table->style[0] = 'font-weight: bold'; $table->style[2] = 'font-weight: bold'; $table->style[4] = 'font-weight: bold'; @@ -170,11 +179,38 @@ $table->data = []; $table->colspan['name'][1] = 3; $table->data['name'][0] = __('Name'); -$table->data['name'][2] = html_print_input_text('name', $name, '', 35, 255, true); +$table->data['name'][2] = html_print_input_text( + 'name', + $name, + '', + 35, + 255, + true, + false, + false, + '', + '', + '', + '', + false, + '', + '', + '', + $is_central_policies_on_node +); $table->colspan['command'][1] = 3; $table->data['command'][0] = __('Command'); -$table->data['command'][1] = html_print_textarea('command', 8, 30, $command, '', true); +$table->data['command'][1] = html_print_textarea( + 'command', + 8, + 30, + $command, + '', + true, + '', + $is_central_policies_on_node +); $table->colspan['group'][1] = 3; $table->data['group'][0] = __('Group'); @@ -187,60 +223,124 @@ $table->data['group'][1] = html_print_select_groups( false, '', 0, - true + true, + false, + true, + '', + $is_central_policies_on_node ); $table->colspan['description'][1] = 3; $table->data['description'][0] = __('Description'); -$table->data['description'][1] = html_print_textarea('description', 10, 30, $description, '', true); +$table->data['description'][1] = html_print_textarea( + 'description', + 10, + 30, + $description, + '', + true, + '', + $is_central_policies_on_node +); for ($i = 1; $i <= $config['max_macro_fields']; $i++) { $table->data['field'.$i][0] = sprintf(__('Field %s description'), $i); - if (!empty($fields_descriptions)) { + if (empty($fields_descriptions) === false) { $field_description = $fields_descriptions[($i - 1)]; } else { $field_description = ''; } - $table->data['field'.$i][1] = html_print_input_text('field'.$i.'_description', $field_description, '', 30, 255, true); + $table->data['field'.$i][1] = html_print_input_text( + 'field'.$i.'_description', + $field_description, + '', + 30, + 255, + true, + false, + false, + '', + '', + '', + '', + false, + '', + '', + '', + $is_central_policies_on_node + ); - $table->data['field'.$i][2] = sprintf(__('Field %s values'), $i).ui_print_help_tip(__('value1,tag1;value2,tag2;value3,tag3'), true); + $table->data['field'.$i][2] = sprintf(__('Field %s values'), $i); + $table->data['field'.$i][2] .= ui_print_help_tip( + __('value1,tag1;value2,tag2;value3,tag3'), + true + ); - if (!empty($fields_values)) { + if (empty($fields_values) === false) { $field_values = $fields_values[($i - 1)]; } else { $field_values = ''; } - if (!empty($fields_hidden)) { + if (empty($fields_hidden) === false) { $selected = (bool) $fields_hidden[($i - 1)]; } else { $selected = false; } - $table->data['field'.$i][3] = html_print_input_text('field'.$i.'_values', $field_values, '', 55, 255, true, false, false, '', 'field_value'); + $table->data['field'.$i][3] = html_print_input_text( + 'field'.$i.'_values', + $field_values, + '', + 55, + 255, + true, + false, + false, + '', + 'field_value', + '', + '', + false, + '', + '', + '', + $is_central_policies_on_node + ); $table->data['field'.$i][4] = __('Hide'); - $table->data['field'.$i][5] = html_print_checkbox_extended('field'.$i.'_hide', 1, $selected, false, 'cursor: \'pointer\'', 'class="hide_inputs"', true); + $table->data['field'.$i][5] = html_print_checkbox_extended( + 'field'.$i.'_hide', + 1, + $selected, + $is_central_policies_on_node, + 'cursor: \'pointer\'', + 'class="hide_inputs"', + true + ); } echo ''; html_print_table($table); -echo '
'; -if ($id) { - html_print_input_hidden('id', $id); - html_print_input_hidden('update_command', 1); - html_print_submit_button(__('Update'), 'create', false, 'class="sub upd"'); -} else { - html_print_input_hidden('create_command', 1); - html_print_submit_button(__('Create'), 'create', false, 'class="sub wand"'); +if ($is_central_policies_on_node === false) { + echo '
'; + if ($id) { + html_print_input_hidden('id', $id); + html_print_input_hidden('update_command', 1); + html_print_submit_button(__('Update'), 'create', false, 'class="sub upd"'); + } else { + html_print_input_hidden('create_command', 1); + html_print_submit_button(__('Create'), 'create', false, 'class="sub wand"'); + } + + echo '
'; } -echo '
'; echo ''; enterprise_hook('close_meta_frame'); @@ -251,20 +351,20 @@ $(document).ready (function () { $(".hide_inputs").each(function(index) { var $input_in_row = $(this).closest('tr').find('.field_value'); - if($(this).is(':checked')) { + if($(this).is(':checked')) { $input_in_row.prop('style', '-webkit-text-security: disc;'); - } else { + } else { $input_in_row.prop('style', ''); } }); $(".hide_inputs").click(function() { var $input_in_row = $(this).closest('tr').find('.field_value'); - if($(this).is(':checked')) { + if($(this).is(':checked')) { $input_in_row.prop('style', '-webkit-text-security: disc;'); - } else { + } else { $input_in_row.prop('style', ''); - } + } }); }); diff --git a/pandora_console/godmode/alerts/configure_alert_template.php b/pandora_console/godmode/alerts/configure_alert_template.php index 533bc32caf..f9f8876e9c 100644 --- a/pandora_console/godmode/alerts/configure_alert_template.php +++ b/pandora_console/godmode/alerts/configure_alert_template.php @@ -363,7 +363,15 @@ function update_template($step) } -// We set here the number of steps +$is_central_policies_on_node = is_central_policies_on_node(); + +if ($is_central_policies_on_node === true) { + ui_print_warning_message( + __('This node is configured with centralized mode. All alerts templates information is read only. Go to metaconsole to manage it.') + ); +} + +// We set here the number of steps. define('LAST_STEP', 3); $step = (int) get_parameter('step', 1); @@ -579,27 +587,74 @@ if ($step == 2) { $show_matches = false; } - // Firing conditions and events + // Firing conditions and events. $table->colspan = []; - // $table->colspan[4][1] = 1; $table->data[0][0] = __('Days of week'); $table->data[0][1] = __('Mon'); - $table->data[0][1] .= html_print_checkbox('monday', 1, $monday, true); + $table->data[0][1] .= html_print_checkbox( + 'monday', + 1, + $monday, + true, + $is_central_policies_on_node + ); $table->data[0][1] .= __('Tue'); - $table->data[0][1] .= html_print_checkbox('tuesday', 1, $tuesday, true); + $table->data[0][1] .= html_print_checkbox( + 'tuesday', + 1, + $tuesday, + true, + $is_central_policies_on_node + ); $table->data[0][1] .= __('Wed'); - $table->data[0][1] .= html_print_checkbox('wednesday', 1, $wednesday, true); + $table->data[0][1] .= html_print_checkbox( + 'wednesday', + 1, + $wednesday, + true, + $is_central_policies_on_node + ); $table->data[0][1] .= __('Thu'); - $table->data[0][1] .= html_print_checkbox('thursday', 1, $thursday, true); + $table->data[0][1] .= html_print_checkbox( + 'thursday', + 1, + $thursday, + true, + $is_central_policies_on_node + ); $table->data[0][1] .= __('Fri'); - $table->data[0][1] .= html_print_checkbox('friday', 1, $friday, true); + $table->data[0][1] .= html_print_checkbox( + 'friday', + 1, + $friday, + true, + $is_central_policies_on_node + ); $table->data[0][1] .= __('Sat'); - $table->data[0][1] .= html_print_checkbox('saturday', 1, $saturday, true); + $table->data[0][1] .= html_print_checkbox( + 'saturday', + 1, + $saturday, + true, + $is_central_policies_on_node + ); $table->data[0][1] .= __('Sun'); - $table->data[0][1] .= html_print_checkbox('sunday', 1, $sunday, true); + $table->data[0][1] .= html_print_checkbox( + 'sunday', + 1, + $sunday, + true, + $is_central_policies_on_node + ); $table->data[0][2] = __('Use special days list'); - $table->data[0][3] = html_print_checkbox('special_day', 1, $special_day, true); + $table->data[0][3] = html_print_checkbox( + 'special_day', + 1, + $special_day, + true, + $is_central_policies_on_node + ); $table->data[1][0] = __('Time from'); $table->data[1][1] = html_print_input_text( @@ -608,7 +663,18 @@ if ($step == 2) { '', 7, 8, - true + true, + false, + false, + '', + '', + '', + '', + false, + '', + '', + '', + $is_central_policies_on_node ); $table->data[1][2] = __('Time to'); $table->data[1][3] = html_print_input_text( @@ -617,7 +683,18 @@ if ($step == 2) { '', 7, 8, - true + true, + false, + false, + '', + '', + '', + '', + false, + '', + '', + '', + $is_central_policies_on_node ); $table->colspan['threshold'][1] = 3; @@ -629,7 +706,11 @@ if ($step == 2) { '', '', false, - true + true, + false, + true, + '', + $is_central_policies_on_node ); $table->data[3][0] = __('Min. number of alerts'); @@ -639,11 +720,32 @@ if ($step == 2) { '', 5, 7, - true + true, + false, + false, + '', + '', + '', + '', + false, + '', + '', + '', + $is_central_policies_on_node ); - $table->data[3][2] = __('Reset counter for non-sustained alerts').ui_print_help_tip(__('Enable this option if you want the counter to be reset when the alert is not being fired consecutively, even if it\'s within the time threshold'), true); - $table->data[3][3] = html_print_checkbox('min_alerts_reset_counter', 1, $min_alerts_reset_counter, true); + $table->data[3][2] = __('Reset counter for non-sustained alerts'); + $table->data[3][2] .= ui_print_help_tip( + __('Enable this option if you want the counter to be reset when the alert is not being fired consecutively, even if it\'s within the time threshold'), + true + ); + $table->data[3][3] = html_print_checkbox( + 'min_alerts_reset_counter', + 1, + $min_alerts_reset_counter, + true, + $is_central_policies_on_node + ); $table->data[4][0] = __('Max. number of alerts'); $table->data[4][1] = html_print_input_text( @@ -652,39 +754,43 @@ if ($step == 2) { '', 5, 7, - true + true, + false, + false, + '', + '', + '', + '', + false, + '', + '', + '', + $is_central_policies_on_node ); $table->data[4][2] = __('Disable event'); - $table->data[4][3] = html_print_checkbox('disable_event', 1, $disable_event, true); + $table->data[4][3] = html_print_checkbox( + 'disable_event', + 1, + $disable_event, + true, + $is_central_policies_on_node + ); $table->data[5][0] = __('Default action'); - $usr_groups = implode(',', array_keys(users_get_groups($config['id_user'], 'LM', true))); - switch ($config['dbtype']) { - case 'mysql': - case 'postgresql': - $sql_query = sprintf( - ' - SELECT id, name - FROM talert_actions - WHERE id_group IN (%s) - ORDER BY name', - $usr_groups - ); - break; + $usr_groups = implode( + ',', + array_keys(users_get_groups($config['id_user'], 'LM', true)) + ); - case 'oracle': - $sql_query = sprintf( - ' - SELECT id, - dbms_lob.substr(name,4000,1) AS nombre - FROM talert_actions - WHERE id_group IN (%s) - ORDER BY dbms_lob.substr(name,4000,1)', - $usr_groups - ); - break; - } + $sql_query = sprintf( + ' + SELECT id, name + FROM talert_actions + WHERE id_group IN (%s) + ORDER BY name', + $usr_groups + ); $table->data[5][1] = html_print_select_from_sql( $sql_query, @@ -696,11 +802,12 @@ if ($step == 2) { true, false, false, - false, + $is_central_policies_on_node, false, false, 0 - ).ui_print_help_tip( + ); + $table->data[5][1] .= ui_print_help_tip( __('Unless they\'re left blank, the fields from the action will override those set on the template.'), true ); @@ -715,7 +822,9 @@ if ($step == 2) { 0, true, false, - false + false, + '', + $is_central_policies_on_node ); $table->data[6][1] .= ''; $table->data[6][1] .= ' '.html_print_checkbox('matches_value', 1, $matches, true); @@ -760,7 +869,7 @@ if ($step == 2) { $table->data['value'][1] .= ''; $table->colspan['value'][1] = 3; - // Min first, then max, that's more logical + // Min first, then max, that's more logical. $table->data['min'][0] = __('Min.'); $table->data['min'][1] = html_print_input_text( 'min', @@ -798,25 +907,12 @@ if ($step == 2) { $table->size[1] = '45%'; $table->size[2] = '45%'; - // Alert recover + // Alert recover. if (! $recovery_notify) { $table->cellstyle['label_fields'][2] = 'display:none;'; for ($i = 1; $i <= $config['max_macro_fields']; $i++) { $table->cellstyle['field'.$i][2] = 'display:none;'; } - - /* - $table->cellstyle['field1'][2] = 'display:none;'; - $table->cellstyle['field2'][2] = 'display:none;'; - $table->cellstyle['field3'][2] = 'display:none;'; - $table->cellstyle['field4'][2] = 'display:none;'; - $table->cellstyle['field5'][2] = 'display:none;'; - $table->cellstyle['field6'][2] = 'display:none;'; - $table->cellstyle['field7'][2] = 'display:none;'; - $table->cellstyle['field8'][2] = 'display:none;'; - $table->cellstyle['field9'][2] = 'display:none;'; - $table->cellstyle['field10'][2] = 'display:none;'; - */ } $table->data[0][0] = __('Alert recovery'); @@ -833,7 +929,9 @@ if ($step == 2) { '', true, false, - false + false, + '', + $is_central_policies_on_node ); $table->colspan[0][1] = 2; @@ -842,45 +940,98 @@ if ($step == 2) { $table->data['label_fields'][2] = __('Recovery fields'); for ($i = 1; $i <= $config['max_macro_fields']; $i++) { - if (isset($template[$name])) { + if (isset($template[$name]) === true) { $value = $template[$name]; } else { $value = ''; } - // $table->rowclass['field'.$i] = 'row_field'; $table->data['field'.$i][0] = sprintf(__('Field %s'), $i); - // TinyMCE - // triggering fields - // basic - $table->data['field'.$i][1] = '
'; - $table->data['field'.$i][1] .= __('Basic').'  '; - $table->data['field'.$i][1] .= html_print_radio_button_extended('editor_type_value_'.$i, 0, '', false, false, "removeTinyMCE('textarea_field".$i."')", '', true); - // Advanced - $table->data['field'.$i][1] .= '    '; - $table->data['field'.$i][1] .= __('Advanced').'  '; - $table->data['field'.$i][1] .= html_print_radio_button_extended('editor_type_value_'.$i, 0, '', true, false, "addTinyMCE('textarea_field".$i."')", '', true); - $table->data['field'.$i][1] .= '
'; + // TinyMCE. + // triggering fields. + // Basic. + $table->data['field'.$i][1] = '
'; + $table->data['field'.$i][1] .= __('Basic').'  '; + $table->data['field'.$i][1] .= html_print_radio_button_extended( + 'editor_type_value_'.$i, + 0, + '', + false, + $is_central_policies_on_node, + "removeTinyMCE('textarea_field".$i."')", + '', + true + ); + // Advanced. + $table->data['field'.$i][1] .= '    '; + $table->data['field'.$i][1] .= __('Advanced').'  '; + $table->data['field'.$i][1] .= html_print_radio_button_extended( + 'editor_type_value_'.$i, + 0, + '', + true, + $is_central_policies_on_node, + "addTinyMCE('textarea_field".$i."')", + '', + true + ); + $table->data['field'.$i][1] .= '
'; - // Texarea - $table->data['field'.$i][1] .= html_print_textarea('field'.$i, 1, 1, isset($fields[$i]) ? $fields[$i] : '', 'style="min-height:40px;" class="fields"', true); + // Texarea. + $table->data['field'.$i][1] .= html_print_textarea( + 'field'.$i, + 1, + 1, + isset($fields[$i]) ? $fields[$i] : '', + 'style="min-height:40px;" class="fields"', + true, + '', + $is_central_policies_on_node + ); - // Recovery - // basic - $table->data['field'.$i][2] = '
'; - $table->data['field'.$i][2] .= __('Basic').'  '; - $table->data['field'.$i][2] .= html_print_radio_button_extended('editor_type_recovery_value_'.$i, 0, '', false, false, "removeTinyMCE('textarea_field".$i."_recovery')", '', true); - // advanced - $table->data['field'.$i][2] .= '    '; - $table->data['field'.$i][2] .= __('Advanced').'  '; - $table->data['field'.$i][2] .= html_print_radio_button_extended('editor_type_recovery_value_'.$i, 0, '', true, false, "addTinyMCE('textarea_field".$i."_recovery')", '', true); - $table->data['field'.$i][2] .= '
'; + // Recovery. + // Basic. + $table->data['field'.$i][2] = '
'; + $table->data['field'.$i][2] .= __('Basic').'  '; + $table->data['field'.$i][2] .= html_print_radio_button_extended( + 'editor_type_recovery_value_'.$i, + 0, + '', + false, + $is_central_policies_on_node, + "removeTinyMCE('textarea_field".$i."_recovery')", + '', + true + ); + // Advanced. + $table->data['field'.$i][2] .= '    '; + $table->data['field'.$i][2] .= __('Advanced').'  '; + $table->data['field'.$i][2] .= html_print_radio_button_extended( + 'editor_type_recovery_value_'.$i, + 0, + '', + true, + $is_central_policies_on_node, + "addTinyMCE('textarea_field".$i."_recovery')", + '', + true + ); + $table->data['field'.$i][2] .= '
'; - // Texarea - $table->data['field'.$i][2] .= html_print_textarea('field'.$i.'_recovery', 1, 1, isset($fields_recovery[$i]) ? $fields_recovery[$i] : '', 'style="min-height:40px" class="fields"', true); + // Texarea. + $table->data['field'.$i][2] .= html_print_textarea( + 'field'.$i.'_recovery', + 1, + 1, + isset($fields_recovery[$i]) ? $fields_recovery[$i] : '', + 'style="min-height:40px" class="fields"', + true, + '', + $is_central_policies_on_node + ); } } else { - // Step 1 by default + // Step 1 by default. $table->size = []; $table->size[0] = '20%'; $table->data = []; @@ -916,20 +1067,53 @@ if ($step == 2) { } $table->data[0][0] = __('Name'); - $table->data[0][1] = html_print_input_text('name', $name, '', 35, 255, true); + $table->data[0][1] = html_print_input_text( + 'name', + $name, + '', + 35, + 255, + true, + false, + false, + '', + '', + '', + '', + false, + '', + '', + '', + $is_central_policies_on_node + ); $table->data[0][1] .= '  '.__('Group'); $groups = users_get_groups(); $own_info = get_user_info($config['id_user']); - // Only display group "All" if user is administrator or has "PM" privileges + // Only display group "All" if user is administrator or has "PM" privileges. if ($own_info['is_admin'] || check_acl($config['id_user'], 0, 'PM')) { $display_all_group = true; } else { $display_all_group = false; } - $table->data[0][1] .= ' '.html_print_select_groups(false, 'AR', $display_all_group, 'id_group', $id_group, '', '', 0, true); + $table->data[0][1] .= ' '; + $table->data[0][1] .= html_print_select_groups( + false, + 'AR', + $display_all_group, + 'id_group', + $id_group, + '', + '', + 0, + true, + false, + true, + '', + $is_central_policies_on_node + ); $table->data[1][0] = __('Description'); @@ -939,7 +1123,9 @@ if ($step == 2) { 30, $description, '', - true + true, + '', + $is_central_policies_on_node ); $table->data[2][0] = __('Priority'); @@ -952,7 +1138,9 @@ if ($step == 2) { 0, true, false, - false + false, + '', + $is_central_policies_on_node ); if (defined('METACONSOLE')) { @@ -1000,25 +1188,32 @@ if (!$create_alert && !$create_template) { } if (!$disabled) { - if ($step >= LAST_STEP) { - html_print_submit_button(__('Finish'), 'finish', false, 'class="sub upd"'); - } else { - html_print_input_hidden('step', ($step + 1)); - if ($step == 2) { - // Javascript onsubmit to avoid min = 0 and max = 0 + if ($is_central_policies_on_node === false) { + if ($step >= LAST_STEP) { html_print_submit_button( - __('Next'), - 'next', + __('Finish'), + 'finish', false, - 'class="sub next" onclick="return check_fields_step2();"' + 'class="sub upd"' ); } else { - html_print_submit_button( - __('Next'), - 'next', - false, - 'class="sub next"' - ); + html_print_input_hidden('step', ($step + 1)); + if ($step == 2) { + // Javascript onsubmit to avoid min = 0 and max = 0 + html_print_submit_button( + __('Next'), + 'next', + false, + 'class="sub next" onclick="return check_fields_step2();"' + ); + } else { + html_print_submit_button( + __('Next'), + 'next', + false, + 'class="sub next"' + ); + } } } } @@ -1041,7 +1236,7 @@ var matches_not = ')."'"; ?>; var is_not = ')."'"; ?>; var between = and ')."'"; ?>; -var between_not = and ").'"'; ?>; +var between_not = and ').'"'; ?>; var under = ')."'"; ?>; var over = ')."'"; ?>; var warning = ; diff --git a/pandora_console/godmode/groups/group_list.php b/pandora_console/godmode/groups/group_list.php index 314e4431ea..1f7284ca5b 100644 --- a/pandora_console/godmode/groups/group_list.php +++ b/pandora_console/godmode/groups/group_list.php @@ -347,24 +347,32 @@ if (($create_group) && (check_acl($config['id_user'], 0, 'PM'))) { $check = db_get_value('nombre', 'tgrupo', 'nombre', $name); $propagate = (bool) get_parameter('propagate'); + $aviable_name = true; + if (preg_match('/script/i', $name)) { + $aviable_name = false; + } + // Check if name field is empty. if ($name != '') { if (!$check) { - $values = [ - 'nombre' => $name, - 'icon' => empty($icon) ? '' : substr($icon, 0, -4), - 'parent' => $id_parent, - 'disabled' => $alerts_disabled, - 'custom_id' => $custom_id, - 'id_skin' => $skin, - 'description' => $description, - 'contact' => $contact, - 'propagate' => $propagate, - 'other' => $other, - 'password' => io_safe_input($group_pass), - ]; + if ($aviable_name === true) { + $values = [ + 'nombre' => $name, + 'icon' => empty($icon) ? '' : substr($icon, 0, -4), + 'parent' => $id_parent, + 'disabled' => $alerts_disabled, + 'custom_id' => $custom_id, + 'id_skin' => $skin, + 'description' => $description, + 'contact' => $contact, + 'propagate' => $propagate, + 'other' => $other, + 'password' => io_safe_input($group_pass), + ]; + + $result = db_process_sql_insert('tgrupo', $values); + } - $result = db_process_sql_insert('tgrupo', $values); if ($result) { ui_print_success_message(__('Group successfully created')); } else { @@ -394,8 +402,13 @@ if ($update_group) { $contact = (string) get_parameter('contact'); $other = (string) get_parameter('other'); + $aviable_name = true; + if (preg_match('/script/i', $name)) { + $aviable_name = false; + } + // Check if name field is empty. - if ($name != '') { + if ($name != '' && $aviable_name === true) { $sql = sprintf( 'UPDATE tgrupo SET nombre = "%s", @@ -711,8 +724,8 @@ if ($tab == 'tree') { [ 'style' => '', 'class' => 'bot', - 'alt' => $group['nombre'], - 'title' => $group['nombre'], + 'alt' => io_safe_input($group['nombre']), + 'title' => io_safe_input($group['nombre']), ], false, false, diff --git a/pandora_console/godmode/massive/massive_operations.php b/pandora_console/godmode/massive/massive_operations.php index 6b9ee73f5a..8431bd7973 100755 --- a/pandora_console/godmode/massive/massive_operations.php +++ b/pandora_console/godmode/massive/massive_operations.php @@ -92,6 +92,12 @@ if ($satellite_options != ENTERPRISE_NOT_HOOK) { $options_satellite = array_merge($options_satellite, $satellite_options); } +$options_services = enterprise_hook('massive_services_options'); +if ($options_services === ENTERPRISE_NOT_HOOK) { + $options_services = []; +} + + if (in_array($option, array_keys($options_alerts))) { $tab = 'massive_alerts'; } else if (in_array($option, array_keys($options_agents))) { @@ -108,6 +114,8 @@ if (in_array($option, array_keys($options_alerts))) { $tab = 'massive_satellite'; } else if (in_array($option, array_keys($options_plugins))) { $tab = 'massive_plugins'; +} else if (in_array($option, array_keys($options_services))) { + $tab = 'massive_services'; } if ($tab == 'massive_agents' && $option == '') { @@ -173,6 +181,10 @@ switch ($tab) { $options = $options_plugins; break; + case 'massive_services': + $options = $options_services; + break; + default: // Default. break; @@ -241,6 +253,11 @@ if ($satellitetab == ENTERPRISE_NOT_HOOK) { $satellitetab = ''; } +$servicestab = enterprise_hook('massive_services_tab'); + +if ($servicestab == ENTERPRISE_NOT_HOOK) { + $servicestab = ''; +} $onheader = []; $onheader['massive_agents'] = $agentstab; @@ -254,6 +271,7 @@ $onheader['massive_alerts'] = $alertstab; $onheader['policies'] = $policiestab; $onheader['snmp'] = $snmptab; $onheader['satellite'] = $satellitetab; +$onheader['services'] = $servicestab; /* Hello there! :) diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index dce8b584da..21584a5fd4 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -189,6 +189,7 @@ if (check_acl($config['id_user'], 0, 'AW')) { enterprise_hook('massivepolicies_submenu'); enterprise_hook('massivesnmp_submenu'); enterprise_hook('massivesatellite_submenu'); + enterprise_hook('massiveservices_submenu'); $sub['gmassive']['sub2'] = $sub2; } diff --git a/pandora_console/godmode/modules/manage_nc_groups.php b/pandora_console/godmode/modules/manage_nc_groups.php index 16a9cccaad..c4ba21febc 100644 --- a/pandora_console/godmode/modules/manage_nc_groups.php +++ b/pandora_console/godmode/modules/manage_nc_groups.php @@ -46,14 +46,15 @@ if (defined('METACONSOLE')) { $sec = 'gmodules'; } - -$create = (bool) get_parameter('create'); -$update = (bool) get_parameter('update'); -$delete = (bool) get_parameter('delete'); -$new = (bool) get_parameter('new'); -$id = (int) get_parameter('id'); -$multiple_delete = (bool) get_parameter('multiple_delete', 0); -$pure = get_parameter('pure', 0); +if (is_management_allowed() === true) { + $create = (bool) get_parameter('create'); + $update = (bool) get_parameter('update'); + $delete = (bool) get_parameter('delete'); + $new = (bool) get_parameter('new'); + $id = (int) get_parameter('id'); + $multiple_delete = (bool) get_parameter('multiple_delete', 0); + $pure = get_parameter('pure', 0); +} if ($create) { $name = (string) get_parameter('name'); @@ -186,7 +187,7 @@ if ($multiple_delete) { ); } -if (($id || $new) && !$delete && !$multiple_delete) { +if (($id || $new) && !$delete && !$multiple_delete && is_management_allowed() === true) { include_once 'manage_nc_groups_form.php'; return; } @@ -229,7 +230,10 @@ $table->class = 'info_table'; $table->head = []; $table->head['checkbox'] = html_print_checkbox('all_delete', 0, false, true, false); $table->head[0] = __('Name'); -$table->head[1] = __('Action'); +if (is_management_allowed() === true) { + $table->head[1] = __('Action'); +} + $table->style = []; $table->style[0] = 'font-weight: bold'; $table->align = []; @@ -258,31 +262,42 @@ foreach ($groups as $group) { } $table->cellclass[][1] = 'action_buttons'; - $data[1] = "".html_print_image('images/cross.png', true, ['title' => __('Delete')]).''; + } array_push($table->data, $data); } +if (is_management_allowed() === false) { + ui_print_warning_message(__('This node is configured with centralized mode. This page is for read only. Go to metaconsole to manage the component groups.')); +} + if (isset($data)) { echo ""; html_print_input_hidden('multiple_delete', 1); html_print_table($table); - echo "
"; - html_print_submit_button(__('Delete'), 'delete_btn', false, 'class="sub delete"'); - echo '
'; + if (is_management_allowed() === true) { + echo "
"; + html_print_submit_button(__('Delete'), 'delete_btn', false, 'class="sub delete"'); + echo '
'; + } + echo ''; } else { ui_print_info_message(['no_close' => true, 'message' => __('There are no defined component groups') ]); } +if (is_management_allowed() === true) { + echo ''; + echo '
'; + html_print_input_hidden('new', 1); + html_print_submit_button(__('Create'), 'crt', false, 'class="sub next"'); + echo '
'; + echo ''; +} -echo ''; -echo '
'; -html_print_input_hidden('new', 1); -html_print_submit_button(__('Create'), 'crt', false, 'class="sub next"'); -echo '
'; -echo ''; enterprise_hook('close_meta_frame'); ?> diff --git a/pandora_console/godmode/modules/manage_network_components.php b/pandora_console/godmode/modules/manage_network_components.php index ed691af533..4b1995cd5e 100644 --- a/pandora_console/godmode/modules/manage_network_components.php +++ b/pandora_console/godmode/modules/manage_network_components.php @@ -47,6 +47,39 @@ require_once $config['homedir'].'/include/functions_categories.php'; enterprise_include_once('meta/include/functions_components_meta.php'); require_once $config['homedir'].'/include/functions_component_groups.php'; +// Header. +if (defined('METACONSOLE')) { + $sec = 'advanced'; + + $id_modulo = (int) get_parameter('id_component_type'); + $new_component = (bool) get_parameter('new_component'); +} else { + $id_modulo = (int) get_parameter('id_component_type'); + $new_component = (bool) get_parameter('new_component'); + if ($id_modulo == COMPONENT_TYPE_NETWORK || $id_modulo == COMPONENT_TYPE_PLUGIN || $id_modulo == COMPONENT_TYPE_WMI || $id_modulo == COMPONENT_TYPE_WIZARD) { + $help_header = 'local_module_tab'; + } else if (!$new_component) { + $help_header = 'network_component_tab'; + } else { + $help_header = 'network_component_tab'; + } + + ui_print_page_header( + __('Remote components'), + '', + false, + $help_header, + true, + '', + false, + 'modulemodal', + GENERIC_SIZE_TEXT, + '', + __('Configuration').' / '.__('Templates').' / '.__('Remote components') + ); + $sec = 'gmodules'; +} + $type = (int) get_parameter('type'); $name = (string) get_parameter('name'); $description = (string) get_parameter('description'); @@ -180,6 +213,68 @@ if ($duplicate_network_component) { $id = 0; } +// Wizard Common. +$module_enabled = get_parameter_switch('module_enabled'); +$module_protocol = get_parameter('module_protocol', 'snmp'); +$scan_type = (int) get_parameter('scan_type', SCAN_TYPE_FIXED); +$execution_type = (int) get_parameter('execution_type', EXECUTION_TYPE_NETWORK); +// Wizard SNMP. +$manufacturer_id = get_parameter('manufacturer_id'); +$name_oid = get_parameter('name_oid'); +$value = get_parameter('value_oid'); +// Other Wizard WMI fields. +$query_filter = ''; +$wmi_class = get_parameter('wmi_class'); +$query_key_field = get_parameter('query_key_field'); +// Enabled Module. +$enabled = get_parameter_switch('enabled'); + +if ($id_modulo === COMPONENT_TYPE_WIZARD) { + // Wizard Common extra fields. + $macros = []; + + $macros['satellite_execution'] = get_parameter('satellite_execution_'.$module_protocol); + $macros['value_operation'] = get_parameter('value_operation_'.$module_protocol); + $macros['server_plugin'] = get_parameter('server_plugin_'.$module_protocol); + + if ($module_protocol === 'snmp') { + // If not select any manufacturer_id, there is 'all'. + if (empty($manufacturer_id) === true) { + $manufacturer_id = 'all'; + } + } else if ($module_protocol === 'wmi') { + // Wizard WMI Query filters. + $query_filter = []; + $query_filter['scan'] = get_parameter('query_filter_scan'); + $query_filter['execution'] = get_parameter('query_filter_execution'); + $query_filter['field'] = get_parameter('field_value_filter'); + $query_filter['key_string'] = get_parameter('key_string_filter'); + $query_filter = json_encode($query_filter); + } + + // Default extra field. + $extra_fields = [ 'extra_field_1' => '' ]; + // If Plugin execution is selected. + if ($execution_type === EXECUTION_TYPE_PLUGIN || $module_protocol === 'wmi') { + // Search all parameters received with extra_fields. + foreach ($_REQUEST as $parameter => $thisValue) { + // Extra fields (OIDs Macros or WMI Extra fields) + if (preg_match('/extra_field_'.$module_protocol.'_/', $parameter) !== 0) { + $tmpParameter = explode('_', $parameter); + $extra_fields['extra_field_'.$tmpParameter[3]] = get_parameter($parameter); + } + + // The plugin macros. + if (preg_match('/'.$module_protocol.'_field/', $parameter) !== 0) { + $macros[$parameter] = io_safe_input($thisValue); + } + } + + // All of macros saved in the same array. + $macros = json_encode(array_merge($extra_fields, $macros)); + } +} + $custom_string_1 = ''; $custom_string_2 = ''; $custom_string_3 = ''; @@ -210,7 +305,7 @@ if (defined('METACONSOLE')) { $sec = 'gmodules'; } -if ($type >= 15 && $type <= 18) { +if ($type >= MODULE_TYPE_REMOTE_SNMP && $type <= MODULE_TYPE_REMOTE_SNMP_PROC) { // New support for snmp v3. $tcp_send = $snmp_version; $plugin_user = $snmp3_auth_user; @@ -219,7 +314,7 @@ if ($type >= 15 && $type <= 18) { $custom_string_1 = $snmp3_privacy_method; $custom_string_2 = $snmp3_privacy_pass; $custom_string_3 = $snmp3_security_level; -} else if ($type >= 34 && $type <= 37) { +} else if ($type >= MODULE_TYPE_REMOTE_CMD && $type <= MODULE_TYPE_REMOTE_CMD_INC) { $tcp_send = $command_text; $custom_string_1 = $command_credential_identifier; $custom_string_2 = $command_os; @@ -275,7 +370,6 @@ if ($create_component) { 'post_process' => $post_process, 'unit' => $unit, 'wizard_level' => $wizard_level, - 'macros' => $macros, 'critical_instructions' => $critical_instructions, 'warning_instructions' => $warning_instructions, 'unknown_instructions' => $unknown_instructions, @@ -289,6 +383,17 @@ if ($create_component) { 'min_ff_event_critical' => $ff_event_critical, 'ff_type' => $ff_type, 'each_ff' => $each_ff, + 'manufacturer_id' => $manufacturer_id, + 'protocol' => $module_protocol, + 'scan_type' => $scan_type, + 'execution_type' => $execution_type, + 'value' => $value, + 'query_class' => $wmi_class, + 'query_key_field' => $query_key_field, + 'query_filters' => $query_filter, + 'name_oid' => $name_oid, + 'module_enabled' => $module_enabled, + 'enabled' => $enabled, ] ); } else { @@ -298,9 +403,17 @@ if ($create_component) { if ($id === false || !$id) { db_pandora_audit( 'Module management', - 'Fail try to create network component' + 'Fail try to create remote component' ); - ui_print_error_message(__('Could not be created')); + + if ($name_check !== false) { + // If name exists, advice about it. + ui_print_error_message(__('Could not be created because the component exists')); + } else { + // Other cases. + ui_print_error_message(__('Could not be created')); + } + include_once 'godmode/modules/manage_network_components_form.php'; return; } @@ -356,7 +469,6 @@ if ($update_component) { 'post_process' => $post_process, 'unit' => $unit, 'wizard_level' => $wizard_level, - 'macros' => $macros, 'critical_instructions' => $critical_instructions, 'warning_instructions' => $warning_instructions, 'unknown_instructions' => $unknown_instructions, @@ -370,6 +482,17 @@ if ($update_component) { 'min_ff_event_critical' => $ff_event_critical, 'ff_type' => $ff_type, 'each_ff' => $each_ff, + 'manufacturer_id' => $manufacturer_id, + 'protocol' => $module_protocol, + 'scan_type' => $scan_type, + 'execution_type' => $execution_type, + 'value' => $value, + 'query_class' => $wmi_class, + 'query_key_field' => $query_key_field, + 'query_filters' => $query_filter, + 'name_oid' => $name_oid, + 'module_enabled' => $module_enabled, + 'enabled' => $enabled, ] ); } else { @@ -559,11 +682,6 @@ foreach ($component_groups as $component_group_key => $component_group_val) { ); } } - - // Only show component groups with local components. - if ($num_components == 0 && $num_components_childs == 0) { - unset($component_groups[$component_group_key]); - } } $table->data[0][1] = html_print_select( @@ -665,14 +783,16 @@ $table->head['checkbox'] = html_print_checkbox( false ); $table->head[0] = __('Module name'); -$table->head[1] = __('Type'); +$table->head[1] = __('Server'); +$table->head[2] = __('Type'); $table->head[3] = __('Description'); $table->head[4] = __('Group'); $table->head[5] = __('Max/Min'); $table->head[6] = __('Action'); $table->size = []; $table->size['checkbox'] = '20px'; -$table->size[1] = '75px'; +$table->size[1] = '40px'; +$table->size[2] = '50px'; $table->size[6] = '80px'; $table->align[6] = 'left'; $table->data = []; @@ -698,7 +818,6 @@ foreach ($components as $component) { $data[0] = ''; $data[0] .= io_safe_output($component['name']); $data[0] .= ''; - $data[1] = ui_print_moduletype_icon($component['type'], true); switch ($component['id_modulo']) { case MODULE_NETWORK: $data[1] .= html_print_image( @@ -724,11 +843,20 @@ foreach ($components as $component) { ); break; + case MODULE_WIZARD: + $data[1] .= html_print_image( + 'images/wand.png', + true, + ['title' => __('Wizard module')] + ); + break; + default: // Not possible. break; } + $data[2] = ui_print_moduletype_icon($component['type'], true); $data[3] = "".mb_strimwidth(io_safe_output($component['description']), 0, 60, '...').''; $data[4] = network_components_get_group_name($component['id_group']); $data[5] = $component['max'].' / '.$component['min']; @@ -777,9 +905,10 @@ echo '
'; html_print_input_hidden('new_component', 1); html_print_select( [ - 2 => __('Create a new network component'), - 4 => __('Create a new plugin component'), - 6 => __('Create a new WMI component'), + COMPONENT_TYPE_NETWORK => __('Create a new network component'), + COMPONENT_TYPE_PLUGIN => __('Create a new plugin component'), + COMPONENT_TYPE_WMI => __('Create a new WMI component'), + COMPONENT_TYPE_WIZARD => __('Create a new wizard component'), ], 'id_component_type', '', diff --git a/pandora_console/godmode/modules/manage_network_components_form.php b/pandora_console/godmode/modules/manage_network_components_form.php index 53a4edbed1..2a63068b8d 100644 --- a/pandora_console/godmode/modules/manage_network_components_form.php +++ b/pandora_console/godmode/modules/manage_network_components_form.php @@ -110,56 +110,69 @@ if ($create_network_from_module) { if (isset($id)) { $component = network_components_get_network_component((int) $id); if ($component !== false) { - $id_component_type = $component['id_modulo']; - $name = $component['name']; - $type = $component['type']; - $description = $component['description']; - $max = $component['max']; - $min = $component['min']; - $module_interval = $component['module_interval']; - $tcp_port = $component['tcp_port']; - $tcp_rcv = $component['tcp_rcv']; - $tcp_send = $component['tcp_send']; - $snmp_community = $component['snmp_community']; - $snmp_oid = $component['snmp_oid']; - $id_module_group = $component['id_module_group']; - $id_group = $component['id_group']; - $id_plugin = $component['id_plugin']; - $plugin_user = $component['plugin_user']; - $plugin_pass = io_output_password($component['plugin_pass']); - $plugin_parameter = $component['plugin_parameter']; - $macros = $component['macros']; - $max_timeout = $component['max_timeout']; - $max_retries = $component['max_retries']; - $dynamic_interval = $component['dynamic_interval']; - $dynamic_max = $component['dynamic_max']; - $dynamic_min = $component['dynamic_min']; - $dynamic_two_tailed = $component['dynamic_two_tailed']; - $min_warning = $component['min_warning']; - $max_warning = $component['max_warning']; - $str_warning = $component['str_warning']; - $max_critical = $component['max_critical']; - $min_critical = $component['min_critical']; - $str_critical = $component['str_critical']; - $ff_event = $component['min_ff_event']; - $history_data = $component['history_data']; - $post_process = $component['post_process']; - $unit = $component['unit']; - $wizard_level = $component['wizard_level']; - $critical_instructions = $component['critical_instructions']; - $warning_instructions = $component['warning_instructions']; - $unknown_instructions = $component['unknown_instructions']; - $critical_inverse = $component['critical_inverse']; - $warning_inverse = $component['warning_inverse']; - $id_category = $component['id_category']; - $tags = $component['tags']; - $ff_event_normal = $component['min_ff_event_normal']; - $ff_event_warning = $component['min_ff_event_warning']; - $ff_event_critical = $component['min_ff_event_critical']; - $ff_type = $component['ff_type']; - $each_ff = $component['each_ff']; + $id_component_type = $component['id_modulo']; + $name = $component['name']; + $type = $component['type']; + $description = $component['description']; + $max = $component['max']; + $min = $component['min']; + $module_interval = $component['module_interval']; + $tcp_port = $component['tcp_port']; + $tcp_rcv = $component['tcp_rcv']; + $tcp_send = $component['tcp_send']; + $snmp_community = $component['snmp_community']; + $snmp_oid = $component['snmp_oid']; + $id_module_group = $component['id_module_group']; + $id_group = $component['id_group']; + $id_plugin = $component['id_plugin']; + $plugin_user = $component['plugin_user']; + $plugin_pass = io_output_password($component['plugin_pass']); + $plugin_parameter = $component['plugin_parameter']; + $macros = $component['macros']; + $max_timeout = $component['max_timeout']; + $max_retries = $component['max_retries']; + $dynamic_interval = $component['dynamic_interval']; + $dynamic_max = $component['dynamic_max']; + $dynamic_min = $component['dynamic_min']; + $dynamic_two_tailed = $component['dynamic_two_tailed']; + $min_warning = $component['min_warning']; + $max_warning = $component['max_warning']; + $str_warning = $component['str_warning']; + $max_critical = $component['max_critical']; + $min_critical = $component['min_critical']; + $str_critical = $component['str_critical']; + $ff_event = $component['min_ff_event']; + $history_data = $component['history_data']; + $post_process = $component['post_process']; + $unit = $component['unit']; + $wizard_level = $component['wizard_level']; + $critical_instructions = $component['critical_instructions']; + $warning_instructions = $component['warning_instructions']; + $unknown_instructions = $component['unknown_instructions']; + $critical_inverse = $component['critical_inverse']; + $warning_inverse = $component['warning_inverse']; + $id_category = $component['id_category']; + $tags = $component['tags']; + $ff_event_normal = $component['min_ff_event_normal']; + $ff_event_warning = $component['min_ff_event_warning']; + $ff_event_critical = $component['min_ff_event_critical']; + $ff_type = $component['ff_type']; + $each_ff = $component['each_ff']; + $manufacturer_id = $component['manufacturer_id']; + $module_protocol = $component['protocol']; + $scan_type = $component['scan_type']; + $execution_type = $component['execution_type']; + $value = $component['value']; + $wmi_class = $component['query_class']; + $query_key_field = $component['query_key_field']; + $query_Key_wmi = $component['key_string']; + $name_oid = $component['name_oid']; + $value_oid = $component['value_oid']; + $query_filter = $component['query_filters']; + $module_enabled = $component['module_enabled']; + $enabled = $component['enabled']; - if ($type >= 15 && $type <= 18) { + if ($type >= MODULE_TYPE_REMOTE_SNMP && $type <= MODULE_TYPE_REMOTE_SNMP_PROC) { // New support for snmp v3. $snmp_version = $component['tcp_send']; $snmp3_auth_user = $component['plugin_user']; @@ -170,7 +183,7 @@ if (isset($id)) { $component['custom_string_2'] ); $snmp3_security_level = $component['custom_string_3']; - } else if ($type >= 34 && $type <= 37) { + } else if ($type >= MODULE_TYPE_REMOTE_CMD && $type <= MODULE_TYPE_REMOTE_CMD_INC) { $command_text = $component['tcp_send']; $command_credential_identifier = $component['custom_string_1']; $command_os = $component['custom_string_2']; @@ -192,7 +205,7 @@ if (isset($id)) { $tcp_send = ''; $snmp_community = ''; $id_module_group = ''; - if ($id_component_type == 6) { + if ($id_component_type == COMPONENT_TYPE_WMI) { $id_group = 14; } else { $id_group = ''; @@ -238,28 +251,67 @@ if (isset($id)) { $command_text = ''; $command_os = 'inherited'; $command_credential_identifier = ''; + + $macros = ''; + $manufacturer_id = ''; + $module_protocol = 'snmp'; + $scan_type = SCAN_TYPE_FIXED; + $execution_type = EXECUTION_TYPE_NETWORK; + $value = ''; + $wmi_class = ''; + $query_key_field = ''; + $query_Key_wmi = ''; + $name_oid = ''; + $value_oid = ''; + $query_filter = ''; + $module_enabled = true; + $enabled = true; } } $table = new stdClass(); -if ($id_component_type == 6) { + +/** + * Common function for adding rows to main table + * + * @param array $row Array with the data for add. + * @param mixed $id If added, the DOM id for this block. + * + * @return void + */ +function push_table_row($row, $id=false) +{ + global $table; + + if ($id) { + $data = [$id => $row]; + } else { + $data = [$row]; + } + + $table->data = array_merge($table->data, $data); +} + + +$remote_components_path = $config['homedir'].'/godmode/modules/'; +if ($id_component_type == COMPONENT_TYPE_WMI) { $categories = [ 0, 1, 2, ]; - include $config['homedir'].'/godmode/modules/manage_network_components_form_common.php'; - include $config['homedir'].'/godmode/modules/manage_network_components_form_wmi.php'; -} else if ($id_component_type == 4) { + include $remote_components_path.'manage_network_components_form_common.php'; + include $remote_components_path.'manage_network_components_form_wmi.php'; +} else if ($id_component_type == COMPONENT_TYPE_PLUGIN) { $categories = [ 0, 1, 2, ]; - include $config['homedir'].'/godmode/modules/manage_network_components_form_common.php'; - include $config['homedir'].'/godmode/modules/manage_network_components_form_plugin.php'; -} else if ($id_component_type == 2 || $create_network_from_module) { + include $remote_components_path.'manage_network_components_form_common.php'; + include $remote_components_path.'manage_network_components_form_plugin.php'; +} else if ($id_component_type == COMPONENT_TYPE_WIZARD) { $categories = [ 3, 4, @@ -269,8 +321,19 @@ if ($id_component_type == 6) { $categories[] = 10; } - include $config['homedir'].'/godmode/modules/manage_network_components_form_common.php'; - include $config['homedir'].'/godmode/modules/manage_network_components_form_network.php'; + include $remote_components_path.'manage_network_components_form_wizard.php'; +} else if ($id_component_type == COMPONENT_TYPE_NETWORK || $create_network_from_module) { + $categories = [ + 3, + 4, + 5, + ]; + if (enterprise_installed()) { + $categories[] = 10; + } + + include $remote_components_path.'manage_network_components_form_common.php'; + include $remote_components_path.'manage_network_components_form_network.php'; } else { return; } @@ -291,15 +354,10 @@ if (defined('METACONSOLE')) { $table->headstyle[0] = 'text-align: center'; } -$table->colspan['description'][1] = 3; -$data = []; -$data[0] = __('Description'); -$data[1] = html_print_textarea('description', 2, 65, $description, '', true); -push_table_row($data, 'description'); - html_print_table($table); echo '
'; +html_print_button(__('Go back'), 'go_back', false, 'history.go(-1);', 'class="sub cancel"'); html_print_input_hidden('id_component_type', $id_component_type); if ($id) { html_print_input_hidden('update_component', 1); diff --git a/pandora_console/godmode/modules/manage_network_components_form_common.php b/pandora_console/godmode/modules/manage_network_components_form_common.php index 7efe7f21ba..35c5648db2 100644 --- a/pandora_console/godmode/modules/manage_network_components_form_common.php +++ b/pandora_console/godmode/modules/manage_network_components_form_common.php @@ -23,23 +23,6 @@ if (! check_acl($config['id_user'], 0, 'PM') && ! check_acl($config['id_user'], return; } -include_javascript_d3(); - - -function push_table_row($row, $id=false) -{ - global $table; - - if ($id) { - $data = [$id => $row]; - } else { - $data = [$row]; - } - - $table->data = array_merge($table->data, $data); -} - - $table->id = 'network_component'; $table->width = '100%'; $table->class = 'databox'; @@ -323,7 +306,11 @@ $table->data[12][0] = __('Unknown instructions').ui_print_help_tip(__('Instructi $table->data[12][1] = html_print_textarea('unknown_instructions', 2, 65, $unknown_instructions, '', true); $table->colspan[12][1] = 3; -$next_row = 13; +$table->data[13][0] = __('Description'); +$table->data[13][1] = html_print_textarea('description', 2, 65, $description, '', true); +$table->colspan[13][1] = 3; + +$next_row = 14; if (check_acl($config['id_user'], 0, 'PM')) { $table->data[$next_row][0] = __('Category'); diff --git a/pandora_console/godmode/modules/manage_network_components_form_network.php b/pandora_console/godmode/modules/manage_network_components_form_network.php index 979b6d74b4..a266c2b363 100755 --- a/pandora_console/godmode/modules/manage_network_components_form_network.php +++ b/pandora_console/godmode/modules/manage_network_components_form_network.php @@ -187,8 +187,21 @@ $data[1] = html_print_extended_select_for_post_process( false, true ); -$data[2] = ''; -$data[3] = ''; + +$data[2] = __('Name OID').' '.ui_print_help_icon('xxx', true); +$data[3] = html_print_input_text_extended( + 'name_oid', + $name_oid, + 'name_oid', + '', + 30, + 10000, + '', + '', + '', + true +); + push_table_row($data, 'field_process'); // Advanced stuff. diff --git a/pandora_console/godmode/modules/manage_network_components_form_wizard.php b/pandora_console/godmode/modules/manage_network_components_form_wizard.php new file mode 100644 index 0000000000..c428e206f4 --- /dev/null +++ b/pandora_console/godmode/modules/manage_network_components_form_wizard.php @@ -0,0 +1,839 @@ + $field) { + // Avoid the not extra fields. + if (preg_match('/extra_field_/', $k) === 0) { + continue; + } else { + $cntFields++; + } + + // Get the number of extra field. + $tmpExtraField = explode('_', $k); + $idField = $tmpExtraField[2]; + + if ($protocol === 'snmp') { + $extraFieldText = '_oid_'.$idField.'_'; + $rowId = 'pluginRow-'.$protocol.'Row'; + } else if ($protocol === 'wmi') { + $extraFieldText = '_field_wmi_'.$idField.'_'; + $rowId = $protocol.'Row'; + } + + $data = []; + $data[0] = '
'.$extraFieldText.'
'; + $data[1] = html_print_input_text_extended( + 'extra_field_'.$protocol.'_'.$idField, + $field, + 'extra_field_'.$protocol.'_'.$idField, + '', + 100, + 10000, + '', + '', + '', + true + ); + + $table->colspan['oid-list-'.$rowId.'-row-'.$idField][1] = 3; + push_table_row($data, 'oid-list-'.$rowId.'-row-'.$idField); + } + + $data = []; + $image_add = html_print_div( + [ + 'id' => 'add_field_button', + 'class' => 'float-right clickable', + 'content' => html_print_image( + 'images/add.png', + true, + [ + 'title' => __('Add a macro oid'), + 'onclick' => 'manageComponentFields(\'add\', \'oid-list-'.$rowId.'\');', + ] + ), + ], + true + ); + + $image_del = html_print_div( + [ + 'id' => 'del_field_button', + 'class' => 'float-right', + 'style' => $cntFields <= 1 ? 'opacity: 0.5;' : '', + 'content' => html_print_image( + 'images/cross.png', + true, + [ + 'title' => __('Remove last macro oid'), + 'onclick' => 'manageComponentFields(\'del\', \'oid-list-'.$rowId.'\');', + 'style' => 'margin-left: 1em;', + ] + ), + ], + true + ); + + $data[0] = html_print_div( + [ + 'id' => 'combo_oid_button', + 'content' => $image_del.$image_add, + ], + true + ); + + push_table_row($data, 'manage-oid-list-'.$rowId); +} + + +// Get the data. +$module_type_list = [ + MODULE_TYPE_NUMERIC => __('Numeric'), + MODULE_TYPE_INCREMENTAL => __('Incremental'), + MODULE_TYPE_BOOLEAN => __('Boolean'), + MODULE_TYPE_ALPHANUMERIC => __('Alphanumeric'), +]; + +$module_protocol_list = [ + 'snmp' => 'SNMP', + 'wmi' => 'WMI', +]; + +$scan_type_list = [ + SCAN_TYPE_FIXED => 'Fixed', + SCAN_TYPE_DYNAMIC => 'Dynamic', +]; + +$execution_type_list = [ + EXECUTION_TYPE_NETWORK => 'Network', + EXECUTION_TYPE_PLUGIN => 'Plugin', +]; +// Establish module type value. +switch ($type) { + case MODULE_TYPE_REMOTE_SNMP: + case MODULE_TYPE_GENERIC_DATA: + $module_type = MODULE_TYPE_NUMERIC; + break; + + case MODULE_TYPE_REMOTE_SNMP_INC: + case MODULE_TYPE_GENERIC_DATA_INC: + $module_type = MODULE_TYPE_INCREMENTAL; + break; + + case MODULE_TYPE_REMOTE_SNMP_STRING: + case MODULE_TYPE_GENERIC_DATA_STRING: + $module_type = MODULE_TYPE_ALPHANUMERIC; + break; + + case MODULE_TYPE_REMOTE_SNMP_PROC: + case MODULE_TYPE_GENERIC_PROC: + $module_type = MODULE_TYPE_BOOLEAN; + break; + + default: + $module_type = MODULE_TYPE_NUMERIC; + break; +} + +if (empty($query_filter) === false) { + $query_filter = json_decode($query_filter, true); +} + +$component_group_list = network_components_get_groups(); + +// List of server plugins related with Wizard SNMP. +$server_plugin_data = []; +$server_plugin_list = []; +$plugins = db_get_all_rows_sql( + 'SELECT id, description, execute, name, macros, parameters FROM tplugin' +); +foreach ($plugins as $plugin) { + $server_plugin_list[$plugin['id']] = $plugin['name']; + $server_plugin_data[$plugin['id']] = [ + 'description' => $plugin['description'], + 'name' => $plugin['name'], + 'parameters' => $plugin['parameters'], + 'macros' => array_reverse(json_decode($plugin['macros'], true)), + 'execute' => $plugin['execute'], + 'macrosElement' => base64_encode(json_encode(io_safe_output(json_decode($macros, true)))), + ]; +} + +// Store the plugin data for JS managing in JSON format. +$hiddenPluginServers = ''; +foreach ($server_plugin_data as $index => $plugin) { + // Description can have special chars that would crash Javascript. + $plugin['description'] = mb_strimwidth(io_safe_output($plugin['description']), 0, 80, '...'); + $hiddenPluginServers .= html_print_input_hidden( + 'server_plugin_data_'.$index, + json_encode(io_safe_input($plugin)) + ); +} + +// Generate needed OID macros. +$extra_fields_names = []; +foreach ($extra_fields as $k => $field) { + $extra_fields_names[$k] = $module_protocol === 'snmp' ? '_oid_'.$k.'_' : $k; +} + +// Convert the string DB format of macros to JSON. +$macros = json_decode($macros); +// Only for extra field generate purposes. +if (empty($macros) === true) { + $macros = ['extra_field_1' => '']; +} + +// +// Construction of form. +// +$table->id = 'network_component'; +$table->width = '100%'; +$table->class = 'databox'; +$table->style = []; +$table->style[0] = 'font-weight: bold'; +$table->style[2] = 'font-weight: bold'; +$table->colspan = []; +if (!enterprise_installed()) { + $table->colspan[0][1] = 3; +} + +$table->data = []; + +$data = []; +$data[0] = __('Enabled'); +$data[1] = html_print_checkbox_switch( + 'enabled', + 1, + $enabled, + true, + false, + '', + false +); + +$data[2] = __('Add by default'); +$data[3] = html_print_checkbox_switch( + 'module_enabled', + 1, + $module_enabled, + true, + false, + '', + false +); + +push_table_row($data, 'module-enable-row'); + +$data = []; +$data[0] = __('Module name'); +$data[1] = html_print_input_text_extended( + 'name', + $name, + 'name', + '', + 50, + 255, + '', + '', + '', + true +); + +$data[2] = __('Module protocol'); +$data[3] = html_print_select( + $module_protocol_list, + 'module_protocol', + $module_protocol, + 'manageVisibleFields()', + '', + '', + true, + false, + false, + '' +).' '.html_print_image( + 'images/'.$module_protocol.'.png', + true, + [ + 'title' => strtoupper($module_protocol).' '.__('Protocol'), + 'class' => 'add_comments_button', + 'style' => 'width: 18px;', + 'id' => 'module_protocol_symbol', + ] +); +$type = 4; +$data[4] = html_print_input_hidden('type', $type, true); + +push_table_row($data, 'module-name-type-row'); + +$data = []; + +$data[0] = __('Name OID'); +$data[1] = html_print_input_text('name_oid', $name_oid, '', 50, 255, true); + +$data[2] = __('Manufacturer ID'); +$data[3] = html_print_select_from_sql( + 'SELECT manufacturer as `id`, manufacturer FROM tpen GROUP BY manufacturer', + 'manufacturer_id', + $manufacturer_id, + '', + 'All', + '', + true, + false, + false, + '' +); + +push_table_row($data, 'manufacturer-nameOID-snmpRow-row'); + +$data = []; + +$data[0] = __('Module type'); +$data[1] = html_print_select( + $module_type_list, + 'module_type', + $module_type, + 'changeModuleType()', + '', + '', + true, + false, + false, + '' +); + +$data[2] = __('Component Group'); +$data[3] = html_print_select( + $component_group_list, + 'id_group', + $id_group, + '', + '', + '', + true, + false, + false, + '' +); + +push_table_row($data, 'moduleType-blockName-row'); + +$data = []; + +$data[0] = __('Module unit'); +$data[1] = html_print_extended_select_for_unit( + 'unit', + $unit, + '', + '', + '0', + false, + true, + false, + false +); + +push_table_row($data, 'moduleUnit-blockName-row'); + +$data = []; +$data[0] = __('Warning'); +// Warning interval values. +$data[1] = ''; +$data[1] .= ''.__('Min.').' '; +$data[1] .= html_print_input_text('min_warning', $min_warning, '', 5, 15, true); +$data[1] .= '
'.__('Max.').' '; +$data[1] .= html_print_input_text('max_warning', $max_warning, '', 5, 15, true); +$data[1] .= '
'; +// Warning string values. +$data[1] .= ''.__('String').'  '; +$data[1] .= html_print_input_text('str_warning', $str_warning, '', 5, 1024, true).''; +// Warning inverse values. +$data[1] .= '
'.__('Inverse interval').' '; +$data[1] .= html_print_checkbox('warning_inverse', 1, $warning_inverse, true); + +$data[2] = ' '; +$table->colspan['warning-svg-row'][2] = 2; +$table->rowspan['warning-svg-row'][2] = 3; + +push_table_row($data, 'warning-svg-row'); + +$data = []; +$data[0] = __('Critical'); +// Critical interval values. +$data[1] = ''; +$data[1] .= ''.__('Min.').' '; +$data[1] .= html_print_input_text( + 'min_critical', + $min_critical, + '', + 5, + 15, + true +); +$data[1] .= '
'.__('Max.').' '; +$data[1] .= html_print_input_text( + 'max_critical', + $max_critical, + '', + 5, + 15, + true +); +$data[1] .= '
'; +// Critical string values. +$data[1] .= ''.__('String').'  '; +$data[1] .= html_print_input_text('str_critical', $str_critical, '', 5, 1024, true).''; +// Critical inverse values. +$data[1] .= '
'.__('Inverse interval').' '; +$data[1] .= html_print_checkbox('critical_inverse', 1, $critical_inverse, true); + +push_table_row($data, 'critical-row'); + +$data = []; +$data[0] = __('Description'); +$data[1] = html_print_textarea('description', 2, 65, $description, '', true); +$table->colspan['module-description-row'][1] = 3; + +push_table_row($data, 'module-description-row'); + +$data = []; +$data[0] = __('Scan Type'); +$data[1] = html_print_select( + $scan_type_list, + 'scan_type', + $scan_type, + '', + '', + '', + true, + false, + false, + '' +); + +$data[2] = __('Execution type'); +$data[3] = html_print_select( + $execution_type_list, + 'execution_type', + $execution_type, + 'manageVisibleFields()', + '', + '', + true, + false, + false, + '' +); + +push_table_row($data, 'scan-execution-row'); + +// +// SNMP rows. +// +$data = []; +$data[0] = __('Value OID'); +$data[1] = html_print_input_text_extended( + 'value_oid', + (string) $value, + 'value_oid', + '', + 100, + 10000, + '', + '', + '', + true +); +$table->colspan['value-oid-networkRow-snmpRow'][1] = 3; +push_table_row($data, 'value-oid-networkRow-snmpRow'); + +$data = []; +$data[0] = __('Macros OID'); + +push_table_row($data, 'title-oid-macros-pluginRow-snmpRow'); + +// Generation of extra fields needed. +generateExtraFields($macros, 'snmp'); + +$data = []; +$data[0] = __('Value operation'); +$data[1] = html_print_input_text_extended( + 'value_operation_snmp', + $macros->value_operation, + 'value_operation_snmp', + '', + 100, + 10000, + '', + '', + '', + true +); +$table->colspan['value-operation-pluginRow-snmpRow'][1] = 3; +push_table_row($data, 'value-operation-pluginRow-snmpRow'); + +$data = []; +$data[0] = __('Satellite execution'); +$data[1] = html_print_input_text_extended( + 'satellite_execution_snmp', + $macros->satellite_execution, + 'satellite_execution_snmp', + '', + 100, + 10000, + '', + '', + '', + true +); +$table->colspan['satellite-execution-pluginRow-snmpRow'][1] = 3; +push_table_row($data, 'satellite-execution-pluginRow-snmpRow'); + +$data = []; +$data[0] = __('Server plugin'); +$data[1] = html_print_select( + $server_plugin_list, + 'server_plugin_snmp', + $macros->server_plugin, + 'changePlugin()', + '', + '', + true, + false, + false, + '' +).'   '; + +push_table_row($data, 'server-plugin-pluginRow-snmpRow'); + +// The creation of this fields will be dynamically. +$data = []; +$data[0] = 'field0'; +$data[1] = html_print_input_text_extended( + 'field0_snmp_field', + '', + 'field0_snmp_fields', + '', + 30, + 255, + '', + '', + '', + true +); + +push_table_row($data, 'plugin-snmp-fields-dynamicMacroRow-pluginRow-snmpRow-0'); + +// +// WMI Fields. +// +$data = []; +$data[0] = __('WMI class'); +$data[1] = html_print_input_text_extended( + 'wmi_class', + $wmi_class, + 'wmi_class', + '', + 100, + 10000, + '', + '', + '', + true +); +$table->colspan['wmi-class-wmiRow'][1] = 3; +push_table_row($data, 'wmi-class-wmiRow'); + +$data = []; +$data[0] = __('Query key field').' (_field_wmi_0_)'; +$data[1] = html_print_input_text_extended( + 'query_key_field', + $query_key_field, + 'query_key_field', + '', + 100, + 10000, + '', + '', + '', + true +); +$table->colspan['query-key-field-wmiRow'][1] = 3; +push_table_row($data, 'query-key-field-wmiRow'); + +$data = []; +$data[0] = __('Query extra fields'); + +push_table_row($data, 'title-extra-field-wmiRow'); + +// Generation of extra fields needed. +generateExtraFields($macros, 'wmi'); + +$data = []; +$data[0] = __('Query filters'); +$table->style[0] = 'font-weight: bold;'; + +push_table_row($data, 'title-query-filters-wmiRow'); + +$data = []; +$data[0] = '
'.__('Scan').'
'; +$data[1] = html_print_input_text_extended( + 'query_filter_scan', + $query_filter['scan'], + 'query_filter_scan', + '', + 100, + 10000, + '', + '', + '', + true +); +$table->colspan['query-filter-scan-wmiRow'][1] = 3; +push_table_row($data, 'query-filter-scan-wmiRow'); + +if ($execution_type == EXECUTION_TYPE_NETWORK) { + $data = []; + $data[0] = '
'.__('Execution').'
'; + $data[1] = html_print_input_text_extended( + 'query_filter_execution', + $query_filter['execution'], + 'query_filter_execution', + '', + 100, + 10000, + '', + '', + '', + true + ); + $table->colspan['query-filter-execution-wmiRow'][1] = 3; + push_table_row($data, 'query-filter-execution-wmiRow'); +} + + +$data = []; +$data[0] = __('Field value'); +$data[1] = html_print_input_number( + [ + 'name' => 'field_value_filter', + 'value' => $query_filter['field'], + 'id' => 'field_value_filter', + 'min' => 0, + 'return' => true, + ] +); + +$data[2] = __('Key string'); +$data[3] = html_print_input_text_extended( + 'key_string_filter', + $query_filter['key_string'], + 'key_string_filter', + '', + 30, + 255, + '', + '', + '', + true +); + +push_table_row($data, 'filters-list-fields-networkRow-wmiRow'); + +$data = []; +$data[0] = __('Value operation'); +$data[1] = html_print_input_text_extended( + 'value_operation_wmi', + $macros->value_operation, + 'value_operation_wmi', + '', + 100, + 10000, + '', + '', + '', + true +); +$table->colspan['value-operation-pluginRow-wmiRow'][1] = 3; +push_table_row($data, 'value-operation-pluginRow-wmiRow'); + +$data = []; +$data[0] = __('Satellite execution'); +$data[1] = html_print_input_text_extended( + 'satellite_execution_wmi', + $macros->satellite_execution, + 'satellite_execution_wmi', + '', + 100, + 10000, + '', + '', + '', + true +); +$table->colspan['satellite-execution-pluginRow-wmiRow'][1] = 3; +push_table_row($data, 'satellite-execution-pluginRow-wmiRow'); + +$data = []; +$data[0] = __('Server plugin'); +$data[1] = html_print_select( + $server_plugin_list, + 'server_plugin_wmi', + $macros->server_plugin, + 'changePlugin()', + '', + '', + true, + false, + false, + '' +).'   '; + +push_table_row($data, 'server-plugin-pluginRow-wmiRow'); + +// The creation of this fields will be dynamically. +$data = []; +$data[0] = 'field0'; +$data[1] = html_print_input_text_extended( + 'field0_wmi_field', + '', + 'field0_wmi_fields', + '', + 30, + 255, + '', + '', + '', + true +); + +push_table_row($data, 'plugin-wmi-fields-dynamicMacroRow-pluginRow-wmiRow-0'); + +?> + + \ No newline at end of file diff --git a/pandora_console/godmode/reporting/graph_builder.graph_editor.php b/pandora_console/godmode/reporting/graph_builder.graph_editor.php index d69729eac9..1227494e91 100644 --- a/pandora_console/godmode/reporting/graph_builder.graph_editor.php +++ b/pandora_console/godmode/reporting/graph_builder.graph_editor.php @@ -190,8 +190,20 @@ if ($editGraph) { $weights = implode(',', $weight_array); } + + +$count_module_array = count($module_array); +if ($count_module_array > 10) { + ui_print_warning_message( + __( + 'The maximum number of items in a chart is 10. You have %s elements, only first 10 will be displayed.', + $count_module_array + ) + ); +} + // Modules table. -if (count($module_array) > 0) { +if ($count_module_array > 0) { echo "
"; echo ' @@ -202,7 +214,7 @@ if (count($module_array) > 0) { '; $color = 0; - for ($a = 0; $a < count($module_array); $a++) { + for ($a = 0; $a < $count_module_array; $a++) { // Calculate table line color. if ($color == 1) { $tdcolor = 'datos'; diff --git a/pandora_console/godmode/reporting/map_builder.php b/pandora_console/godmode/reporting/map_builder.php index 1a17896383..75aaa35d2d 100644 --- a/pandora_console/godmode/reporting/map_builder.php +++ b/pandora_console/godmode/reporting/map_builder.php @@ -71,12 +71,6 @@ if ($is_enterprise !== ENTERPRISE_NOT_HOOK && $vconsoles_manage) { 'active' => false, 'text' => ''.html_print_image('images/wand.png', true, ['title' => __('Visual Console Template Wizard')]).'', ]; - if ($is_metaconsole) { - $buttons['visual_console_manager'] = [ - 'active' => false, - 'text' => ''.html_print_image('images/builder.png', true, ['title' => __('Visual Console Manager')]).'', - ]; - } } if (!$is_metaconsole) { diff --git a/pandora_console/godmode/reporting/reporting_builder.item_editor.php b/pandora_console/godmode/reporting/reporting_builder.item_editor.php index 416004a539..2bfd736fe3 100755 --- a/pandora_console/godmode/reporting/reporting_builder.item_editor.php +++ b/pandora_console/godmode/reporting/reporting_builder.item_editor.php @@ -484,6 +484,16 @@ switch ($action) { $period = $item['period']; break; + case 'last_value': + $description = $item['description']; + $idAgentModule = $item['id_agent_module']; + $idAgent = db_get_value_filter( + 'id_agente', + 'tagente_modulo', + ['id_agente_modulo' => $idAgentModule] + ); + break; + case 'alert_report_module': $description = $item['description']; $idAgentModule = $item['id_agent_module']; @@ -744,6 +754,7 @@ switch ($action) { case 'historical_data': case 'sumatory': case 'database_serialized': + case 'last_value': case 'monitor_report': case 'min_value': case 'max_value': @@ -3843,6 +3854,7 @@ $(document).ready (function () { case 'min_value': case 'monitor_report': case 'database_serialized': + case 'last_value': case 'sumatory': case 'historical_data': case 'agent_configuration': @@ -3884,6 +3896,7 @@ $(document).ready (function () { case 'max_value': case 'min_value': case 'database_serialized': + case 'last_value': case 'sumatory': case 'historical_data': case 'increment': @@ -3964,6 +3977,7 @@ $(document).ready (function () { case 'min_value': case 'monitor_report': case 'database_serialized': + case 'last_value': case 'sumatory': case 'historical_data': case 'agent_configuration': @@ -4003,6 +4017,7 @@ $(document).ready (function () { case 'max_value': case 'min_value': case 'database_serialized': + case 'last_value': case 'sumatory': case 'historical_data': case 'increment': @@ -5142,6 +5157,12 @@ function chooseType() { $("#row_historical_db_check").hide(); break; + case 'last_value': + $("#row_description").show(); + $("#row_agent").show(); + $("#row_module").show(); + break; + case 'alert_report_module': $("#row_description").show(); $("#row_agent").show(); diff --git a/pandora_console/godmode/reporting/reporting_builder.list_items.php b/pandora_console/godmode/reporting/reporting_builder.list_items.php index af9bf7b5f2..ff4c46abf8 100755 --- a/pandora_console/godmode/reporting/reporting_builder.list_items.php +++ b/pandora_console/godmode/reporting/reporting_builder.list_items.php @@ -471,7 +471,7 @@ foreach ($items as $item) { if ($is_inventory_item) { $external_source = json_decode($item['external_source'], true); $agents = $external_source['id_agents']; - $modules = $external_source['inventory_modules']; + $modules = io_safe_output($external_source['inventory_modules']); $agent_name_db = []; foreach ($agents as $a) { diff --git a/pandora_console/godmode/reporting/reporting_builder.php b/pandora_console/godmode/reporting/reporting_builder.php index 9e24684fd9..a1eeb45766 100755 --- a/pandora_console/godmode/reporting/reporting_builder.php +++ b/pandora_console/godmode/reporting/reporting_builder.php @@ -767,9 +767,14 @@ switch ($action) { ) ); - if (count($reports)) { + $filters = [ + 'search' => $search, + 'id_group' => $id_group, + ]; + $filtersStr = http_build_query($filters, '', '&'); $url = 'index.php?sec=reporting&sec2=godmode/reporting/reporting_builder'; + $url .= '&'.$filtersStr; ui_pagination($total_reports, $url, $offset, $pagination); $table = new stdClass(); diff --git a/pandora_console/godmode/reporting/visual_console_favorite.php b/pandora_console/godmode/reporting/visual_console_favorite.php index 201fdab148..b9f4fe28d7 100644 --- a/pandora_console/godmode/reporting/visual_console_favorite.php +++ b/pandora_console/godmode/reporting/visual_console_favorite.php @@ -64,13 +64,6 @@ if ($is_enterprise !== ENTERPRISE_NOT_HOOK && $vconsoles_manage) { 'active' => false, 'text' => ''.html_print_image('images/wand.png', true, ['title' => __('Visual Console Template Wizard')]).'', ]; - - if ($is_metaconsole) { - $buttons['visual_console_manager'] = [ - 'active' => false, - 'text' => ''.html_print_image('images/builder.png', true, ['title' => __('Visual Console Manager')]).'', - ]; - } } if (!$is_metaconsole) { diff --git a/pandora_console/godmode/servers/modificar_server.php b/pandora_console/godmode/servers/modificar_server.php index cd401b0cc5..9062eab0a4 100644 --- a/pandora_console/godmode/servers/modificar_server.php +++ b/pandora_console/godmode/servers/modificar_server.php @@ -140,8 +140,8 @@ if (isset($_GET['server'])) { ui_print_error_message(__('There was a problem deleting the server')); } } else if (isset($_GET['update'])) { - $address = get_parameter_post('address'); - $description = get_parameter_post('description'); + $address = trim(get_parameter_post('address'), ' '); + $description = trim(get_parameter_post('description'), ' '); $id_server = get_parameter_post('server'); $exec_proxy = get_parameter_post('exec_proxy'); $port = get_parameter_post('port'); diff --git a/pandora_console/godmode/setup/os.list.php b/pandora_console/godmode/setup/os.list.php index 07365edc6c..ebd368a82a 100644 --- a/pandora_console/godmode/setup/os.list.php +++ b/pandora_console/godmode/setup/os.list.php @@ -83,9 +83,9 @@ foreach ($osList as $os) { } if (isset($data)) { - ui_pagination($count_osList, false, $offset); + ui_pagination($count_osList, ui_get_url_refresh(['message' => false]), $offset); html_print_table($table); - ui_pagination($count_osList, false, $offset, 0, false, 'offset', true, 'pagination-bottom'); + ui_pagination($count_osList, ui_get_url_refresh(['message' => false]), $offset, 0, false, 'offset', true, 'pagination-bottom'); } else { ui_print_info_message(['no_close' => true, 'message' => __('There are no defined operating systems') ]); } diff --git a/pandora_console/godmode/setup/os.php b/pandora_console/godmode/setup/os.php index aa0bd2dd13..99cce6e61d 100644 --- a/pandora_console/godmode/setup/os.php +++ b/pandora_console/godmode/setup/os.php @@ -24,6 +24,7 @@ if (! check_acl($config['id_user'], 0, 'PM') && ! is_user_admin($config['id_user $action = get_parameter('action', 'new'); $idOS = get_parameter('id_os', 0); +$id_message = get_parameter('message', 0); if (is_metaconsole()) { $tab = get_parameter('tab2', 'list'); } else { @@ -50,6 +51,7 @@ switch ($action) { $textButton = __('Create'); $classButton = 'class="sub next"'; break; + case 'edit': $actionHidden = 'update'; $textButton = __('Update'); @@ -71,14 +73,20 @@ switch ($action) { } if ($resultOrId === false) { - $message = ui_print_error_message(__('Fail creating OS'), '', true); + $message = 2; $tab = 'builder'; $actionHidden = 'save'; $textButton = __('Create'); $classButton = 'class="sub next"'; } else { - $message = ui_print_success_message(__('Success creating OS'), '', true); $tab = 'list'; + $message = 1; + } + + if (is_metaconsole()) { + header('Location:'.$config['homeurl'].'index.php?sec=advanced&sec2=advanced/component_management&tab=os_manage&tab2='.$tab.'&message='.$message); + } else { + header('Location:'.$config['homeurl'].'index.php?sec=gsetup&sec2=godmode/setup/os&tab='.$tab.'&message='.$message); } break; @@ -100,10 +108,11 @@ switch ($action) { $result = db_process_sql_update('tconfig_os', $values, ['id_os' => $idOS]); } - $message = ui_print_result_message($result, __('Success updatng OS'), __('Error updating OS'), '', true); if ($result !== false) { + $message = 3; $tab = 'list'; } else { + $message = 4; $tab = 'builder'; $os = db_get_row_filter('tconfig_os', ['id_os' => $idOS]); $name = $os['name']; @@ -112,6 +121,11 @@ switch ($action) { $actionHidden = 'update'; $textButton = __('Update'); $classButton = 'class="sub upd"'; + if (is_metaconsole()) { + header('Location:'.$config['homeurl'].'index.php?sec=advanced&sec2=advanced/component_management&tab=os_manage&tab2='.$tab.'&message='.$message); + } else { + header('Location:'.$config['homeurl'].'index.php?sec=gsetup&sec2=godmode/setup/os&tab='.$tab.'&message='.$message); + } break; case 'delete': @@ -120,11 +134,20 @@ switch ($action) { $count = $count[0]['count']; if ($count > 0) { - $message = ui_print_error_message(__('There are agents with this OS.'), '', true); + $message = 5; } else { $result = (bool) db_process_sql_delete('tconfig_os', ['id_os' => $idOS]); + if ($result) { + $message = 6; + } else { + $message = 7; + } + } - $message = ui_print_result_message($result, __('Success deleting'), __('Error deleting'), '', true); + if (is_metaconsole()) { + header('Location:'.$config['homeurl'].'index.php?sec=advanced&sec2=advanced/component_management&tab=os_manage&tab2='.$tab.'&message='.$message); + } else { + header('Location:'.$config['homeurl'].'index.php?sec=gsetup&sec2=godmode/setup/os&tab='.$tab.'&message='.$message); } break; } @@ -143,11 +166,45 @@ $buttons = [ $buttons[$tab]['active'] = true; if (!is_metaconsole()) { - // Header + // Header. ui_print_page_header(__('Edit OS'), '', false, '', true, $buttons); } -echo $message; +if (!empty($id_message)) { + switch ($id_message) { + case 1: + echo ui_print_success_message(__('Success creating OS'), '', true); + break; + + case 2: + echo ui_print_error_message(__('Fail creating OS'), '', true); + break; + + case 3: + echo ui_print_success_message(__('Success updating OS'), '', true); + break; + + case 4: + echo ui_print_error_message(__('Error updating OS'), '', true); + break; + + case 5: + echo ui_print_error_message(__('There are agents with this OS.'), '', true); + break; + + case 6: + echo ui_print_success_message(__('Success deleting'), '', true); + break; + + case 7: + echo ui_print_error_message(__('Error deleting'), '', true); + break; + + default: + // Default. + break; + } +} switch ($tab) { case 'list': diff --git a/pandora_console/godmode/setup/setup_general.php b/pandora_console/godmode/setup/setup_general.php index d28a5e43fe..0d8ce68e8e 100644 --- a/pandora_console/godmode/setup/setup_general.php +++ b/pandora_console/godmode/setup/setup_general.php @@ -276,6 +276,9 @@ $table->data[$i++][1] = html_print_checkbox_switch('event_storm_protection', 1, $table->data[$i][0] = __('Command Snapshot'); $table->data[$i++][1] = html_print_checkbox_switch('command_snapshot', 1, $config['command_snapshot'], true); +$table->data[$i][0] = __('Change remote config encoding'); +$table->data[$i++][1] = html_print_checkbox_switch('use_custom_encoding', 1, $config['use_custom_encoding'], true); + $table->data[$i][0] = __('Server logs directory'); $table->data[$i++][1] = html_print_input_text( 'server_log_dir', @@ -329,15 +332,18 @@ $table->data[$i++][1] = html_print_input_text( $table->data[$i][0] = __('Include agents manually disabled'); $table->data[$i++][1] = html_print_checkbox_switch('include_agents', 1, $config['include_agents'], true); -$table->data[$i][0] = __('Audit log directory'); -$table->data[$i++][1] = html_print_input_text('auditdir', io_safe_output($config['auditdir']), '', 30, 100, true); - $table->data[$i][0] = __('Set alias as name by default in agent creation'); $table->data[$i++][1] = html_print_checkbox_switch('alias_as_name', 1, $config['alias_as_name'], true); $table->data[$i][0] = __('Unique IP'); $table->data[$i++][1] = html_print_checkbox_switch('unique_ip', 1, $config['unique_ip'], true); +$table->data[$i][0] = __('Enable console log').ui_print_help_tip(__('Log location').': pandora_console/log/console.log', true); +$table->data[$i++][1] = html_print_checkbox_switch('console_log_enabled', 1, $config['console_log_enabled'], true); + +$table->data[$i][0] = __('Enable audit log').ui_print_help_tip(__('Log location').': pandora_console/log/audit.log', true); +$table->data[$i++][1] = html_print_checkbox_switch('audit_log_enabled', 1, $config['audit_log_enabled'], true); + echo ''; echo '
'; diff --git a/pandora_console/godmode/setup/setup_visuals.php b/pandora_console/godmode/setup/setup_visuals.php index 0631a04903..9874d4503b 100755 --- a/pandora_console/godmode/setup/setup_visuals.php +++ b/pandora_console/godmode/setup/setup_visuals.php @@ -1065,8 +1065,12 @@ $row++; } } - // Logo - $table_report->data['custom_report_front-logo'][0] = __('Custom report front').' - '.__('Custom logo'); + // Logo. + $table_report->data['custom_report_front-logo'][0] = __('Custom report front').' - '.__('Custom logo').ui_print_help_tip( + __("The dir of custom logos is in your www Console in 'images/custom_logo'. You can upload more files (ONLY JPEG AND PNG) in upload tool in console."), + true + ); + $table_report->data['custom_report_front-logo'][1] = html_print_select( $customLogos, 'custom_report_front_logo', @@ -1076,7 +1080,7 @@ $row++; '', true ); - // Preview + // Preview. $table_report->data['custom_report_front-preview'][0] = __('Custom report front').' - '.'Preview'; if (empty($config['custom_report_front_logo'])) { $config['custom_report_front_logo'] = 'images/pandora_logo_white.jpg'; @@ -1084,23 +1088,32 @@ $row++; $table_report->data['custom_report_front-preview'][1] = ''.html_print_image($config['custom_report_front_logo'], true).''; - // Header + // Header. $table_report->data['custom_report_front-header'][0] = __('Custom report front').' - '.__('Header'); + + // Do not remove io_safe_output in textarea. TinyMCE avoids XSS injection. $table_report->data['custom_report_front-header'][1] = html_print_textarea( 'custom_report_front_header', 5, 15, - $config['custom_report_front_header'], + io_safe_output($config['custom_report_front_header']), 'style="width: 38em;"', true ); - // First page + // First page. + // Do not remove io_safe_output in textarea. TinyMCE avoids XSS injection. + if ($config['custom_report_front']) { + $firstpage_content = $config['custom_report_front_firstpage']; + } else { + $firstpage_content = io_safe_output($config['custom_report_front_firstpage']); + } + $table_report->data['custom_report_front-first_page'][0] = __('Custom report front').' - '.__('First page'); $custom_report_front_firstpage = str_replace( '(_URLIMAGE_)', ui_get_full_url(false, true, false, false), - $config['custom_report_front_firstpage'] + io_safe_output($firstpage_content) ); $table_report->data['custom_report_front-first_page'][1] = html_print_textarea( 'custom_report_front_firstpage', @@ -1111,13 +1124,15 @@ $row++; true ); - // Footer + // Footer. $table_report->data['custom_report_front-footer'][0] = __('Custom report front').' - '.__('Footer'); + + // Do not remove io_safe_output in textarea. TinyMCE avoids XSS injection. $table_report->data['custom_report_front-footer'][1] = html_print_textarea( 'custom_report_front_footer', 5, 15, - $config['custom_report_front_footer'], + io_safe_output($config['custom_report_front_footer']), 'style="width: 38em;"', true ); diff --git a/pandora_console/godmode/snmpconsole/snmp_alert.php b/pandora_console/godmode/snmpconsole/snmp_alert.php index 8400a9ebe0..7728668454 100755 --- a/pandora_console/godmode/snmpconsole/snmp_alert.php +++ b/pandora_console/godmode/snmpconsole/snmp_alert.php @@ -117,7 +117,7 @@ if ($save_alert || $modify_alert) { $al_field7 = (string) get_parameter_post('field7_value'); $al_field8 = (string) get_parameter_post('field8_value'); $al_field9 = (string) get_parameter_post('field9_value'); - $al_field10 = (string) get_parameter_post('al_field10'); + $al_field10 = (string) get_parameter_post('field10_value'); $al_field11 = (string) get_parameter_post('field11_value'); $al_field12 = (string) get_parameter_post('field12_value'); $al_field13 = (string) get_parameter_post('field13_value'); diff --git a/pandora_console/godmode/tag/edit_tag.php b/pandora_console/godmode/tag/edit_tag.php index 2db4cfed33..96b4e158e3 100644 --- a/pandora_console/godmode/tag/edit_tag.php +++ b/pandora_console/godmode/tag/edit_tag.php @@ -31,11 +31,10 @@ $id_tag = (int) get_parameter('id_tag', 0); $update_tag = (int) get_parameter('update_tag', 0); $create_tag = (int) get_parameter('create_tag', 0); $name_tag = (string) get_parameter('name_tag', ''); -$description_tag = (string) get_parameter('description_tag', ''); -$description_tag = io_safe_input(strip_tags(io_safe_output($description_tag))); +$description_tag = io_safe_input(strip_tags(io_safe_output((string) get_parameter('description_tag')))); $url_tag = (string) get_parameter('url_tag', ''); -$email_tag = (string) get_parameter('email_tag', ''); -$phone_tag = (string) get_parameter('phone_tag', ''); +$email_tag = io_safe_input(strip_tags(io_safe_output(((string) get_parameter('email_tag'))))); +$phone_tag = io_safe_input(strip_tags(io_safe_output(((string) get_parameter('phone_tag'))))); $tab = (string) get_parameter('tab', 'list'); if (defined('METACONSOLE')) { diff --git a/pandora_console/godmode/wizards/DiscoveryTaskList.class.php b/pandora_console/godmode/wizards/DiscoveryTaskList.class.php index 88506f4a02..59a9fab84a 100644 --- a/pandora_console/godmode/wizards/DiscoveryTaskList.class.php +++ b/pandora_console/godmode/wizards/DiscoveryTaskList.class.php @@ -629,6 +629,16 @@ class DiscoveryTaskList extends HTML $data[6] .= __('Discovery.App.Oracle'); break; + case DISCOVERY_APP_DB2: + // Discovery Applications DB2. + $data[6] = html_print_image( + 'images/network.png', + true, + ['title' => __('Discovery Applications DB2')] + ).'  '; + $data[6] .= __('Discovery.App.DB2'); + break; + case DISCOVERY_DEPLOY_AGENTS: // Internal deployment task. $no_operations = true; @@ -722,6 +732,8 @@ class DiscoveryTaskList extends HTML if ($task['disabled'] != 2 && $task['utimestamp'] > 0 && $task['type'] != DISCOVERY_APP_MYSQL && $task['type'] != DISCOVERY_APP_ORACLE + && $task['type'] != DISCOVERY_APP_DB2 + && $task['type'] != DISCOVERY_APP_SAP && $task['type'] != DISCOVERY_CLOUD_AWS_RDS ) { if (check_acl($config['id_user'], 0, 'MR')) { @@ -879,6 +891,9 @@ class DiscoveryTaskList extends HTML case DISCOVERY_APP_ORACLE: return 'wiz=app&mode=oracle&page=0'; + case DISCOVERY_APP_DB2: + return 'wiz=app&mode=DB2&page=0'; + case DISCOVERY_CLOUD_AWS: case DISCOVERY_CLOUD_AWS_EC2: return 'wiz=cloud&mode=amazonws&ki='.$task['auth_strings'].'&page=1'; diff --git a/pandora_console/godmode/wizards/HostDevices.class.php b/pandora_console/godmode/wizards/HostDevices.class.php index 9cb9505a5b..80810b7cf2 100755 --- a/pandora_console/godmode/wizards/HostDevices.class.php +++ b/pandora_console/godmode/wizards/HostDevices.class.php @@ -692,9 +692,7 @@ class HostDevices extends Wizard if ($this->page == 1) { $title = __( '"%s" features', - io_safe_output( - $this->task['name'] - ) + $this->task['name'] ); } diff --git a/pandora_console/godmode/wizards/Wizard.main.php b/pandora_console/godmode/wizards/Wizard.main.php index 7320934826..9af64a7c39 100644 --- a/pandora_console/godmode/wizards/Wizard.main.php +++ b/pandora_console/godmode/wizards/Wizard.main.php @@ -832,7 +832,7 @@ class Wizard $first_block_printed = true; } - $output .= '
'; + $row_output = '
'; foreach ($row['columns'] as $column) { $width = isset($column['width']) ? 'width: '.$column['width'].';' : 'width: 100%;'; @@ -841,23 +841,36 @@ class Wizard $extra_styles = isset($column['style']) ? $column['style'] : ''; $class = isset($column['class']) ? $column['class'] : ''; - $output .= '
'; + $row_output .= '
'; foreach ($column['inputs'] as $input) { if (is_array($input)) { if ($input['arguments']['type'] != 'submit') { - $output .= $this->printBlockAsGrid($input, true); + $row_output .= $this->printBlockAsGrid($input, true); } else { $output_submit .= $this->printBlockAsGrid($input, true); } } else { - $output .= $input; + $row_output .= $input; } } - $output .= '
'; + $row_output .= '
'; + } + + if (isset($row['toggle'])) { + $output .= ui_print_toggle( + [ + 'content' => $row_output, + 'name' => $row['toggle_label'], + 'hidden_default' => ! (bool) $row['toggle'], + 'return' => true, + ] + ); + } else { + $output .= $row_output; } $output .= '
'; diff --git a/pandora_console/include/ajax/events.php b/pandora_console/include/ajax/events.php index 60c74e9731..ca17c8ab9f 100644 --- a/pandora_console/include/ajax/events.php +++ b/pandora_console/include/ajax/events.php @@ -871,6 +871,11 @@ if ($get_response_description) { } if ($get_response_params) { + if (! check_acl($config['id_user'], 0, 'EW')) { + echo 'unauthorized'; + return; + } + $response_id = get_parameter('response_id'); $params = db_get_value('params', 'tevent_response', 'id', $response_id); @@ -885,6 +890,11 @@ if ($get_response_params) { } if ($get_response_target) { + if (! check_acl($config['id_user'], 0, 'EW')) { + echo 'unauthorized'; + return; + } + $response_id = (int) get_parameter('response_id'); $event_id = (int) get_parameter('event_id'); $server_id = (int) get_parameter('server_id'); @@ -901,6 +911,11 @@ if ($get_response_target) { } if ($get_response) { + if (! check_acl($config['id_user'], 0, 'EW')) { + echo 'unauthorized'; + return; + } + $response_id = get_parameter('response_id'); $event_response = db_get_row('tevent_response', 'id', $response_id); @@ -917,6 +932,11 @@ if ($get_response) { if ($perform_event_response) { global $config; + if (! check_acl($config['id_user'], 0, 'EW')) { + echo 'unauthorized'; + return; + } + $response_id = get_parameter('response_id'); $event_id = (int) get_parameter('event_id'); $server_id = (int) get_parameter('server_id', 0); @@ -1011,6 +1031,11 @@ if ($perform_event_response) { if ($dialogue_event_response) { global $config; + if (! check_acl($config['id_user'], 0, 'EW')) { + echo 'unauthorized'; + return; + } + $event_id = get_parameter('event_id'); $response_id = get_parameter('response_id'); $command = get_parameter('target'); @@ -1088,10 +1113,18 @@ if ($dialogue_event_response) { } if ($add_comment) { + $aviability_comment = true; $comment = get_parameter('comment'); + if (preg_match('/script/i', io_safe_output($comment))) { + $aviability_comment = false; + $return = false; + } + $event_id = get_parameter('event_id'); - $return = events_comment($event_id, $comment, 'Added comment', $meta, $history); + if ($aviability_comment !== false) { + $return = events_comment($event_id, $comment, 'Added comment', $meta, $history); + } if ($return) { echo 'comment_ok'; diff --git a/pandora_console/include/ajax/module.php b/pandora_console/include/ajax/module.php index ed6d72ef70..2ffae3858d 100755 --- a/pandora_console/include/ajax/module.php +++ b/pandora_console/include/ajax/module.php @@ -865,16 +865,16 @@ if (check_login()) { $table->align[8] = 'center'; $table->align[9] = 'right'; - $table->headstyle[2] = 'min-width: 85px'; - $table->headstyle[3] = 'min-width: 130px'; - $table->size[3] = '30%'; + $table->headstyle[2] = 'min-width: 65px'; + $table->headstyle[3] = 'min-width: 80px'; + $table->size[3] = '25%'; $table->style[3] = 'max-width: 28em;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;'; - $table->size[4] = '30%'; - $table->headstyle[5] = 'min-width: 85px'; - $table->headstyle[6] = 'min-width: 125px; text-align: center;'; - $table->headstyle[7] = 'min-width: 125px;'; - $table->headstyle[8] = 'min-width: 100px; text-align: center;'; - $table->headstyle[9] = 'min-width: 120px; text-align: right;'; + $table->size[4] = '25%'; + $table->headstyle[5] = 'min-width: 65px'; + $table->headstyle[6] = 'min-width: 80px; text-align: center;'; + $table->headstyle[7] = 'min-width: 80px;'; + $table->headstyle[8] = 'min-width: 70px; text-align: center;'; + $table->headstyle[9] = 'min-width: 100px; text-align: right;'; $last_modulegroup = 0; $rowIndex = 0; diff --git a/pandora_console/include/ajax/snmp_browser.ajax.php b/pandora_console/include/ajax/snmp_browser.ajax.php index 5eaa01d659..eb4d8e8b54 100644 --- a/pandora_console/include/ajax/snmp_browser.ajax.php +++ b/pandora_console/include/ajax/snmp_browser.ajax.php @@ -13,6 +13,7 @@ // GNU General Public License for more details. require_once $config['homedir'].'/include/functions_config.php'; require_once $config['homedir'].'/include/functions_snmp_browser.php'; +require_once $config['homedir'].'/include/functions_snmp.php'; require_once $config['homedir'].'/include/functions_network_components.php'; @@ -112,6 +113,17 @@ if (is_ajax()) { $output .= '
'; $output .= ''; + // Dialog no agent selected. + $output .= ''; + echo $output; } @@ -158,6 +170,11 @@ if (is_ajax()) { $id_target = explode(',', $id_items[0]); } + if (empty($id_items[0])) { + echo json_encode([0 => -1]); + exit; + } + $snmp_extradata = get_parameter('snmp_extradata', ''); if (!is_array($snmp_extradata)) { diff --git a/pandora_console/include/ajax/tree.ajax.php b/pandora_console/include/ajax/tree.ajax.php index bb5668e41f..9319e392b8 100644 --- a/pandora_console/include/ajax/tree.ajax.php +++ b/pandora_console/include/ajax/tree.ajax.php @@ -40,6 +40,7 @@ if (is_ajax()) { $id = get_parameter('id', -1); $rootID = get_parameter('rootID', -1); $serverID = get_parameter('serverID', false); + $metaID = (int) get_parameter('metaID', 0); $childrenMethod = get_parameter('childrenMethod', 'on_demand'); $default_filters = [ @@ -98,7 +99,16 @@ if (is_ajax()) { break; case 'services': - $tree = new TreeService($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access); + $tree = new TreeService( + $type, + $rootType, + $id, + $rootID, + $serverID, + $childrenMethod, + $access, + $metaID + ); break; default: diff --git a/pandora_console/include/api.php b/pandora_console/include/api.php index f263350685..1161786e97 100644 --- a/pandora_console/include/api.php +++ b/pandora_console/include/api.php @@ -29,7 +29,7 @@ // Begin. require_once 'config.php'; require_once 'functions_api.php'; - +require '../vendor/autoload.php'; global $config; define('DEBUG', 0); @@ -261,6 +261,13 @@ if ($correctLogin) { } break; + case 'event': + // Preventive check for users if not available write events + if (! check_acl($config['id_user'], $event['id_grupo'], 'EW')) { + return false; + } + break; + default: // Ignore. break; diff --git a/pandora_console/include/auth/mysql.php b/pandora_console/include/auth/mysql.php index ed5e56782a..064be4a93e 100644 --- a/pandora_console/include/auth/mysql.php +++ b/pandora_console/include/auth/mysql.php @@ -85,7 +85,7 @@ function process_user_login($login, $pass, $api=false) return process_user_login_local($login, $pass, $api); } else { $login_remote = process_user_login_remote($login, io_safe_output($pass), $api); - if ($login_remote == false) { + if ($login_remote == false && $config['fallback_local_auth']) { return process_user_login_local($login, $pass, $api); } else { return $login_remote; @@ -258,27 +258,32 @@ function process_user_login_remote($login, $pass, $api=false) return false; } - if (($config['auth'] === 'ad') - && (isset($config['ad_advanced_config']) && $config['ad_advanced_config']) - ) { - $return = enterprise_hook( - 'prepare_permissions_groups_of_user_ad', - [ - $login, - $pass, - false, - true, - defined('METACONSOLE'), - ] - ); + if (($config['auth'] === 'ad')) { + // Check if autocreate remote users is active. + if ($config['autocreate_remote_users'] == 1) { + change_local_user_pass_ldap($login, $pass); + } - if ($return === 'error_permissions') { - $config['auth_error'] = __('Problems with configuration permissions. Please contact with Administrator'); - return false; - } else { - if ($return === 'permissions_changed') { - $config['auth_error'] = __('Your permissions have changed. Please, login again.'); + if (isset($config['ad_advanced_config']) && $config['ad_advanced_config']) { + $return = enterprise_hook( + 'prepare_permissions_groups_of_user_ad', + [ + $login, + $pass, + false, + true, + defined('METACONSOLE'), + ] + ); + + if ($return === 'error_permissions') { + $config['auth_error'] = __('Problems with configuration permissions. Please contact with Administrator'); return false; + } else { + if ($return === 'permissions_changed') { + $config['auth_error'] = __('Your permissions have changed. Please, login again.'); + return false; + } } } } else if ($config['auth'] === 'ldap') { diff --git a/pandora_console/include/chart_generator.php b/pandora_console/include/chart_generator.php index edd8208b05..1b3c352df9 100644 --- a/pandora_console/include/chart_generator.php +++ b/pandora_console/include/chart_generator.php @@ -189,6 +189,7 @@ if (file_exists('languages/'.$user_language.'.mo') === true) { echo '
'; switch ($type_graph_pdf) { case 'combined': + $params['pdf'] = true; echo graphic_combined_module( $module_list, $params, @@ -277,7 +278,8 @@ if (file_exists('languages/'.$user_language.'.mo') === true) { $params['ttl'], $params['sizeForTicks'], $params['show'], - $params['date_to'] + $params['date_to'], + $params['server_id'] ); break; diff --git a/pandora_console/include/class/AgentWizard.class.php b/pandora_console/include/class/AgentWizard.class.php index f638092930..ce8f07b787 100644 --- a/pandora_console/include/class/AgentWizard.class.php +++ b/pandora_console/include/class/AgentWizard.class.php @@ -29,8 +29,14 @@ // Get global data. global $config; -// Necessary class for extends. +// Necessary classes for extends. require_once $config['homedir'].'/include/class/HTML.class.php'; +require_once $config['homedir'].'/include/functions_snmp_browser.php'; +require_once $config['homedir'].'/include/functions_wmi.php'; + + +use PandoraFMS\Module; + /** * AgentWizard class */ @@ -58,6 +64,13 @@ class AgentWizard extends HTML */ private $idAgent; + /** + * Id of this current policy + * + * @var integer + */ + private $idPolicy; + /** * Wizard Section for Explore * @@ -75,15 +88,176 @@ class AgentWizard extends HTML /** * Type of action to do * - * @param string + * @var string */ private $actionType; + /** + * URL with the actual section + * + * @var string + */ + private $sectionUrl; + + /** + * Message to show + * + * @var array + */ + private $message; + + /** + * Is show message. + * + * @var boolean + */ + private $showMessage; + + /** + * Target ip. + * + * @var string + */ + private $targetIp; + + /** + * Target Port. + * + * @var string + */ + private $targetPort; + + /** + * SNMP Community. + * + * @var string + */ + private $community; + + /** + * SNMP Version. + * + * @var string + */ + private $version; + + /** + * Server to execute command. + * + * @var string + */ + private $server; + + /** + * Type Server to execute command. + * + * @var integer + */ + private $serverType; + + /** + * SNMP v3 Authentication User. + * + * @var string + */ + private $authUserV3; + + /** + * SNMP v3 Authentication Password. + * + * @var string + */ + private $authPassV3; + + /** + * SNMP v3 Authentication Method. + * + * @var string + */ + private $authMethodV3; + + /** + * SNMP v3 Security Level. + * + * @var string + */ + private $securityLevelV3; + + /** + * SNMP v3 Privacy Method. + * + * @var string + */ + private $privacyMethodV3; + + /** + * SNMP v3 Privacy Pass. + * + * @var string + */ + private $privacyPassV3; + + /** + * WMI Namespace + * + * @var string + */ + private $namespaceWMI; + + /** + * WMI Username + * + * @var string + */ + private $usernameWMI; + + /** + * WMI Password + * + * @var string + */ + private $passwordWMI; + + /** + * Private Enterprise Number name + * + * @var string + */ + private $penName; + + /** + * Interfaces found + * + * @var mixed + */ + private $interfacesFound; + + /** + * Protocol + * + * @var string + */ + private $protocol; + + /** + * WMI Command + * + * @var string + */ + private $wmiCommand; + + /** + * Results for SNMP or WMI queries + * + * @var mixed + */ + private $moduleBlocks; + /** * Constructor * - * @param string $ajax_controller Pues hace cosas to wapas. + * @param string $ajax_controller Path. */ public function __construct(string $ajax_controller) { @@ -98,7 +272,7 @@ class AgentWizard extends HTML 'Trying to access event viewer' ); - if (is_ajax()) { + if (is_ajax() === true) { echo json_encode(['error' => 'noaccess']); } @@ -106,12 +280,76 @@ class AgentWizard extends HTML exit; } - // Set baseUrl for use it in several locations in this class. - $this->baseUrl = ui_get_full_url('index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=agent_wizard'); // Capture all parameters before start. - $this->ajaxController = $ajax_controller; - $this->wizardSection = get_parameter('wizard_section', ''); - $this->idAgent = get_parameter('id_agente', ''); + $this->ajaxController = $ajax_controller; + $this->wizardSection = get_parameter('wizard_section', 'snmp_explorer'); + $this->idAgent = get_parameter('id_agente', ''); + $this->idPolicy = get_parameter('id', ''); + $this->targetIp = get_parameter('targetIp', ''); + $this->server = (int) get_parameter('server', '1'); + if ($this->server !== 0) { + $this->serverType = (int) db_get_value( + 'server_type', + 'tserver', + 'id_server', + $this->server + ); + } + + // Capture the parameters. + $this->protocol = get_parameter('protocol'); + if ($this->protocol === 'snmp') { + $this->targetPort = get_parameter('targetPort', '161'); + $this->community = get_parameter('community', 'public'); + $this->version = get_parameter('version', '1'); + + // Only for SNMPv3. Catch only if is neccesary. + if ($this->version === '3') { + $this->authUserV3 = get_parameter( + 'authUserV3', + '' + ); + $this->authPassV3 = get_parameter( + 'authPassV3', + '' + ); + $this->authMethodV3 = get_parameter( + 'authMethodV3', + '' + ); + $this->securityLevelV3 = get_parameter('securityLevelV3', ''); + $this->privacyMethodV3 = get_parameter('privacyMethodV3', ''); + $this->privacyPassV3 = get_parameter('privacyPassV3', ''); + } + } else if ($this->protocol === 'wmi') { + $this->namespaceWMI = get_parameter('namespaceWMI', ''); + $this->usernameWMI = get_parameter('usernameWMI', ''); + $this->passwordWMI = get_parameter('passwordWMI', ''); + } + + // Set baseUrl for use it in several locations in this class. + if (empty($this->idPolicy) === true) { + $this->baseUrl = ui_get_full_url( + 'index.php?sec=gagente&sec2=godmode/agentes/configurar_agente&tab=agent_wizard&id_agente='.$this->idAgent + ); + } else { + if (is_metaconsole() === true) { + $this->baseUrl = ui_get_full_url( + 'index.php?sec=gmodules&sec2=advanced/policymanager&tab=agent_wizard&id='.$this->idPolicy + ); + } else { + $this->baseUrl = ui_get_full_url( + 'index.php?sec=gmodules&sec2=enterprise/godmode/policies/policies&tab=agent_wizard&id='.$this->idPolicy + ); + } + } + + $this->sectionUrl = $this->baseUrl.'&wizard_section='.$this->wizardSection; + + $this->message['type'] = []; + $this->message['message'] = []; + $this->showMessage = false; + return $this; } @@ -128,14 +366,121 @@ class AgentWizard extends HTML ui_require_css_file('discovery'); // Javascript. - // ui_require_javascript_file('jquery.caret.min'); + $createModules = (bool) get_parameter('create-modules-action', false); + if ($createModules === true) { + $this->processModules(); + } else { + if ($this->protocol === 'snmp') { + $this->performSNMP(); + } else if ($this->protocol === 'wmi') { + $this->performWMI(); + } + } + + // Load main form. $this->loadMainForm(); - $this->performWizard(); - // Load integrated JS + + // Generate the box that allow messages + // (and show messages if needed). + $this->showMessage(); + + if ($this->showMessage === false) { + if ($createModules === false) { + // Show results if we perform any action. + if (empty($this->protocol) === false) { + if ($this->wizardSection === 'snmp_interfaces_explorer') { + if (empty($this->interfacesFound) === false) { + $this->resultsInterfaceWizard(); + } + } else { + $this->moduleBlocks = $this->getModuleBlocks(); + if ($this->moduleBlocks === false) { + $this->message['type'][] = 'info'; + $this->message['message'][] = __( + 'There are not defined Remote components for this performance.' + ); + $this->showMessage(); + } else { + if ($this->wizardSection === 'snmp_explorer') { + $this->resultsSNMPExplorerWizard(); + } else if ($this->wizardSection === 'wmi_explorer') { + $this->resultsWMIExplorerWizard(); + } + } + } + } + } + } + + // Lodaing div. + echo '
'; + + // Modal Div. + echo ''; + echo ''; + + // Load integrated JS. $this->loadJS(); } + /** + * Generate the message if needed + * + * @return void + */ + private function showMessage() + { + if (empty($this->message['type']) === false) { + $message_error = ''; + $message_success = ''; + foreach ($this->message['type'] as $keyMsg => $typeError) { + switch ($typeError) { + case 'error': + $message_error .= ($this->message['message'][$keyMsg] ?? 'Unknown error. Please, review the logs.'); + $message_error .= '

'; + break; + + case 'success': + $message_success .= ($this->message['message'][$keyMsg] ?? 'The action has did successfull'); + $message_success .= '

'; + break; + + case 'warning': + echo ui_print_warning_message( + $this->message['message'][$keyMsg] + ); + break; + + case 'info': + echo ui_print_info_message( + $this->message['message'][$keyMsg] + ); + break; + + default: + // Nothing to do. + break; + } + } + + if (empty($message_error) === false) { + echo ui_print_error_message($message_error); + } + + if (empty($message_success) === false) { + echo ui_print_success_message($message_success); + } + + $this->showMessage = true; + } + + // Clear the message info. + $this->message['type'] = []; + $this->message['message'] = []; + } + + /** * Common Main Wizard form * @@ -143,42 +488,40 @@ class AgentWizard extends HTML */ private function loadMainForm() { - // Define name of explorer button + // Fill with servers to perform the discover. + $fieldsServers = []; + $fieldsServers[0] = __('Local console'); + if (enterprise_installed()) { + enterprise_include_once('include/functions_satellite.php'); + // Get the servers. + $rows = get_proxy_servers(); + + // Check if satellite server has remote configuration enabled. + $satellite_remote = config_agents_has_remote_configuration( + $this->idAgent + ); + + // Generate a list with allowed servers. + if (isset($rows) === true && is_array($rows) === true) { + foreach ($rows as $row) { + if ($row['server_type'] == 13) { + $id_satellite = $row['id_server']; + $serverType = ' (Satellite)'; + } else { + $serverType = ' (Standard)'; + } + + $fieldsServers[$row['id_server']] = $row['name'].$serverType; + } + } + } + + // Set the labels and types. switch ($this->wizardSection) { case 'snmp_explorer': case 'snmp_interfaces_explorer': - // Define labels. $this->actionType = 'snmp'; $this->actionLabel = __('SNMP Walk'); - // Fill with servers to perform SNMP walk. - $fieldsServers = []; - $fieldsServers[0] = __('Local console'); - if (enterprise_installed()) { - enterprise_include_once('include/functions_satellite.php'); - // Get the servers. - $rows = get_proxy_servers(); - // Check if satellite server has remote configuration enabled. - $satellite_remote = config_agents_has_remote_configuration($this->idAgent); - // Generate a list with allowed servers. - foreach ($rows as $row) { - if ($row['server_type'] == 13) { - $id_satellite = $row['id_server']; - $serverType = ' (Satellite)'; - } else { - $serverType = ' (Standard)'; - } - - $fieldsServers[$row['id_server']] = $row['name'].$serverType; - } - } - - // Fill with SNMP versions allowed. - $fieldsVersions = [ - '1' => '1', - '2' => '2', - '2c' => '2c', - '3' => '3', - ]; break; case 'wmi_explorer': @@ -187,17 +530,16 @@ class AgentWizard extends HTML break; default: - $this->actionType = 'none'; - $this->actionLabel = __('Nothing'); + // Something goes wrong. exit; - break; } // Main form. + $this->sectionUrl = $this->baseUrl.'&wizard_section='.$this->wizardSection; + $form = [ - 'action' => '', - // 'action' => $this->baseUrl, - 'id' => 'main_wizard_form', + 'action' => $this->sectionUrl, + 'id' => 'form-main-wizard', 'method' => 'POST', ]; @@ -205,9 +547,9 @@ class AgentWizard extends HTML $inputs = []; $inputs[] = [ - 'id' => 'hdn-type-action', + 'id' => 'protocol', 'arguments' => [ - 'name' => 'type-action', + 'name' => 'protocol', 'type' => 'hidden', 'value' => $this->actionType, 'return' => true, @@ -216,117 +558,139 @@ class AgentWizard extends HTML $inputs[] = [ 'label' => __('Target IP'), - 'id' => 'txt-target-ip', + 'id' => 'txt-targetIp', 'arguments' => [ - 'name' => 'target-ip', + 'name' => 'targetIp', 'input_class' => 'flex-row', 'type' => 'text', 'class' => '', - 'return' => true, - ], - ]; - - $inputs[] = [ - 'label' => __('Port'), - 'id' => 'txt-target-port', - 'arguments' => [ - 'name' => 'target-port', - 'input_class' => 'flex-row', - 'type' => 'text', - 'size' => '20', - 'class' => '', + 'value' => $this->targetIp, 'return' => true, ], ]; if ($this->actionType === 'snmp') { $inputs[] = [ - 'label' => __('Use agent IP'), - 'id' => 'txt-use-agent-ip', + 'label' => __('Port'), + 'id' => 'txt-targetPort', 'arguments' => [ - 'name' => 'use-agent-ip', + 'name' => 'targetPort', 'input_class' => 'flex-row', - 'type' => 'checkbox', + 'type' => 'text', + 'size' => '20', 'class' => '', + 'value' => $this->targetPort, 'return' => true, ], ]; + + if (empty($this->idPolicy) === true) { + $inputs[] = [ + 'label' => __('Use agent IP'), + 'id' => 'txt-use-agent-ip', + 'arguments' => [ + 'name' => 'use-agent-ip', + 'input_class' => 'flex-row', + 'type' => 'checkbox', + 'class' => '', + 'return' => true, + ], + ]; + } } if ($this->actionType === 'wmi') { $inputs[] = [ - 'label' => __('Namespace'), - 'id' => 'txt-namespace', + 'label' => __('namespace'), + 'id' => 'txt-namespaceWMI', 'arguments' => [ - 'name' => 'namespace', + 'name' => 'namespaceWMI', 'input_class' => 'flex-row', 'type' => 'text', 'class' => '', + 'value' => $this->namespaceWMI, 'return' => true, ], ]; $inputs[] = [ 'label' => __('Username'), - 'id' => 'txt-username', + 'id' => 'txt-usernameWMI', 'arguments' => [ - 'name' => 'username', + 'name' => 'usernameWMI', 'input_class' => 'flex-row', 'type' => 'text', 'class' => '', + 'value' => $this->usernameWMI, 'return' => true, ], ]; $inputs[] = [ 'label' => __('Password'), - 'id' => 'txt-password', + 'id' => 'txt-passwordWMI', 'arguments' => [ - 'name' => 'password', + 'name' => 'passwordWMI', 'input_class' => 'flex-row', - 'type' => 'text', + 'type' => 'password', 'class' => '', + 'value' => $this->passwordWMI, 'return' => true, ], ]; } + $hint_server = ' '; + $hint_server .= ui_print_help_icon('agent_snmp_explorer_tab', true); $inputs[] = [ - 'label' => __('Server to execute command'), - 'id' => 'txt-target-port', + 'label' => __('Server to execute command').$hint_server, + 'id' => 'slc-server', 'arguments' => [ - 'name' => 'target-port', + 'name' => 'server', 'input_class' => 'flex-row', 'type' => 'select', 'fields' => $fieldsServers, 'class' => '', + 'selected' => $this->server, 'return' => true, + 'sort' => false, ], ]; if ($this->actionType === 'snmp') { $inputs[] = [ 'label' => __('SNMP community'), - 'id' => 'txt-snmp-community', + 'id' => 'txt-community', 'arguments' => [ - 'name' => 'snmp-community', + 'name' => 'community', 'input_class' => 'flex-row', 'type' => 'text', 'size' => '20', 'class' => '', + 'value' => $this->community, 'return' => true, ], ]; + // Fill with SNMP versions allowed. + $fieldsVersions = [ + '1' => '1', + '2' => '2', + '2c' => '2c', + '3' => '3', + ]; + $inputs[] = [ 'label' => __('SNMP version'), - 'id' => 'txt-snmnp-version', + 'id' => 'txt-version', 'arguments' => [ - 'name' => 'snmnp-version', + 'name' => 'version', 'input_class' => 'flex-row', 'type' => 'select', 'fields' => $fieldsVersions, + 'script' => 'showV3Form();', 'class' => '', + 'selected' => $this->version, 'return' => true, ], ]; @@ -335,20 +699,22 @@ class AgentWizard extends HTML $inputs[] = [ 'arguments' => [ 'label' => $this->actionLabel, - 'name' => 'action', + 'name' => 'sub-protocol', 'type' => 'submit', - 'attributes' => 'class="sub next" onclick="performAction();return false;"', + 'attributes' => 'class="sub next" onclick="$(\'#form-main-wizard\').submit();"', 'return' => true, ], ]; + // Prints main form. html_print_div( [ 'class' => 'white_box', 'content' => $this->printForm( [ - 'form' => $form, - 'inputs' => $inputs, + 'form' => $form, + 'inputs' => $inputs, + 'rawInputs' => '
    '.$this->snmpAuthenticationForm().'
', ], true ), @@ -358,219 +724,2511 @@ class AgentWizard extends HTML /** - * Undocumented function + * This form appears when activate SNMP v3 + * + * @return mixed + */ + public function snmpAuthenticationForm() + { + // Privacy method. + $privacyMethod = [ + 'AES' => 'AES', + 'DES' => 'DES', + ]; + // Authentication method. + $authenticationMethod = [ + 'MD5' => 'MD5', + 'SHA' => 'SHA', + ]; + // Security level. + $securityLevel = [ + 'authNoPriv' => 'Authenticated and non-private method', + 'authPriv' => 'Authenticated and private method', + 'noAuthNoPriv' => 'Non-authenticated and non-private method', + ]; + // Main form. + $form = [ + 'action' => '', + 'id' => 'form-snmp-authentication', + 'method' => 'POST', + ]; + // Inputs. + $inputs = []; + + $inputs[] = [ + 'label' => __('Security level'), + 'id' => 'slc-securityLevelV3', + 'arguments' => [ + 'name' => 'securityLevelV3', + 'input_class' => 'flex-row', + 'type' => 'select', + 'fields' => $securityLevel, + 'class' => '', + 'script' => 'showSecurityLevelForm();', + 'selected' => $this->securityLevelV3, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'label' => __('User authentication'), + 'id' => 'txt-authUserV3', + 'arguments' => [ + 'name' => 'authUserV3', + 'input_class' => 'flex-row', + 'type' => 'text', + 'size' => '20', + 'class' => '', + 'value' => $this->authUserV3, + 'return' => true, + 'form' => 'form-main-wizard', + ], + ]; + + $inputs[] = [ + 'label' => __('Authentication method'), + 'id' => 'txt-authMethodV3', + 'arguments' => [ + 'name' => 'authMethodV3', + 'input_class' => 'flex-row', + 'type' => 'select', + 'fields' => $authenticationMethod, + 'class' => '', + 'selected' => $this->authMethodV3, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'label' => __('Password authentication'), + 'id' => 'txt-authPassV3', + 'arguments' => [ + 'name' => 'authPassV3', + 'input_class' => 'flex-row', + 'type' => 'password', + 'size' => '20', + 'class' => '', + 'value' => $this->authPassV3, + 'return' => true, + 'form' => 'form-main-wizard', + ], + ]; + + $inputs[] = [ + 'label' => __('Privacy method'), + 'id' => 'txt-privacyMethodV3', + 'arguments' => [ + 'name' => 'privacyMethodV3', + 'input_class' => 'flex-row', + 'type' => 'select', + 'fields' => $privacyMethod, + 'class' => '', + 'selected' => $this->privacyMethodV3, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'label' => __('Privacy pass'), + 'id' => 'txt-privacyPassV3', + 'arguments' => [ + 'name' => 'privacyPassV3', + 'type' => 'password', + 'size' => '20', + 'class' => '', + 'value' => $this->privacyPassV3, + 'return' => true, + 'form' => 'form-main-wizard', + ], + ]; + + // Output the form. + return html_print_div( + [ + 'id' => 'form-snmp-authentication-box', + 'class' => 'invisible', + 'style' => 'margin-top: 10px;', + 'content' => $this->printForm( + [ + 'form' => $form, + 'inputs' => $inputs, + ], + true + ), + ], + true + ); + + } + + + /** + * Perform a Interfaces SNMP Walk + * + * @param array $receivedOid Array with the raw oid info. * * @return void */ - public function performWizard() + public function performSNMPInterfaces($receivedOid) { - // echo json_encode(['error' => obhd($_REQUEST)]); - // exit; - $sql = sprintf( - 'SELECT npc.id_nc AS component_id, nc.name, nc.type, nc.description, nc.id_group AS `group`, ncg.name AS `group_name` - FROM tnetwork_profile_component AS npc, tnetwork_component AS nc - INNER JOIN tnetwork_component_group AS ncg ON ncg.id_sg = nc.id_group - WHERE npc.id_nc = nc.id_nc AND npc.id_np = %d', - 10 - ); - $moduleBlocks = db_get_all_rows_sql($sql); + // Create a list with the interfaces. + $interfaces = []; + foreach ($receivedOid as $keyOid => $nameOid) { + list($nameKey, $indexKey) = explode( + '.', + str_replace('IF-MIB::', '', $keyOid) + ); + list($typeValue, $value) = explode(': ', $nameOid); + // Set the name of interface. + $interfaces[$indexKey]['name'] = $value; + // Get the description. + $interfaces[$indexKey]['descr'] = $this->snmpgetValue( + '.1.3.6.1.2.1.2.2.1.2.'.$indexKey + ); + // Get the MAC address. + $interfaces[$indexKey]['mac'] = $this->snmpgetValue( + '.1.3.6.1.2.1.2.2.1.6.'.$indexKey + ); + // Get unicast IP address. + $interfaces[$indexKey]['ip'] = ''; + // Path for get the IPs (ipv4). + $snmpIpDiscover = '.1.3.6.1.2.1.4.34.1.4.1.4'; + $ipsResult = []; + // In this case we need the full information provided by snmpwalk. + $snmpwalkIps = sprintf( + 'snmpwalk -On -v%s -c %s %s %s', + $this->version, + $this->community, + $this->targetIp, + $snmpIpDiscover + ); + exec($snmpwalkIps, $ipsResult); + foreach ($ipsResult as $ipResult) { + list($ipOidDirection, $ipOidValue) = explode(' = ', $ipResult); + // Only catch the unicast records. + if ((preg_match('/unicast/', $ipOidValue) === 1)) { + $tmpIpOidDirection = str_replace( + $snmpIpDiscover, + '', + $ipOidDirection + ); + $snmpIpIndexDiscover = '.1.3.6.1.2.1.4.34.1.3.1.4'; + $snmpIpIndexDiscover .= $tmpIpOidDirection; + $snmpgetIpIndex = $this->snmpgetValue($snmpIpIndexDiscover); + // If this Ip index number match with the current index key. + if ($snmpgetIpIndex === $indexKey) { + $interfaces[$indexKey]['ip'] .= substr( + $tmpIpOidDirection, + 1 + ); + } + } else { + continue; + } + } + } - $blockTables = []; - // Build the information of the blocks. - foreach ($moduleBlocks as $block) { - if (key_exists($block['group'], $blockTables) === false) { - $blockTables[$block['group']] = [ - 'name' => $block['group_name'], - 'data' => [], - ]; + // Save the interfaces found for process later. + $this->interfacesFound = $interfaces; + } + + + /** + * Perform a General SNMP Walk + * + * @param array $receivedOid Array with the raw oid info. + * + * @return void + */ + public function performSNMPGeneral($receivedOid) + { + // Getting the Symbolic Name of the OID. + $symbolicName = explode('OID:', array_shift($receivedOid)); + // Translate the Symbolic Name to numeric OID. + $output_oid = ''; + exec('snmptranslate -On '.$symbolicName[1], $output_oid); + // The PEN is hosted in the seventh position. + $tmpPEN = explode('.', $output_oid[0]); + $pen = $tmpPEN[7]; + // Then look in DB if the PEN is registered. + $penFound = db_get_value('manufacturer', 'tpen', 'pen', $pen); + if ($penFound === false) { + // This PEN is not registered. Let's finish. + $this->message['type'][] = 'error'; + $this->message['message'][] = __( + 'The PEN (%s) is not registered.', + $pen + ); + return; + } else { + // Save the PEN for process later. + $this->penName = $penFound; + } + } + + + /** + * Let's do a SNMP Walk + * + * @return void + */ + public function performSNMP() + { + // If the target IP is empty, get it form the agent. + if (empty($this->targetIp) === true) { + $this->targetIp = db_get_value( + 'direccion', + 'tagente', + 'id_agente', + $this->idAgent + ); + } + + if ($this->wizardSection === 'snmp_interfaces_explorer') { + // Explore interface names. + $oidExplore = '.1.3.6.1.2.1.31.1.1.1.1'; + } else { + // Get the device PEN. + $oidExplore = '.1.3.6.1.2.1.1.2.0'; + } + + // Doc Interfaces de red. + $receivedOid = get_snmpwalk( + $this->targetIp, + $this->version, + $this->community, + $this->authUserV3, + $this->securityLevelV3, + $this->authMethodV3, + $this->authPassV3, + $this->privacyMethodV3, + $this->privacyPassV3, + 0, + $oidExplore, + $this->targetPort, + $this->server, + $this->extraArguments + ); + // The snmpwalk return information. + if (empty($receivedOid) === false) { + if ($this->wizardSection === 'snmp_interfaces_explorer') { + $this->performSNMPInterfaces($receivedOid); + } else { + $this->performSNMPGeneral($receivedOid); + } + } else { + // If the snmpwalk returns nothing, finish the execution. + $this->message['type'][] = 'error'; + $this->message['message'][] = __( + 'The SNMP Walk does not return anything with the received arguments.' + ); + } + } + + + /** + * Let's do a WMI Exploration + * + * @return void + */ + public function performWMI() + { + // DOC: Handling WMI Errors --> + // https://docs.microsoft.com/en-us/windows/win32/wmisdk/wmi-error-constants + // Capture the parameters. + // Call WMI Explorer function. + $this->wmiCommand = wmi_compose_query( + 'wmic', + $this->usernameWMI, + $this->passwordWMI, + $this->targetIp, + $this->namespaceWMI + ); + // Send basic query to target for check if + // the host is Windows (and allow WMI). + $commandQuery = $this->wmiCommand; + $commandQuery .= ' "SELECT Caption FROM Win32_ComputerSystem"'; + // Execute the wmic command. + $result = []; + exec($commandQuery, $result); + $execCorrect = true; + $tmpError = ''; + + // Look for the response if we have ERROR messages. + foreach ($result as $info) { + if (preg_match('/ERROR:/', $info) !== 0) { + $execCorrect = false; + $tmpError = strrchr($info, 'ERROR:'); + break; + } + } + + // FOUND ERRORS: TIMEOUT. + // [0] => [librpc/rpc/dcerpc_connect.c:790:dcerpc_pipe_connect_b_recv()] + // failed NT status (c00000b5) in dcerpc_pipe_connect_b_recv. + // [1] => [wmi/wmic.c:196:main()] ERROR: Login to remote object. + // If execution gone fine. + if ($execCorrect === true) { + $this->moduleBlocks = $this->getModuleBlocks(); + } else { + $this->message['type'][] = 'error'; + $this->message['message'][] = sprintf( + __('The target host response with an error: %s'), + $tmpError + ); + } + } + + + /** + * Show list with info modules at create. + * + * @return void + */ + public function listModulesToCreate() + { + $data = get_parameter('data', ''); + + $data = json_decode(io_safe_output($data), true); + + $data = array_reduce( + $data, + function ($carry, $item) { + $carry[$item['name']] = $item['value']; + return $carry; + }, + [] + ); + + $candidateModules = $this->candidateModuleToCreate($data); + $this->sectionUrl = $this->baseUrl.'&wizard_section='.$this->wizardSection; + + $form = [ + 'action' => $this->sectionUrl, + 'id' => 'reviewed-modules', + 'method' => 'POST', + 'class' => '', + 'extra' => '', + ]; + + $inputs = [ + [ + 'arguments' => [ + 'type' => 'hidden', + 'value' => json_encode($candidateModules), + 'return' => true, + 'name' => 'modules-definition', + ], + ], + ]; + + $inputs = array_merge($inputs, $this->getCommonDataInputs()); + + $content = HTML::printForm( + [ + 'form' => $form, + 'inputs' => $inputs, + ], + true + ); + + if (empty($candidateModules) === true) { + echo ui_print_error_message(__('No selected modules')); + return; + } + + $table = new StdClass(); + + $table->data = []; + $table->width = '100%'; + $table->class = 'info_table'; + + // Header section. + $table->head = []; + $table->head[0] = ''.__('Module Name').''; + $table->head[1] = ''.__('Server').''; + $table->head[2] = ''.__('Type').''; + $table->head[3] = ''.__('Description').''; + $table->head[4] = ''.__('Treshold').''; + + $table->data = []; + + $namesArray = []; + $data = []; + $i = 0; + + foreach ($candidateModules as $key => $module) { + if (isset($namesArray[$module['name']]) === false) { + $namesArray[$module['name']] = $module['name']; + + if (empty($this->idPolicy) === false) { + $sql = sprintf( + "SELECT id + FROM tpolicy_modules + WHERE id_policy = %d + AND `name` = '%s'", + $this->idPolicy, + io_safe_input($module['name']) + ); + $msgError = __('Module exist in policy'); + } else { + $sql = sprintf( + "SELECT id_agente_modulo + FROM tagente_modulo + WHERE id_agente = %d + AND nombre = '%s'", + $this->idAgent, + io_safe_input($module['name']) + ); + $msgError = __('Module exist in agent'); + } + + $existInDb = db_get_value_sql($sql); + } else { + $existInDb = true; + $msgError = __( + 'Module with the same name in the module creation list' + ); } - $blockTables[$block['group']]['data'][] = [ - 'component_id' => $block['component_id'], - 'name' => $block['name'], - 'type' => $block['type'], - 'description' => $block['description'], + $data[0] = $module['name']; + if ($existInDb !== false) { + $table->rowstyle[$i] = 'color:#ccc;'; + $data[0] .= ' '; + $data[0] .= html_print_image( + 'images/error.png', + true, + ['title' => $msgError] + ); + } + + if ($this->server !== 0) { + $this->serverType = (int) db_get_value( + 'server_type', + 'tserver', + 'id_server', + $this->server + ); + } + + // Img Server. + if ($this->serverType == SERVER_TYPE_ENTERPRISE_SATELLITE) { + $img_server = html_print_image( + 'images/satellite.png', + true, + ['title' => __('Enterprise Satellite server')] + ); + } else { + if ($module['execution_type'] == EXECUTION_TYPE_PLUGIN) { + $img_server = html_print_image( + 'images/plugin.png', + true, + ['title' => __('Plugin server')] + ); + } else { + if ($this->protocol === 'wmi') { + $img_server = html_print_image( + 'images/wmi.png', + true, + ['title' => __('WMI server')] + ); + } else { + $img_server = html_print_image( + 'images/network.png', + true, + ['title' => __('Network server')] + ); + } + } + } + + $data[1] = $img_server; + + $data[2] = \ui_print_moduletype_icon($module['moduleType'], true); + + $data[3] = mb_strimwidth( + io_safe_output($module['description']), + 0, + 150, + '...' + ); + + $data[4] = __('Warning').' '; + $data[4] .= $module['warningMin'].' / '.$module['warningMax']; + $data[4] .= '
'; + $data[4] .= __('Critical').' '; + $data[4] .= $module['criticalMin'].' / '.$module['criticalMax']; + + array_push($table->data, $data); + $i++; + } + + $content .= html_print_table($table, true); + + echo $content; + return; + } + + + /** + * Prepare data module to create. + * + * @param array $data Array Info module. + * + * @return array + */ + public function candidateModuleToCreate(array $data):array + { + $modulesActivated = []; + $generalInterface = false; + // Lets catch all values. + foreach ($data as $key => $value) { + if (empty(preg_match('/module-active/', $key)) === false + && (int) $value === 1 + ) { + $tmpModules = explode('-', $key); + + $keyData = $tmpModules[2].'-'.$tmpModules[3]; + + $modulesActivated[] = $keyData; + } else if (empty(preg_match('/interfaz_select_/', $key)) === false) { + $tmpInterfaces = explode('interfaz_select_', $key); + $interfaces[$tmpInterfaces[1]] = $tmpInterfaces[1]; + } else if (empty(preg_match('/box_enable_toggle/', $key)) === false) { + $generalInterface = true; + } else { + if (property_exists($this, $key) === true) { + // Reinitialize received values. + $this->{$key} = $value; + } + } + } + + $this->wizardSection = $data['wizard_section']; + + $result = []; + // Only section snmp interfaces explorer. + if ($data['wizard_section'] === 'snmp_interfaces_explorer') { + if (isset($interfaces) === true + && is_array($interfaces) === true + && empty($interfaces) === false + && isset($modulesActivated) === true + && is_array($modulesActivated) === true + && empty($modulesActivated) === false + ) { + foreach ($interfaces as $key => $value) { + $valueStr = preg_replace('/\//', '\/', $value); + foreach ($modulesActivated as $k => $v) { + if (preg_match('/^'.$valueStr.'_\d+-\d+$/', $v) == true) { + $tmp[$v] = $v; + } else if ($generalInterface === true + && preg_match('/^0_\d+-\d+$/', $v) == true + ) { + $id = preg_replace( + '/^0_/', + $value.'_', + $v + ); + $tmp[$id] = $id; + } + } + } + } else { + return $result; + } + + $modulesActivated = $tmp; + } + + foreach (array_keys($data) as $k) { + foreach ($modulesActivated as $key => $value) { + $valueStr = preg_replace('/\//', '\/', $value); + if (empty(preg_match('/'.$valueStr.'$/', $k)) === false) { + if (empty(preg_match('/module-name-set/', $k)) === false) { + $result[$value]['name'] = $data[$k]; + } else if (empty(preg_match('/module-description-set/', $k)) === false) { + $result[$value]['description'] = $data[$k]; + } + + if ($data['wizard_section'] === 'snmp_interfaces_explorer') { + if (isset($data['module-active-'.$key]) === false + || $data['module-active-'.$key] == 0 + ) { + if (empty(preg_match('/module-name-set/', $k)) === false) { + $result[$value]['name'] = $data['module-default_name-'.$key]; + } else if (empty(preg_match('/module-description-set/', $k)) === false) { + $result[$value]['description'] = $data['module-default_description-'.$key]; + } + + preg_match('/^(.*)-.*?_(\d-\d)$/', $k, $matches); + $k = $matches[1].'-0_'.$matches[2]; + } + } + + if (empty(preg_match('/module-warning-min/', $k)) === false) { + $result[$value]['warningMin'] = $data[$k]; + } else if (empty(preg_match('/module-warning-max/', $k)) === false) { + $result[$value]['warningMax'] = $data[$k]; + } else if (empty(preg_match('/module-critical-min/', $k)) === false) { + $result[$value]['criticalMin'] = $data[$k]; + } else if (empty(preg_match('/module-critical-max/', $k)) === false) { + $result[$value]['criticalMax'] = $data[$k]; + } else if (empty(preg_match('/module-critical-inv/', $k)) === false) { + $result[$value]['criticalInv'] = $data[$k]; + } else if (empty(preg_match('/module-warning-inv/', $k)) === false) { + $result[$value]['warningInv'] = $data[$k]; + } else if (empty(preg_match('/module-type/', $k)) === false) { + $result[$value]['moduleType'] = $data[$k]; + } else if (empty(preg_match('/module-unit/', $k)) === false) { + $result[$value]['unit'] = $data[$k]; + } else if (empty(preg_match('/module-scan_type/', $k)) === false) { + $result[$value]['scan_type'] = (int) $data[$k]; + } else if (empty(preg_match('/module-execution_type/', $k)) === false) { + $result[$value]['execution_type'] = (int) $data[$k]; + } else if (empty(preg_match('/module-value/', $k)) === false) { + $result[$value]['value'] = $data[$k]; + } else if (empty(preg_match('/module-macros/', $k)) === false) { + $result[$value]['macros'] = $data[$k]; + } else if (empty(preg_match('/module-name-oid/', $k)) === false) { + $result[$value]['nameOid'] = $data[$k]; + } else if (empty(preg_match('/module-query_class/', $k)) === false) { + $result[$value]['queryClass'] = $data[$k]; + } else if (empty(preg_match('/module-query_key_field/', $k)) === false) { + $result[$value]['queryKeyField'] = $data[$k]; + } else if (empty(preg_match('/module-scan_filters/', $k)) === false) { + $result[$value]['scanFilters'] = $data[$k]; + } else if (empty(preg_match('/module-query_filters/', $k)) === false) { + $result[$value]['queryFilters'] = $data[$k]; + } else { + $result[$value][$k] = $data[$k]; + } + } + } + } + + return $result; + } + + + /** + * Process the information received for modules creation + * + * @return void + */ + public function processModules() + { + $modulesCandidates = json_decode( + io_safe_output(get_parameter('modules-definition', [])), + true + ); + + if (json_last_error() !== JSON_ERROR_NONE) { + $this->message['type'][] = 'error'; + $this->message['message'][] = json_last_error_msg(); + return; + } + + if (empty($this->idPolicy) === false) { + $this->processModulesPolicy($modulesCandidates); + } else { + $this->processModulesAgents($modulesCandidates); + } + } + + + /** + * Process the information received for modules creation in this policy. + * + * @param array $modulesCandidates Modules for create. + * + * @return void + */ + public function processModulesPolicy(array $modulesCandidates) + { + $errorflag = false; + foreach ($modulesCandidates as $candidate) { + $sql = sprintf( + "SELECT id + FROM tpolicy_modules + WHERE id_policy = %d + AND `name` = '%s'", + $this->idPolicy, + io_safe_input($candidate['name']) + ); + + $existInDb = db_get_value_sql($sql); + + if ($existInDb !== false) { + $this->message['type'][] = 'error'; + $this->message['message'][] = __( + 'Module "%s" exits in this policy', + $candidate['name'] + ); + $errorflag = true; + continue; + } + + $value = []; + $values['name'] = io_safe_input($candidate['name']); + $values['description'] = io_safe_input($candidate['description']); + $values['unit'] = $candidate['unit']; + $values['id_tipo_modulo'] = $candidate['moduleType']; + $values['id_policy'] = $this->idPolicy; + $values['module_interval'] = 300; + + $nameTypeModule = modules_get_moduletype_name( + $candidate['moduleType'] + ); + + if ($this->protocol === 'snmp') { + if ($candidate['execution_type'] === 0 + || $candidate['execution_type'] === EXECUTION_TYPE_NETWORK + ) { + if ($this->serverType === SERVER_TYPE_ENTERPRISE_SATELLITE) { + $values['id_module'] = MODULE_DATA; + $values['module_interval'] = 1; + + $cf = "module_begin\n"; + $cf .= 'module_name '.$candidate['name']."\n"; + $cf .= 'module_type '.$nameTypeModule."\n"; + $cf .= "module_snmp\n"; + $cf .= 'module_version '.$this->version."\n"; + $cf .= 'module_oid '.$candidate['value']."\n"; + $cf .= 'module_community '.$this->community."\n"; + if ($this->version === '3') { + $cf .= 'module_seclevel '.$this->securityLevelV3."\n"; + $cf .= 'module_secname '.$this->authUserV3."\n"; + + if ($this->securityLevelV3 === 'authNoPriv' + || $this->securityLevelV3 === 'authPriv' + ) { + $cf .= 'module_authproto '.$this->authMethodV3."\n"; + $cf .= 'module_authpass '.$this->authPassV3."\n"; + if ($this->securityLevelV3 === 'authPriv') { + $cf .= 'module_privproto '.$this->privacyMethodV3."\n"; + $cf .= 'module_privpass '.$this->privacyPassV3."\n"; + } + } + } + + $cf .= 'module_end'; + $values['configuration_data'] = io_safe_input($cf); + } else { + $values['id_module'] = MODULE_NETWORK; + } + + $values['snmp_community'] = $this->community; + $values['tcp_send'] = $this->version; + $values['snmp_oid'] = $candidate['value']; + $values['tcp_port'] = $this->targetPort; + if ($this->version === '3') { + $values['custom_string_3'] = $this->securityLevelV3; + $values['plugin_user'] = $this->authUserV3; + if ($this->securityLevelV3 === 'authNoPriv' + || $this->securityLevelV3 === 'authPriv' + ) { + $values['plugin_parameter'] = $this->authMethodV3; + $values['plugin_pass'] = $this->authPassV3; + if ($this->securityLevelV3 === 'authPriv') { + $values['custom_string_1'] = $this->privacyMethodV3; + $values['custom_string_2'] = $this->privacyPassV3; + } + } + } + } else if ($candidate['execution_type'] === EXECUTION_TYPE_PLUGIN) { + $infoMacros = json_decode( + base64_decode($candidate['macros']), + true + ); + + if (isset($infoMacros['macros']) === false + || is_array($infoMacros['macros']) === false + ) { + $infoMacros['macros'] = []; + } + + if (isset($candidate['nameOid']) === true + && empty($candidate['nameOid']) === false + ) { + $infoMacros['macros']['_nameOID_'] = $candidate['nameOid']; + } + + if ($this->serverType === SERVER_TYPE_ENTERPRISE_SATELLITE) { + $values['module_interval'] = 1; + if (empty($infoMacros['satellite_execution']) === true) { + // Already defined. + $this->message['type'][] = 'error'; + $this->message['message'][] = __( + 'Module %s module_exec not configuration', + $candidate['name'] + ); + + $errorflag = true; + continue; + } + + $moduleExec = $this->replacementMacrosPlugin( + $infoMacros['satellite_execution'], + $infoMacros['macros'] + ); + + $values['id_module'] = MODULE_DATA; + $cfData = "module_begin\n"; + $cfData .= 'module_name '.$candidate['name']."\n"; + $cfData .= 'module_type '.$nameTypeModule."\n"; + $cfData .= 'module_exec '.io_safe_output($moduleExec)."\n"; + $cfData .= 'module_end'; + $values['configuration_data'] = io_safe_input($cfData); + } else { + $values['ip_target'] = '_address_'; + $values['id_module'] = MODULE_PLUGIN; + $fieldsPlugin = db_get_value_sql( + sprintf( + 'SELECT macros FROM tplugin WHERE id=%d', + (int) $infoMacros['server_plugin'] + ) + ); + + if ($fieldsPlugin !== false) { + $fieldsPlugin = json_decode($fieldsPlugin, true); + $i = 1; + foreach ($infoMacros as $key => $value) { + if (empty(preg_match('/_snmp_field/', $key)) === false) { + $new_macros = []; + foreach ($fieldsPlugin as $k => $v) { + if ($v['macro'] === preg_replace('/_snmp_field/', '', $key)) { + $fieldsPlugin[$k]['value'] = $this->replacementMacrosPlugin( + $value, + $infoMacros['macros'] + ); + $i++; + continue; + } + } + } + } + } + + $values['id_plugin'] = $infoMacros['server_plugin']; + $values['macros'] = json_encode($fieldsPlugin); + } + } + } else if ($this->protocol === 'wmi') { + if ($candidate['execution_type'] === EXECUTION_TYPE_NETWORK) { + // Generals fields. + $values['plugin_user'] = io_safe_input($this->usernameWMI); + $values['plugin_pass'] = io_safe_input($this->passwordWMI); + $values['tcp_send'] = io_safe_input($this->namespaceWMI); + + // Build query WMI. + $dataWMI = [ + 'query_class' => $candidate['queryClass'], + 'query_filters' => io_safe_output( + base64_decode( + $candidate['queryFilters'] + ) + ), + 'macros' => base64_decode( + $candidate['macros'] + ), + 'query_key_field' => $candidate['queryKeyField'], + ]; + + $candidate['wmi_query'] = $this->wmiQuery( + $dataWMI, + 'execution', + true + ); + + $queryFilters = json_decode( + base64_decode( + $candidate['queryFilters'] + ), + true + ); + + if ($this->serverType === SERVER_TYPE_ENTERPRISE_SATELLITE) { + $values['module_interval'] = 1; + $values['id_module'] = MODULE_DATA; + + $cfData = "module_begin\n"; + $cfData .= 'module_name '.$candidate['name']."\n"; + $cfData .= 'module_type '.$nameTypeModule."\n"; + $cfData .= "module_wmi\n"; + $cfData .= 'module_wmiquery '.$candidate['wmi_query']."\n"; + $cfData .= 'module_wmicolumn '.(isset($queryFilters['field']) === true) ? $queryFilters['field'] : (0)."\n"; + $cfData .= 'module_wmiauth '.$this->usernameWMI.'%'.$this->passwordWMI."\n"; + $cfData .= 'module_end'; + $values['configuration_data'] = io_safe_input($cfData); + } else { + $values['id_module'] = MODULE_WMI; + } + + $values['snmp_oid'] = io_safe_input( + $candidate['wmi_query'] + ); + + $values['tcp_port'] = (isset($queryFilters['field']) === true) ? $queryFilters['field'] : 0; + $values['snmp_community'] = (isset($queryFilters['key_string']) === true) ? $queryFilters['key_string'] : ''; + } else if ($candidate['execution_type'] === EXECUTION_TYPE_PLUGIN) { + $infoMacros = json_decode( + base64_decode($candidate['macros']), + true + ); + + if (isset($infoMacros['macros']) === false + || is_array($infoMacros['macros']) === false + ) { + $infoMacros['macros'] = []; + } + + if (isset($candidate['queryClass']) === true + && empty($candidate['queryClass']) === false + ) { + $infoMacros['macros']['_class_wmi_'] = $candidate['queryClass']; + } + + if (isset($candidate['queryKeyField']) === true + && empty($candidate['queryKeyField']) === false + ) { + $infoMacros['macros']['_field_wmi_0_'] = $candidate['queryKeyField']; + } + + if ($this->serverType === SERVER_TYPE_ENTERPRISE_SATELLITE) { + $values['module_interval'] = 1; + if (empty($infoMacros['satellite_execution']) === true) { + // Already defined. + $this->message['type'][] = 'error'; + $this->message['message'][] = __( + 'Module %s satellite execution not configuration', + $candidate['name'] + ); + $errorflag = true; + continue; + } + + $moduleExec = $this->replacementMacrosPlugin( + $infoMacros['satellite_execution'], + $infoMacros['macros'] + ); + + $values['id_module'] = MODULE_DATA; + $cfData = "module_begin\n"; + $cfData .= 'module_name '.$candidate['name']."\n"; + $cfData .= 'module_type '.$nameTypeModule."\n"; + $cfData .= 'module_exec '.io_safe_output($moduleExec)."\n"; + $cfData .= 'module_end'; + $values['configuration_data'] = io_safe_input($cfData); + } else { + $values['id_module'] = MODULE_PLUGIN; + $fieldsPlugin = db_get_value_sql( + sprintf( + 'SELECT macros FROM tplugin WHERE id=%d', + (int) $infoMacros['server_plugin'] + ) + ); + + if ($fieldsPlugin !== false) { + $fieldsPlugin = json_decode($fieldsPlugin, true); + $i = 1; + foreach ($infoMacros as $key => $value) { + if (empty(preg_match('/_wmi_field/', $key)) === false) { + $new_macros = []; + foreach ($fieldsPlugin as $k => $v) { + if ($v['macro'] === preg_replace('/_wmi_field/', '', $key)) { + $fieldsPlugin[$k]['value'] = $this->replacementMacrosPlugin( + $value, + $infoMacros['macros'] + ); + $i++; + continue; + } + } + } + } + } + + $values['id_plugin'] = $infoMacros['server_plugin']; + $values['macros'] = json_encode($fieldsPlugin); + } + + $values['ip_target'] = '_address_'; + $values['snmp_oid'] = io_safe_input( + $candidate['wmi_query'] + ); + } + } + + if (preg_match('/string/', $nameTypeModule) === true) { + // String module. + $values['str_warning'] = io_safe_input( + $candidate['warningMax'] + ); + $values['str_critical'] = io_safe_input( + $candidate['criticalMax'] + ); + } else { + // Numeric module. + $values['min_warning'] = $candidate['warningMin']; + $values['max_warning'] = $candidate['warningMax']; + $values['min_critical'] = $candidate['criticalMin']; + $values['max_critical'] = $candidate['criticalMax']; + } + + $values['warning_inverse'] = $candidate['warningInv']; + $values['critical_inverse'] = $candidate['criticalInv']; + + // Insert modules. + $result = policies_create_module( + $values['name'], + $this->idPolicy, + $values['id_module'], + $values + ); + + if ($result === false) { + $errorflag = true; + $this->message['type'][] = 'error'; + $this->message['message'][] = __( + 'Module "%s" problems insert in bbdd', + $candidate['name'] + ); + } + } + + if ($errorflag === false) { + $this->message['type'][] = 'success'; + $this->message['message'][] = __('Modules created'); + } + } + + + /** + * Process the information received for modules creation in this agent. + * + * @param array $modulesCandidates Modules for create. + * + * @return void + */ + public function processModulesAgents(array $modulesCandidates) + { + $modules = []; + $errorflag = false; + foreach ($modulesCandidates as $candidate) { + $tmp = Module::search( + [ + 'nombre' => io_safe_input($candidate['name']), + 'id_agente' => $this->idAgent, + ], + 1 + ); + + if ($tmp !== null) { + // Already defined. + $this->message['type'][] = 'error'; + $this->message['message'][] = __( + 'Module "%s" exits in this agent', + $candidate['name'] + ); + $errorflag = true; + continue; + } + + // Not found, it is new. + $tmp = new Module(); + $tmp->nombre(io_safe_input($candidate['name'])); + $tmp->descripcion(io_safe_input($candidate['description'])); + $tmp->unit($candidate['unit']); + $tmp->id_tipo_modulo($candidate['moduleType']); + $tmp->id_agente($this->idAgent); + $tmp->module_interval(agents_get_interval($this->idAgent)); + + if ($this->protocol === 'snmp') { + if ($candidate['execution_type'] === 0 + || $candidate['execution_type'] === EXECUTION_TYPE_NETWORK + ) { + if ($this->serverType === SERVER_TYPE_ENTERPRISE_SATELLITE) { + $tmp->module_interval(300); + $tmp->id_modulo(MODULE_DATA); + $tmp->updateConfigurationData( + 'module_name', + $candidate['name'] + ); + $tmp->updateConfigurationData( + 'module_type', + $tmp->moduleType()->nombre() + ); + $tmp->updateConfigurationData( + 'module_snmp', + $this->targetIp + ); + $tmp->updateConfigurationData( + 'module_version', + $this->version + ); + $tmp->updateConfigurationData( + 'module_oid', + $candidate['value'] + ); + $tmp->updateConfigurationData( + 'module_community', + $this->community + ); + + if ($this->version === '3') { + $tmp->updateConfigurationData( + 'module_seclevel', + $this->securityLevelV3 + ); + $tmp->updateConfigurationData( + 'module_secname', + $this->authUserV3 + ); + + if ($this->securityLevelV3 === 'authNoPriv' + || $this->securityLevelV3 === 'authPriv' + ) { + $tmp->updateConfigurationData( + 'module_authproto', + $this->authMethodV3 + ); + $tmp->updateConfigurationData( + 'module_authpass', + $this->authPassV3 + ); + if ($this->securityLevelV3 === 'authPriv') { + $tmp->updateConfigurationData( + 'module_privproto', + $this->privacyMethodV3 + ); + $tmp->updateConfigurationData( + 'module_privpass', + $this->privacyPassV3 + ); + } + } + } + } else { + $tmp->id_modulo(MODULE_NETWORK); + } + + $tmp->ip_target($this->targetIp); + $tmp->snmp_community($this->community); + $tmp->tcp_send($this->version); + $tmp->snmp_oid($candidate['value']); + $tmp->tcp_port($this->targetPort); + if ($this->version === '3') { + $tmp->custom_string_3($this->securityLevelV3); + $tmp->plugin_user($this->authUserV3); + if ($this->securityLevelV3 === 'authNoPriv' + || $this->securityLevelV3 === 'authPriv' + ) { + $tmp->plugin_parameter($this->authMethodV3); + $tmp->plugin_pass($this->authPassV3); + if ($this->securityLevelV3 === 'authPriv') { + $tmp->custom_string_1($this->privacyMethodV3); + $tmp->custom_string_2($this->privacyPassV3); + } + } + } + } else if ($candidate['execution_type'] === EXECUTION_TYPE_PLUGIN) { + $infoMacros = json_decode( + base64_decode($candidate['macros']), + true + ); + + if (isset($infoMacros['macros']) === false + || is_array($infoMacros['macros']) === false + ) { + $infoMacros['macros'] = []; + } + + if (isset($candidate['nameOid']) === true + && empty($candidate['nameOid']) === false + ) { + $infoMacros['macros']['_nameOID_'] = $candidate['nameOid']; + } + + if ($this->serverType === SERVER_TYPE_ENTERPRISE_SATELLITE) { + $tmp->module_interval(300); + $tmp->id_modulo(MODULE_DATA); + $tmp->updateConfigurationData( + 'module_name', + $candidate['name'] + ); + $tmp->updateConfigurationData( + 'module_type', + $tmp->moduleType()->nombre() + ); + + if (empty($infoMacros['satellite_execution']) === true) { + // Already defined. + $this->message['type'][] = 'error'; + $this->message['message'][] = __( + 'Module %s module_exec not configuration', + $candidate['name'] + ); + + $errorflag = true; + continue; + } + + $tmp->updateConfigurationData( + 'module_exec', + io_safe_output( + $this->replacementMacrosPlugin( + $infoMacros['satellite_execution'], + $infoMacros['macros'] + ) + ) + ); + } else { + $tmp->ip_target($this->targetIp); + $tmp->id_modulo(MODULE_PLUGIN); + $fieldsPlugin = db_get_value_sql( + sprintf( + 'SELECT macros FROM tplugin WHERE id=%d', + (int) $infoMacros['server_plugin'] + ) + ); + + if ($fieldsPlugin !== false) { + $fieldsPlugin = json_decode($fieldsPlugin, true); + $i = 1; + foreach ($infoMacros as $key => $value) { + if (empty(preg_match('/_snmp_field/', $key)) === false) { + $new_macros = []; + foreach ($fieldsPlugin as $k => $v) { + if ($v['macro'] === preg_replace('/_snmp_field/', '', $key)) { + $fieldsPlugin[$k]['value'] = $this->replacementMacrosPlugin( + $value, + $infoMacros['macros'] + ); + $i++; + continue; + } + } + } + } + } + + $tmp->id_plugin($infoMacros['server_plugin']); + $tmp->macros(json_encode($fieldsPlugin)); + } + } + } else if ($this->protocol === 'wmi') { + if ($candidate['execution_type'] === EXECUTION_TYPE_NETWORK) { + // Generals fields. + $tmp->plugin_user(io_safe_input($this->usernameWMI)); + $tmp->plugin_pass(io_safe_input($this->passwordWMI)); + $tmp->tcp_send(io_safe_input($this->namespaceWMI)); + $tmp->ip_target(io_safe_input($this->targetIp)); + + // Build query WMI. + $dataWMI = [ + 'query_class' => $candidate['queryClass'], + 'query_filters' => io_safe_output( + base64_decode( + $candidate['queryFilters'] + ) + ), + 'macros' => base64_decode( + $candidate['macros'] + ), + 'query_key_field' => $candidate['queryKeyField'], + ]; + + $candidate['wmi_query'] = $this->wmiQuery( + $dataWMI, + 'execution', + true + ); + + $queryFilters = json_decode( + base64_decode( + $candidate['queryFilters'] + ), + true + ); + + if ($this->serverType === SERVER_TYPE_ENTERPRISE_SATELLITE) { + $tmp->module_interval(300); + $tmp->id_modulo(MODULE_DATA); + $tmp->updateConfigurationData( + 'module_name', + $candidate['name'] + ); + $tmp->updateConfigurationData( + 'module_type', + $tmp->moduleType()->nombre() + ); + $tmp->updateConfigurationData( + 'module_wmi', + $this->targetIp + ); + $tmp->updateConfigurationData( + 'module_wmiquery', + $candidate['wmi_query'] + ); + $tmp->updateConfigurationData( + 'module_wmiauth', + $this->usernameWMI.'%'.$this->passwordWMI + ); + $tmp->updateConfigurationData( + 'module_wmicolumn', + (isset($queryFilters['field']) === true) ? $queryFilters['field'] : 0 + ); + } else { + $tmp->id_modulo(MODULE_WMI); + } + + $tmp->snmp_oid(io_safe_input($candidate['wmi_query'])); + + $tmp->tcp_port( + (isset($queryFilters['field']) === true) ? $queryFilters['field'] : 0 + ); + + $tmp->snmp_community( + (isset($queryFilters['key_string']) === true) ? $queryFilters['key_string'] : '' + ); + } else if ($candidate['execution_type'] === EXECUTION_TYPE_PLUGIN) { + $infoMacros = json_decode( + base64_decode($candidate['macros']), + true + ); + + if (isset($infoMacros['macros']) === false + || is_array($infoMacros['macros']) === false + ) { + $infoMacros['macros'] = []; + } + + if (isset($candidate['queryClass']) === true + && empty($candidate['queryClass']) === false + ) { + $infoMacros['macros']['_class_wmi_'] = $candidate['queryClass']; + } + + if (isset($candidate['queryKeyField']) === true + && empty($candidate['queryKeyField']) === false + ) { + $infoMacros['macros']['_field_wmi_0_'] = $candidate['queryKeyField']; + } + + if ($this->serverType === SERVER_TYPE_ENTERPRISE_SATELLITE) { + $tmp->module_interval(300); + $tmp->id_modulo(MODULE_DATA); + $tmp->updateConfigurationData( + 'module_name', + $candidate['name'] + ); + $tmp->updateConfigurationData( + 'module_type', + $tmp->moduleType()->nombre() + ); + + if (empty($infoMacros['satellite_execution']) === true) { + // Already defined. + $this->message['type'][] = 'error'; + $this->message['message'][] = __( + 'Module %s satellite execution not configuration', + $candidate['name'] + ); + $errorflag = true; + continue; + } + + $tmp->updateConfigurationData( + 'module_exec', + io_safe_output( + $this->replacementMacrosPlugin( + $infoMacros['satellite_execution'], + $infoMacros['macros'] + ) + ) + ); + } else { + $tmp->id_modulo(MODULE_PLUGIN); + $fieldsPlugin = db_get_value_sql( + sprintf( + 'SELECT macros FROM tplugin WHERE id=%d', + (int) $infoMacros['server_plugin'] + ) + ); + + if ($fieldsPlugin !== false) { + $fieldsPlugin = json_decode($fieldsPlugin, true); + $i = 1; + foreach ($infoMacros as $key => $value) { + if (empty(preg_match('/_wmi_field/', $key)) === false) { + $new_macros = []; + foreach ($fieldsPlugin as $k => $v) { + if ($v['macro'] === preg_replace('/_wmi_field/', '', $key)) { + $fieldsPlugin[$k]['value'] = $this->replacementMacrosPlugin( + $value, + $infoMacros['macros'] + ); + $i++; + continue; + } + } + } + } + } + + $tmp->id_plugin($infoMacros['server_plugin']); + $tmp->macros(json_encode($fieldsPlugin)); + } + + $tmp->ip_target(io_safe_input($this->targetIp)); + $tmp->snmp_oid(io_safe_input($candidate['wmi_query'])); + } + } + + if (preg_match('/string/', $tmp->moduleType()->nombre()) === true) { + // String module. + $tmp->str_warning(io_safe_input($candidate['warningMax'])); + $tmp->str_critical(io_safe_input($candidate['criticalMax'])); + } else { + // Numeric module. + $tmp->min_warning($candidate['warningMin']); + $tmp->max_warning($candidate['warningMax']); + $tmp->min_critical($candidate['criticalMin']); + $tmp->max_critical($candidate['criticalMax']); + } + + $tmp->warning_inverse($candidate['warningInv']); + $tmp->critical_inverse($candidate['criticalInv']); + + // Insert modules. + try { + $res = $tmp->save(); + } catch (\Exception $e) { + $errorflag = true; + $this->message['type'][] = 'error'; + $this->message['message'][] = $e->getMessage(); + } + } + + if ($errorflag === false) { + $this->message['type'][] = 'success'; + $this->message['message'][] = __('Modules created'); + } + } + + + /** + * Replacement macros. + * + * @param string $text String. + * @param array $macros Macros for replacement. + * + * @return string Retun string to replacement. + */ + private function replacementMacrosPlugin( + string $text, + array $macros + ):string { + // Only agents. + if (empty($this->idPolicy) === true) { + // Common. + $text = preg_replace('/_address_/', $this->targetIp, $text); + } + + // WMI. + $text = preg_replace('/_user_wmi_/', $this->usernameWMI, $text); + $text = preg_replace('/_namespace_wmi_/', $this->namespaceWMI, $text); + $text = preg_replace('/_pass_wmi_/', $this->passwordWMI, $text); + + // SNMP. + $text = preg_replace('/_port_/', $this->targetPort, $text); + $text = preg_replace('/_version_/', $this->version, $text); + $text = preg_replace('/_community_/', $this->community, $text); + $text = preg_replace('/_auth_user_/', $this->authUserV3, $text); + $text = preg_replace('/_auth_pass_/', $this->authPassV3, $text); + $text = preg_replace('/_auth_method_/', $this->authMethodV3, $text); + $text = preg_replace('/_priv_method_/', $this->privacyMethodV3, $text); + $text = preg_replace('/_priv_pass_/', $this->privacyPassV3, $text); + $text = preg_replace('/_sec_level_/', $this->securityLevelV3, $text); + + // Dinamic. + if (empty($macros) === false) { + foreach ($macros as $key => $value) { + $text = preg_replace('/'.$key.'/', $value, $text); + } + } + + return $text; + } + + + /** + * Value with unit. + * + * @param string|null $value Value. + * @param string|null $unit Type unit. + * @param integer|null $moduleType Type Module. + * + * @return string + */ + private function replacementUnit( + ?string $value, + ?string $unit='', + ?int $moduleType=0 + ):string { + if ($moduleType !== MODULE_TYPE_REMOTE_SNMP_INC + && $moduleType !== MODULE_TYPE_GENERIC_DATA_INC + && $moduleType !== MODULE_TYPE_REMOTE_TCP_INC + && $moduleType !== MODULE_TYPE_REMOTE_CMD_INC + ) { + if ($unit === '_timeticks_') { + preg_match('/\((\d+?)\)/', $value, $match); + if (isset($match[1]) === true) { + $value = human_milliseconds_to_string($match[1]); + } else { + $value = human_milliseconds_to_string($value); + } + } else if (empty($unit) === false && $unit !== 'none') { + $value .= ' '.$unit; + } + } + + return $value; + } + + + /** + * Perform Interface Wizard and show a table with results. + * + * @return void + */ + private function resultsInterfaceWizard() + { + $generalInterfaceModules = $this->getInterfacesModules(); + $generalInterfaceTables = []; + $generalInterfaceModulesUpdated = []; + $component_id_number = 0; + foreach ($generalInterfaceModules as $moduleIndex => $moduleData) { + if ($this->serverType === SERVER_TYPE_ENTERPRISE_SATELLITE) { + if ($moduleData['module_type'] == MODULE_TYPE_REMOTE_SNMP) { + $moduleData['module_type'] = MODULE_TYPE_GENERIC_DATA; + } else if ($moduleData['module_type'] == MODULE_TYPE_REMOTE_SNMP_PROC) { + $moduleData['module_type'] = MODULE_TYPE_GENERIC_PROC; + } else if ($moduleData['module_type'] == MODULE_TYPE_REMOTE_SNMP_INC) { + $moduleData['module_type'] = MODULE_TYPE_GENERIC_DATA_INC; + } else if ($moduleData['module_type'] == MODULE_TYPE_REMOTE_SNMP_STRING) { + // MODULE_TYPE_REMOTE_SNMP_STRING. + $moduleData['module_type'] = MODULE_TYPE_GENERIC_DATA_STRING; + } + } + + // Get current value. + $currentValue = $this->snmpgetValue($moduleData['value']); + // It unit of measure have data, attach to current value. + if (empty($moduleData['module_unit']) === false) { + $currentValue .= ' '.$moduleData['module_unit']; + } + + // Stablish the data for show. + $generalInterfaceModulesUpdated[] = [ + 'component_id' => $component_id_number++, + 'name' => $moduleData['module_name'], + 'type' => $moduleData['module_type'], + 'description' => $moduleData['module_info'], + 'min_warning' => $moduleData['module_thresholds']['min_warning'], + 'max_warning' => $moduleData['module_thresholds']['max_warning'], + 'inv_warning' => $moduleData['module_thresholds']['inv_warning'], + 'min_critical' => $moduleData['module_thresholds']['min_critical'], + 'max_critical' => $moduleData['module_thresholds']['max_critical'], + 'inv_critical' => $moduleData['module_thresholds']['inv_critical'], + 'module_enabled' => $moduleData['default_enabled'], + 'name_oid' => $moduleData['value'], + 'value' => $moduleData['value'], ]; } - // Lets generate the block tables. - $output = ''; - foreach ($blockTables as $id_group => $blockTable) { - // Data with all components. - $blockData = $blockTable['data']; - // Creation of list of all components. - $blockComponentList = ''; - foreach ($blockData as $component) { - $blockComponentList .= $component['component_id'].','; - } + $generalInterfaceTables[0]['data'] = $generalInterfaceModulesUpdated; - $blockComponentList = chop($blockComponentList, ','); - // Title of Block. - $blockTitle = $blockTable['name']; - $blockTitle .= html_print_div( + // General Default monitoring. + html_print_div( + [ + 'class' => 'wizard wizard-result', + 'style' => 'margin-top: 20px;', + 'content' => $this->toggleTableModules( + $generalInterfaceTables, + false, + true, + true + ), + ] + ); + + // Interface filter. + $form = [ + 'action' => $this->sectionUrl, + 'id' => 'form-filter-interfaces', + 'method' => 'POST', + 'class' => 'modal flex flex-row', + 'extra' => '', + ]; + // Inputs. + $inputs = []; + + $inputs[] = [ + 'direct' => 1, + 'class' => 'select-interfaces', + 'block_content' => [ [ - 'class' => 'white_table_header_checkbox', - 'content' => html_print_checkbox_switch_extended( - 'sel_block_'.$id_group, - 1, - 0, - false, - 'switchBlockControl(event)', - '', - true - ), + 'label' => __('Select all filtered interfaces'), + 'arguments' => [ + 'name' => 'select-all-interfaces', + 'type' => 'switch', + 'class' => '', + 'return' => true, + 'value' => 1, + 'onclick' => 'switchBlockControlInterfaces(this);', + ], ], + ], + ]; + + $inputs[] = [ + 'direct' => 1, + 'block_content' => [ + [ + 'label' => __('Search'), + 'id' => 'txt-filter-search', + 'arguments' => [ + 'name' => 'filter-search', + 'type' => 'text', + 'class' => '', + 'return' => true, + ], + ], + ], + ]; + + // Print the filter form. + $filterForm = $this->printForm( + [ + 'form' => $form, + 'inputs' => $inputs, true - ); - - $table = new StdClasS(); - $table->class = 'databox data'; - $table->width = '75%'; - $table->styleTable = 'margin: 2em auto 0;border: 1px solid #ddd;background: white;'; - $table->rowid = []; - $table->data = []; - - $table->cellpadding = 0; - $table->cellspacing = 0; - $table->width = '100%'; - $table->class = 'info_table'; - - $table->head = []; - $table->head[0] = html_print_div(['style' => 'font-weight:700;', 'content' => __('Module Name')], true); - $table->head[1] = html_print_div(['style' => 'font-weight:700;text-align:center;', 'content' => __('Type')], true); - $table->head[2] = html_print_div(['style' => 'font-weight:700;', 'content' => __('Module info')], true); - $table->head[3] = html_print_div(['style' => 'font-weight:700;text-align:center;', 'content' => __('Warning')], true); - $table->head[4] = html_print_div(['style' => 'font-weight:700;text-align:center;', 'content' => __('Critical')], true); - $table->head[5] = html_print_div(['style' => 'font-weight:700;margin-right:1.2em;', 'content' => __('Active')], true); - - $table->size = []; - $table->size[0] = '15%'; - $table->size[1] = '3%'; - $table->size[3] = '210px'; - $table->size[4] = '210px'; - $table->size[5] = '3%'; - - $table->align = []; - $table->align[5] = 'right'; - - $table->data = []; - - foreach ($blockData as $module) { - // Module Name column. - $data[0] = $module['name']; - // Module Type column. - $data[1] = ui_print_moduletype_icon($module['type'], true); - // Module info column. - $data[2] = mb_strimwidth(io_safe_output($module['description']), 0, 150, '...'); - // Warning column. - $data[3] = html_print_div( - [ - 'class' => 'wizard-column-levels', - 'content' => 'Min: '.html_print_input_text( - 'warning_min_'.$module['component_id'], - '0', - '', - 3, - 4, - true - ).' ', - ], - true - ); - $data[3] .= html_print_div( - [ - 'class' => 'wizard-column-levels', - 'content' => 'Max: '.html_print_input_text( - 'warning_max_'.$module['component_id'], - '0', - '', - 3, - 4, - true - ), - ], - true - ); - $data[3] .= html_print_div( - [ - 'class' => 'wizard-column-levels', - 'style' => 'margin-top: 0.3em;', - 'content' => 'Inv: '.html_print_checkbox( - 'warning_inv_'.$module['component_id'], - 0, - false, - true, - false - ), - ], - true - ); - // Critical column. - $data[4] = html_print_div( - [ - 'class' => 'wizard-column-levels', - 'content' => 'Min: '.html_print_input_text( - 'critical_min_'.$module['component_id'], - '0', - '', - 3, - 4, - true - ).' ', - ], - true - ); - $data[4] .= html_print_div( - [ - 'class' => 'wizard-column-levels', - 'content' => 'Max: '.html_print_input_text( - 'critical_max_'.$module['component_id'], - '0', - '', - 3, - 4, - true - ), - ], - true - ); - $data[4] .= html_print_div( - [ - 'class' => 'wizard-column-levels', - 'style' => 'margin-top: 0.3em;', - 'content' => 'Inv: '.html_print_checkbox( - 'critical_inv_'.$module['component_id'], - 0, - false, - true, - false - ), - ], - true - ); - // Activation column. - $data[5] = html_print_checkbox_switch_extended('sel_module_'.$id_group.'_'.$module['component_id'], 1, 0, false, 'switchBlockControl(event)', '', true); - - array_push($table->data, $data); - } - - $content = html_print_table($table, true); - - $output .= ui_toggle($content, $blockTitle, '', '', false, true); - } + ], + true + ); html_print_div( [ 'class' => 'white_box', 'style' => 'margin-top: 20px;', - 'content' => $output, + 'content' => $filterForm, ] ); - // Form. Not used at this moment. + $interfaceTables = []; + // Build the information of the blocks. + foreach ($this->interfacesFound as $index => $interface) { + // Add the index position of this interface. + $interface['index'] = $index; + + if (key_exists($interface['name'], $interfaceTables) === false) { + $interfaceTables[$interface['name']] = [ + 'name' => $interface['name'], + 'data' => [], + ]; + } + + $thisInterfaceModules = $this->getInterfacesModules($interface); + + $interfaceModulesUpdated = []; + $component_id_number = 0; + foreach ($thisInterfaceModules as $moduleIndex => $moduleData) { + if ($this->serverType === SERVER_TYPE_ENTERPRISE_SATELLITE) { + if ($moduleData['module_type'] == MODULE_TYPE_REMOTE_SNMP) { + $moduleData['module_type'] = MODULE_TYPE_GENERIC_DATA; + } else if ($moduleData['module_type'] == MODULE_TYPE_REMOTE_SNMP_PROC) { + $moduleData['module_type'] = MODULE_TYPE_GENERIC_PROC; + } else if ($moduleData['module_type'] == MODULE_TYPE_REMOTE_SNMP_INC) { + $moduleData['module_type'] = MODULE_TYPE_GENERIC_DATA_INC; + } else if ($moduleData['module_type'] == MODULE_TYPE_REMOTE_SNMP_STRING) { + // MODULE_TYPE_REMOTE_SNMP_STRING. + $moduleData['module_type'] = MODULE_TYPE_GENERIC_DATA_STRING; + } + } + + // Get current value. + $currentValue = $this->snmpgetValue($moduleData['value']); + // Format current value with thousands and decimals. + if (is_numeric($currentValue) === true) { + $decimals = (is_float($currentValue) === true) ? 2 : 0; + $currentValue = number_format($currentValue, $decimals); + } + + // It unit of measure have data, attach to current value. + if (empty($moduleData['module_unit']) === false) { + $currentValue .= ' '.$moduleData['module_unit']; + } + + // Stablish the data for show. + $interfaceModulesUpdated[] = [ + 'component_id' => $component_id_number++, + 'name' => $moduleData['module_name'], + 'type' => $moduleData['module_type'], + 'description' => $moduleData['module_description'], + 'min_warning' => $moduleData['module_thresholds']['min_warning'], + 'max_warning' => $moduleData['module_thresholds']['max_warning'], + 'inv_warning' => $moduleData['module_thresholds']['inv_warning'], + 'min_critical' => $moduleData['module_thresholds']['min_critical'], + 'max_critical' => $moduleData['module_thresholds']['max_critical'], + 'inv_critical' => $moduleData['module_thresholds']['inv_critical'], + 'module_enabled' => $moduleData['module_enabled'], + 'current_value' => $currentValue, + 'name_oid' => $moduleData['value'], + 'value' => $moduleData['value'], + ]; + } + + $interfaceTables[$interface['name']]['data'] = $interfaceModulesUpdated; + } + + html_print_div( + [ + 'class' => 'wizard wizard-result', + 'style' => 'margin-top: 20px;', + 'content' => $this->toggleTableModules( + $interfaceTables, + true, + true + ), + ] + ); + + // Add Create Modules form. + $this->createModulesForm(); + } + + + /** + * Perform WMI Module Wizard and show a table with results. + * + * @return void + */ + private function resultsWMIExplorerWizard() + { + $moduleBlocks = $this->moduleBlocks; + + $blockTables = []; + foreach ($moduleBlocks as $k => $module) { + // Construction of the WMI query. + $execCommand = $this->wmiQuery($module, 'scan'); + + // Execution of the WMI Query. + $outputCommand = $this->wmiExecution(io_safe_output($execCommand)); + + // Unpack the extra fields + // and include with key field in a field set. + $macros = json_decode($module['macros'], true); + $fieldSet = [ '0' => $module['query_key_field'] ]; + foreach ($macros as $fieldKey => $fieldMacro) { + if (preg_match('/extra_field_/', $fieldKey) !== 0) { + $tmpKey = explode('_', $fieldKey); + $macros['macros']['_field_wmi_'.$tmpKey[2].'_'] = $fieldMacro; + $fieldSet[(string) $tmpKey[2]] = $fieldMacro; + } + } + + // Value operation. + $valueOperation = io_safe_output($macros['value_operation']); + // Unpack the query filters. + $queryFilters = json_decode($module['query_filters'], true); + // Name of query filter field. + $fieldValueName = $fieldSet[$queryFilters['field']]; + + // Evaluate type of scan and execution. + if ($module['scan_type'] == SCAN_TYPE_FIXED) { + // Common actions for FIXED scan type. + $columnsList = []; + $rowList = []; + + foreach ($outputCommand as $rowLine => $rowContent) { + if (($rowLine == 0) + && (preg_match( + '/CLASS: '.$module['query_class'].'/', + $rowContent + ) === 0) + ) { + // Erase this module because give us an error. + unset($moduleBlocks[$k]); + // Do not continue with this module. + continue 2; + // The second row has the columns list. + } else if ($rowLine == 1) { + $columnsList = explode('|', $rowContent); + $columnFieldIndex = array_search( + $fieldValueName, + $columnsList, + true + ); + // The rest of the lines have results. + } else if ($rowLine == 2) { + $rowList = explode('|', $rowContent); + } + } + + // If name of the module have a macro. + $moduleBlocks[$k]['name'] = $this->macroFilter( + $module['name'], + $columnsList, + $rowList + ); + // Description can have macros too. + $moduleBlocks[$k]['description'] = $this->macroFilter( + $module['description'], + $columnsList, + $rowList + ); + // Query filters can have macros too. + $moduleBlocks[$k]['query_filters'] = $this->macroFilter( + $module['query_filters'], + $columnsList, + $rowList + ); + + foreach ($columnsList as $columnKey => $columnValue) { + $macros['macros']['_'.$columnValue.'_'] = $rowList[$columnKey]; + } + + $moduleBlocks[$k]['macros'] = json_encode($macros); + + if ($module['execution_type'] == EXECUTION_TYPE_NETWORK) { + // Construction of the WMI query. + // $execCommand = $this->wmiQuery($module, 'execution'); + // Execution of the WMI Query. + // $outputCommand = $this->wmiExecution($execCommand); + // Setting of value of this module (field query filter). + if ($queryFilters['field'] != '') { + if (empty($queryFilters['key_string']) === false) { + // Evaluate if the value is equal than key string. + $moduleBlocks[$k]['current_value'] = (io_safe_output($queryFilters['key_string']) == io_safe_output($rowList[$columnFieldIndex])) ? 1 : 0; + } else { + // Set the value getted. + $moduleBlocks[$k]['current_value'] = $rowList[$columnFieldIndex]; + } + + $moduleBlocks[$k]['current_value'] = $this->replacementUnit( + $moduleBlocks[$k]['current_value'], + $module['unit'], + $module['type'] + ); + } else { + $moduleBlocks[$k]['current_value'] = 0; + } + } else if ($module['execution_type'] == EXECUTION_TYPE_PLUGIN) { + // Combine both data list. + $dataCombined = array_combine($columnsList, $rowList); + // Change the macros for values. + foreach ($dataCombined as $macroKey => $macroValue) { + if (preg_match('/_'.$macroKey.'_/', $valueOperation) !== 0) { + $valueOperation = preg_replace( + '/_'.$macroKey.'_/', + $macroValue, + $valueOperation + ); + } + } + + // Evaluate the operation and set the current value. + $moduleBlocks[$k]['current_value'] = $this->evalOperation( + $valueOperation, + $module['unit'], + $module['type'] + ); + } + } else if ($module['scan_type'] == SCAN_TYPE_DYNAMIC) { + $columnsList = []; + $columnFieldIndex = '0'; + + foreach ($outputCommand as $rowLine => $rowContent) { + // The first result must be the class name. + if (($rowLine == 0) && (preg_match( + '/CLASS: '.$module['query_class'].'/', + $rowContent + ) === 0) + ) { + // Erase this module because give us an error. + unset($moduleBlocks[$k]); + // Do not continue with this module. + continue 2; + // The second row has the columns list. + } else if ($rowLine == 1) { + $columnsList = explode('|', $rowContent); + $columnFieldIndex = array_search( + $fieldValueName, + $columnsList, + true + ); + // The rest of the lines have results. + } else if ($rowLine > 1) { + $newModule = $module; + $rowList = explode('|', $rowContent); + // If name of the module have a macro. + $newModule['name'] = $this->macroFilter( + $module['name'], + $columnsList, + $rowList + ); + // Description can have macros too. + $newModule['description'] = $this->macroFilter( + $module['description'], + $columnsList, + $rowList + ); + + $newModule['query_filters'] = $this->macroFilter( + $module['query_filters'], + $columnsList, + $rowList + ); + + $keyString = $this->macroFilter( + io_safe_output($queryFilters['key_string']), + $columnsList, + $rowList + ); + + foreach ($columnsList as $columnKey => $columnValue) { + $macros['macros']['_'.$columnValue.'_'] = $rowList[$columnKey]; + } + + $newModule['macros'] = json_encode($macros); + + // Setting of value of this module (field query filter). + if ($module['execution_type'] == EXECUTION_TYPE_NETWORK) { + if ($queryFilters['field'] != '') { + // If key string filter filled. + if (empty($keyString) === false) { + // Evaluate if the value + // is equal than key string. + $newModule['current_value'] = ($keyString == io_safe_output($rowList[$columnFieldIndex])) ? 1 : 0; + } else { + // Set the value getted. + $newModule['current_value'] = $rowList[$columnFieldIndex]; + } + + $newModule['current_value'] = $this->replacementUnit( + $newModule['current_value'], + $module['unit'], + $module['type'] + ); + } else { + $newModule['current_value'] = 0; + } + } else if ($module['execution_type'] == EXECUTION_TYPE_PLUGIN) { + // Combine both data list. + $dataCombined = array_combine( + $columnsList, + $rowList + ); + // Change the macros for values. + foreach ($dataCombined as $macroKey => $macroValue) { + if (preg_match('/_'.$macroKey.'_/', $valueOperation) !== 0) { + $valueOperation = preg_replace( + '/_'.$macroKey.'_/', + $macroValue, + $valueOperation + ); + } + } + + // Evaluate the operation and set the result. + $newModule['current_value'] = $this->evalOperation( + $valueOperation, + $module['unit'], + $module['type'] + ); + } + + // Adding new module to the block. + $moduleBlocks[] = $newModule; + } + } + + // Clear the original module. + unset($moduleBlocks[$k]); + } + } + + // Create the final table with all of data received. + foreach ($moduleBlocks as $module) { + // Prepare the blocks. If its new, create a new index. + if (key_exists($module['group'], $blockTables) === false) { + $blockTables[$module['group']] = [ + 'name' => $module['group_name'], + 'data' => [], + ]; + } + + // Add the module info in the block. + $blockTables[$module['group']]['data'][] = $module; + if (isset($blockTables[$module['group']]['activeModules']) === false + && (int) $module['module_enabled'] === 1 + ) { + $blockTables[$module['group']]['activeModules'] = 2; + } else if (isset($blockTables[$module['group']]['activeModules']) === true + && (int) $module['module_enabled'] === 0 + ) { + $blockTables[$module['group']]['activeModules'] = 1; + } + } + + // General Default monitoring. + html_print_div( + [ + 'class' => 'wizard wizard-result', + 'style' => 'margin-top: 20px;', + 'content' => $this->toggleTableModules($blockTables), + ] + ); + // Add Create Modules form. + $this->createModulesForm(); + } + + + /** + * Perform SNMP Module Wizard and show a table with results. + * + * @return void + */ + private function resultsSNMPExplorerWizard() + { + $moduleBlocks = $this->moduleBlocks; + + $blockTables = []; + // Lets work with the modules. + foreach ($moduleBlocks as $k => $module) { + if ($this->serverType === SERVER_TYPE_ENTERPRISE_SATELLITE) { + if ($module['type'] == MODULE_TYPE_REMOTE_SNMP) { + $module['type'] = MODULE_TYPE_GENERIC_DATA; + $moduleBlocks[$k]['type'] = $module['type']; + } else if ($module['type'] == MODULE_TYPE_REMOTE_SNMP_PROC) { + $module['type'] = MODULE_TYPE_GENERIC_PROC; + $moduleBlocks[$k]['type'] = $module['type']; + } else if ($module['type'] == MODULE_TYPE_REMOTE_SNMP_INC) { + $module['type'] = MODULE_TYPE_GENERIC_DATA_INC; + $moduleBlocks[$k]['type'] = $module['type']; + } else if ($module['type'] == MODULE_TYPE_REMOTE_SNMP_STRING) { + // MODULE_TYPE_REMOTE_SNMP_STRING. + $module['type'] = MODULE_TYPE_GENERIC_DATA_STRING; + $moduleBlocks[$k]['type'] = $module['type']; + } + } + + if ($module['scan_type'] == SCAN_TYPE_FIXED) { + // Common for FIXED Scan types. + // If _nameOID_ macro exists, stablish the name getted. + if (empty($module['name_oid']) === false) { + $nameValue = $this->snmpgetValue($module['name_oid']); + $moduleBlocks[$k]['name'] = str_replace( + '_nameOID_', + $nameValue, + $module['name'] + ); + } + + if ($module['execution_type'] == EXECUTION_TYPE_NETWORK) { + // Set the current value to this module. + if (empty($module['value']) === true) { + $module['value'] = 0; + } + + $value = $this->snmpgetValue($module['value']); + // If the value is missing, we must not show this module. + if (empty($value) === true) { + unset($moduleBlocks[$k]); + } else { + $moduleBlocks[$k]['current_value'] = $this->replacementUnit( + $value, + $module['unit'], + $module['type'] + ); + } + + $moduleBlocks[$k]['macros'] = ''; + } else { + // Three steps for FIXED PLUGIN wizard modules. + // Break up macros. + $macros = json_decode($module['macros'], true); + $operation = io_safe_output($macros['value_operation']); + // Loop through the macros for get the + // OIDs and get his values. + foreach ($macros as $key => $oid) { + if (preg_match('/extra_field_/', $key) !== 0) { + $value = (float) $this->snmpgetValue($oid); + + // If the value not exists, + // we must not create a module. + if (empty($value) === true) { + unset($moduleBlocks[$k]); + continue 2; + } else { + $tmp = explode('_', $key); + $newKey = str_replace( + $key, + '_oid_'.$tmp[2].'_', + $key + ); + $macros['macros']['_oid_'.$tmp[2].'_'] = $oid; + $operation = preg_replace( + '/'.$newKey.'/', + $value, + $operation + ); + } + } + } + + $moduleBlocks[$k]['macros'] = json_encode($macros); + + // Get the result of the operation and set it. + $moduleBlocks[$k]['current_value'] = $this->evalOperation( + $operation, + $module['unit'], + $module['type'] + ); + } + } else { + if ($module['execution_type'] == EXECUTION_TYPE_NETWORK) { + // Get the values of snmpwalk. + $snmpwalkNames = $this->snmpwalkValues($module['name_oid']); + $snmpwalkValues = $this->snmpwalkValues($module['value']); + + $snmpwalkCombined = []; + foreach ($snmpwalkNames as $index => $name) { + $snmpwalkCombined[$index] = [ + 'name' => $name, + 'value' => $snmpwalkValues[$index], + ]; + } + + foreach ($snmpwalkCombined as $index => $r) { + $name = $r['name']; + $value = $r['value']; + + $newModule = $module; + // Setting the new values. + $newModule['name'] = str_replace( + '_nameOID_', + io_safe_input($name), + $module['name'] + ); + + // Save complete OID reference + index. + $newModule['value'] = $module['value'].$index; + $newModule['current_value'] = $this->replacementUnit( + $value, + $module['unit'], + $module['type'] + ); + $newModule['macros'] = ''; + + // Add this new module to the module list. + $moduleBlocks[] = $newModule; + } + + // Erase the main module. + unset($moduleBlocks[$k]); + } else { + // Break up macros. + $macros = (array) json_decode($module['macros']); + $operation = io_safe_output($macros['value_operation']); + $oids = []; + foreach ($macros as $key => $oid) { + if (preg_match('/extra_field_/', $key) !== 0) { + $tmp = explode('_', $key); + $newKey = str_replace( + $key, + '_oid_'.$tmp[2].'_', + $key + ); + $oids[$newKey] = $oid; + } + } + + $snmpwalkNamesTmp = []; + // Is needed the index and the values of snmpwalk. + $snmpwalkNamesTmp = $this->snmpwalkValues( + $module['name_oid'], + true + ); + + $snmpwalkNames = []; + foreach ($snmpwalkNamesTmp as $value) { + // Generate a new module based + // in the first for every name found. + $newModule = $module; + // Split the values got to obtain the name. + $tmpFirst = explode('.', $value); + $tmpSecond = explode(' ', $tmpFirst[1]); + // Position 0 is the index, Position 3 is the MIB name. + $snmpwalkNames[$tmpSecond[0]] = $tmpSecond[3]; + // Perform the operations for get the values. + $thisOperation = $operation; + foreach ($oids as $oidName => $oid) { + $currentOid = $oid.'.'.$tmpSecond[0]; + $macros['macros'][$oidName] = $currentOid; + $currentOidValue = $this->snmpgetValue($currentOid); + $thisOperation = preg_replace( + '/'.$oidName.'/', + $currentOidValue, + $thisOperation + ); + } + + $newModule['macros'] = json_encode($macros); + + // Get the result of the operation and set it. + $newModule['current_value'] = $this->evalOperation( + $thisOperation, + $module['unit'], + $module['type'] + ); + + // Add the name to this module. + $newModule['name'] = str_replace( + '_nameOID_', + io_safe_input($tmpSecond[3]), + $module['name'] + ); + + // Add this new module to the module list. + $moduleBlocks[] = $newModule; + } + + // Erase the main module. + unset($moduleBlocks[$k]); + } + } + } + + // Create the final table with all of data received. + foreach ($moduleBlocks as $module) { + if (is_array($module) === true + && count($module) <= 1 + && empty($module['macros']) === true + ) { + // Invalid module. + continue; + } + + // Prepare the blocks. If its new, create a new index. + if (key_exists($module['group'], $blockTables) === false) { + $blockTables[$module['group']] = [ + 'name' => $module['group_name'], + 'data' => [], + ]; + } + + // Add the module info in the block. + $blockTables[$module['group']]['data'][] = $module; + if (isset($blockTables[$module['group']]['activeModules']) === false + && (int) $module['module_enabled'] === 1 + ) { + $blockTables[$module['group']]['activeModules'] = 2; + } else if (isset($blockTables[$module['group']]['activeModules']) === true + && (int) $module['module_enabled'] === 0 + ) { + $blockTables[$module['group']]['activeModules'] = 1; + } + } + + if (empty($blockTables) === true) { + $this->message['type'][] = 'warning'; + $this->message['message'][] = __( + 'No information could be retrieved.' + ); + } else { + // General Default monitoring. + html_print_div( + [ + 'class' => 'wizard wizard-result', + 'style' => 'margin-top: 20px;', + 'content' => $this->toggleTableModules($blockTables), + ] + ); + + // Add Create Modules form. + $this->createModulesForm(); + } + + } + + + /** + * Get the data from the module blocks + * + * @return array Return an array with the module blocks needed. + */ + private function getModuleBlocks() + { + // Definition of filters. + $whereString = sprintf( + 'nc.id_modulo = %d AND nc.protocol = "%s"', + MODULE_WIZARD, + $this->protocol + ); + // Special considerations for both protocols. + if ($this->protocol === 'snmp') { + if (empty($this->penName) === true) { + return false; + } + + $whereString .= sprintf( + ' AND ( + nc.manufacturer_id = "all" OR nc.manufacturer_id = "%s" + )', + $this->penName + ); + $fields = 'nc.name_oid'; + } else if ($this->protocol === 'wmi') { + $fields = 'nc.query_class, nc.query_key_field,'; + $fields .= 'nc.scan_filters, nc.query_filters'; + } else { + $fields = ''; + } + + $sql = sprintf( + 'SELECT nc.id_nc AS component_id, + nc.name, + nc.type, + nc.description, + nc.id_group AS `group`, + ncg.name AS `group_name`, + nc.min_warning, + nc.max_warning, + nc.warning_inverse AS `inv_warning`, + nc.min_critical, + nc.max_critical, + nc.critical_inverse AS `inv_critical`, + nc.module_enabled, + %s, + nc.scan_type, + nc.execution_type, + nc.value, + nc.macros, + nc.unit + FROM tnetwork_component AS nc + LEFT JOIN tnetwork_component_group AS ncg + ON nc.id_group = ncg.id_sg + WHERE %s AND nc.enabled=1', + $fields, + $whereString + ); + + return db_get_all_rows_sql($sql); + } + + + /** + * Perform a snmpget for get a value from provided oid. + * + * @param string $oid Oid for get the value. + * @param boolean $full_output Array with full output.. + * + * @return mixed String when response, null if error. + */ + private function snmpgetValue(string $oid, ?bool $full_output=false) + { + $output = get_snmpwalk( + $this->targetIp, + $this->version, + $this->community, + $this->authUserV3, + $this->securityLevelV3, + $this->authMethodV3, + $this->authPassV3, + $this->privacyMethodV3, + $this->privacyPassV3, + 0, + $oid, + $this->targetPort, + $this->server, + $this->extraArguments, + (($full_output === false) ? '-Oa -On' : '-Oa') + ); + + if (is_array($output) === true) { + foreach ($output as $k => $v) { + if ($full_output === true) { + return $k.' = '.$v; + } + + $value = explode(': ', $v, 2); + return $value[1]; + } + } + + return false; + + } + + + /** + * Perform a snmpwalk for get the values from the provided oid. + * + * @param string $oid Oid for get the values. + * @param boolean $full_output Array with full output. + * + * @return array + */ + private function snmpwalkValues(string $oid, bool $full_output=false) + { + $output = []; + $temporal = get_snmpwalk( + $this->targetIp, + $this->version, + $this->community, + $this->authUserV3, + $this->securityLevelV3, + $this->authMethodV3, + $this->authPassV3, + $this->privacyMethodV3, + $this->privacyPassV3, + 0, + $oid, + $this->targetPort, + $this->server, + $this->extraArguments, + (($full_output === false) ? '-Oa -On' : '-Oa') + ); + + if (empty($temporal) === false) { + foreach ($temporal as $key => $oid_unit) { + if ($full_output === true) { + $output[] = $key.' = '.$oid_unit; + } else { + preg_match('/\.\d+$/', $key, $index); + $tmp = explode(': ', $oid_unit); + $output[$index[0]] = $tmp[1]; + } + } + } + + return $output; + } + + + /** + * Add a button for Create the modules selected. + * + * @return void + */ + private function createModulesForm() + { + // Create modules form. $form = [ - 'action' => $this->baseUrl, - 'id' => 'modal_form_action_response', + 'action' => $this->sectionUrl, + 'id' => 'form-create-modules', 'method' => 'POST', 'class' => 'modal', 'extra' => '', @@ -578,17 +3236,21 @@ class AgentWizard extends HTML // Inputs. $inputs = []; - + // Submit button. $inputs[] = [ - 'id' => 'inp-id_np', 'arguments' => [ - 'name' => 'id_np', - 'type' => 'hidden', - 'value' => '69', - 'return' => true, + 'label' => __('Create modules'), + 'name' => 'create-modules-action', + 'type' => 'button', + 'attributes' => 'class="sub cog float-right"', + 'script' => 'processListModules();', + 'return' => true, ], ]; + $inputs = array_merge($inputs, $this->getCommonDataInputs()); + + // Print the the submit button for create modules. $this->printForm( [ 'form' => $form, @@ -600,31 +3262,1360 @@ class AgentWizard extends HTML /** - * Perform SNMP + * Inputs. * - * @return void + * @return array Inputs for common data. */ - private function performSNMP() + private function getCommonDataInputs():array { - echo 'HOLA'; + $inputs[] = [ + 'id' => 'create-modules-action', + 'arguments' => [ + 'name' => 'create-modules-action', + 'type' => 'hidden', + 'value' => 1, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'protocol', + 'arguments' => [ + 'name' => 'protocol', + 'id' => 'protocol_data', + 'type' => 'hidden', + 'value' => $this->protocol, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'targetIp', + 'arguments' => [ + 'name' => 'targetIp', + 'type' => 'hidden', + 'value' => $this->targetIp, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'targetPort', + 'arguments' => [ + 'name' => 'targetPort', + 'type' => 'hidden', + 'value' => $this->targetPort, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'community', + 'arguments' => [ + 'name' => 'community', + 'type' => 'hidden', + 'value' => $this->community, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'version', + 'arguments' => [ + 'name' => 'version', + 'type' => 'hidden', + 'value' => $this->version, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'server', + 'arguments' => [ + 'name' => 'server', + 'type' => 'hidden', + 'value' => $this->server, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'authUserV3', + 'arguments' => [ + 'name' => 'authUserV3', + 'type' => 'hidden', + 'value' => $this->authUserV3, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'authPassV3', + 'arguments' => [ + 'name' => 'authPassV3', + 'type' => 'hidden', + 'value' => $this->authPassV3, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'authMethodV3', + 'arguments' => [ + 'name' => 'authMethodV3', + 'type' => 'hidden', + 'value' => $this->authMethodV3, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'securityLevelV3', + 'arguments' => [ + 'name' => 'securityLevelV3', + 'type' => 'hidden', + 'value' => $this->securityLevelV3, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'privacyMethodV3', + 'arguments' => [ + 'name' => 'privacyMethodV3', + 'type' => 'hidden', + 'value' => $this->privacyMethodV3, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'privacyPassV3', + 'arguments' => [ + 'name' => 'privacyPassV3', + 'type' => 'hidden', + 'value' => $this->privacyPassV3, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'namespaceWMI', + 'arguments' => [ + 'name' => 'namespaceWMI', + 'type' => 'hidden', + 'value' => $this->namespaceWMI, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'usernameWMI', + 'arguments' => [ + 'name' => 'usernameWMI', + 'type' => 'hidden', + 'value' => $this->usernameWMI, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'passwordWMI', + 'arguments' => [ + 'name' => 'passwordWMI', + 'type' => 'hidden', + 'value' => $this->passwordWMI, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'idAgent', + 'arguments' => [ + 'name' => 'idAgent', + 'type' => 'hidden', + 'value' => $this->idAgent, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'idPolicy', + 'arguments' => [ + 'name' => 'id', + 'type' => 'hidden', + 'value' => $this->idPolicy, + 'return' => true, + ], + ]; + + $inputs[] = [ + 'id' => 'wizardSection', + 'arguments' => [ + 'name' => 'wizard_section', + 'type' => 'hidden', + 'value' => $this->wizardSection, + 'return' => true, + ], + ]; + + return $inputs; } /** - * Perform WMI + * Create the tables with toggle interface for show the modules availables. * - * @return void + * @param mixed $blocks Info getted. + * @param boolean $showCurrentValue If true, show the + * column of current values. + * @param boolean $isInterface If true, the form is + * displayed for interface purposes. + * @param boolean $isPrincipal If true, the form is + * displayed for first interface module list. + * + * @return mixed String with the tables formed. */ - private function performWMI() - { + private function toggleTableModules( + $blocks, + bool $showCurrentValue=true, + bool $isInterface=false, + bool $isPrincipal=false + ) { + $output = ''; + foreach ($blocks as $idBlock => $block) { + // Data with all components. + $blockData = $block['data']; + // Active modules. + $activeModules = 0; + if (isset($block['activeModules']) === true) { + $activeModules = $block['activeModules']; + } + + // Creation of list of all components. + $blockComponentList = ''; + foreach ($blockData as $component) { + $blockComponentList .= $component['component_id'].','; + } + + $blockComponentList = chop($blockComponentList, ','); + // Title of Block. + if ($isInterface === true) { + if ($isPrincipal === true) { + $blockTitle = ''; + $blockTitle .= __( + 'Add general monitoring for all selected interfaces' + ); + $blockTitle .= ''; + } else { + $blockTitle = html_print_checkbox_switch_extended( + 'interfaz_select_'.$idBlock, + 1, + true, + false, + '', + 'form="form-create-modules" class="interfaz_select"', + true, + '' + ); + $blockTitle .= ''.$block['name']; + $blockTitle .= '  '; + $blockTitle .= html_print_image( + 'images/tip_help.png', + true, + [ + 'title' => __('Modules selected'), + 'alt' => __('Modules selected'), + 'id' => 'image-info-modules-'.$idBlock, + 'class' => 'hidden', + ] + ); + $blockTitle .= ''; + } + } else { + $blockTitle = ''.$block['name']; + $classImg = ''; + if ($activeModules === 0) { + $classImg = 'hidden'; + } + + $blockTitle .= '  '; + $blockTitle .= html_print_image( + 'images/tip_help.png', + true, + [ + 'title' => __('Modules selected'), + 'alt' => __('Modules selected'), + 'id' => 'image-info-modules-'.$idBlock, + 'class' => $classImg, + ] + ); + $blockTitle .= ''; + } + + $table = new StdClass(); + $table->styleTable = 'margin: 2em auto 0;border: 1px solid #ddd;background: white;'; + $table->rowid = []; + $table->data = []; + + $table->cellpadding = 0; + $table->cellspacing = 0; + $table->width = '100%'; + $table->class = 'info_table'; + // Subheaders for Warning and Critical columns. + $subheaders = 'Min.'; + $subheaders .= 'Max.'; + $subheaders .= 'Inv.'; + // Warning header. + $warning_header = html_print_div( + [ + 'style' => 'font-weight:700;text-align:center;', + 'content' => html_print_div( + [ + 'style' => 'width: 100%; text-align:center;', + 'content' => __('Warning'), + ], + true + ), + ], + true + ); + // Critical header. + $critical_header = html_print_div( + [ + 'style' => 'font-weight:700;text-align:center;', + 'content' => html_print_div( + [ + 'style' => 'width: 100%; text-align:center;', + 'content' => __('Critical'), + ], + true + ), + ], + true + ); + // Header section. + $table->head = []; + $table->head[0] = html_print_div( + [ + 'style' => 'font-weight:700;', + 'content' => __('Module Name'), + ], + true + ); + $table->head[1] = html_print_div( + [ + 'style' => 'font-weight:700;', + 'content' => __('Type'), + ], + true + ); + if ($isPrincipal === true) { + $headerInfo = __('Module info'); + } else { + $headerInfo = __('Description'); + } + + $table->head[2] = html_print_div( + [ + 'style' => 'font-weight:700;', + 'content' => $headerInfo, + ], + true + ); + $table->head[3] = $warning_header.$subheaders; + $table->head[4] = $critical_header.$subheaders; + + // Size. + $table->size = []; + $table->size[0] = '15%'; + $table->size[1] = '3%'; + $table->size[3] = '140px'; + $table->size[4] = '140px'; + $table->size[5] = '3%'; + + // If is needed show current value, we must correct the table. + if ($showCurrentValue === true) { + // Correct headers. + $table->head[5] = html_print_div( + [ + 'style' => 'font-weight:700;text-align:center;', + 'content' => __('Current value'), + ], + true + ); + + $class = ''; + if ($activeModules === 1) { + $class = 'alpha50'; + } + + $table->head[6] = html_print_checkbox_switch_extended( + 'sel_block_'.$idBlock, + 1, + $activeModules, + false, + 'switchBlockControl(event)', + '', + true, + '', + $class + ); + + // Correct size. + $table->size[5] = '5%'; + $table->size[6] = '3%'; + } else { + // Correct size. + $table->size[5] = '1%'; + $table->size[6] = '3%'; + $table->head[5] = ''; + $table->head[6] = html_print_checkbox_switch_extended( + 'sel_block_'.$idBlock, + 1, + true, + false, + 'switchBlockControl(event)', + '', + true, + '', + 'alpha50' + ); + } + + $table->data = []; + + foreach ($blockData as $kId => $module) { + $uniqueId = $idBlock.'_'.$module['component_id'].'-'.$kId; + + // Module Name column. + if ($isPrincipal === true) { + $data[0] = $module['name']; + } else { + $data[0] = html_print_input_text( + 'module-name-set-'.$uniqueId, + $module['name'], + '', + 25, + 255, + true, + false, + false, + '', + '', + '', + '', + false, + '', + 'form-create-modules' + ); + } + + // Module Type column. + $data[1] = ui_print_moduletype_icon($module['type'], true); + // Module info column. + if ($isPrincipal === true) { + $data[2] = io_safe_output($module['description']); + } else { + $data[2] = html_print_textarea( + 'module-description-set-'.$uniqueId, + 1, + 20, + $module['description'], + 'form=\'form-create-modules\' style=\'min-height: 50px;\'', + true + ); + } + + // Warning column. + $data_warning = ''; + $data_warning = html_print_div( + [ + 'class' => 'wizard-column-levels', + 'content' => html_print_input_text( + 'module-warning-min-'.$uniqueId, + $module['min_warning'], + '', + 3, + 4, + true, + false, + false, + '', + '', + '', + '', + false, + '', + 'form-create-modules' + ).' ', + ], + true + ); + $data_warning .= html_print_div( + [ + 'class' => 'wizard-column-levels', + 'content' => html_print_input_text( + 'module-warning-max-'.$uniqueId, + $module['max_warning'], + '', + 3, + 4, + true, + false, + false, + '', + '', + '', + '', + false, + '', + 'form-create-modules' + ), + ], + true + ); + $data_warning .= html_print_div( + [ + 'class' => 'wizard-column-levels', + 'style' => 'margin-top: 0.3em;', + 'content' => html_print_checkbox( + 'module-warning-inv-'.$uniqueId, + $module['inv_warning'], + $module['inv_warning'], + true, + false, + '', + false, + 'form="form-create-modules"' + ), + ], + true + ); + $data[3] = $data_warning; + // Critical column. + $data[4] = ''; + $data[4] .= html_print_div( + [ + 'class' => 'wizard-column-levels', + 'content' => html_print_input_text( + 'module-critical-min-'.$uniqueId, + $module['min_critical'], + '', + 3, + 4, + true, + false, + false, + '', + '', + '', + '', + false, + '', + 'form-create-modules' + ).' ', + ], + true + ); + $data[4] .= html_print_div( + [ + 'class' => 'wizard-column-levels', + 'content' => html_print_input_text( + 'module-critical-max-'.$uniqueId, + $module['max_critical'], + '', + 3, + 4, + true, + false, + false, + '', + '', + '', + '', + false, + '', + 'form-create-modules' + ), + ], + true + ); + + $data[4] .= html_print_div( + [ + 'class' => 'wizard-column-levels', + 'style' => 'margin-top: 0.3em;', + 'content' => html_print_checkbox( + 'module-critical_inv_'.$uniqueId, + $module['inv_critical'], + $module['inv_critical'], + true, + false, + '', + false, + 'form="form-create-modules"' + ), + ], + true + ); + + if (is_string($module['module_enabled']) === true) { + if ($module['module_enabled'] === false || $module['module_enabled'] === '0') { + $module['module_enabled'] = false; + } else { + $module['module_enabled'] = true; + } + } + + if ($isPrincipal === true) { + // Activation column. + $data[5] = ''; + $data[6] = html_print_checkbox_switch_extended( + 'sel_module_'.$uniqueId, + $module['module_enabled'], + $module['module_enabled'], + false, + 'switchBlockControl(event)', + '', + true + ); + } else { + // WIP. Current value of this module. + if (isset($module['current_value']) === false) { + $module['current_value'] = 'NO DATA'; + } + + $data[5] = ui_print_truncate_text( + io_safe_output($module['current_value']), + 20, + false, + true, + true, + '…', + false + ); + + // Activation column. + $data[6] = html_print_checkbox_switch_extended( + 'sel_module_'.$uniqueId, + $module['module_enabled'], + $module['module_enabled'], + false, + 'switchBlockControl(event)', + 'form="form-create-modules"', + true + ); + } + + // Input info for activate (active: 1 true 0 false). + $data[6] .= html_print_input_hidden( + 'module-active-'.$uniqueId, + $module['module_enabled'], + true, + false, + 'form="form-create-modules"' + ); + + // Type module. + $data[6] .= html_print_input_hidden( + 'module-type-'.$uniqueId, + $module['type'], + true, + false, + 'form="form-create-modules"' + ); + + // Unit module. + $data[6] .= html_print_input_hidden( + 'module-unit-'.$uniqueId, + $module['unit'], + true, + false, + 'form="form-create-modules"' + ); + + // Value module OID. + $data[6] .= html_print_input_hidden( + 'module-value-'.$uniqueId, + $module['value'], + true, + false, + 'form="form-create-modules"' + ); + + // Macro module. + $data[6] .= html_print_input_hidden( + 'module-macros-'.$uniqueId, + base64_encode($module['macros']), + true, + false, + 'form="form-create-modules"' + ); + + // Macro module. + $data[6] .= html_print_input_hidden( + 'module-name-oid-'.$uniqueId, + $module['name_oid'], + true, + false, + 'form="form-create-modules"' + ); + + // Scan type module. + $data[6] .= html_print_input_hidden( + 'module-scan_type-'.$uniqueId, + $module['scan_type'], + true, + false, + 'form="form-create-modules"' + ); + + // Execution type module. + $data[6] .= html_print_input_hidden( + 'module-execution_type-'.$uniqueId, + $module['execution_type'], + true, + false, + 'form="form-create-modules"' + ); + + // WMI Query class. + $data[6] .= html_print_input_hidden( + 'module-query_class-'.$uniqueId, + $module['query_class'], + true, + false, + 'form="form-create-modules"' + ); + + // WMI Query key. + $data[6] .= html_print_input_hidden( + 'module-query_key_field-'.$uniqueId, + $module['query_key_field'], + true, + false, + 'form="form-create-modules"' + ); + + // WMI scan filters. + $data[6] .= html_print_input_hidden( + 'module-scan_filters-'.$uniqueId, + $module['scan_filters'], + true, + false, + 'form="form-create-modules"' + ); + + // WMI query filters. + $data[6] .= html_print_input_hidden( + 'module-query_filters-'.$uniqueId, + base64_encode($module['query_filters']), + true, + false, + 'form="form-create-modules"' + ); + + if ($isInterface === true) { + // Is neccesary for default + // module name and description uin general monitoring. + $data[6] .= html_print_input_hidden( + 'module-default_name-'.$uniqueId, + $module['name'], + true, + false, + 'form="form-create-modules"' + ); + + $data[6] .= html_print_input_hidden( + 'module-default_description-'.$uniqueId, + $module['description'], + true, + false, + 'form="form-create-modules"' + ); + } + + array_push($table->data, $data); + } + + $content = html_print_table($table, true); + + $open = true; + $buttonSwitch = false; + $class = 'box-shadow white_table_graph interfaces_search'; + $reverseImg = true; + if ($isPrincipal === true) { + $open = false; + $buttonSwitch = true; + $class = 'box-shadow white_table_graph'; + $reverseImg = false; + } + + $output .= ui_toggle( + $content, + $blockTitle, + '', + $idBlock, + $open, + true, + '', + 'white-box-content', + $class, + 'images/arrow_down_green.png', + 'images/arrow_right_green.png', + false, + $reverseImg, + $buttonSwitch, + 'form="form-create-modules"' + ); + } + + return $output; + } + + + /** + * This function return the definition of modules for SNMP Interfaces + * + * @param array $data Data. + * + * @return array Return modules for defect. + */ + private function getInterfacesModules(array $data=[]) + { + $moduleDescription = ''; + $name = ''; + $value = '1'; + // Unpack the array with data. + if (empty($data) === false) { + if (empty($data['mac']) === false) { + $moduleDescription .= 'MAC: '.$data['mac'].' - '; + } else { + $moduleDescription .= ''; + } + + if (empty($data['ip']) === false) { + $moduleDescription .= 'IP: '.$data['ip'].' - '; + } else { + $moduleDescription .= ''; + } + + $name = $data['name'].'_'; + $value = $data['index']; + } + + // Definition object. + $definition = []; + // IfInOctets. + $moduleName = $name.'ifInOctets'; + $definition['ifInOctets'] = [ + 'module_name' => $moduleName, + 'module_type' => MODULE_TYPE_REMOTE_SNMP_INC, + 'module_description' => sprintf( + '(%s%s)', + $moduleDescription, + $moduleName + ), + 'module_info' => 'The total number of octets received on the interface, including framing characters', + 'execution_type' => 'network', + 'value' => '1.3.6.1.2.1.2.2.1.10.'.$value, + 'module_unit' => 'bytes/s', + 'default_enabled' => true, + 'module_enabled' => false, + 'module_thresholds' => [ + 'min_warning' => '0', + 'max_warning' => '0', + 'inv_warning' => false, + 'min_critical' => '0', + 'max_critical' => '0', + 'inv_critical' => false, + ], + + ]; + // IfOutOctets. + $moduleName = $name.'ifOutOctets'; + $definition['ifOutOctets'] = [ + 'module_name' => $moduleName, + 'module_type' => MODULE_TYPE_REMOTE_SNMP_INC, + 'module_description' => sprintf( + '(%s%s)', + $moduleDescription, + $moduleName + ), + 'module_info' => 'The total number of octets transmitted out of the interface, including framing characters', + 'execution_type' => 'network', + 'value' => '1.3.6.1.2.1.2.2.1.16.'.$value, + 'module_unit' => 'bytes/s', + 'default_enabled' => true, + 'module_enabled' => false, + 'module_thresholds' => [ + 'min_warning' => '0', + 'max_warning' => '0', + 'inv_warning' => false, + 'min_critical' => '0', + 'max_critical' => '0', + 'inv_critical' => false, + ], + ]; + // IfOperStatus. + $adminStatusValue = 1; + if (empty($data) === false) { + $adminStatusValue = $this->snmpgetValue( + '1.3.6.1.2.1.2.2.1.7.'.$value + ); + preg_match('/\((\d+?)\)/', $adminStatusValue, $match); + $adminStatusValue = (int) $match[1]; + } + + if ($adminStatusValue === 3) { + $min_warning = 3; + $max_warning = 4; + $min_critical = 2; + $max_critical = 3; + $inv_warning = true; + $inv_critical = false; + } else if ($adminStatusValue === 2) { + $min_warning = 3; + $max_warning = 0; + $min_critical = 1; + $max_critical = 2; + $inv_warning = false; + $inv_critical = false; + } else { + $min_warning = 3; + $max_warning = 0; + $min_critical = 2; + $max_critical = 3; + $inv_warning = false; + $inv_critical = false; + } + + $moduleName = $name.'ifOperStatus'; + $definition['ifOperStatus'] = [ + 'module_name' => $moduleName, + 'module_type' => MODULE_TYPE_REMOTE_SNMP, + 'module_description' => sprintf( + '(%s%s)', + $moduleDescription, + $moduleName + ), + 'module_info' => 'The current operational state of the interface: up(1), down(2), testing(3), unknown(4), dormant(5), notPresent(6), lowerLayerDown(7)', + 'execution_type' => 'network', + 'value' => '1.3.6.1.2.1.2.2.1.8.'.$value, + 'module_unit' => '', + 'default_enabled' => true, + 'module_enabled' => false, + 'module_thresholds' => [ + 'min_warning' => $min_warning, + 'max_warning' => $max_warning, + 'inv_warning' => $inv_warning, + 'min_critical' => $min_critical, + 'max_critical' => $max_critical, + 'inv_critical' => $inv_critical, + ], + ]; + + // IfAdminStatus. + $moduleName = $name.'ifAdminStatus'; + $definition['ifAdminStatus'] = [ + 'module_name' => $moduleName, + 'module_type' => MODULE_TYPE_REMOTE_SNMP, + 'module_description' => sprintf( + '(%s%s)', + $moduleDescription, + $moduleName + ), + 'module_info' => 'The desired state of the interface: up(1), down(2), testing(3)', + 'execution_type' => 'network', + 'value' => '1.3.6.1.2.1.2.2.1.7.'.$value, + 'module_unit' => '', + 'default_enabled' => false, + 'module_enabled' => false, + 'module_thresholds' => [ + 'min_warning' => '0', + 'max_warning' => '0', + 'inv_warning' => false, + 'min_critical' => '0', + 'max_critical' => '0', + 'inv_critical' => false, + ], + ]; + // IfInDiscards. + $moduleName = $name.'ifInDiscards'; + $definition['ifInDiscards'] = [ + 'module_name' => $moduleName, + 'module_type' => MODULE_TYPE_REMOTE_SNMP_INC, + 'module_description' => sprintf( + '(%s%s)', + $moduleDescription, + $moduleName + ), + 'module_info' => 'The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol', + 'execution_type' => 'network', + 'value' => '1.3.6.1.2.1.2.2.1.13.'.$value, + 'module_unit' => 'packets/s', + 'default_enabled' => false, + 'module_enabled' => false, + 'module_thresholds' => [ + 'min_warning' => '0', + 'max_warning' => '0', + 'inv_warning' => false, + 'min_critical' => '0', + 'max_critical' => '0', + 'inv_critical' => false, + ], + ]; + // IfOutDiscards. + $moduleName = $name.'ifOutDiscards'; + $definition['ifOutDiscards'] = [ + 'module_name' => $moduleName, + 'module_type' => MODULE_TYPE_REMOTE_SNMP_INC, + 'module_description' => sprintf( + '(%s%s)', + $moduleDescription, + $moduleName + ), + 'module_info' => 'The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being transmitted', + 'execution_type' => 'network', + 'value' => '1.3.6.1.2.1.2.2.1.19.'.$value, + 'module_unit' => 'packets/s', + 'default_enabled' => false, + 'module_enabled' => false, + 'module_thresholds' => [ + 'min_warning' => '0', + 'max_warning' => '0', + 'inv_warning' => false, + 'min_critical' => '0', + 'max_critical' => '0', + 'inv_critical' => false, + ], + ]; + // IfInErrors. + $moduleName = $name.'ifInErrors'; + $definition['ifInErrors'] = [ + 'module_name' => $moduleName, + 'module_type' => MODULE_TYPE_REMOTE_SNMP_INC, + 'module_description' => sprintf( + '(%s%s)', + $moduleDescription, + $moduleName + ), + 'module_info' => 'For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol. For character- oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol', + 'execution_type' => 'network', + 'value' => '1.3.6.1.2.1.2.2.1.14.'.$value, + 'module_unit' => 'packets/s', + 'default_enabled' => false, + 'module_enabled' => false, + 'module_thresholds' => [ + 'min_warning' => '0', + 'max_warning' => '0', + 'inv_warning' => false, + 'min_critical' => '0', + 'max_critical' => '0', + 'inv_critical' => false, + ], + ]; + // IfOutErrors. + $moduleName = $name.'ifOutErrors'; + $definition['ifOutErrors'] = [ + 'module_name' => $moduleName, + 'module_type' => MODULE_TYPE_REMOTE_SNMP_INC, + 'module_description' => sprintf( + '(%s%s)', + $moduleDescription, + $moduleName + ), + 'module_info' => 'For packet-oriented interfaces, the number of outbound packets that could not be transmitted because of errors. For character-oriented or fixed-length interfaces, the number of outbound transmission units that could not be transmitted because of errors', + 'execution_type' => 'network', + 'value' => '1.3.6.1.2.1.2.2.1.20.'.$value, + 'module_unit' => 'packets/s', + 'default_enabled' => false, + 'module_enabled' => false, + 'module_thresholds' => [ + 'min_warning' => '0', + 'max_warning' => '0', + 'inv_warning' => false, + 'min_critical' => '0', + 'max_critical' => '0', + 'inv_critical' => false, + ], + ]; + // IfInUcastPkts. + $moduleName = $name.'ifInUcastPkts'; + $definition['ifInUcastPkts'] = [ + 'module_name' => $moduleName, + 'module_type' => MODULE_TYPE_REMOTE_SNMP_INC, + 'module_description' => sprintf( + '(%s%s)', + $moduleDescription, + $moduleName + ), + 'module_info' => 'The number of packets, delivered by this sub-layer to a higher (sub-)layer, which were not addressed to a multicast or broadcast address at this sub-layer', + 'execution_type' => 'network', + 'value' => '1.3.6.1.2.1.2.2.1.11.'.$value, + 'module_unit' => 'packets/s', + 'default_enabled' => false, + 'module_enabled' => false, + 'module_thresholds' => [ + 'min_warning' => '0', + 'max_warning' => '0', + 'inv_warning' => false, + 'min_critical' => '0', + 'max_critical' => '0', + 'inv_critical' => false, + ], + ]; + // IfOutUcastPkts. + $moduleName = $name.'ifOutUcastPkts'; + $definition['ifOutUcastPkts'] = [ + 'module_name' => $moduleName, + 'module_type' => MODULE_TYPE_REMOTE_SNMP_INC, + 'module_description' => sprintf( + '(%s%s)', + $moduleDescription, + $moduleName + ), + 'module_info' => 'The total number of packets that higher-level protocols requested be transmitted, and which were not addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent', + 'execution_type' => 'network', + 'value' => '1.3.6.1.2.1.2.2.1.17.'.$value, + 'module_unit' => 'packets/s', + 'default_enabled' => false, + 'module_enabled' => false, + 'module_thresholds' => [ + 'min_warning' => '0', + 'max_warning' => '0', + 'inv_warning' => false, + 'min_critical' => '0', + 'max_critical' => '0', + 'inv_critical' => false, + ], + ]; + // IfInNUcastPkts. + $moduleName = $name.'ifInNUcastPkts'; + $definition['ifInNUcastPkts'] = [ + 'module_name' => $moduleName, + 'module_type' => MODULE_TYPE_REMOTE_SNMP_INC, + 'module_description' => sprintf( + '(%s%s)', + $moduleDescription, + $moduleName + ), + 'module_info' => 'The number of packets, delivered by this sub-layer to a higher (sub-)layer, which were addressed to a multicast or broadcast address at this sub-layer', + 'execution_type' => 'network', + 'value' => '1.3.6.1.2.1.2.2.1.12.'.$value, + 'module_unit' => 'packets/s', + 'default_enabled' => false, + 'module_enabled' => false, + 'module_thresholds' => [ + 'min_warning' => '0', + 'max_warning' => '0', + 'inv_warning' => false, + 'min_critical' => '0', + 'max_critical' => '0', + 'inv_critical' => false, + ], + ]; + // IfOutNUcastPkts. + $moduleName = $name.'ifOutNUcastPkts'; + $definition['ifOutNUcastPkts'] = [ + 'module_name' => $moduleName, + 'module_type' => MODULE_TYPE_REMOTE_SNMP_INC, + 'module_description' => sprintf( + '(%s%s)', + $moduleDescription, + $moduleName + ), + 'module_info' => 'The total number of packets that higher-level protocols requested be transmitted, and which were addressed to a multicast or broadcast address at this sub-layer, including those that were discarded or not sent', + 'execution_type' => 'network', + 'value' => '1.3.6.1.2.1.2.2.1.18.'.$value, + 'module_unit' => 'packets/s', + 'default_enabled' => false, + 'module_enabled' => false, + 'module_thresholds' => [ + 'min_warning' => '0', + 'max_warning' => '0', + 'inv_warning' => false, + 'min_critical' => '0', + 'max_critical' => '0', + 'inv_critical' => false, + ], + ]; + + return $definition; + } + + + /** + * Watch if is a arithmetic operation and perform it. + * + * @param string $operation Operation for perform. + * @param string $unit If filled, + * add unit of measure to the output. + * @param integer|null $type Module type. + * + * @return string + */ + private function evalOperation( + string $operation, + string $unit='', + ?int $type=0 + ) { + // Avoid non-numeric or arithmetic chars for security reasons. + if (preg_match('/(([^0-9\s\+\-\*\/\(\).,])+)/', $operation) === 1) { + $output = 'ERROR'; + } else { + try { + // Get the result of the operation and set it. + $output = ''; + eval('$output = '.$operation.';'); + // If this module has unit, attach to current value. + $output = $this->replacementUnit( + round($output, 2), + $unit, + $type + ); + } catch (Exception $e) { + $output = 'ERROR'; + } + } + + return $output; + } + + + /** + * Filters macros in attributes + * + * @param string $attribute String for manage. + * @param array $columnsList List of the columns. + * @param array $rowList List of the values of current row. + * + * @return string Returns the value filtered. + */ + private function macroFilter( + string $attribute, + array $columnsList, + array $rowList + ) { + // By default, the output is the raw input of attribute. + $output = $attribute; + // If the attribute has a macro, here is filled with the info. + if (preg_match('/_(.*?)_/', $attribute, $macro) !== 0) { + $indexColumn = array_search($macro[1], $columnsList, true); + if ($indexColumn !== false) { + $output = str_replace( + $macro[0], + $rowList[$indexColumn], + $attribute + ); + } + } + + return $output; + } + + + /** + * WMI query execution. + * + * @param string $execution Entire string with the execution command. + * + * @return mixed Result of the operation. + */ + private function wmiExecution(string $execution) + { + $output = []; + try { + exec($execution, $output); + } catch (Exception $ex) { + $output = [ '0' => 'ERROR: Failed execution: '.(string) $ex]; + } + + return $output; + } + + + /** + * WMI query constructor. + * + * @param array $moduleAttr Array with attributes of modules. + * @param string $filterType If filled, what query filter to use. + * @param boolean $onlyQuery Return only query, no command. + * + * @return string A string with the complete query to perform + */ + private function wmiQuery( + array $moduleAttr, + string $filterType='', + ?bool $onlyQuery=false + ) { + // Definition of vars. + $queryClass = $moduleAttr['query_class']; + $queryFilters = json_decode( + $moduleAttr['query_filters'], + true + ); + $macros = json_decode($moduleAttr['macros'], true); + + $queryFields = []; + + // If query key field is filled, add to the query fields. + if (empty($moduleAttr['query_key_field']) === false) { + $queryFields[] = $moduleAttr['query_key_field']; + } + + // Unpack the macros. + foreach ($macros as $key => $macro) { + // Only attach extra field macros and with data inside. + if (preg_match('/extra_field_/', $key) !== 0) { + if (empty($macro) === false) { + $queryFields[] = $macro; + } + } + } + + // Generate the string with fields to perform the query. + $queryFieldsStr = implode(',', $queryFields); + + // Where statement. + if (($filterType === 'scan' || $filterType === 'execution') + && empty($queryFilters[$filterType]) === false + ) { + $queryWhere = ' WHERE '; + $queryWhere .= $queryFilters[$filterType]; + } else { + $queryWhere = ' '; + } + + if ($onlyQuery === true) { + // Set up the execute command. + $executeCommand = sprintf( + 'SELECT %s FROM %s%s', + $queryFieldsStr, + $queryClass, + $queryWhere + ); + } else { + // Set up the execute command. + $executeCommand = sprintf( + '%s \'SELECT %s FROM %s%s\'', + $this->wmiCommand, + $queryFieldsStr, + $queryClass, + $queryWhere + ); + } + + return $executeCommand; } /** * Generate the JS needed for use inside * - * @return void + * @return mixed */ private function loadJS() { @@ -633,49 +4624,78 @@ class AgentWizard extends HTML ob_start(); ?> @@ -779,4 +4905,6 @@ class AgentWizard extends HTML echo $str; return $str; } -} \ No newline at end of file + + +} diff --git a/pandora_console/include/class/ConsoleSupervisor.php b/pandora_console/include/class/ConsoleSupervisor.php index 2c7ae0253f..f0f9b28bba 100644 --- a/pandora_console/include/class/ConsoleSupervisor.php +++ b/pandora_console/include/class/ConsoleSupervisor.php @@ -226,6 +226,19 @@ class ConsoleSupervisor * NOTIF.HAMASTER.MESSAGE */ $this->checkHaStatus(); + + /* + * Check if the Pandora Console log + * file remains in old location. + */ + $this->checkPandoraConsoleLogOldLocation(); + + /* + * Check if the audit log file + * remains in old location. + */ + $this->checkAuditLogOldLocation(); + } @@ -463,6 +476,17 @@ class ConsoleSupervisor $this->checkHaStatus(); } + /* + * Check if the audit log file + * remains in old location. + */ + $this->checkAuditLogOldLocation(); + + /* + Check if AllowOverride is None or All. + */ + $this->checkAllowOverrideEnabled(); + } @@ -1363,7 +1387,7 @@ class ConsoleSupervisor $this->cleanNotifications('NOTIF.PHP.INPUT_TIME'); } - if ($PHPmax_execution_time !== '0') { + if ((int) $PHPmax_execution_time !== 0) { $url = 'http://php.net/manual/en/info.configuration.php#ini.max-execution-time'; if ($config['language'] == 'es') { $url = 'http://php.net/manual/es/info.configuration.php#ini.max-execution-time'; @@ -2255,8 +2279,8 @@ class ConsoleSupervisor ui_get_full_url(false) ); $message_conf_cron .= ENTERPRISE_DIR.'/'.EXTENSIONS_DIR; - $message_conf_cron .= '/cron/cron.php >> '; - $message_conf_cron .= $config['homedir'].'/pandora_console.log'; + $message_conf_cron .= '/cron/cron.php >> '; + $message_conf_cron .= $config['homedir'].'/log/cron.log'; } if (isset($config['cron_last_run']) === true) { @@ -2485,4 +2509,77 @@ class ConsoleSupervisor } + /* + * Check if Pandora console log file remains in old location. + * + * @return void + */ + public function checkPandoraConsoleLogOldLocation() + { + global $config; + + if (file_exists($config['homedir'].'/pandora_console.log')) { + $title_pandoraconsole_old_log = __( + 'Pandora FMS console log file changed location', + $config['homedir'] + ); + $message_pandoraconsole_old_log = __( + 'Pandora FMS console log file has been moved to new location %s/log. Currently you have an outdated and inoperative version of this file at %s. Please, consider deleting it.', + $config['homedir'], + $config['homedir'] + ); + + $url = 'https://wiki.pandorafms.com/index.php?title=Pandora:QuickGuides_EN:General_Quick_Guide#Solving_problems._Where_to_look_and_who_to_ask'; + if ($config['language'] == 'es') { + $url = 'https://wiki.pandorafms.com/index.php?title=Pandora:QuickGuides_ES:Guia_Rapida_General#Soluci.C3.B3n_de_problemas._D.C3.B3nde_mirar.2C_a_qui.C3.A9n_preguntar'; + } + + $this->notify( + [ + 'type' => 'NOTIF.PANDORACONSOLE.LOG.OLD', + 'title' => __($title_pandoraconsole_old_log), + 'message' => __($message_pandoraconsole_old_log), + 'url' => $url, + ] + ); + } else { + $this->cleanNotifications('NOTIF.PANDORACONSOLE.LOG.OLD'); + } + } + + + /** + * Check if audit log file remains in old location. + * + * @return void + */ + public function checkAuditLogOldLocation() + { + global $config; + + if (file_exists($config['homedir'].'/audit.log')) { + $title_audit_old_log = __( + 'Pandora FMS audit log file changed location', + $config['homedir'] + ); + $message_audit_old_log = __( + 'Pandora FMS audit log file has been moved to new location %s/log. Currently you have an outdated and inoperative version of this file at %s. Please, consider deleting it.', + $config['homedir'], + $config['homedir'] + ); + + $this->notify( + [ + 'type' => 'NOTIF.AUDIT.LOG.OLD', + 'title' => __($title_audit_old_log), + 'message' => __($message_audit_old_log), + 'url' => '#', + ] + ); + } else { + $this->cleanNotifications('NOTIF.AUDIT.LOG.OLD'); + } + } + + } diff --git a/pandora_console/include/class/CustomNetScan.class.php b/pandora_console/include/class/CustomNetScan.class.php index 77cf514158..43f1e047cb 100644 --- a/pandora_console/include/class/CustomNetScan.class.php +++ b/pandora_console/include/class/CustomNetScan.class.php @@ -105,7 +105,7 @@ class CustomNetScan extends Wizard // from 'validation' page. if (isset($this->page) === true && $this->page === 1) { $task_id = get_parameter('task', null); - $taskname = get_parameter('taskname', ''); + $taskname = io_safe_input(strip_tags(io_safe_output(get_parameter('taskname')))); $comment = get_parameter('comment', ''); $server_id = get_parameter('id_recon_server', ''); $id_group = get_parameter('id_group', ''); diff --git a/pandora_console/include/class/Diagnostics.class.php b/pandora_console/include/class/Diagnostics.class.php index bcf36551d7..82bf0487e3 100644 --- a/pandora_console/include/class/Diagnostics.class.php +++ b/pandora_console/include/class/Diagnostics.class.php @@ -1008,7 +1008,7 @@ class Diagnostics extends Wizard $pathErrLogs = '/var/log/pandora/pandora_server.error'; $errors = $this->getLogInfo($pathErrLogs); - $pathConsoleLogs = $config['homedir'].'/pandora_console.log'; + $pathConsoleLogs = $config['homedir'].'/log/console.log'; $console = $this->getLogInfo($pathConsoleLogs); $result = [ @@ -2079,7 +2079,7 @@ class Diagnostics extends Wizard ], 'text' => [ ui_print_error_message(__('Invalid cron task'), '', true), - ui_print_success_message(__('Cron task generated'), '', true), + ui_print_success_message(__('Sending of information has been processed'), '', true), ], ]; diff --git a/pandora_console/include/class/HTML.class.php b/pandora_console/include/class/HTML.class.php index 002c91f181..376afc4bfd 100644 --- a/pandora_console/include/class/HTML.class.php +++ b/pandora_console/include/class/HTML.class.php @@ -764,8 +764,10 @@ class HTML $output_head .= $data['pre-content']; } - $output_head .= ''; + if (isset($data['form']) === true) { + $output_head .= ''; + } if ($return === false) { echo $output_head; diff --git a/pandora_console/include/class/Tree.class.php b/pandora_console/include/class/Tree.class.php index d9413521bb..a5f754866d 100644 --- a/pandora_console/include/class/Tree.class.php +++ b/pandora_console/include/class/Tree.class.php @@ -64,14 +64,22 @@ class Tree const TV_DEFAULT_AGENT_STATUS = -1; - public function __construct($type, $rootType='', $id=-1, $rootID=-1, $serverID=false, $childrenMethod='on_demand', $access='AR') - { + public function __construct( + $type, + $rootType='', + $id=-1, + $rootID=-1, + $serverID=false, + $childrenMethod='on_demand', + $access='AR', + $id_meta_server=0 + ) { $this->type = $type; $this->rootType = !empty($rootType) ? $rootType : $type; $this->id = $id; $this->rootID = !empty($rootID) ? $rootID : $id; $this->serverID = $serverID; - if (is_metaconsole()) { + if (is_metaconsole() && $id_meta_server == 0) { $this->serverName = metaconsole_get_server_by_id($serverID); } @@ -90,7 +98,7 @@ class Tree include_once $config['homedir'].'/include/functions_tags.php'; enterprise_include_once('include/functions_agents.php'); - if (is_metaconsole()) { + if (is_metaconsole() && $id_meta_server == 0) { enterprise_include_once('meta/include/functions_ui_meta.php'); } } diff --git a/pandora_console/include/class/TreeService.class.php b/pandora_console/include/class/TreeService.class.php index 38787e47f3..b9721b3eb0 100644 --- a/pandora_console/include/class/TreeService.class.php +++ b/pandora_console/include/class/TreeService.class.php @@ -1,32 +1,112 @@ 0) { + $this->metaID = $id_server_meta; + $this->serverID = $id_server_meta; + } + + parent::__construct( + $type, + $rootType, + $id, + $rootID, + $serverID, + $childrenMethod, + $access, + $id_server_meta + ); $this->L1fieldName = 'id_group'; $this->L1extraFields = [ @@ -41,25 +121,60 @@ class TreeService extends Tree $this->L2inner = 'LEFT JOIN tservice_element tse ON tse.id_agent = ta.id_agente'; - $this->L2condition = 'AND tse.id_service='.$this->id; + $this->L2condition = sprintf( + ' AND tse.id_service=%d AND tse.id_server_meta=0 ', + $this->id + ); } + /** + * Setter (propagate counters). + * + * @param boolean $value Set. + * + * @return void + */ public function setPropagateCounters($value) { $this->propagateCounters = (bool) $value; } + /** + * Set display all groups. + * + * @param boolean $value Set. + * + * @return void + */ public function setDisplayAllGroups($value) { $this->displayAllGroups = (bool) $value; } + /** + * Generates tree data. + * + * @return void + */ protected function getData() { + if (is_metaconsole() === true && $this->metaID > 0) { + // Impersonate node. + \enterprise_include_once('include/functions_metaconsole.php'); + \enterprise_hook( + 'metaconsole_connect', + [ + null, + $this->metaID, + ] + ); + $this->connectedToNode = true; + } + if ($this->id == -1) { $this->getFirstLevel(); } else if ($this->type == 'services') { @@ -67,9 +182,19 @@ class TreeService extends Tree } else if ($this->type == 'agent') { $this->getThirdLevel(); } + + if (is_metaconsole() === true && $this->metaID > 0) { + // Restore connection. + \enterprise_hook('metaconsole_restore_db'); + } } + /** + * Generates first level data. + * + * @return void + */ protected function getFirstLevel() { global $config; @@ -118,10 +243,13 @@ class TreeService extends Tree } + /** + * Retrieve root services. + * + * @return array Of root services. + */ protected function getProcessedServices() { - $fields = $this->getFirstLevelFields(); - $is_favourite = $this->getServiceFavouriteFilter(); if (users_can_manage_group_all('AR')) { @@ -131,29 +259,32 @@ class TreeService extends Tree } $sql = sprintf( - "SELECT t1.* - FROM tservice_element tss - RIGHT JOIN - (SELECT ts.id, ts.id_agent_module, ts.name, ts.name AS `alias`, ts.id AS `rootID`, - 'services' AS rootType, 'services' AS type, - 0 AS quiet, - SUM(if((tse.id_agent<>0), 1, 0)) AS `total_agents`, - SUM(if((tse.id_agente_modulo<>0), 1, 0)) AS `total_modules`, - SUM(if((tse.id_service_child<>0), 1, 0)) AS `total_services` - FROM tservice ts - LEFT JOIN tservice_element tse - ON ts.id=tse.id_service - WHERE - 1=1 - %s - %s - GROUP BY id - ) as t1 - ON tss.id_service_child = t1.id - WHERE tss.id_service_child IS NULL - ", - $groups_acl, - $is_favourite + 'SELECT + ts.id, + ts.id_agent_module, + ts.name, + ts.name as `alias`, + ts.id as `rootID`, + "services" as `rootType`, + "services" as `type`, + ts.quiet, + SUM(if((tse.id_agent<>0), 1, 0)) AS `total_agents`, + SUM(if((tse.id_agente_modulo<>0), 1, 0)) AS `total_modules`, + SUM(if((tse.id_service_child<>0), 1, 0)) AS `total_services`, + SUM(if((tse.rules != ""), 1, 0)) AS `total_dynamic` + FROM tservice ts + LEFT JOIN tservice_element tse + ON tse.id_service = ts.id + WHERE ts.id NOT IN ( + SELECT DISTINCT id_service_child + FROM tservice_element + WHERE id_server_meta = 0 + ) + %s + %s + GROUP BY ts.id', + $is_favourite, + $groups_acl ); $stats = db_get_all_rows_sql($sql); @@ -161,8 +292,13 @@ class TreeService extends Tree $services = []; foreach ($stats as $service) { - $services[$service['id']] = $this->getProcessedItem($services[$service['id']]); - if (($service['total_services'] + $service['total_agents'] + $service['total_modules']) > 0) { + $services[$service['id']] = $this->getProcessedItem( + $services[$service['id']] + ); + $n_items = ($service['total_services'] + $service['total_agents']); + $n_items += ($service['total_modules'] + $service['total_dynamic']); + + if ($n_items > 0) { $services[$service['id']]['searchChildren'] = 1; } else { $services[$service['id']]['searchChildren'] = 0; @@ -182,6 +318,13 @@ class TreeService extends Tree } + /** + * Retrieve first level fields. + * + * @deprecated 746. + * + * @return string With a first level fields. + */ protected function getFirstLevelFields() { $fields = []; @@ -190,187 +333,349 @@ class TreeService extends Tree } + /** + * Retrieves elements (second level) from selected rootID. + * + * @return void + */ protected function getSecondLevel() { - $data = []; - $data_agents = []; - $data_modules = []; - $data_services = []; + $service = new Service($this->id, true); - $sql = $this->getSecondLevelSql(); - $data_agents = db_process_sql($sql); + $output = []; + foreach ($service->children() as $item) { + $tmp = []; - if (empty($data_agents)) { - $data_agents = []; - } - - $this->processAgents($data_agents); - - foreach ($data_agents as $key => $agent) { - $data_agents[$key]['showEventsBtn'] = 1; - $data_agents[$key]['eventAgent'] = $agent['id']; - } - - $sql = $this->getSecondLevelModulesSql(); - $data_modules = db_process_sql($sql); - - if (empty($data_modules)) { - $data_modules = []; - } else { - foreach ($data_modules as $key => $module) { - switch ($module['estado']) { - case '0': - $module_status = 'ok'; - $module_title = 'NORMAL'; - break; - - case '1': - $module_status = 'critical'; - $module_title = 'CRITICAL'; - break; - - case '2': - $module_status = 'warning'; - $module_title = 'WARNING'; - break; - - case '3': - $module_status = 'down'; - $module_title = 'UNKNOWN'; - break; - - case '4': - $module_status = 'no_data'; - $module_title = 'NOT INITIALIZED'; - break; - - default: - $module_status = 'down'; - $module_title = 'UNKNOWN'; - break; - } - - $data_modules[$key]['statusImageHTML'] = ''.$module_title.' status.'; - $data_modules[$key]['showEventsBtn'] = 1; - $data_modules[$key]['eventModule'] = $module['id_agente_modulo']; - } - } - - $sql = $this->getSecondLevelServicesSql(); - $data_services = db_process_sql($sql); - - $service_stats = []; - - foreach ($data_services as $service) { - $service_stats[$service['id']]['id'] = (int) $service['id']; - $service_stats[$service['id']]['name'] = $service['name']; - $service_stats[$service['id']]['alias'] = $service['name']; - if (($service['total_services'] + $service['total_agents'] + $service['total_modules']) > 0) { - $service_stats[$service['id']]['searchChildren'] = 1; - } else { - $services[$service['id']]['searchChildren'] = 0; + if ($this->metaID > 0) { + $tmp['metaID'] = $this->metaID; + } else if ($item->id_server_meta() !== 0) { + $tmp['metaID'] = $item->id_server_meta(); } - $service_stats[$service['id']]['rootID'] = $service['rootID']; - $service_stats[$service['id']]['rootType'] = $service['rootType']; - $service_stats[$service['id']]['type'] = 'services'; - $service_stats[$service['id']]['children'] = []; - $service_stats[$service['id']]['serviceDetail'] = 'index.php?sec=network&sec2=enterprise/operation/services/services&tab=service_map&id_service='.(int) $service['id']; - $service_stats[$service['id']]['counters'] = [ - 'total_services' => $service['total_services'], - 'total_agents' => $service['total_agents'], - 'total_modules' => $service['total_modules'], - ]; - } + $tmp['serverID'] = $tmp['metaID']; - $own_info = get_user_info($config['id_user']); + switch ($item->type()) { + case SERVICE_ELEMENT_AGENT: + if ($item->agent() === null) { + // Skip item. + continue 2; + } - if ($own_info['is_admin'] || check_acl($config['id_user'], 0, 'PM')) { - $display_all_services = true; - } else { - $display_all_services = false; - } + $tmp['id'] = $item->agent()->id_agente(); + $tmp['name'] = $item->agent()->nombre(); + $tmp['alias'] = $item->agent()->alias(); + $tmp['fired_count'] = $item->agent()->fired_count(); + $tmp['normal_count'] = $item->agent()->normal_count(); + $tmp['warning_count'] = $item->agent()->warning_count(); + $tmp['critical_count'] = $item->agent()->critical_count(); + $tmp['unknown_count'] = $item->agent()->unknown_count(); + $tmp['notinit_count'] = $item->agent()->notinit_count(); + $tmp['total_count'] = $item->agent()->total_count(); - $services = services_get_services($filter, false, $display_all_services); + if ($item->agent()->quiet() > 0 + || $item->agent()->cps() > 0 + ) { + $tmp['quiet'] = 1; + } else { + $tmp['quiet'] = 0; + } - foreach ($services as $row) { - if (!array_key_exists($row['id'], $service_stats)) { - continue; - } + $tmp['state_critical'] = $tmp['critical_count']; + $tmp['state_warning'] = $tmp['warning_count']; + $tmp['state_unknown'] = $tmp['unknown_count']; + $tmp['state_notinit'] = $tmp['notinit_count']; + $tmp['state_normal'] = $tmp['normal_count']; + $tmp['state_total'] = $tmp['total_count']; + $tmp['type'] = SERVICE_ELEMENT_AGENT; + $tmp['rootID'] = $this->rootID; + $tmp['rootType'] = $this->rootType; + $tmp['counters'] = [ + 'alerts' => $item->agent()->fired_count(), + 'ok' => $item->agent()->normal_count(), + 'warning' => $item->agent()->warning_count(), + 'critical' => $item->agent()->critical_count(), + 'unknown' => $item->agent()->unknown_count(), + 'not_init' => $item->agent()->notinit_count(), + 'total' => $item->agent()->total_count(), + ]; - $status = services_get_status($row, true); + switch ($item->agent()->lastStatus()) { + case AGENT_STATUS_NORMAL: + $tmp['statusImageHTML'] = 'NORMAL status.'; + break; - switch ($status) { - case SERVICE_STATUS_NORMAL: - $service_stats[$row['id']]['statusImageHTML'] = 'NORMAL status.'; + case AGENT_STATUS_CRITICAL: + case AGENT_STATUS_ALERT_FIRED: + $tmp['statusImageHTML'] = 'CRITICAL status.'; + break; + + case AGENT_STATUS_WARNING: + $tmp['statusImageHTML'] = 'WARNING status.'; + break; + + case AGENT_STATUS_UNKNOWN: + default: + $tmp['statusImageHTML'] = 'UNKNOWN status.'; + break; + } + + $tmp['children'] = []; + $tmp['searchChildren'] = 1; + $tmp['showEventsBtn'] = 1; + $tmp['eventAgent'] = $item->agent()->id_agente(); break; - case SERVICE_STATUS_CRITICAL: - $service_stats[$row['id']]['statusImageHTML'] = 'CRITICAL status.'; + case SERVICE_ELEMENT_MODULE: + if ($item->module() === null) { + // Skip item. + continue 2; + } + + $tmp['id'] = $item->module()->id_agente_modulo(); + $tmp['name'] = $item->module()->nombre(); + $tmp['id_tipo_modulo'] = $item->module()->id_tipo_modulo(); + $tmp['id_modulo'] = $item->module()->id_modulo(); + $tmp['estado'] = $item->module()->lastStatus(); + $tmp['datos'] = $item->module()->lastValue(); + $tmp['parent'] = $item->module()->parent_module_id(); + $alerts = alerts_get_alerts_module_name( + $item->module()->id_agente_modulo() + ); + if ($alerts !== false) { + // Seems to be used as 'flag'. + $tmp['alerts'] = $alerts[0]['id']; + } + + $tmp['unit'] = $item->module()->unit(); + $tmp['type'] = SERVICE_ELEMENT_MODULE; + $tmp['id_module_type'] = $item->module()->id_tipo_modulo(); + $tmp['server_type'] = $tmp['id_module_type']; + $tmp['status'] = $item->module()->lastStatus(); + $tmp['value'] = modules_get_agentmodule_data_for_humans( + array_merge( + $item->module()->toArray(), + [ 'datos' => $item->module()->lastValue() ] + ) + ); + + $title = $item->module()->lastStatusTitle(); + + if (is_numeric($item->module()->lastValue())) { + $divisor = get_data_multiplier($item->module()->unit()); + $title .= ' : '.format_for_graph( + $item->module()->lastValue(), + 1, + '.', + ',', + $divisor + ); + } else { + $title .= ' : '.substr( + io_safe_output( + $item->module()->lastValue() + ), + 0, + 42 + ); + } + + $tmp['serverName'] = $item->module()->agent()->server_name(); + $tmp['serverID'] = $tmp['metaID']; + $tmp['statusText'] = $item->module()->lastStatusText(); + $tmp['showGraphs'] = 1; + $tmp['showEventsBtn'] = 1; + $tmp['eventAgent'] = $item->module()->id_agente(); + + $html = 'module()->lastStatusTitle().'" />'; + $tmp['statusImageHTML'] = $html; + $tmp = array_merge( + $tmp, + $this->getModuleGraphLinks( + $tmp + ) + ); break; - case SERVICE_STATUS_WARNING: - $service_stats[$row['id']][$key]['statusImageHTML'] = 'WARNING status.'; + case SERVICE_ELEMENT_SERVICE: + if ($item->service() === null) { + // Skip item. + continue 2; + } + + $tmp['id'] = (int) $item->service()->id(); + $tmp['name'] = $item->service()->name(); + $tmp['alias'] = $item->service()->name(); + + if ($this->connectedToNode === false + && is_metaconsole() === true + && $tmp['metaID'] > 0 + ) { + // Impersonate node. + \enterprise_include_once('include/functions_metaconsole.php'); + \enterprise_hook( + 'metaconsole_connect', + [ + null, + $tmp['metaID'], + ] + ); + } + + $grandchildren = $item->service()->children(); + + if ($this->connectedToNode === false + && is_metaconsole() === true + && $tmp['metaID'] > 0 + ) { + // Restore connection. + \enterprise_hook('metaconsole_restore_db'); + } + + $counters = [ + 'total_modules' => 0, + 'total_agents' => 0, + 'total_services' => 0, + 'total_dynamic' => 0, + 'total' => 0, + ]; + + if (is_array($grandchildren) === true) { + $counters = array_reduce( + $grandchildren, + function ($carry, $item) { + if ($item->type() === SERVICE_ELEMENT_MODULE) { + $carry['total_modules']++; + } else if ($item->type() === SERVICE_ELEMENT_AGENT) { + $carry['total_agents']++; + } else if ($item->type() === SERVICE_ELEMENT_SERVICE) { + $carry['total_services']++; + } else if ($item->type() === SERVICE_ELEMENT_DYNAMIC) { + $carry['total_dynamic']++; + } + + $carry['total']++; + + return $carry; + }, + $counters + ); + } + + if ($counters['total'] > 0) { + $tmp['searchChildren'] = 1; + } + + $tmp['type'] = 'services'; + $tmp['rootType'] = 'services'; + $tmp['children'] = []; + $tmp['serviceDetail'] = ui_get_full_url( + 'index.php?sec=network&sec2=enterprise/operation/services/services&tab=service_map&id_service='.$item->service()->id() + ); + $tmp['counters'] = $counters; + $tmp['rootID'] = $this->rootID; + switch ($item->service()->lastStatus()) { + case SERVICE_STATUS_NORMAL: + $tmp['statusImageHTML'] = 'NORMAL status.'; + break; + + case SERVICE_STATUS_CRITICAL: + $tmp['statusImageHTML'] = 'CRITICAL status.'; + break; + + case SERVICE_STATUS_WARNING: + $tmp['statusImageHTML'] = 'WARNING status.'; + break; + + case SERVICE_STATUS_UNKNOWN: + default: + $tmp['statusImageHTML'] = 'UNKNOWN status.'; + break; + } break; - case SERVICE_STATUS_UNKNOWN: default: - $service_stats[$row['id']]['statusImageHTML'] = 'UNKNOWN status.'; - break; + // Unknown type. + continue 2; } + + $output[] = $tmp; } - $data_services = array_values($service_stats); - - $data = array_merge($data_services, $data_agents, $data_modules); - - if (empty($data)) { - $this->tree = []; - return; - } - - $this->tree = $data; + $this->tree = $output; } + /** + * SQL query to retrieve second level items. + * + * @return string SQL. + */ protected function getSecondLevelServicesSql() { $group_acl = $this->getGroupAclCondition(); - $sql = "SELECT ts.id, ts.name, tse1.id_service AS `rootID`, 'services' AS rootType, 'services' AS type, 0 AS quiet, SUM(if((tse2.id_agent<>0), 1, 0)) AS `total_agents`, SUM(if((tse2.id_agente_modulo<>0), 1, 0)) AS `total_modules`, SUM(if((tse2.id_service_child<>0), 1, 0)) AS `total_services`, 0 AS fired_count, 0 AS normal_count, 0 AS warning_count, 0 AS critical_count, 0 AS unknown_count, 0 AS notinit_count, 0 AS state_critical, 0 AS state_warning, 0 AS state_unknown, 0 AS state_notinit, 0 AS state_normal, 0 AS state_total, '' AS statusImageHTML, '' AS alertImageHTML - FROM tservice_element tse1 - LEFT JOIN tservice_element tse2 ON tse1.id_service_child=tse2.id_service - LEFT JOIN tservice ts ON tse1.id_service_child=ts.id - WHERE tse1.id_service=$this->id AND tse1.id_service_child<>0 - GROUP BY tse1.id_service_child - "; + $sql = sprintf( + 'SELECT + ts.id, + ts.id_agent_module, + ts.name, + ts.name as `alias`, + tse.id_service as `rootID`, + "services" as `rootType`, + "services" as `type`, + ts.quiet, + tse.id_server_meta, + SUM(if((tse.id_agent<>0), 1, 0)) AS `total_agents`, + SUM(if((tse.id_agente_modulo<>0), 1, 0)) AS `total_modules`, + SUM(if((tse.id_service_child<>0), 1, 0)) AS `total_services` + FROM tservice ts + INNER JOIN tservice_element tse + ON tse.id_service_child = ts.id + WHERE + tse.id_service = %d + %s + GROUP BY ts.id', + $this->id, + $group_acl + ); return $sql; } - protected function getSecondLevelModulesSql() - { - $sql = "SELECT tse.id_agente_modulo, nombre AS `name`, nombre AS `alias`, tse.id_service AS `rootID`, 'services' AS `rootType`, 'modules' AS `type`, estado - FROM tservice_element tse - INNER JOIN tagente_modulo tam ON tse.id_agente_modulo=tam.id_agente_modulo - INNER JOIN tagente_estado tae ON tam.id_agente_modulo=tae.id_agente_estado - WHERE tse.id_service=$this->id AND tse.id_agente_modulo<>0 - "; - - return $sql; - } - - - protected function getAgentStatusFilter($status=self::TV_DEFAULT_AGENT_STATUS) - { - return ''; - } - - + /** + * Retrieve SQL filter for current filte.r + * + * @return string SQL filter. + */ protected function getServiceFavouriteFilter() { - if (isset($this->filter['is_favourite']) && !empty($this->filter['is_favourite'])) { + if (isset($this->filter['is_favourite']) === true + && empty($this->filter['is_favourite']) === false + ) { return ' AND is_favourite = 1'; } @@ -378,4 +683,70 @@ class TreeService extends Tree } + /** + * Overwrites partial functionality of general Tree.class. + * + * @param array $module Data of given module. + * + * @return array Complementary information. + */ + protected function getModuleGraphLinks(array $module) + { + $graphType = return_graphtype($module['id_module_type']); + $url = ui_get_full_url( + 'operation/agentes/stat_win.php', + false, + false, + false + ); + $winHandle = dechex(crc32($module['id'].$module['name'])); + + $graph_params = [ + 'type' => $graphType, + 'period' => SECONDS_1DAY, + 'id' => $module['id'], + 'refresh' => SECONDS_10MINUTES, + ]; + + if (is_metaconsole() === true) { + // Set the server id. + $graph_params['server'] = $module['serverID']; + } + + $graph_params_str = http_build_query($graph_params); + $moduleGraphURL = $url.'?'.$graph_params_str; + + return [ + 'moduleGraph' => [ + 'url' => $moduleGraphURL, + 'handle' => $winHandle, + ], + 'snapshot' => ui_get_snapshot_link( + [ + 'id_module' => $module['id'], + 'interval' => $module['current_interval'], + 'module_name' => $module['name'], + 'id_node' => (($module['serverID'] > 0) ? $module['serverID'] : 0), + ], + true + ), + ]; + + } + + + /** + * Needs to be defined to maintain Tree view functionality. + * + * @param integer $status Status. + * + * @return string Fixed string. + */ + protected function getAgentStatusFilter( + $status=self::TV_DEFAULT_AGENT_STATUS + ) { + return ''; + } + + } diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index 26a05a40a6..96cdacc401 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,8 +20,8 @@ /** * Pandora build version and version */ -$build_version = 'PC200612'; -$pandora_version = 'v7.0NG.746'; +$build_version = 'PC200717'; +$pandora_version = 'v7.0NG.747'; // Do not overwrite default timezone set if defined. $script_tz = @date_default_timezone_get(); @@ -51,8 +51,6 @@ if ($develop_bypass != 1) { } ini_set('display_errors', 0); - ini_set('log_errors', 1); - ini_set('error_log', $config['homedir'].'/pandora_console.log'); } else { // Develop mode, show all notices and errors on Console (and log it) if (version_compare(PHP_VERSION, '5.3.0') >= 0) { @@ -62,8 +60,6 @@ if ($develop_bypass != 1) { } ini_set('display_errors', 1); - ini_set('log_errors', 1); - ini_set('error_log', $config['homedir'].'/pandora_console.log'); } // Check if mysqli is available diff --git a/pandora_console/include/constants.php b/pandora_console/include/constants.php index 25674080d0..0104a1fd5a 100644 --- a/pandora_console/include/constants.php +++ b/pandora_console/include/constants.php @@ -50,7 +50,9 @@ define('EVENT_NO_VALIDATED', 3); define('AGENT_ENABLED', 0); define('AGENT_DISABLED', 1); - +// Module disabled status. +define('MODULE_ENABLED', 0); +define('MODULE_DISABLED', 1); // Error report codes. define('NOERR', 11111); @@ -149,8 +151,8 @@ define('COL_IGNORED', '#DDD'); define('COL_ALERTFIRED', '#F36201'); define('COL_MINOR', '#F099A2'); define('COL_MAJOR', '#C97A4A'); -define('COL_INFORMATIONAL', '#E4E4E4'); -define('COL_MAINTENANCE', '#4a83f3'); +define('COL_INFORMATIONAL', '#4a83f3'); +define('COL_MAINTENANCE', '#E4E4E4'); define('COL_GRAPH1', '#C397F2'); define('COL_GRAPH2', '#FFE66C'); @@ -259,17 +261,27 @@ define('SERVICE_STATUS_NORMAL', 0); define('SERVICE_STATUS_CRITICAL', 1); define('SERVICE_STATUS_WARNING', 2); define('SERVICE_STATUS_ALERT', 4); -// Default weights. +// Default service weights. define('SERVICE_WEIGHT_CRITICAL', 1); define('SERVICE_WEIGHT_WARNING', 0.5); +define('SERVICE_SMART_WEIGHT_CRITICAL', 50); +define('SERVICE_SMART_WEIGHT_WARNING', 30); +// Default service element weights. define('SERVICE_ELEMENT_WEIGHT_CRITICAL', 1); define('SERVICE_ELEMENT_WEIGHT_WARNING', 0.5); define('SERVICE_ELEMENT_WEIGHT_OK', 0); define('SERVICE_ELEMENT_WEIGHT_UNKNOWN', 0); +define('SERVICE_ELEMENT_SMART_CRITICAL', 100); +define('SERVICE_ELEMENT_SMART_WARNING', 50); +// Service element types. +define('SERVICE_ELEMENT_AGENT', 'agent'); +define('SERVICE_ELEMENT_MODULE', 'module'); +define('SERVICE_ELEMENT_SERVICE', 'service'); +define('SERVICE_ELEMENT_DYNAMIC', 'dynamic'); + // Modes. define('SERVICE_MODE_MANUAL', 0); -define('SERVICE_MODE_AUTO', 1); -define('SERVICE_MODE_SIMPLE', 2); +define('SERVICE_MODE_SMART', 1); @@ -347,6 +359,7 @@ define('MODULE_PREDICTION', 5); define('MODULE_WMI', 6); define('MODULE_WEB', 7); define('MODULE_WUX', 8); +define('MODULE_WIZARD', 9); // Type of Modules of Prediction. define('MODULE_PREDICTION_SERVICE', 2); @@ -601,6 +614,7 @@ define('DISCOVERY_CLOUD_AWS_RDS', 7); define('DISCOVERY_CLOUD_AZURE_COMPUTE', 8); define('DISCOVERY_DEPLOY_AGENTS', 9); define('DISCOVERY_APP_SAP', 10); +define('DISCOVERY_APP_DB2', 11); // Force task build tmp results. @@ -673,3 +687,54 @@ define('W_CREATE_MODULE', 3); define('W_CREATE_ALERT', 4); define('W_CREATE_TASK', 5); define('WELCOME_FINISHED', -1); + +// Fixed tnetwork_component values. +define('MODULE_TYPE_NUMERIC', 1); +define('MODULE_TYPE_INCREMENTAL', 2); +define('MODULE_TYPE_BOOLEAN', 3); +define('MODULE_TYPE_ALPHANUMERIC', 4); +define('SCAN_TYPE_FIXED', 1); +define('SCAN_TYPE_DYNAMIC', 2); +define('EXECUTION_TYPE_NETWORK', 1); +define('EXECUTION_TYPE_PLUGIN', 2); + +// Id of component type. +define('COMPONENT_TYPE_NETWORK', 2); +define('COMPONENT_TYPE_PLUGIN', 4); +define('COMPONENT_TYPE_WMI', 6); +define('COMPONENT_TYPE_WIZARD', 9); + +// Wizard Internal Plugins. +define('PLUGIN_WIZARD_SNMP_MODULE', 1); +define('PLUGIN_WIZARD_SNMP_PROCESS', 2); +define('PLUGIN_WIZARD_WMI_MODULE', 3); + +// Module Types. +define('MODULE_TYPE_GENERIC_DATA', 1); +define('MODULE_TYPE_GENERIC_PROC', 2); +define('MODULE_TYPE_GENERIC_DATA_STRING', 3); +define('MODULE_TYPE_GENERIC_DATA_INC', 4); +define('MODULE_TYPE_GENERIC_DATA_INC_ABS', 5); +define('MODULE_TYPE_REMOTE_ICMP_PROC', 6); +define('MODULE_TYPE_REMOTE_ICMP', 7); +define('MODULE_TYPE_REMOTE_TCP', 8); +define('MODULE_TYPE_REMOTE_TCP_PROC', 9); +define('MODULE_TYPE_REMOTE_TCP_STRING', 10); +define('MODULE_TYPE_REMOTE_TCP_INC', 11); +define('MODULE_TYPE_REMOTE_SNMP', 15); +define('MODULE_TYPE_REMOTE_SNMP_INC', 16); +define('MODULE_TYPE_REMOTE_SNMP_STRING', 17); +define('MODULE_TYPE_REMOTE_SNMP_PROC', 18); +define('MODULE_TYPE_ASYNC_PROC', 21); +define('MODULE_TYPE_ASYNC_DATA', 22); +define('MODULE_TYPE_ASYNC_STRING', 23); +define('MODULE_TYPE_WEB_ANALYSIS', 25); +define('MODULE_TYPE_WEB_DATA', 30); +define('MODULE_TYPE_WEB_PROC', 31); +define('MODULE_TYPE_WEB_CONTENT_DATA', 32); +define('MODULE_TYPE_WEB_CONTENT_STRING', 33); +define('MODULE_TYPE_REMOTE_CMD', 34); +define('MODULE_TYPE_REMOTE_CMD_PROC', 35); +define('MODULE_TYPE_REMOTE_CMD_STRING', 36); +define('MODULE_TYPE_REMOTE_CMD_INC', 37); +define('MODULE_TYPE_KEEP_ALIVE', 100); diff --git a/pandora_console/include/functions.php b/pandora_console/include/functions.php index e68f49bfe7..23773a2934 100644 --- a/pandora_console/include/functions.php +++ b/pandora_console/include/functions.php @@ -477,7 +477,8 @@ function set_user_language() /** - * INTERNAL (use ui_print_timestamp for output): Transform an amount of time in seconds into a human readable + * INTERNAL (use ui_print_timestamp for output): + * Transform an amount of time in seconds into a human readable * strings of minutes, hours or days. * * @param integer $seconds Seconds elapsed time @@ -488,17 +489,11 @@ function set_user_language() */ function human_time_description_raw($seconds, $exactly=false, $units='large') { - switch ($units) { - case 'large': - $secondsString = __('seconds'); - $daysString = __('days'); - $monthsString = __('months'); - $yearsString = __('years'); - $minutesString = __('minutes'); - $hoursString = __('hours'); - $nowString = __('Now'); - break; + if (isset($units) === false || empty($units) === true) { + $units = 'large'; + } + switch ($units) { case 'tiny': $secondsString = __('s'); $daysString = __('d'); @@ -508,6 +503,17 @@ function human_time_description_raw($seconds, $exactly=false, $units='large') $hoursString = __('h'); $nowString = __('N'); break; + + default: + case 'large': + $secondsString = __('seconds'); + $daysString = __('days'); + $monthsString = __('months'); + $yearsString = __('years'); + $minutesString = __('minutes'); + $hoursString = __('hours'); + $nowString = __('Now'); + break; } if (empty($seconds)) { @@ -2136,7 +2142,7 @@ function check_sql($sql) { // We remove "*" to avoid things like SELECT * FROM tusuario // Check that it not delete_ as "delete_pending" (this is a common field in pandora tables). - if (preg_match('/\*|delete[^_]|drop|alter|modify|password|pass|insert|update/i', $sql)) { + if (preg_match('/([ ]*(delete|drop|alter|modify|password|pass|insert|update)\b[ \\]+)/i', $sql)) { return ''; } @@ -3718,6 +3724,13 @@ function series_type_graph_array($data, $show_elements_graph) } } + if (isset($value['weight']) === true + && empty($value['weight']) === false + ) { + $name_legend .= ' ('.__('Weight').' * '.$value['weight'].') '; + $data_return['legend'][$key] .= ' ('.__('Weight').' * '.$value['weight'].') '; + } + if ((int) $value['min'] === PHP_INT_MAX) { $value['min'] = 0; } @@ -4005,7 +4018,7 @@ function generate_hash_to_api() * @param string Key to identify the profiler run. * @param string Way to display the result * "link" (default): Click into word "Performance" to display the profilling info. - * "console": Display with a message in pandora_console.log. + * "console": Display with a message in console.log. */ function pandora_xhprof_display_result($key='', $method='link') { diff --git a/pandora_console/include/functions_agents.php b/pandora_console/include/functions_agents.php index 6c1bcbc331..22e2f72612 100644 --- a/pandora_console/include/functions_agents.php +++ b/pandora_console/include/functions_agents.php @@ -1631,8 +1631,10 @@ function agents_get_alias($id_agent, $case='none') } // Check cache. - if (isset($cache[$case][$id_agent])) { - return $cache[$case][$id_agent]; + if (!is_metaconsole()) { + if (isset($cache[$case][$id_agent])) { + return $cache[$case][$id_agent]; + } } $alias = (string) db_get_value( @@ -1656,7 +1658,61 @@ function agents_get_alias($id_agent, $case='none') break; } - $cache[$case][$id_agent] = $alias; + if (!is_metaconsole()) { + $cache[$case][$id_agent] = $alias; + } + + return $alias; +} + + +/** + * Get alias of an agent in metaconsole (cached function). + * + * @param integer $id_agent Agent id. + * @param string $case Case (upper, lower, none). + * @param integer $id_server server id. + * + * @return string Alias of the given agent. + */ +function agents_get_alias_metaconsole($id_agent, $case='none', $id_server=false) +{ + global $config; + // Prepare cache. + static $cache = []; + if (empty($case)) { + $case = 'none'; + } + + // Check cache. + if (isset($cache[$case][$id_server][$id_agent])) { + return $cache[$case][$id_server][$id_agent]; + } + + $alias = (string) db_get_value_filter( + 'alias', + 'tmetaconsole_agent', + [ + 'id_tagente' => $id_agent, + 'id_tmetaconsole_setup' => $id_server, + ] + ); + + switch ($case) { + case 'upper': + $alias = mb_strtoupper($alias, 'UTF-8'); + break; + + case 'lower': + $alias = mb_strtolower($alias, 'UTF-8'); + break; + + default: + // Not posible. + break; + } + + $cache[$case][$id_server][$id_agent] = $alias; return $alias; } @@ -2011,36 +2067,33 @@ function agents_get_addresses($id_agent) function agents_get_status_from_counts($agent) { // Check if in the data there are all the necessary values - if (!isset($agent['normal_count']) - && !isset($agent['warning_count']) - && !isset($agent['critical_count']) - && !isset($agent['unknown_count']) - && !isset($agent['notinit_count']) - && !isset($agent['total_count']) + if (isset($agent['normal_count']) === false + && isset($agent['warning_count']) === false + && isset($agent['critical_count']) === false + && isset($agent['unknown_count']) === false + && isset($agent['notinit_count']) === false + && isset($agent['total_count']) === false ) { return -1; } - // Juanma (05/05/2014) Fix: This status is not init! 0 modules or all not init + // Juanma (05/05/2014) Fix: This status is not init! 0 modules or all not init. if ($agent['notinit_count'] == $agent['total_count']) { - return AGENT_MODULE_STATUS_NOT_INIT; + return AGENT_STATUS_NOT_INIT; } if ($agent['critical_count'] > 0) { - return AGENT_MODULE_STATUS_CRITICAL_BAD; + return AGENT_STATUS_CRITICAL; } else if ($agent['warning_count'] > 0) { - return AGENT_MODULE_STATUS_WARNING; + return AGENT_STATUS_WARNING; } else if ($agent['unknown_count'] > 0) { - return AGENT_MODULE_STATUS_UNKNOWN; + return AGENT_STATUS_UNKNOWN; } else if ($agent['normal_count'] == $agent['total_count']) { - return AGENT_MODULE_STATUS_NORMAL; + return AGENT_STATUS_NORMAL; } else if (($agent['normal_count'] + $agent['notinit_count']) == $agent['total_count']) { - return AGENT_MODULE_STATUS_NORMAL; + return AGENT_STATUS_NORMAL; } - // ~ else if($agent['notinit_count'] == $agent['total_count']) { - // ~ return AGENT_MODULE_STATUS_NORMAL; - // ~ } return -1; } diff --git a/pandora_console/include/functions_api.php b/pandora_console/include/functions_api.php index ea2b7494da..2dcffa5ced 100644 --- a/pandora_console/include/functions_api.php +++ b/pandora_console/include/functions_api.php @@ -8796,6 +8796,11 @@ function otherParameter2Filter($other, $return_as_array=false, $use_agent_name=f } } + // Esto es extraño, hablar con Tati + /* + $filter['1'] = $filter['sql']; + unset($filter['sql']); */ + if (isset($other['data'][4]) && $other['data'][4] != '') { $idTemplate = db_get_value_filter('id', 'talert_templates', ['name' => $other['data'][4]]); if ($idTemplate !== false) { @@ -10718,7 +10723,7 @@ function get_events_with_user($trash1, $trash2, $other, $returnType, $user_in_db $data['type'] = 'array'; $data['data'] = $result; - // returnData($returnType, $data, $separator); + returnData($returnType, $data, $separator); if (empty($result)) { return false; } @@ -10727,6 +10732,83 @@ function get_events_with_user($trash1, $trash2, $other, $returnType, $user_in_db } +/** + * Update an event + * + * @param string $id_event Id of the event for change. + * @param string $unused1 Without use. + * @param array $params Dictionary with field,value format with the data for update. + * @param string $unused2 Without use. + * @param string $unused3 Without use. + * + * @return void + */ +function api_set_event($id_event, $unused1, $params, $unused2, $unused3) +{ + // Get the event + $event = events_get_event($id_event, false, is_metaconsole()); + // If event not exists, end the execution. + if ($event === false) { + returnError( + 'event_not_exists', + 'Event not exists' + ); + return false; + } + + $paramsSerialize = []; + // Serialize the data for update + if ($params['type'] === 'array') { + // Keys that is not available to change + $invalidKeys = [ + 'id_evento', + 'id_agente', + 'id_grupo', + 'timestamp', + 'utimestamp', + 'id_agentmodule', + 'ack_utimestamp', + 'data', + ]; + + foreach ($params['data'] as $key_value) { + list($key, $value) = explode(',', $key_value, 2); + if (in_array($key, $invalidKeys) == false) { + $paramsSerialize[$key] = $value; + } + } + } + + // In meta or node. + if (is_metaconsole() === true) { + $table = 'tmetaconsole_event'; + } else { + $table = 'tevento'; + } + + // TODO. Stablish security for prevent sql injection? + // Update the row + $result = db_process_sql_update( + $table, + $paramsSerialize, + [ 'id_evento' => $id_event ] + ); + + // If update results failed + if (empty($result) === true || $result === false) { + returnError( + 'failed_event_update', + __('Failed event update') + ); + return false; + } else { + returnData('string', ['data' => 'Event updated']); + } + + return; +} + + /** * * @param $trash1 @@ -10758,6 +10840,8 @@ function api_get_events($trash1, $trash2, $other, $returnType, $user_in_db=null) returnError('ERROR_API_PANDORAFMS', $returnType); } } + + return; } if ($other['type'] == 'string') { @@ -13039,6 +13123,9 @@ function api_set_create_service($thrash1, $thrash2, $other, $thrash3) $quiet = $other['data'][11]; $cascade_protection = $other['data'][12]; $evaluate_sla = $other['data'][13]; + $is_favourite = $other['data'][14]; + $unknown_as_critical = $other['data'][15]; + $server_name = $other['data'][16]; if (empty($name)) { returnError('error_create_service', __('Error in creation service. No name')); @@ -13105,24 +13192,40 @@ function api_set_create_service($thrash1, $thrash2, $other, $thrash3) $evaluate_sla = 0; } - $result = services_create_service( - $name, - $description, - $id_group, - $critical, - $warning, - SECONDS_5MINUTES, - $mode, - $id_agent, - $sla_interval, - $sla_limit, - $id_warning_module_template, - $id_critical_module_template, - $id_unknown_module_template, - $id_critical_module_sla, - $quiet, - $cascade_protection, - $evaluate_sla + if (empty($is_favourite)) { + $is_favourite = false; + } + + if (empty($unknown_as_critical)) { + $unknown_as_critical = false; + } + + if (empty($server_name)) { + $server_name = null; + } + + $result = enterprise_hook( + 'services_create_service', + [ + $name, + $description, + $id_group, + $critical, + $warning, + false, + SECONDS_5MINUTES, + $mode, + $id_agent, + $sla_interval, + $sla_limit, + $id_warning_module_template, + $id_critical_module_template, + $id_unknown_module_template, + $id_critical_module_sla, + $quiet, + $cascade_protection, + $evaluate_sla, + ] ); if ($result) { @@ -13141,7 +13244,7 @@ function api_set_create_service($thrash1, $thrash2, $other, $thrash3) * @param array $other it's array, $other as param is ;;;; * ;;;;; * ;;; - * ;; + * ;;;;; * in this order and separator char (after text ; ) and separator * (pass in param othermode as othermode=url_encode_separator_) * @param $thrash3 Don't use @@ -13258,25 +13361,46 @@ function api_set_update_service($thrash1, $thrash2, $other, $thrash3) $evaluate_sla = $service['evaluate_sla']; } - $result = services_update_service( - $id_service, - $name, - $description, - $id_group, - $critical, - $warning, - SECONDS_5MINUTES, - $mode, - $id_agent, - $sla_interval, - $sla_limit, - $id_warning_module_template, - $id_critical_module_template, - $id_unknown_module_template, - $id_critical_module_sla, - $quiet, - $cascade_protection, - $evaluate_sla + $is_favourite = $other['data'][14]; + if (empty($is_favourite)) { + $is_favourite = $service['is_favourite']; + } + + $unknown_as_critical = $other['data'][15]; + if (empty($unknown_as_critical)) { + $unknown_as_critical = $service['unknown_as_critical']; + } + + $server_name = $other['data'][16]; + if (empty($server_name)) { + $server_name = $service['server_name']; + } + + $result = enterprise_hook( + 'services_update_service', + [ + $id_service, + $name, + $description, + $id_group, + $critical, + $warning, + SECONDS_5MINUTES, + $mode, + $id_agent, + $sla_interval, + $sla_limit, + $id_warning_module_template, + $id_critical_module_template, + $id_unknown_module_template, + $id_critical_module_sla, + $quiet, + $cascade_protection, + $evaluate_sla, + $is_favourite, + $unknown_as_critical, + $server_name, + ] ); if ($result) { @@ -16027,3 +16151,38 @@ function api_get_event_mcid($server_id, $console_event_id, $trash2, $returnType) return; } } + + +/** + * Function to set events in progress status. + * + * @param [int] $event_id Id event (Node or Meta). + * @param [string] $trash2 don't use. + * @param [string] $returnType + * + * Example + * http://127.0.0.1/pandora_console/include/api.php?op=set&op2=event_in_progress&return_type=json&id=0&apipass=1234&user=admin&pass=pandora + * + * @return void + */ +function api_set_event_in_progress($event_id, $trash2, $returnType) +{ + global $config; + if (is_metaconsole()) { + $table = 'tmetaconsole_event'; + } else { + $table = 'tevento'; + } + + $event = db_process_sql_update( + $table, + ['estado' => 2], + ['id_evento' => $event_id] + ); + + if ($event !== false) { + returnData('string', ['data' => $event]); + } else { + returnError('id_not_found', 'string'); + } +} diff --git a/pandora_console/include/functions_clippy.php b/pandora_console/include/functions_clippy.php index 67999a75e0..27e3e4cd80 100644 --- a/pandora_console/include/functions_clippy.php +++ b/pandora_console/include/functions_clippy.php @@ -285,7 +285,7 @@ function clippy_context_help($help=null) $return = ''; - include_once 'include/help/clippy/'.$help.'.php'; + include_once $config['homedir'].'/include/help/clippy/'.$help.'.php'; ob_start(); $function = 'clippy_'.$help; diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php index e003461c5b..e8fc2a392c 100644 --- a/pandora_console/include/functions_config.php +++ b/pandora_console/include/functions_config.php @@ -287,7 +287,11 @@ function config_update_config() $error_update[] = __('Command Snapshot'); } - if (!config_update_value('server_log_dir', get_parameter('server_log_dir'))) { + if (!config_update_value('use_custom_encoding', get_parameter('use_custom_encoding', 0))) { + $error_update[] = __('Use custom encoding'); + } + + if (!config_update_value('server_log_dir', io_safe_input(strip_tags(io_safe_output(get_parameter('server_log_dir')))))) { $error_update[] = __('Server logs directory'); } @@ -319,8 +323,12 @@ function config_update_config() $error_update[] = __('alias_as_name'); } - if (!config_update_value('auditdir', get_parameter('auditdir'))) { - $error_update[] = __('Audit log directory'); + if (!config_update_value('console_log_enabled', get_parameter('console_log_enabled'))) { + $error_update[] = __('Console log enabled'); + } + + if (!config_update_value('audit_log_enabled', get_parameter('audit_log_enabled'))) { + $error_update[] = __('Audit log enabled'); } if (!config_update_value('unique_ip', get_parameter('unique_ip'))) { @@ -1200,8 +1208,8 @@ function config_update_config() // -------------------------------------------------- // CUSTOM VALUES POST PROCESS // -------------------------------------------------- - $custom_value = get_parameter('custom_value'); - $custom_text = get_parameter('custom_text'); + $custom_value = io_safe_input(strip_tags(io_safe_output(get_parameter('custom_value')))); + $custom_text = io_safe_input(strip_tags(io_safe_output(get_parameter('custom_text')))); $custom_value_add = (bool) get_parameter('custom_value_add', 0); $custom_value_to_delete = get_parameter('custom_value_to_delete', 0); @@ -1272,8 +1280,8 @@ function config_update_config() // -------------------------------------------------- // MODULE CUSTOM UNITS // -------------------------------------------------- - $custom_unit = get_parameter('custom_module_unit'); - $custom_unit_to_delete = get_parameter('custom_module_unit_to_delete', ''); + $custom_unit = io_safe_input(strip_tags(io_safe_output(get_parameter('custom_module_unit')))); + $custom_unit_to_delete = io_safe_input(strip_tags(io_safe_output(get_parameter('custom_module_unit_to_delete', '')))); if (!empty($custom_unit)) { if (!add_custom_module_unit( @@ -1926,14 +1934,12 @@ function config_process_config() config_update_value('alias_as_name', 0); } - if (!isset($config['auditdir'])) { - $auditdir = '/var/www/html/pandora_console'; - if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { - // Windows. - $auditdir = $config['homedir']; - } + if (!isset($config['console_log_enabled'])) { + config_update_value('console_log_enabled', 0); + } - config_update_value('auditdir', $auditdir); + if (!isset($config['audit_log_enabled'])) { + config_update_value('audit_log_enabled', 0); } if (!isset($config['elasticsearch_ip'])) { @@ -2797,6 +2803,10 @@ function config_process_config() config_update_value('event_storm_protection', 0); } + if (!isset($config['use_custom_encoding'])) { + config_update_value('use_custom_encoding', 0); + } + if (!isset($config['server_log_dir'])) { config_update_value('server_log_dir', ''); } diff --git a/pandora_console/include/functions_db.php b/pandora_console/include/functions_db.php index a99ab2e41e..7b4525b408 100644 --- a/pandora_console/include/functions_db.php +++ b/pandora_console/include/functions_db.php @@ -251,10 +251,8 @@ function db_pandora_audit($accion, $descripcion, $user_id=false, $ip=true, $info $valor = ''.$values['fecha'].' - '.io_safe_output($id).' - '.io_safe_output($accion).' - '.$ip.' - '.io_safe_output($descripcion)."\n"; - if (empty($config['auditdir'])) { - file_put_contents($config['homedir'].'/audit.log', $valor, FILE_APPEND); - } else { - file_put_contents($config['auditdir'].'/audit.log', $valor, FILE_APPEND); + if ($config['audit_log_enabled']) { + file_put_contents($config['homedir'].'/log/audit.log', $valor, FILE_APPEND); } enterprise_include_once('include/functions_audit.php'); diff --git a/pandora_console/include/functions_events.php b/pandora_console/include/functions_events.php index a5b442d69c..9e620e70ef 100644 --- a/pandora_console/include/functions_events.php +++ b/pandora_console/include/functions_events.php @@ -2118,7 +2118,7 @@ function events_comment( switch ($comments_format) { case 'new': - $comment_for_json['comment'] = $comment; + $comment_for_json['comment'] = io_safe_input($comment); $comment_for_json['action'] = $action; $comment_for_json['id_user'] = $config['id_user']; $comment_for_json['utimestamp'] = time(); @@ -2141,7 +2141,7 @@ function events_comment( $comment = str_replace(["\r\n", "\r", "\n"], '
', $comment); if ($comment != '') { - $commentbox = '
'.$comment.'
'; + $commentbox = '
'.io_safe_input($comment).'
'; } else { $commentbox = ''; } @@ -3377,7 +3377,7 @@ function events_page_responses($event, $childrens_ids=[]) ); if ($strict_user) { $user_name = db_get_value( - 'fullname', + 'id_user', 'tusuario', 'id_user', $config['id_user'] @@ -3395,14 +3395,14 @@ function events_page_responses($event, $childrens_ids=[]) } foreach ($users as $u) { - $owners[$u['id_user']] = $u['fullname']; + $owners[$u['id_user']] = $u['id_user']; } if ($event['owner_user'] == '') { $owner_name = __('None'); } else { $owner_name = db_get_value( - 'fullname', + 'id_user', 'tusuario', 'id_user', $event['owner_user'] @@ -3424,7 +3424,7 @@ function events_page_responses($event, $childrens_ids=[]) 'owner_button', false, 'event_change_owner();', - 'class="sub next"', + 'class="sub next w70p"', true ); @@ -3504,7 +3504,7 @@ function events_page_responses($event, $childrens_ids=[]) 'status_button', false, 'event_change_status(\''.$event['similar_ids'].'\');', - 'class="sub next"', + 'class="sub next w70p"', true ); } @@ -3520,7 +3520,7 @@ function events_page_responses($event, $childrens_ids=[]) 'comment_button', false, '$(\'#link_comments\').trigger(\'click\');', - 'class="sub next"', + 'class="sub next w70p"', true ); @@ -3544,7 +3544,7 @@ function events_page_responses($event, $childrens_ids=[]) 'delete_button', false, 'if(!confirm(\''.__('Are you sure?').'\')) { return false; } this.form.submit();', - 'class="sub cancel"', + 'class="sub cancel w70p"', true ); $data[2] .= html_print_input_hidden('delete', 1, true); @@ -3599,7 +3599,7 @@ function events_page_responses($event, $childrens_ids=[]) 'custom_response_button', false, 'execute_response('.$event['id_evento'].','.$server_id.')', - "class='sub next'", + "class='sub next w70p'", true ); } diff --git a/pandora_console/include/functions_forecast.php b/pandora_console/include/functions_forecast.php index 4dcf08db73..a7e5545d55 100644 --- a/pandora_console/include/functions_forecast.php +++ b/pandora_console/include/functions_forecast.php @@ -36,7 +36,8 @@ function forecast_projection_graph( $prediction_period, $max_value=false, $min_value=false, - $csv=false + $csv=false, + $server_name='' ) { global $config; @@ -55,7 +56,7 @@ function forecast_projection_graph( 'projection' => true, ]; - $module_data = grafico_modulo_sparse($params); + $module_data = grafico_modulo_sparse($params, $server_name); if (empty($module_data)) { return []; @@ -252,12 +253,13 @@ function forecast_prediction_date( $module_id, $period=SECONDS_2MONTHS, $max_value=0, - $min_value=0 + $min_value=0, + $server_name='' ) { // Checks interval if ($min_value > $max_value) { return false; } - return forecast_projection_graph($module_id, $period, false, $max_value, $min_value); + return forecast_projection_graph($module_id, $period, false, $max_value, $min_value, false, $server_name); } diff --git a/pandora_console/include/functions_graph.php b/pandora_console/include/functions_graph.php index d462929cff..bf09416cba 100644 --- a/pandora_console/include/functions_graph.php +++ b/pandora_console/include/functions_graph.php @@ -616,7 +616,7 @@ function grafico_modulo_sparse_data( * * @return string html Content graphs. */ -function grafico_modulo_sparse($params) +function grafico_modulo_sparse($params, $server_name='') { global $config; @@ -812,6 +812,12 @@ function grafico_modulo_sparse($params) $date_array['final_date'] = $params['date']; $date_array['start_date'] = ($params['date'] - $params['period']); + if (is_metaconsole()) { + $id_meta = metaconsole_get_id_server($server_name); + $server = metaconsole_get_connection_by_id($id_meta); + metaconsole_connect($server); + } + if ($agent_module_id) { $module_data = db_get_row_sql( 'SELECT * FROM tagente_modulo @@ -1022,6 +1028,10 @@ function grafico_modulo_sparse($params) } } + if (is_metaconsole()) { + metaconsole_restore_db(); + } + return $return; } @@ -1275,9 +1285,22 @@ function graphic_combined_module( } if ($count_modules > 0) { - $sources = true; + foreach ($module_list as $key => $value) { + $sources[$key]['id_server'] = $value['server']; + $sources[$key]['id_agent_module'] = $value['module']; + $sources[$key]['weight'] = $weights[$key]; + $sources[$key]['label'] = $params_combined['labels']; + } } } else { + if (is_metaconsole()) { + metaconsole_restore_db(); + $server = metaconsole_get_connection_by_id($params['server_id']); + if (metaconsole_connect($server) != NOERR) { + return false; + } + } + $sources = db_get_all_rows_field_filter( 'tgraph_source', 'id_graph', @@ -1285,8 +1308,18 @@ function graphic_combined_module( 'field_order' ); + if (is_metaconsole()) { + if (isset($sources) && is_array($sources)) { + foreach ($sources as $key => $value) { + $sources[$key]['id_server'] = $params['server_id']; + } + } + } + $series = db_get_all_rows_sql( - 'SELECT summatory_series,average_series, modules_series + 'SELECT summatory_series, + average_series, + modules_series FROM tgraph WHERE id_graph = '.$params_combined['id_graph'] ); @@ -1295,45 +1328,76 @@ function graphic_combined_module( $average = $series[0]['average_series']; $modules_series = $series[0]['modules_series']; + if (is_metaconsole()) { + metaconsole_restore_db(); + } + } + + if (isset($sources) && is_array($sources)) { $weights = []; $labels = []; $modules = []; - - if (isset($sources) && is_array($sources)) { - foreach ($sources as $source) { - array_push($modules, $source['id_agent_module']); - array_push($weights, $source['weight']); - if ($source['label'] != '' || $params_combined['labels']) { - $id_agent = agents_get_module_id( - $source['id_agent_module'] - ); - $agent_description = agents_get_description($id_agent); - $agent_group = agents_get_agent_group($id_agent); - $agent_address = agents_get_address($id_agent); - $agent_alias = agents_get_alias($id_agent); - $module_name = modules_get_agentmodule_name( - $source['id_agent_module'] - ); - - $module_description = modules_get_agentmodule_descripcion( - $source['id_agent_module'] - ); - - $items_label = [ - 'type' => 'custom_graph', - 'id_agent' => $id_agent, - 'id_agent_module' => $source['id_agent_module'], - 'agent_description' => $agent_description, - 'agent_group' => $agent_group, - 'agent_address' => $agent_address, - 'agent_alias' => $agent_alias, - 'module_name' => $module_name, - 'module_description' => $module_description, - ]; - - $labels[$source['id_agent_module']] = ($source['label'] != '') ? reporting_label_macro($items_label, $source['label']) : reporting_label_macro($item, $params_combined['labels']); + foreach ($sources as $source) { + if (is_metaconsole() === true) { + $server = metaconsole_get_connection_by_id($source['id_server']); + if (metaconsole_connect($server) != NOERR) { + continue; } } + + $modulepush = [ + 'server' => (isset($source['id_server']) === true) ? $source['id_server'] : 0, + 'module' => $source['id_agent_module'], + ]; + + array_push($modules, $modulepush); + array_push($weights, $source['weight']); + if ($source['label'] != '' || $params_combined['labels']) { + $id_agent = agents_get_module_id( + $source['id_agent_module'] + ); + $agent_description = agents_get_description($id_agent); + $agent_group = agents_get_agent_group($id_agent); + $agent_address = agents_get_address($id_agent); + $agent_alias = agents_get_alias($id_agent); + $module_name = modules_get_agentmodule_name( + $source['id_agent_module'] + ); + + $module_description = modules_get_agentmodule_descripcion( + $source['id_agent_module'] + ); + + $items_label = [ + 'type' => 'custom_graph', + 'id_agent' => $id_agent, + 'id_agent_module' => $source['id_agent_module'], + 'agent_description' => $agent_description, + 'agent_group' => $agent_group, + 'agent_address' => $agent_address, + 'agent_alias' => $agent_alias, + 'module_name' => $module_name, + 'module_description' => $module_description, + ]; + + if ($source['label'] != '') { + $lab = reporting_label_macro( + $items_label, + $source['label'] + ); + } else { + $lab = reporting_label_macro( + $items_label, + $params_combined['labels'] + ); + } + + $labels[$source['id_agent_module']] = $lab; + } + + if (is_metaconsole() === true) { + metaconsole_restore_db(); + } } } @@ -1429,15 +1493,22 @@ function graphic_combined_module( continue; } - if (is_metaconsole() && $params_combined['type_report'] == 'automatic_graph') { - $server = metaconsole_get_connection_by_id($agent_module_id['server']); + // Only 10 item for chart. + if ($i > 9) { + break; + } + + if (is_metaconsole()) { + $server = metaconsole_get_connection_by_id( + $agent_module_id['server'] + ); if (metaconsole_connect($server) != NOERR) { continue; } - - $agent_module_id = $agent_module_id['module']; } + $agent_module_id = $agent_module_id['module']; + $module_data = db_get_row_sql( 'SELECT * FROM tagente_modulo WHERE id_agente_modulo = '.$agent_module_id @@ -1504,19 +1575,28 @@ function graphic_combined_module( foreach ($value['data'] as $k => $v) { if ($v[1] != false) { $array_data[$key]['data'][$k][1] = ($v[1] * $params_combined['weight_list'][$i]); + $array_data[$key]['slice_data'][$v[0]]['avg'] *= $params_combined['weight_list'][$i]; + $array_data[$key]['slice_data'][$v[0]]['min'] *= $params_combined['weight_list'][$i]; + $array_data[$key]['slice_data'][$v[0]]['max'] *= $params_combined['weight_list'][$i]; } } + + $array_data[$key]['max'] *= $params_combined['weight_list'][$i]; + $array_data[$key]['min'] *= $params_combined['weight_list'][$i]; + $array_data[$key]['avg'] *= $params_combined['weight_list'][$i]; + $array_data[$key]['weight'] = $params_combined['weight_list'][$i]; } } - $max = $array_data['sum'.$i]['max']; - $min = $array_data['sum'.$i]['min']; - $avg = $array_data['sum'.$i]['avg']; - if ($config['fixed_graph'] == false) { $water_mark = [ 'file' => $config['homedir'].'/images/logo_vertical_water.png', - 'url' => ui_get_full_url('images/logo_vertical_water.png', false, false, false), + 'url' => ui_get_full_url( + 'images/logo_vertical_water.png', + false, + false, + false + ), ]; } @@ -1525,9 +1605,7 @@ function graphic_combined_module( $i++; - if (is_metaconsole() - && $params_combined['type_report'] == 'automatic_graph' - ) { + if (is_metaconsole()) { metaconsole_restore_db(); } } @@ -1763,28 +1841,23 @@ function graphic_combined_module( } foreach ($module_list as $module_item) { - $automatic_custom_graph_meta = false; - if ($config['metaconsole']) { + if (is_metaconsole() === true) { // Automatic custom graph from the report // template in metaconsole. - if (is_array($module_list[$i])) { - $server = metaconsole_get_connection_by_id( - $module_item['server'] - ); - metaconsole_connect($server); - $automatic_custom_graph_meta = true; - } - } - - if ($automatic_custom_graph_meta) { - $module = $module_item['module']; - } else { - $module = $module_item; + $server = metaconsole_get_connection_by_id( + $module_item['server'] + ); + + metaconsole_connect($server); } + $module = $module_item['module']; $search_in_history_db = db_search_in_history_db($datelimit); - $temp[$module] = io_safe_output(modules_get_agentmodule($module)); + $temp[$module] = io_safe_output( + modules_get_agentmodule($module) + ); + $query_last_value = sprintf( ' SELECT datos @@ -1849,12 +1922,8 @@ function graphic_combined_module( $temp[$module]['min'] = ($temp_min === false) ? 0 : $temp_min; - if ($config['metaconsole']) { - // Automatic custom graph from the - // report template in metaconsole. - if (is_array($module_list[0])) { - metaconsole_restore_db(); - } + if (is_metaconsole() === true) { + metaconsole_restore_db(); } } @@ -1899,25 +1968,15 @@ function graphic_combined_module( $i = 0; $number_elements = count($module_list); foreach ($module_list as $module_item) { - $automatic_custom_graph_meta = false; - if ($config['metaconsole']) { - // Automatic custom graph from - // the report template in metaconsole. - if (is_array($module_list[$i])) { - $server = metaconsole_get_connection_by_id( - $module_item['server'] - ); - metaconsole_connect($server); - $automatic_custom_graph_meta = true; - } - } - - if ($automatic_custom_graph_meta) { - $module = $module_item['module']; - } else { - $module = $module_item; + if (is_metaconsole() === true) { + $server = metaconsole_get_connection_by_id( + $module_item['server'] + ); + + metaconsole_connect($server); } + $module = $module_item['module']; $temp[$module] = modules_get_agentmodule($module); $query_last_value = sprintf( ' @@ -1973,12 +2032,8 @@ function graphic_combined_module( $temp[$module]['gauge'] = uniqid('gauge_'); - if ($config['metaconsole']) { - // Automatic custom graph from the report - // template in metaconsole. - if (is_array($module_list[0])) { - metaconsole_restore_db(); - } + if (is_metaconsole() === true) { + metaconsole_restore_db(); } $i++; @@ -2003,6 +2058,12 @@ function graphic_combined_module( } } + if (isset($params['pdf']) === true && $params['pdf'] === true) { + $transitionDuration = 0; + } else { + $transitionDuration = 500; + } + $output = stacked_gauge( $graph_values, $new_width, @@ -2018,7 +2079,8 @@ function graphic_combined_module( $config['fontpath'], $fixed_font_size, '', - $homeurl + $homeurl, + $transitionDuration ); break; @@ -2026,25 +2088,15 @@ function graphic_combined_module( case CUSTOM_GRAPH_VBARS: $label = ''; foreach ($module_list as $module_item) { - $automatic_custom_graph_meta = false; if (is_metaconsole() === true) { - // Automatic custom graph from the report - // template in metaconsole. - if (is_array($module_list[$i]) === true) { - $server = metaconsole_get_connection_by_id( - $module_item['server'] - ); - metaconsole_connect($server); - $automatic_custom_graph_meta = true; - } - } - - if ($automatic_custom_graph_meta === true) { - $module = $module_item['module']; - } else { - $module = $module_item; + $server = metaconsole_get_connection_by_id( + $module_item['server'] + ); + + metaconsole_connect($server); } + $module = $module_item['module']; $module_data = modules_get_agentmodule($module); $query_last_value = sprintf( 'SELECT datos @@ -2093,11 +2145,7 @@ function graphic_combined_module( } if (is_metaconsole() === true) { - // Automatic custom graph from the report - // template in metaconsole. - if (is_array($module_list[0]) === true) { - metaconsole_restore_db(); - } + metaconsole_restore_db(); } } @@ -2167,29 +2215,18 @@ function graphic_combined_module( case CUSTOM_GRAPH_PIE: $total_modules = 0; foreach ($module_list as $module_item) { - $automatic_custom_graph_meta = false; - if ($config['metaconsole']) { - // Automatic custom graph from the report - // template in metaconsole. - if (is_array($module_list[$i])) { - $server = metaconsole_get_connection_by_id( - $module_item['server'] - ); - metaconsole_connect($server); - $automatic_custom_graph_meta = true; - } - } - - if ($automatic_custom_graph_meta) { - $module = $module_item['module']; - } else { - $module = $module_item; + if (is_metaconsole() === true) { + $server = metaconsole_get_connection_by_id( + $module_item['server'] + ); + + metaconsole_connect($server); } + $module = $module_item['module']; $data_module = modules_get_agentmodule($module); $query_last_value = sprintf( - ' - SELECT datos + 'SELECT datos FROM tagente_datos WHERE id_agente_modulo = %d AND utimestamp > %d @@ -2234,12 +2271,9 @@ function graphic_combined_module( 'value' => $value, 'unit' => $data_module['unit'], ]; - if ($config['metaconsole']) { - // Automatic custom graph from the report - // template in metaconsole. - if (is_array($module_list[0])) { - metaconsole_restore_db(); - } + + if (is_metaconsole() === true) { + metaconsole_restore_db(); } } diff --git a/pandora_console/include/functions_html.php b/pandora_console/include/functions_html.php index 98f3d5f581..f7d61ab455 100644 --- a/pandora_console/include/functions_html.php +++ b/pandora_console/include/functions_html.php @@ -737,7 +737,11 @@ function html_print_select_multiple_filtered( array $sections=[] ) { ui_require_css_file('multiselect_filtered'); - ui_require_javascript_file('multiselect_filtered'); + if (is_ajax() === true) { + ui_require_javascript_file('multiselect_filtered', 'include/javascript/', true); + } else { + ui_require_javascript_file('multiselect_filtered'); + } if (empty($name) === true) { $rid = uniqid(); @@ -794,7 +798,7 @@ function html_print_select_multiple_filtered( } // Main container. - $output .= '
'; + $output = '
'; // Left box. $output .= '
'; @@ -941,7 +945,7 @@ function html_print_select_multiple_filtered( $output .= '
'; - // Left box. + // Right box. $output .= '
'; // Filtering. @@ -1062,6 +1066,151 @@ function html_print_select_multiple_filtered( } +/** + * Form multiple inputs for slect groups. + * + * @param array $data Data inputs. + * + * @return string Html output. + */ +function html_print_select_multiple_modules_filtered(array $data):string +{ + if (is_ajax() === true) { + ui_require_javascript_file( + 'multiselect_filtered', + 'include/javascript/', + true + ); + } else { + ui_require_javascript_file('multiselect_filtered'); + } + + $uniqId = $data['uniqId']; + + // Group. + $output = '
'; + $output .= html_print_input( + [ + 'label' => __('Group'), + 'name' => 'filtered-module-group-'.$uniqId, + 'returnAllGroup' => true, + 'privilege' => 'AR', + 'type' => 'select_groups', + 'return' => true, + 'script' => 'fmAgentChange(\''.$uniqId.'\')', + 'selected' => $data['mGroup'], + ] + ); + + // Recursion. + $output .= html_print_input( + [ + 'label' => __('Recursion'), + 'type' => 'switch', + 'name' => 'filtered-module-recursion-'.$uniqId, + 'value' => (empty($data['mRecursion']) === true) ? false : true, + 'checked' => (empty($data['mRecursion']) === true) ? false : true, + 'return' => true, + 'id' => 'filtered-module-recursion-'.$uniqId, + 'onchange' => 'fmAgentChange(\''.$uniqId.'\')', + ] + ); + + // Groups module. + $module_groups = db_get_all_rows_sql( + 'SELECT * FROM tmodule_group ORDER BY name' + ); + $module_groups = array_reduce( + $module_groups, + function ($carry, $item) { + $carry[$item['id_mg']] = $item['name']; + return $carry; + } + ); + + $output .= html_print_input( + [ + 'label' => __('Module group'), + 'type' => 'select', + 'fields' => $module_groups, + 'name' => 'filtered-module-module-group-'.$uniqId, + 'selected' => $data['mModuleGroup'], + 'return' => true, + 'nothing' => __('All'), + 'nothing_value' => 0, + 'script' => 'fmModuleChange(\''.$uniqId.'\')', + ] + ); + $output .= '
'; + + $output .= '
'; + // Agent. + $agents = agents_get_group_agents($data['mGroup']); + if ((empty($agents)) === true || $agents == -1) { + $agents = []; + } + + $output .= html_print_input( + [ + 'label' => __('Agents'), + 'type' => 'select', + 'fields' => $agents, + 'name' => 'filtered-module-agents-'.$uniqId, + 'selected' => explode(',', $data['mAgents']), + 'return' => true, + 'multiple' => true, + 'style' => 'min-width: 200px;max-width:200px;', + 'script' => 'fmModuleChange(\''.$uniqId.'\')', + ] + ); + + // Show common modules. + $selection = [ + 0 => __('Show common modules'), + 1 => __('Show all modules'), + ]; + $output .= html_print_input( + [ + 'label' => __('Show common modules'), + 'type' => 'select', + 'fields' => $selection, + 'name' => 'filtered-module-show-common-modules-'.$uniqId, + 'selected' => $data['mShowCommonModules'], + 'return' => true, + 'script' => 'fmModuleChange(\''.$uniqId.'\')', + ] + ); + + $all_modules = select_modules_for_agent_group( + $data['mModuleGroup'], + explode(',', $data['mAgents']), + $data['mShowCommonModules'], + false + ); + + $output .= html_print_input( + [ + 'label' => __('Modules'), + 'type' => 'select', + 'fields' => $all_modules, + 'name' => 'filtered-module-modules-'.$uniqId, + 'selected' => explode(',', $data['mModules']), + 'return' => true, + 'multiple' => true, + 'style' => 'min-width: 200px;max-width:200px;', + ] + ); + + $output .= '
'; + + if ($data['return'] === false) { + echo $output; + } + + return $output; +} + + /** * Prints an array of fields in a popup menu of a form based on a SQL query. * The first and second columns of the query will be used. @@ -1448,8 +1597,8 @@ function html_print_extended_select_for_time( } ob_start(); - // Use the no_meta parameter because this image is only in the base console - echo '
'; + // Use the no_meta parameter because this image is only in the base console. + echo '
'; html_print_select( $fields, $uniq_name.'_select', @@ -1464,7 +1613,7 @@ function html_print_extended_select_for_time( $readonly, 'font-size: xx-small;'.$select_style ); - // The advanced control is only for admins + // The advanced control is only for admins. if ($admin) { echo ' '.html_print_image( 'images/pencil.png', @@ -1483,7 +1632,7 @@ function html_print_extended_select_for_time( echo '
'; - echo '
'; + echo '
'; html_print_input_text($uniq_name.'_text', $selected, '', $size, 255, false, $readonly, false, '', $class); html_print_input_hidden($name, $selected, false, $uniq_name); @@ -1514,15 +1663,15 @@ function html_print_extended_select_for_time( echo '
'; echo ""; $returnString = ob_get_clean(); @@ -1615,6 +1764,55 @@ function html_print_extended_select_for_cron($hour='*', $minute='*', $mday='*', } +/** + * Prints an input slide. + * + * @param string $name Name. + * @param integer $value Value. + * @param string $id Id. + * @param boolean $return Return. + * @param integer $min Min. + * @param integer $max Max. + * @param integer $step Step. + * @param string $class Class. + * @param string $oninput Oninput. + * + * @return string HTML code for input. + */ +function html_print_input_range( + $name, + $value, + $id='', + $return=true, + $min=0, + $max=100, + $step=1, + $class='', + $oninput='' +) { + $output = ' $attr_value) { if (! in_array($attribute, $valid_attrs)) { @@ -1797,6 +2000,7 @@ function html_print_div($options, $return=false) 'id', 'style', 'class', + 'title', ]; if (isset($options['hidden'])) { @@ -1907,7 +2111,7 @@ function html_print_input_text( $size=50, $maxlength=255, $return=false, - $disabled=false, + $readonly=false, $required=false, $function='', $class='', @@ -1916,7 +2120,8 @@ function html_print_input_text( $autofocus=false, $onKeyDown='', $formTo='', - $onKeyUp='' + $onKeyUp='', + $disabled=false ) { if ($maxlength == 0) { $maxlength = 255; @@ -1968,12 +2173,14 @@ function html_print_input_text( $alt, $size, $maxlength, - $disabled, + $readonly, '', $attr, $return, false, - $function + $function, + 'off', + $disabled ); } @@ -2224,21 +2431,36 @@ function html_print_input_image($name, $src, $value, $style='', $return=false, $ * * The element will have an id like: "hidden-$name" * - * @param string $name Input name. - * @param string $value Input value. - * @param boolean $return Whether to return an output string or echo now (optional, echo by default). - * @param string $class Set the class of input. + * @param string $name Input name. + * @param string $value Input value. + * @param boolean $return Whether to return an output string or echo now + * (optional, echo by default). + * @param string $class Set the class of input. + * @param string $attributes String with the needed attributes to add. + * @param string $id Specific id. * * @return string HTML code if return parameter is true. */ -function html_print_input_hidden($name, $value, $return=false, $class=false) -{ +function html_print_input_hidden( + $name, + $value, + $return=false, + $class=false, + $attributes=false, + $id='' +) { if ($class !== false) { $classText = 'class="'.$class.'"'; } else { $classText = ''; } + if ($attributes !== false) { + $otherAttributes = $attributes; + } else { + $otherAttributes = ''; + } + $separator = '"'; if (is_string($value)) { @@ -2247,7 +2469,12 @@ function html_print_input_hidden($name, $value, $return=false, $class=false) } } - $output = ''; + $idInput = 'hidden-'.$name; + if (empty($id) === false) { + $idInput = $id; + } + + $output = ''; if ($return) { return $output; @@ -2446,8 +2673,16 @@ function html_print_button($label='OK', $name='', $disabled=false, $script='', $ * * @return string HTML code if return parameter is true. */ -function html_print_textarea($name, $rows, $columns, $value='', $attributes='', $return=false, $class='', $disable=false) -{ +function html_print_textarea( + $name, + $rows, + $columns, + $value='', + $attributes='', + $return=false, + $class='', + $disable=false +) { $disabled = ($disable) ? 'disabled' : ''; $output = '
'.__('P.').''.__('Delete').' '.__('Sort').'