From a470658543780d2fd4bc3563483347ead9d74f81 Mon Sep 17 00:00:00 2001 From: daniel Date: Thu, 14 Jan 2021 14:42:18 +0100 Subject: [PATCH] remove IPAM to extension --- .../extras/delete_files/delete_files.txt | 56 +++- pandora_console/extras/mr/44.sql | 117 +++++++++ .../pandoradb_migrate_6.0_to_7.0.mysql.sql | 100 +++++++ pandora_console/godmode/menu.php | 1 + .../wizards/DiscoveryTaskList.class.php | 4 +- .../include/functions_extensions.php | 4 + pandora_console/include/help/en/help_ipam.php | 20 +- pandora_console/include/help/es/help_ipam.php | 20 +- pandora_console/include/help/ja/help_ipam.php | 20 +- pandora_console/include/styles/ipam.css | 243 ++++++++++++++++++ pandora_console/pandoradb.sql | 98 +++++++ pandora_console/pandoradb_data.sql | 2 +- 12 files changed, 651 insertions(+), 34 deletions(-) create mode 100644 pandora_console/include/styles/ipam.css diff --git a/pandora_console/extras/delete_files/delete_files.txt b/pandora_console/extras/delete_files/delete_files.txt index 8964458b93..c647447c84 100644 --- a/pandora_console/extras/delete_files/delete_files.txt +++ b/pandora_console/extras/delete_files/delete_files.txt @@ -14,4 +14,58 @@ enterprise/godmode/reporting/cluster_view.php enterprise/include/ajax/clustermap.php enterprise/include/functions_clustermap.php enterprise/include/functions_clusters.php -enterprise/include/javascript/ClusterMapController.js \ No newline at end of file +enterprise/include/javascript/ClusterMapController.js +enterprise/extensions/ipam/ipam_supernet_network.php +enterprise/extensions/ipam/ipam_vlan_wizard.php +enterprise/extensions/ipam/sql +enterprise/extensions/ipam/sql/ipam_mr_1.sql +enterprise/extensions/ipam/sql/ipam_mr_2.sql +enterprise/extensions/ipam/sql/ipam.sql +enterprise/extensions/ipam/css +enterprise/extensions/ipam/css/ipam.css +enterprise/extensions/ipam/ipam_ajax.php +enterprise/extensions/ipam/ipam_vlan_network.php +enterprise/extensions/ipam/ipam_supernet_config.php +enterprise/extensions/ipam/ipam_list.php +enterprise/extensions/ipam/ipam_excel.php +enterprise/extensions/ipam/ipam_massive.php +enterprise/extensions/ipam/ipam_editor.php +enterprise/extensions/ipam/recon_script +enterprise/extensions/ipam/recon_script/readme +enterprise/extensions/ipam/ipam_network.php +enterprise/extensions/ipam/ipam_calculator.php +enterprise/extensions/ipam/ipam_vlan_config.php +enterprise/extensions/ipam/images +enterprise/extensions/ipam/images/red_host_agent.png +enterprise/extensions/ipam/images/lil_green_host_alert.png +enterprise/extensions/ipam/images/lil_red_host_alert.png +enterprise/extensions/ipam/images/lil_red_host_agent.png +enterprise/extensions/ipam/images/green_host_dotted.png +enterprise/extensions/ipam/images/red_host.png +enterprise/extensions/ipam/images/red_host_alert.png +enterprise/extensions/ipam/images/not_host.png +enterprise/extensions/ipam/images/lil_green_host_agent_alert.png +enterprise/extensions/ipam/images/ball_alive.png +enterprise/extensions/ipam/images/lil_green_host_agent.png +enterprise/extensions/ipam/images/ball_notalive.png +enterprise/extensions/ipam/images/green_host_agent_alert.png +enterprise/extensions/ipam/images/green_host_agent.png +enterprise/extensions/ipam/images/lil_red_host.png +enterprise/extensions/ipam/images/green_host_alert.png +enterprise/extensions/ipam/images/lil_not_host.png +enterprise/extensions/ipam/images/green_host.png +enterprise/extensions/ipam/images/lil_green_host.png +enterprise/extensions/ipam/images/lil_red_host_agent_alert.png +enterprise/extensions/ipam/images/lil_green_host_dotted.png +enterprise/extensions/ipam/images/red_host_agent_alert.png +enterprise/extensions/ipam/ipam_supernet_map.php +enterprise/extensions/ipam/include +enterprise/extensions/ipam/include/functions_ipam.php +enterprise/extensions/ipam/include/ajax +enterprise/extensions/ipam/include/ajax/ipam_ajax.php +enterprise/extensions/ipam/include/javascript +enterprise/extensions/ipam/include/javascript/ipam.js +enterprise/extensions/ipam/include/javascript/IpamMapController.js +enterprise/extensions/ipam/ipam_action.php +enterprise/extensions/ipam.php +enterprise/extensions/ipam \ No newline at end of file diff --git a/pandora_console/extras/mr/44.sql b/pandora_console/extras/mr/44.sql index b942d27faf..527d1e0b2f 100644 --- a/pandora_console/extras/mr/44.sql +++ b/pandora_console/extras/mr/44.sql @@ -1,5 +1,122 @@ START TRANSACTION; +CREATE TABLE IF NOT EXISTS `tipam_network` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `network` varchar(100) NOT NULL default '', + `name_network` varchar(255) default '', + `description` text NOT NULL, + `location` tinytext NOT NULL, + `id_recon_task` int(10) unsigned NOT NULL, + `scan_interval` tinyint(2) default 1, + `monitoring` tinyint(2) default 0, + `id_group` mediumint(8) unsigned NULL default 0, + `lightweight_mode` tinyint(2) default 0, + `users_operator` text, + PRIMARY KEY (`id`), + FOREIGN KEY (`id_recon_task`) REFERENCES trecon_task(`id_rt`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `tipam_ip` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `id_network` bigint(20) unsigned NOT NULL default 0, + `id_agent` int(10) unsigned NOT NULL, + `forced_agent` tinyint(2) NOT NULL default '0', + `ip` varchar(100) NOT NULL default '', + `ip_dec` int(10) unsigned NOT NULL, + `id_os` int(10) unsigned NOT NULL, + `forced_os` tinyint(2) NOT NULL default '0', + `hostname` tinytext NOT NULL, + `forced_hostname` tinyint(2) NOT NULL default '0', + `comments` text NOT NULL, + `alive` tinyint(2) NOT NULL default '0', + `managed` tinyint(2) NOT NULL default '0', + `reserved` tinyint(2) NOT NULL default '0', + `time_last_check` datetime NOT NULL default '1970-01-01 00:00:00', + `time_create` datetime NOT NULL default '1970-01-01 00:00:00', + `users_operator` text, + `time_last_edit` datetime NOT NULL default '1970-01-01 00:00:00', + `enabled` tinyint(2) NOT NULL default '1', + `generate_events` tinyint(2) NOT NULL default '0', + `leased` tinyint(2) DEFAULT '0', + `leased_expiration` bigint(20) DEFAULT '0', + `mac_address` varchar(20) DEFAULT NULL, + `leased_mode` tinyint(2) DEFAULT '0', + PRIMARY KEY (`id`), + FOREIGN KEY (`id_network`) REFERENCES tipam_network(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `tipam_vlan` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `name` varchar(250) NOT NULL, + `description` text, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `tipam_vlan_network` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `id_vlan` bigint(20) unsigned NOT NULL, + `id_network` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`id`), + FOREIGN KEY (`id_vlan`) REFERENCES tipam_vlan(`id`) ON UPDATE CASCADE ON DELETE CASCADE, + FOREIGN KEY (`id_network`) REFERENCES tipam_network(`id`) ON UPDATE CASCADE ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `tipam_supernet` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `name` varchar(250) NOT NULL, + `description` text default '', + `address` varchar(250) NOT NULL, + `mask` varchar(250) NOT NULL, + `subneting_mask` varchar(250) default '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `tipam_supernet_network` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `id_supernet` bigint(20) unsigned NOT NULL, + `id_network` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`id`), + FOREIGN KEY (`id_supernet`) REFERENCES tipam_supernet(`id`) ON UPDATE CASCADE ON DELETE CASCADE, + FOREIGN KEY (`id_network`) REFERENCES tipam_network(`id`) ON UPDATE CASCADE ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +SET @insert_type = 3; +SET @insert_name = 'IPAM Recon'; +SET @insert_description = 'This script is used to automatically detect network hosts availability and name, used as Recon Custom Script in the recon task. Parameters used are:\n\n* custom_field1 = network. i.e.: 192.168.100.0/24\n* custom_field2 = associated IPAM network id. i.e.: 4. Please do not change this value, it is assigned automatically in IPAM management.\n\nSee documentation for more information.'; +SET @insert_script = '/usr/share/pandora_server/util/recon_scripts/IPAMrecon.pl'; +SET @insert_macros = '{"1":{"macro":"_field1_","desc":"Network","help":"i.e.: 192.168.100.0/24","value":"","hide":""}}'; +INSERT IGNORE INTO trecon_script (`id_recon_script`,`type`, `name`, `description`, `script`, `macros`) +SELECT `id_recon_script`,`type`, `name`, `description`, `script`, `macros` FROM ( + SELECT `id_recon_script`,`type`, `name`, `description`, `script`, `macros` FROM `trecon_script` WHERE `name` = @insert_name + UNION + SELECT (SELECT max(`id_recon_script`)+1 FROM `trecon_script`) AS `id_recon_script`, + @insert_type as `type`, + @insert_name as `name`, + @insert_description as `description`, + @insert_script as `script`, + @insert_macros as `macros` +) t limit 1; + +ALTER TABLE `tipam_ip` ADD COLUMN `leased` tinyint(2) DEFAULT '0'; + +ALTER TABLE `tipam_ip` ADD COLUMN `leased_expiration` bigint(20) DEFAULT '0'; + +ALTER TABLE `tipam_ip` ADD COLUMN `mac_address` varchar(20) DEFAULT NULL; + +ALTER TABLE `tipam_ip` ADD COLUMN `leased_mode` tinyint(2) DEFAULT '0'; + +ALTER TABLE `tipam_network` ADD COLUMN `monitoring` tinyint(2) default '0'; + +ALTER TABLE `tipam_network` ADD COLUMN `id_group` mediumint(8) unsigned NULL default '0'; + +ALTER TABLE `tipam_network` ADD COLUMN `lightweight_mode` tinyint(2) default '0'; + +ALTER TABLE `tipam_network` ADD COLUMN `name_network` varchar(255) default ''; + +DELETE FROM `tconfig` WHERE `token` = 'ipam_installed'; + +DELETE FROM `tconfig` WHERE `token` = 'ipam_recon_script_id'; + UPDATE `talert_commands` SET `fields_descriptions` = '[\"Event text\",\"Event type\",\"Source\",\"Agent name or _agent_\",\"Event severity\",\"ID extra\",\"Tags separated by commas\",\"Comments\",\"\",\"\"]' WHERE `id` = 3; ALTER TABLE `talert_templates` 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 bae705f725..b06a4c3c56 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 @@ -3868,3 +3868,103 @@ INSERT IGNORE INTO `tnetwork_component` (`id_nc`, `name`, `description`, `id_gro 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'); +CREATE TABLE IF NOT EXISTS `tipam_network` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `network` varchar(100) NOT NULL default '', + `name_network` varchar(255) default '', + `description` text NOT NULL, + `location` tinytext NOT NULL, + `id_recon_task` int(10) unsigned NOT NULL, + `scan_interval` tinyint(2) default 1, + `monitoring` tinyint(2) default 0, + `id_group` mediumint(8) unsigned NULL default 0, + `lightweight_mode` tinyint(2) default 0, + `users_operator` text, + PRIMARY KEY (`id`), + FOREIGN KEY (`id_recon_task`) REFERENCES trecon_task(`id_rt`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `tipam_ip` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `id_network` bigint(20) unsigned NOT NULL default 0, + `id_agent` int(10) unsigned NOT NULL, + `forced_agent` tinyint(2) NOT NULL default '0', + `ip` varchar(100) NOT NULL default '', + `ip_dec` int(10) unsigned NOT NULL, + `id_os` int(10) unsigned NOT NULL, + `forced_os` tinyint(2) NOT NULL default '0', + `hostname` tinytext NOT NULL, + `forced_hostname` tinyint(2) NOT NULL default '0', + `comments` text NOT NULL, + `alive` tinyint(2) NOT NULL default '0', + `managed` tinyint(2) NOT NULL default '0', + `reserved` tinyint(2) NOT NULL default '0', + `time_last_check` datetime NOT NULL default '1970-01-01 00:00:00', + `time_create` datetime NOT NULL default '1970-01-01 00:00:00', + `users_operator` text, + `time_last_edit` datetime NOT NULL default '1970-01-01 00:00:00', + `enabled` tinyint(2) NOT NULL default '1', + `generate_events` tinyint(2) NOT NULL default '0', + `leased` tinyint(2) DEFAULT '0', + `leased_expiration` bigint(20) DEFAULT '0', + `mac_address` varchar(20) DEFAULT NULL, + `leased_mode` tinyint(2) DEFAULT '0', + PRIMARY KEY (`id`), + FOREIGN KEY (`id_network`) REFERENCES tipam_network(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `tipam_vlan` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `name` varchar(250) NOT NULL, + `description` text, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `tipam_vlan_network` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `id_vlan` bigint(20) unsigned NOT NULL, + `id_network` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`id`), + FOREIGN KEY (`id_vlan`) REFERENCES tipam_vlan(`id`) ON UPDATE CASCADE ON DELETE CASCADE, + FOREIGN KEY (`id_network`) REFERENCES tipam_network(`id`) ON UPDATE CASCADE ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `tipam_supernet` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `name` varchar(250) NOT NULL, + `description` text default '', + `address` varchar(250) NOT NULL, + `mask` varchar(250) NOT NULL, + `subneting_mask` varchar(250) default '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE IF NOT EXISTS `tipam_supernet_network` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `id_supernet` bigint(20) unsigned NOT NULL, + `id_network` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`id`), + FOREIGN KEY (`id_supernet`) REFERENCES tipam_supernet(`id`) ON UPDATE CASCADE ON DELETE CASCADE, + FOREIGN KEY (`id_network`) REFERENCES tipam_network(`id`) ON UPDATE CASCADE ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +SET @insert_type = 3; +SET @insert_name = 'IPAM Recon'; +SET @insert_description = 'This script is used to automatically detect network hosts availability and name, used as Recon Custom Script in the recon task. Parameters used are:\n\n* custom_field1 = network. i.e.: 192.168.100.0/24\n* custom_field2 = associated IPAM network id. i.e.: 4. Please do not change this value, it is assigned automatically in IPAM management.\n\nSee documentation for more information.'; +SET @insert_script = '/usr/share/pandora_server/util/recon_scripts/IPAMrecon.pl'; +SET @insert_macros = '{"1":{"macro":"_field1_","desc":"Network","help":"i.e.: 192.168.100.0/24","value":"","hide":""}}'; +INSERT IGNORE INTO trecon_script (`id_recon_script`,`type`, `name`, `description`, `script`, `macros`) +SELECT `id_recon_script`,`type`, `name`, `description`, `script`, `macros` FROM ( + SELECT `id_recon_script`,`type`, `name`, `description`, `script`, `macros` FROM `trecon_script` WHERE `name` = @insert_name + UNION + SELECT (SELECT max(`id_recon_script`)+1 FROM `trecon_script`) AS `id_recon_script`, + @insert_type as `type`, + @insert_name as `name`, + @insert_description as `description`, + @insert_script as `script`, + @insert_macros as `macros` +) t limit 1; + +DELETE FROM `tconfig` WHERE `token` = 'ipam_installed'; + +DELETE FROM `tconfig` WHERE `token` = 'ipam_recon_script_id'; \ No newline at end of file diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index 95ab1948fe..f180488451 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -382,6 +382,7 @@ if (check_acl($config['id_user'], 0, 'PM') || check_acl($config['id_user'], 0, ' $sub['tools/diagnostics']['text'] = __('Diagnostic info'); $sub['tools/diagnostics']['id'] = 'Diagnostic info'; enterprise_hook('omnishell'); + enterprise_hook('ipam_submenu'); $sub['godmode/setup/news']['text'] = __('Site news'); $sub['godmode/setup/news']['id'] = 'Site news'; diff --git a/pandora_console/godmode/wizards/DiscoveryTaskList.class.php b/pandora_console/godmode/wizards/DiscoveryTaskList.class.php index 72222aa79e..962c85fbd4 100644 --- a/pandora_console/godmode/wizards/DiscoveryTaskList.class.php +++ b/pandora_console/godmode/wizards/DiscoveryTaskList.class.php @@ -759,7 +759,7 @@ class DiscoveryTaskList extends HTML if ($ipam === true) { $data[9] .= ''.html_print_image( @@ -768,7 +768,7 @@ class DiscoveryTaskList extends HTML ['title' => __('Edit task')] ).''; $data[9] .= ''.html_print_image( 'images/cross.png', true, diff --git a/pandora_console/include/functions_extensions.php b/pandora_console/include/functions_extensions.php index 76eb8482a4..9d73a20350 100755 --- a/pandora_console/include/functions_extensions.php +++ b/pandora_console/include/functions_extensions.php @@ -165,6 +165,10 @@ function extensions_get_extensions($enterprise=false, $rel_path='') return array_merge($extensions, extensions_get_extensions(true, $rel_path)); } + if (isset($extensions['ipam.php'])) { + unset($extensions['ipam.php']); + } + return $extensions; } diff --git a/pandora_console/include/help/en/help_ipam.php b/pandora_console/include/help/en/help_ipam.php index 549601f059..30d2469493 100755 --- a/pandora_console/include/help/en/help_ipam.php +++ b/pandora_console/include/help/en/help_ipam.php @@ -30,23 +30,23 @@ Addresses will be shown as icons, large or small. This icons will render the fol No assigned agent

Disabled events - - + + With assigned agent

Disabled events - - + + No assigned agent

Activated events - - + + With assigned agent

Activated events - - + + Not managed @@ -58,8 +58,8 @@ Addresses will be shown as icons, large or small. This icons will render the fol If an IP address is not managed, you can only view if is responding or not. - - + + Not assigned diff --git a/pandora_console/include/help/es/help_ipam.php b/pandora_console/include/help/es/help_ipam.php index c03158f6ec..f312b6ec25 100755 --- a/pandora_console/include/help/es/help_ipam.php +++ b/pandora_console/include/help/es/help_ipam.php @@ -31,23 +31,23 @@ Cada dirección tendrá un icono grande que nos aportará información:

Sin agente asignado

Eventos desactivados - - + + Con agente asignado

Eventos desactivados - - + + Sin agente asignado

Eventos activados - - + + Con agente asignado

Eventos activados - - + + Sin administrar @@ -59,8 +59,8 @@ Cada dirección tendrá un icono grande que nos aportará información:

Independientemente de la configuración, si el host no está administrado solo se diferenciará entre si está vivo y no responde - - + + No asignado diff --git a/pandora_console/include/help/ja/help_ipam.php b/pandora_console/include/help/ja/help_ipam.php index 28cac820b8..87ffbe9c47 100644 --- a/pandora_console/include/help/ja/help_ipam.php +++ b/pandora_console/include/help/ja/help_ipam.php @@ -31,23 +31,23 @@ IP 管理は、 エージェントで設定し エージェント未割当

イベント無効 - - + + エージェント割当済

イベント無効 - - + + エージェント未割当

イベント有効 - - + + エージェント割当済

イベント有効 - - + + 未管理 @@ -59,8 +59,8 @@ IP 管理は、 エージェントで設定し IP アドレスが管理されていない場合、応答があるかどうかだけを見ることができます。 - - + + 未割当 diff --git a/pandora_console/include/styles/ipam.css b/pandora_console/include/styles/ipam.css new file mode 100644 index 0000000000..38a68d4b1d --- /dev/null +++ b/pandora_console/include/styles/ipam.css @@ -0,0 +1,243 @@ +/** + * Extension to manage a list of gateways and the node address where they should + * point to. + * + * @category Extensions + * @package Pandora FMS + * @subpackage Enterprise + * @version 1.0.0 + * @license See below + * + * ______ ___ _______ _______ ________ + * | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __| + * | __/| _ | | _ || _ | _| _ | | ___| |__ | + * |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______| + * + * ============================================================================ + * Copyright (c) 2007-2019 Artica Soluciones Tecnologicas, http://www.artica.es + * This code is NOT free software. This code is NOT licenced under GPL2 licence + * You cannnot redistribute it without written permission of copyright holder. + * ============================================================================ + */ + +.mask_example, +#ipv4_example, +#ipv6_example { + font-size: xx-small; + font-weight: normal; + margin-left: 5px; +} + +.mode_img { + cursor: pointer; + margin-right: 5px; +} + +.os_mode_img { + float: left; + margin-right: 0px; +} + +.hidden { + display: none; +} + +fieldset { + padding-top: 0px; +} + +fieldset legend { + text-align: left; +} + +.ui-autocomplete-input { + width: 120px; +} + +.ball_addr_status { + float: left; + margin-right: 3px; + margin-top: 2px; + width: 8px; +} + +.add_comments_button { + cursor: pointer; +} + +.ipam_icon { + float: left; + display: inline; + text-align: center; + background: #fff; + position: relative; +} + +.ipam_icon img { + display: block; +} + +.address_os_icon { + position: absolute; + bottom: +12px; + right: 0px; +} + +.address_os_icon img { + width: 16px; +} + +.comment_icon { + position: absolute; + right: 0px; +} + +.comment_icon img { + width: 16px; +} + +.address_config_icon { + position: absolute; + bottom: -6px; + right: 0px; +} + +.address_disabled_icon, +.address_os_icon { + position: absolute; + bottom: -5px; + left: 0px; + width: 18px; +} + +.address_config_icon img { + width: 18px; +} + +.address_disabled_icon { + position: absolute; + bottom: -6px; + left: 0px; + width: 18px; +} + +.address_image { + cursor: pointer; +} + +/* Big icons */ + +.ipam_icon_big { + margin: 10px; + padding: 5px 5px; + border-radius: 10px; + width: 90px; +} + +.ipam_icon_big img { + margin: 8px auto; + margin-top: 8px; +} + +/* Tiny icons */ + +.ipam_icon_tiny { + margin: 6px; + padding: 3px 3px; + border-radius: 7px; + width: 55px; + font-size: 6.5pt; +} + +.ipam_icon_tiny img { + margin: 5px auto; + margin-top: 5px; +} + +/* Un-reserved ip background */ +.reserved { + background: #dbffff; +} + +.unreserved { + background: #ffffff; +} + +.unreserved_dhcp { + background: #ebebeb; +} + +.container_network { + margin: 20px; + width: 100%; + display: flex; + justify-content: space-around; +} + +.detailts_network { + width: 35%; +} + +.statistics_network { + width: 50%; +} + +.button_network { + width: 100%; + margin-top: 20px; + margin-bottom: 20px; + display: flex; + justify-content: flex-end; +} + +.button_network input { + margin-right: 30px; +} + +.vlan_statistics p { + margin-left: 10px; + font-style: italic; +} + +.vlan_statistics div div { + width: 95%; +} + +.container_button { + display: flex; + height: 200px; + justify-content: space-around; + align-items: center; +} + +.container_button_int { + border: 1px solid #e1e2e1; + height: 150px; + width: 125px; + display: flex; + align-items: center; + text-align: center; + justify-content: center; + cursor: pointer; +} + +.container_button_int:hover { + background: #e2e2e2; +} + +.button_add_net { + width: 100px; + height: 100px; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; +} + +.button_add_net img { + vertical-align: middle; +} + +.button_add_net span { + margin-top: 10px; +} diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql index 771b2e99fc..b245484c83 100644 --- a/pandora_console/pandoradb.sql +++ b/pandora_console/pandoradb.sql @@ -3877,3 +3877,101 @@ CREATE TABLE `tnode_relations` ( `node_address` VARCHAR(60) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------------------------------------------------- +-- Table `tipam_network` +-- ---------------------------------------------------------------------- +CREATE TABLE IF NOT EXISTS `tipam_network` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `network` varchar(100) NOT NULL default '', + `name_network` varchar(255) default '', + `description` text NOT NULL, + `location` tinytext NOT NULL, + `id_recon_task` int(10) unsigned NOT NULL, + `scan_interval` tinyint(2) default 1, + `monitoring` tinyint(2) default 0, + `id_group` mediumint(8) unsigned NULL default 0, + `lightweight_mode` tinyint(2) default 0, + `users_operator` text, + PRIMARY KEY (`id`), + FOREIGN KEY (`id_recon_task`) REFERENCES trecon_task(`id_rt`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------------------------------------------------- +-- Table `tipam_ip` +-- ---------------------------------------------------------------------- +CREATE TABLE IF NOT EXISTS `tipam_ip` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `id_network` bigint(20) unsigned NOT NULL default 0, + `id_agent` int(10) unsigned NOT NULL, + `forced_agent` tinyint(2) NOT NULL default '0', + `ip` varchar(100) NOT NULL default '', + `ip_dec` int(10) unsigned NOT NULL, + `id_os` int(10) unsigned NOT NULL, + `forced_os` tinyint(2) NOT NULL default '0', + `hostname` tinytext NOT NULL, + `forced_hostname` tinyint(2) NOT NULL default '0', + `comments` text NOT NULL, + `alive` tinyint(2) NOT NULL default '0', + `managed` tinyint(2) NOT NULL default '0', + `reserved` tinyint(2) NOT NULL default '0', + `time_last_check` datetime NOT NULL default '1970-01-01 00:00:00', + `time_create` datetime NOT NULL default '1970-01-01 00:00:00', + `users_operator` text, + `time_last_edit` datetime NOT NULL default '1970-01-01 00:00:00', + `enabled` tinyint(2) NOT NULL default '1', + `generate_events` tinyint(2) NOT NULL default '0', + `leased` tinyint(2) DEFAULT '0', + `leased_expiration` bigint(20) DEFAULT '0', + `mac_address` varchar(20) DEFAULT NULL, + `leased_mode` tinyint(2) DEFAULT '0', + PRIMARY KEY (`id`), + FOREIGN KEY (`id_network`) REFERENCES tipam_network(`id`) ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------------------------------------------------- +-- Table `tipam_vlan` +-- ---------------------------------------------------------------------- +CREATE TABLE IF NOT EXISTS `tipam_vlan` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `name` varchar(250) NOT NULL, + `description` text, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------------------------------------------------- +-- Table `tipam_vlan_network` +-- ---------------------------------------------------------------------- +CREATE TABLE IF NOT EXISTS `tipam_vlan_network` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `id_vlan` bigint(20) unsigned NOT NULL, + `id_network` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`id`), + FOREIGN KEY (`id_vlan`) REFERENCES tipam_vlan(`id`) ON UPDATE CASCADE ON DELETE CASCADE, + FOREIGN KEY (`id_network`) REFERENCES tipam_network(`id`) ON UPDATE CASCADE ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------------------------------------------------- +-- Table `tipam_supernet` +-- ---------------------------------------------------------------------- +CREATE TABLE IF NOT EXISTS `tipam_supernet` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `name` varchar(250) NOT NULL, + `description` text default '', + `address` varchar(250) NOT NULL, + `mask` varchar(250) NOT NULL, + `subneting_mask` varchar(250) default '', + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------------------------------------------------- +-- Table `tipam_supernet_network` +-- ---------------------------------------------------------------------- +CREATE TABLE IF NOT EXISTS `tipam_supernet_network` ( + `id` bigint(20) unsigned NOT NULL auto_increment, + `id_supernet` bigint(20) unsigned NOT NULL, + `id_network` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`id`), + FOREIGN KEY (`id_supernet`) REFERENCES tipam_supernet(`id`) ON UPDATE CASCADE ON DELETE CASCADE, + FOREIGN KEY (`id_network`) REFERENCES tipam_network(`id`) ON UPDATE CASCADE ON DELETE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/pandora_console/pandoradb_data.sql b/pandora_console/pandoradb_data.sql index f58b5d2170..e173af7c76 100644 --- a/pandora_console/pandoradb_data.sql +++ b/pandora_console/pandoradb_data.sql @@ -1168,7 +1168,7 @@ INSERT INTO `treport_custom_sql` (`id`, `name`, `sql`) VALUES (4, 'Group vi -- trecon scripts INSERT INTO `trecon_script` (`type`,`name`,`description`,`script`,`macros`) VALUES (1, 'Discovery.Application.VMware', 'Discovery Application script to monitor VMware technologies (ESXi, VCenter, VSphere)', '/usr/share/pandora_server/util/recon_scripts/vmware-plugin.pl', '{"1":{"macro":"_field1_","desc":"Configuration file","help":"","value":"","hide":""}}'); INSERT INTO `trecon_script` (`type`,`name`,`description`,`script`,`macros`) VALUES (2, 'Discovery.Cloud', 'Discovery Cloud script to monitor Cloud technologies (AWS.EC2, AWS.S3, AWS.RDS, RDS,ȊWS.EKS)', '/usr/share/pandora_server/util/recon_scripts/pcm_client.pl', '{"1":{"macro":"_field1_","desc":"Configuration file","help":"","value":"","hide":""}}'); --- IPAM is 3. +INSERT INTO `trecon_script` (`type`,`name`,`description`,`script`,`macros`) VALUES (3, 'IPAM Recon', 'This script is used to automatically detect network hosts availability and name, used as Recon Custom Script in the recon task. Parameters used are:\n\n* custom_field1 = network. i.e.: 192.168.100.0/24\n* custom_field2 = associated IPAM network id. i.e.: 4. Please do not change this value, it is assigned automatically in IPAM management.\n\nSee documentation for more information.', '/usr/share/pandora_server/util/recon_scripts/IPAMrecon.pl', '{"1":{"macro":"_field1_","desc":"Network","help":"i.e.: 192.168.100.0/24","value":"","hide":""}}'); INSERT INTO `trecon_script` (`type`,`name`,`description`,`script`,`macros`) VALUES (4, 'IPMI Recon','Specific Pandora FMS Intel DCM Discovery (c) Artica ST 2011 <info@artica.es> Usage: ./ipmi-recon.pl <task_id> <group_id> <create_incident_flag> <custom_field1> <custom_field2> <custom_field3> <custom_field4> * custom_field1 = Network i.e.: 192.168.100.0/24 * custom_field2 = Username * custom_field3 = Password * custom_field4 = Additional parameters i.e.: -D LAN_2_0','/usr/share/pandora_server/util/recon_scripts/ipmi-recon.pl','{\"1\":{\"macro\":\"_field1_\",\"desc\":\"Network\",\"help\":\"i.e.: 192.168.100.0/24\",\"value\":\"\",\"hide\":\"\"},\"2\":{\"macro\":\"_field2_\",\"desc\":\"Username\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"3\":{\"macro\":\"_field3_\",\"desc\":\"Password\",\"help\":\"\",\"value\":\"\",\"hide\":\"1\"},\"4\":{\"macro\":\"_field4_\",\"desc\":\"Additional parameters\",\"help\":\"Optional additional parameters such as -D LAN_2_0 to use IPMI ver 2.0 instead of 1.5. These options will also be passed to the IPMI plugin when the current values are read.\",\"value\":\"\",\"hide\":\"\"}}'); INSERT INTO `tplugin` (`id`, `name`, `description`, `max_timeout`, `execute`, `plugin_type`, `macros`, `parameters`) VALUES (1,'IPMI Plugin','Plugin to get IPMI monitors from a IPMI Device.',0,'/usr/share/pandora_server/util/plugin/ipmi-plugin.pl',0,'{\"1\":{\"macro\":\"_field1_\",\"desc\":\"Target IP\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"2\":{\"macro\":\"_field2_\",\"desc\":\"Username\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"3\":{\"macro\":\"_field3_\",\"desc\":\"Password\",\"help\":\"\",\"value\":\"\",\"hide\":\"true\"},\"4\":{\"macro\":\"_field4_\",\"desc\":\"Sensor\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"},\"5\":{\"macro\":\"_field5_\",\"desc\":\"Additional Options\",\"help\":\"\",\"value\":\"\",\"hide\":\"\"}}','-h _field1_ -u _field2_ -p _field3_ -s _field4_ -- _field5_');