Skip to main content

    Filter by idea status

    Filter by product

    629 Ideas

    jstagerBuilder *

    [ressources status] - search box must allow natively slash and backslash (and others metacharacters)Needs Votes

    Dear all, The single search field in the “new” status resource pages work in regex and in 2025 it does not allow to use the regex metacharacters without having to escape them. This is very problematic since Centreon is a software for monitoring server or network computer devices which themselves regularly use these characters and this is exactly what we monitor with Centreon. For example this make a problem when you want to do a simple and quick search for an interface name or a disk folders/files on our devices. It should be possible to just search for an interface by is name without worrying about regex syntaxeTenGigE0/7/1/1 > make a error> so we must use TenGigE0\/7\/1\/1same problems for files and folders paths… Many Centreon users are not competent to understand that they must escape the metacharacter regex. And for those who know this, it is ok for them once but not thousands of times, so they do not use the new pages and stay on the good deprecated pages. Please find a user-friendly solution. If I allow myself a suggestion, my solution proposal is to put this single field in the background as an advanced option and put in front the simple multiple fields “identical” to the deprecated pages.This single field may possibly have some good sides but is infinitely too complex to use for all Centreon users. Thanks a lot

    katskaSteward ***

    Aruba Stack members check if not VSF or VSX stackReleased

    Hi,Can you please add option to monitor Aruba devices stack members, if the switch is not configured as VSX or VSF stack. bash-5.1$ snmpwalk 1.2.3.41 -v2c -c ‘ab123!' 1.3.6.1.4.1.11.2.14.11.5.1.116.1.3.1SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.2.1 = STRING: "JL260A"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.2.2 = STRING: "JL262A"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.2.3 = STRING: "JL260A"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.2.4 = STRING: "JL260A"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.3.1 = Hex-STRING: 90 20 C2 47 9D C0 SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.3.2 = Hex-STRING: 38 21 C7 36 39 80 SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.3.3 = Hex-STRING: 94 60 D5 F5 B4 C0 SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.3.4 = Hex-STRING: 94 60 D5 F5 E5 00 SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.4.1 = INTEGER: 2SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.4.2 = INTEGER: 2SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.4.3 = INTEGER: 2SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.4.4 = INTEGER: 2SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.5.1 = INTEGER: 2SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.5.2 = INTEGER: 2SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.5.3 = INTEGER: 2SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.5.4 = INTEGER: 2SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.6.1 = INTEGER: 200SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.6.2 = INTEGER: 150SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.6.3 = INTEGER: 128SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.6.4 = INTEGER: 128SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.7.1 = INTEGER: 3SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.7.2 = INTEGER: 1SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.7.3 = INTEGER: 1SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.7.4 = INTEGER: 1SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.8.1 = INTEGER: 101001SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.8.2 = INTEGER: 201001SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.8.3 = INTEGER: 301001SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.8.4 = INTEGER: 401001SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.9.1 = INTEGER: 3SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.9.2 = INTEGER: 4SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.9.3 = INTEGER: 5SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.9.4 = INTEGER: 5SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.10.1 = STRING: "Aruba JL260A 2930F-48G-4SFP Switch"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.10.2 = STRING: "Aruba JL262A 2930F-48G-PoE+-4SFP Switch"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.10.3 = STRING: "Aruba JL260A 2930F-48G-4SFP Switch"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.10.4 = STRING: "Aruba JL260A 2930F-48G-4SFP Switch"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.11.1 = Timeticks: (961363900) 111 days, 6:27:19.00SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.11.2 = Timeticks: (961365700) 111 days, 6:27:37.00SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.11.3 = Timeticks: (961365400) 111 days, 6:27:34.00SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.11.4 = Timeticks: (961372700) 111 days, 6:28:47.00SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.12.1 = OID: SNMPv2-SMI::enterprises.11.2.3.7.11.181.23SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.12.2 = OID: SNMPv2-SMI::enterprises.11.2.3.7.11.181.25SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.12.3 = OID: SNMPv2-SMI::enterprises.11.2.3.7.11.181.23SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.12.4 = OID: SNMPv2-SMI::enterprises.11.2.3.7.11.181.23SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.14.1 = STRING: "ABCDCCCC"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.14.2 = STRING: "ABBFTGHBA"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.14.3 = STRING: "AHGHTGHEF"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.14.4 = STRING: "WRTHFDSRG"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.15.1 = STRING: "WC.16.01.0008"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.15.2 = STRING: "WC.16.01.0008"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.15.3 = STRING: "WC.16.01.0008"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.15.4 = STRING: "WC.16.01.0008"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.16.1 = STRING: "WC.16.10.0010"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.16.2 = STRING: "WC.16.10.0010"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.16.3 = STRING: "WC.16.10.0010"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.16.4 = STRING: "WC.16.10.0010"SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.17.1 = INTEGER: 1SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.17.2 = INTEGER: 1SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.17.3 = INTEGER: 1SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.17.4 = INTEGER: 1SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.18.1 = INTEGER: 1SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.18.2 = INTEGER: 2SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.18.3 = INTEGER: 3SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.18.4 = INTEGER: 4SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.19.1 = INTEGER: 0SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.19.2 = INTEGER: 0SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.19.3 = INTEGER: 0SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.19.4 = INTEGER: 0SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.20.1 = INTEGER: 339186176SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.20.2 = INTEGER: 339186176SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.20.3 = INTEGER: 339186176SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.20.4 = INTEGER: 339186176SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.21.1 = INTEGER: 215841056SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.21.2 = INTEGER: 232473096SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.21.3 = INTEGER: 248044452SNMPv2-SMI::enterprises.11.2.14.11.5.1.116.1.3.1.21.4 = INTEGER: 248044452

    joschi99Steward **

    [hardware::server::lenovo::xcc::snmp::plugin] --mode=hardware: System health, memory and CPU table not checkedReleased

    Case reported on Github: [hardware::server::lenovo::xcc::snmp::plugin] --mode=hardware: System health, memory and CPU table not recognized · Issue #4695 · centreon/centreon-plugins · GitHub on  Latest plugins Lenovo XCC SNMP OID has a System health table at OID .1.3.6.1.4.1.19046.11.1.1.4: https://mibs.observium.org/mib/LENOVO-XCC-MIB/ This table will not recognized or checked by the plugin and is incomplete. As you can see the system show's an error on XCC and we found the error on the System health table: .1.3.6.1.4.1.19046.11.1.1.4.1.0 = INTEGER: 2.1.3.6.1.4.1.19046.11.1.1.4.2.1.1.1 = INTEGER: 1.1.3.6.1.4.1.19046.11.1.1.4.2.1.1.2 = INTEGER: 2.1.3.6.1.4.1.19046.11.1.1.4.2.1.1.3 = INTEGER: 3.1.3.6.1.4.1.19046.11.1.1.4.2.1.1.4 = INTEGER: 4.1.3.6.1.4.1.19046.11.1.1.4.2.1.2.1 = STRING: "Error".1.3.6.1.4.1.19046.11.1.1.4.2.1.2.2 = STRING: "Error".1.3.6.1.4.1.19046.11.1.1.4.2.1.2.3 = STRING: "Error".1.3.6.1.4.1.19046.11.1.1.4.2.1.2.4 = STRING: "Warning".1.3.6.1.4.1.19046.11.1.1.4.2.1.3.1 = STRING: "An Uncorrectable PCIe Error has Occurred at Bus 01 Device 00 Function 01. The Vendor ID for the device is 14E4 and the Device ID is 16D8. The physical slot number is 1.".1.3.6.1.4.1.19046.11.1.1.4.2.1.3.2 = STRING: "Fault in slot 1 on system ThinkSystem SR655 V3.".1.3.6.1.4.1.19046.11.1.1.4.2.1.3.3 = STRING: "Fault in slot 6 on system ThinkSystem SR655 V3.".1.3.6.1.4.1.19046.11.1.1.4.2.1.3.4 = STRING: "PCIe Link Training Failure has occurred in physical slot number 3." but the plugin show's OK: As you can see on this Plugin output also the CPU/memory table will not read/recognized, there is no "component" for memory on the plugin and for them: memory status will not verified (OID .1.3.6.1.4.1.19046.11.1.1.5.21) cpu status will not verified (OID .1.3.6.1.4.1.19046.11.1.1.5.20) Seem's that the XCC plugin is actually incomplete. Please let me know if you need further informations (2084)

    jstagerBuilder *

    [MAP] Worst state order, acknowledge, planned maintenanceIn Backlog

    Hello all,We started using MAP (new web version in 23.04).However, we notice behaviors that we wish to change. 1) ack and planned maintenance :Our maps do not consider acks (and probably planned maintenance) although validated in Centreon. All these ack alerts appear as current alarms in MAP by coloring the objects for alarms even if they are ack.This is annoying, this is not what we want. Even more annoying when it comes to groups of hosts or services.We want to modify this behavior by considering ack and planned maintenance.  2) Worst state order : By default, the priority given to the "Unknown(gray)" service status does not suit us.All of our equipment has at least one service in "Unknown(gray)" status (but generally ack) which makes all of our equipment appear gray.This is annoying, this is not what we want. Even more annoying when it comes to groups of hosts or services.We want to be able to ignore this "Unknown(gray)" status in MAP or place it in a lower priority than Ok/Up(green). Current  worst state order in MAP :Service Critical (red) Host Down (red) Service Warning(orange) Unknown(gray) Unreachable(gray) Ok(green) Up(green) Pending(blue)our state order we wish ( editable )Service Critical (red) Host Down (red) Service Warning(orange) Unreachable(gray) Pending(blue) Ok(green) Up(green) Unknown(gray) PS : Also the gray color is "invisible" in the (zoomed) geo-maps.  Thank you very much for all and best regards.

    SavCentBuilder **

    Widgets hostgroup-monitoring stays empty after upgrading to version 24.10.2Declined

    Hi,My widgets hostgroup-monitoring stay empty when i use regex filter on the Home/Custom View, after the upgrade to 24.10.2. I was looking for differences between an old version and the actual version of the hostgroup-monitoring widget, and found out that it changed between the releases.I didn’t really understand the changes, but when i change the file for the previous one, and restarted my services, it worked, so I’ll keep it this wayPath of the file to replace : /usr/share/centreon/www/widgets/hostgroup-monitoring/src/index.phpWorking content for the index.php :<?php/* * Copyright 2005-2021 Centreon * Centreon is developed by : Julien Mathis and Romain Le Merlus under * GPL Licence 2.0. * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation ; either version 2 of the License. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with * this program; if not, see <http://www.gnu.org/licenses>. * * Linking this program statically or dynamically with other modules is making a * combined work based on this program. Thus, the terms and conditions of the GNU * General Public License cover the whole combination. * * As a special exception, the copyright holders of this program give Centreon * permission to link this program with independent modules to produce an executable, * regardless of the license terms of these independent modules, and to copy and * distribute the resulting executable under terms of Centreon choice, provided that * Centreon also meet, for each linked independent module, the terms and conditions * of the license of that module. An independent module is a module which is not * derived from this program. If you modify this program, you may extend this * exception to your version of the program, but you are not obliged to do so. If you * do not wish to do so, delete this exception statement from your version. * * For more information : contact@centreon.com * */require_once "../../require.php";require_once $centreon_path . 'bootstrap.php';require_once $centreon_path . 'www/class/centreon.class.php';require_once $centreon_path . 'www/class/centreonSession.class.php';require_once $centreon_path . 'www/class/centreonWidget.class.php';require_once $centreon_path . 'www/class/centreonDuration.class.php';require_once $centreon_path . 'www/class/centreonUtils.class.php';require_once $centreon_path . 'www/class/centreonACL.class.php';require_once $centreon_path . 'www/widgets/hostgroup-monitoring/src/class/HostgroupMonitoring.class.php';CentreonSession::start(1);if (!isset($_SESSION['centreon']) || !isset($_REQUEST['widgetId']) || !isset($_REQUEST['page'])) { exit;}$db = $dependencyInjector['configuration_db'];if (CentreonSession::checkSession(session_id(), $db) == 0) { exit;}$path = $centreon_path . "www/widgets/hostgroup-monitoring/src/";$template = new Smarty();$template = initSmartyTplForPopup($path, $template, "./", $centreon_path);$centreon = $_SESSION['centreon'];/** * true: URIs will correspond to deprecated pages * false: URIs will correspond to new page (Resource Status) */$useDeprecatedPages = $centreon->user->doesShowDeprecatedPages();$widgetId = filter_var($_REQUEST['widgetId'], FILTER_VALIDATE_INT);$page = filter_var($_REQUEST['page'], FILTER_VALIDATE_INT);try { if ($widgetId === false) { throw new InvalidArgumentException('Widget ID must be an integer'); } if ($page === false) { throw new InvalidArgumentException('Page must be an integer'); }} catch (InvalidArgumentException $e) { echo $e->getMessage(); exit;}/** * @var $dbb CentreonDB */$dbb = $dependencyInjector['realtime_db'];$widgetObj = new CentreonWidget($centreon, $db);$hgMonObj = new HostgroupMonitoring($dbb);$preferences = $widgetObj->getWidgetPreferences($widgetId);$aclObj = new CentreonACL($centreon->user->user_id, $centreon->user->admin);$aColorHost = array(0 => 'host_up', 1 => 'host_down', 2 => 'host_unreachable', 4 => 'host_pending');$aColorService = array( 0 => 'service_ok', 1 => 'service_warning', 2 => 'service_critical', 3 => 'service_unknown', 4 => 'pending');$hostStateLabels = array( 0 => "Up", 1 => "Down", 2 => "Unreachable", 4 => "Pending");$serviceStateLabels = array( 0 => "Ok", 1 => "Warning", 2 => "Critical", 3 => "Unknown", 4 => "Pending");$query = <<<'SQL' SELECT SQL_CALC_FOUND_ROWS DISTINCT 1 AS REALTIME, name, hostgroup_id FROM hostgroups SQL;if (isset($preferences['hg_name_search']) && $preferences['hg_name_search'] != "") { $tab = explode(" ", $preferences['hg_name_search']); $op = $tab[0]; if (isset($tab[1])) { $search = $tab[1]; } if ($op && isset($search) && $search != "") { $query = CentreonUtils::conditionBuilder( $query, "name " . CentreonUtils::operandToMysqlFormat($op) . " '" . $dbb->escape($search) . "' " ); }}if (!$centreon->user->admin) { $query = CentreonUtils::conditionBuilder($query, "name IN (" . $aclObj->getHostGroupsString("NAME") . ")");}$orderby = "name ASC";if (isset($preferences['order_by']) && trim($preferences['order_by']) != "") { $orderby = $preferences['order_by'];}$query .= "ORDER BY $orderby";$query .= " LIMIT " . ($page * $preferences['entries']) . "," . $preferences['entries'];$res = $dbb->query($query);$nbRows = (int) $dbb->query('SELECT FOUND_ROWS() AS REALTIME')->fetchColumn();$data = array();$detailMode = false;if (isset($preferences['enable_detailed_mode']) && $preferences['enable_detailed_mode']) { $detailMode = true;}$kernel = \App\Kernel::createForWeb();$resourceController = $kernel->getContainer()->get( \Centreon\Application\Controller\MonitoringResourceController::class);$buildHostgroupUri = function (array $hostgroup, array $types, array $statuses) use ($resourceController) { return $resourceController->buildListingUri( [ 'filter' => json_encode( [ 'criterias' => [ [ 'name' => 'host_groups', 'value' => $hostgroup, ], [ 'name' => 'resource_types', 'value' => $types, ], [ 'name' => 'statuses', 'value' => $statuses, ] ], ] ) ] );};$buildParameter = function (string $id, string $name) { return [ 'id' => $id, 'name' => $name, ];};$hostType = $buildParameter('host', 'Host');$serviceType = $buildParameter('service', 'Service');$okStatus = $buildParameter('OK', 'Ok');$warningStatus = $buildParameter('WARNING', 'Warning');$criticalStatus = $buildParameter('CRITICAL', 'Critical');$unknownStatus = $buildParameter('UNKNOWN', 'Unknown');$pendingStatus = $buildParameter('PENDING', 'Pending');$upStatus = $buildParameter('UP', 'Up');$downStatus = $buildParameter('DOWN', 'Down');$unreachableStatus = $buildParameter('UNREACHABLE', 'Unreachable');while ($row = $res->fetch()) { $hostgroup = [ 'id' => (int)$row['hostgroup_id'], 'name' => $row['name'], ]; $hostgroupServicesUri = $useDeprecatedPages ? '../../main.php?p=20201&search=&o=svc&hg=' . $hostgroup['id'] : $buildHostgroupUri([$hostgroup], [$serviceType], []); $hostgroupOkServicesUri = $useDeprecatedPages ? $hostgroupServicesUri . '&statusFilter=ok' : $buildHostgroupUri([$hostgroup], [$serviceType], [$okStatus]); $hostgroupWarningServicesUri = $useDeprecatedPages ? $hostgroupServicesUri . '&statusFilter=warning' : $buildHostgroupUri([$hostgroup], [$serviceType], [$warningStatus]); $hostgroupCriticalServicesUri = $useDeprecatedPages ? $hostgroupServicesUri . '&statusFilter=critical' : $buildHostgroupUri([$hostgroup], [$serviceType], [$criticalStatus]); $hostgroupUnknownServicesUri = $useDeprecatedPages ? $hostgroupServicesUri . '&statusFilter=unknown' : $buildHostgroupUri([$hostgroup], [$serviceType], [$unknownStatus]); $hostgroupPendingServicesUri = $useDeprecatedPages ? $hostgroupServicesUri . '&statusFilter=pending' : $buildHostgroupUri([$hostgroup], [$serviceType], [$pendingStatus]); $hostgroupHostsUri = $useDeprecatedPages ? '../../main.php?p=20202&search=&hostgroups=' . $hostgroup['id'] . '&o=h_' : $buildHostgroupUri([$hostgroup], [$hostType], []); $hostgroupUpHostsUri = $useDeprecatedPages ? $hostgroupHostsUri . 'up' : $buildHostgroupUri([$hostgroup], [$hostType], [$upStatus]); $hostgroupDownHostsUri = $useDeprecatedPages ? $hostgroupHostsUri . 'down' : $buildHostgroupUri([$hostgroup], [$hostType], [$downStatus]); $hostgroupUnreachableHostsUri = $useDeprecatedPages ? $hostgroupHostsUri . 'unreachable' : $buildHostgroupUri([$hostgroup], [$hostType], [$unreachableStatus]); $hostgroupPendingHostsUri = $useDeprecatedPages ? $hostgroupHostsUri . 'pending' : $buildHostgroupUri([$hostgroup], [$hostType], [$pendingStatus]); $data[$row['name']] = [ 'name' => $row['name'], 'hg_id' => $row['hostgroup_id'], 'hg_uri' => $hostgroupServicesUri, 'hg_service_uri' => $hostgroupServicesUri, 'hg_service_ok_uri' => $hostgroupOkServicesUri, 'hg_service_warning_uri' => $hostgroupWarningServicesUri, 'hg_service_critical_uri' => $hostgroupCriticalServicesUri, 'hg_service_unknown_uri' => $hostgroupUnknownServicesUri, 'hg_service_pending_uri' => $hostgroupPendingServicesUri, 'hg_host_uri' => $hostgroupHostsUri, 'hg_host_up_uri' => $hostgroupUpHostsUri, 'hg_host_down_uri' => $hostgroupDownHostsUri, 'hg_host_unreachable_uri' => $hostgroupUnreachableHostsUri, 'hg_host_pending_uri' => $hostgroupPendingHostsUri, 'host_state' => [], 'service_state' => [], ];}$hgMonObj->getHostStates($data, $centreon->user->admin, $aclObj, $preferences, $detailMode);$hgMonObj->getServiceStates($data, $centreon->user->admin, $aclObj, $preferences, $detailMode);if ($detailMode === true) { foreach ($data as $hostgroupName => &$properties) { foreach ($properties['host_state'] as $hostName => &$hostProperties) { $hostProperties['details_uri'] = $useDeprecatedPages ? '../../main.php?p=20202&o=hd&host_name=' . $hostProperties['name'] : $resourceController->buildHostDetailsUri($hostProperties['host_id']); } foreach ($properties['service_state'] as $hostId => &$services) { foreach ($services as &$serviceProperties) { $serviceProperties['details_uri'] = $useDeprecatedPages ? '../../main.php?o=svcd&p=20201' . '&host_name=' . $serviceProperties['name'] . '&service_description=' . $serviceProperties['description'] : $resourceController->buildServiceDetailsUri($hostId, $serviceProperties['service_id']); } } }}$autoRefresh = filter_var($preferences['refresh_interval'], FILTER_VALIDATE_INT);if ($autoRefresh === false || $autoRefresh < 5) { $autoRefresh = 30;}$template->assign('widgetId', $widgetId);$template->assign('autoRefresh', $autoRefresh);$template->assign('preferences', $preferences);$template->assign('nbRows', $nbRows);$template->assign('page', $page);$template->assign('orderby', $orderby);$template->assign('data', $data);$template->assign('dataJS', count($data));$template->assign('aColorHost', $aColorHost);$template->assign('aColorService', $aColorService);$template->assign('preferences', $preferences);$template->assign('hostStateLabels', $hostStateLabels);$template->assign('serviceStateLabels', $serviceStateLabels);$template->assign('data', $data);$template->display('table.ihtml');And the last step, I restarted my services (not sure if needed)systemctl restart cbd centengine gorgonedWith this, everything is back to normal. Could you make this official ?

    vliardSteward **

    [Custom Scripts / Notifications] --- Light URLsDuplicate

    Hello,We've set up custom scripts on our platform for mail notifications in particular, which embed links to specific hosts or services.However, these URLs are far too busy and sometimes complicated to process because there are so many characters to escape or analyze in a script.for example :https://supervision.nantesmetropole.fr/centreon/monitoring/resources?details=%7B%22customTimePeriod%22%3A%7B%22end%22%3A%222024-11-15T13%3A57%3A27.979Z%22%2C%22start%22%3A%222024-11-14T13%3A57%3A27.979Z%22%7D%2C%22id%22%3A62032%2C%22resourcesDetailsEndpoint%22%3A%22%2Fcentreon%2Fapi%2Flatest%2Fmonitoring%2Fresources%2Fhosts%2F5976%2Fservices%2F62032%22%2C%22selectedTimePeriodId%22%3A%22last_24_h%22%2C%22tab%22%3A%22details%22%2C%22tabParameters%22%3A%7B%7D%7D&filter=%7B%22id%22%3A23%2C%22name%22%3A%22Test+Host%22%2C%22criterias%22%3A%5B%7B%22name%22%3A%22names%22%2C%22object_type%22%3A%22names%22%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22parent_names%22%2C%22object_type%22%3A%22parent_names%22%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22resource_types%22%2C%22object_type%22%3Anull%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%7B%22id%22%3A%22host%22%2C%22name%22%3A%22Host%22%7D%5D%7D%2C%7B%22name%22%3A%22states%22%2C%22object_type%22%3Anull%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22statuses%22%2C%22object_type%22%3Anull%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22status_types%22%2C%22object_type%22%3Anull%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22host_groups%22%2C%22object_type%22%3A%22host_groups%22%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22service_groups%22%2C%22object_type%22%3A%22service_groups%22%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22monitoring_servers%22%2C%22object_type%22%3A%22monitoring_servers%22%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22host_categories%22%2C%22object_type%22%3A%22host_categories%22%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22service_categories%22%2C%22object_type%22%3A%22service_categories%22%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22host_severities%22%2C%22object_type%22%3A%22host_severities%22%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22host_severity_levels%22%2C%22object_type%22%3A%22host_severity_levels%22%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22service_severities%22%2C%22object_type%22%3A%22service_severities%22%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22service_severity_levels%22%2C%22object_type%22%3A%22service_severity_levels%22%2C%22type%22%3A%22multi_select%22%2C%22value%22%3A%5B%5D%7D%2C%7B%22name%22%3A%22search%22%2C%22object_type%22%3Anull%2C%22type%22%3A%22text%22%2C%22value%22%3A%22T-Host%22%7D%2C%7B%22name%22%3A%22sort%22%2C%22object_type%22%3Anull%2C%22type%22%3A%22array%22%2C%22value%22%3A%5B%22status_severity_code%22%2C%22desc%22%5D%7D%5D%7D Thanks,Best Regards,Vincent.