'.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_');