pandorafms/pandora_console/godmode/db/db_main.php

211 lines
5.7 KiB
PHP
Raw Normal View History

<?php
// Pandora FMS - http://pandorafms.com
// ==================================================
2020-11-27 13:52:35 +01:00
// Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list
// 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 for version 2.
// 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.
// Load global vars
global $config;
check_login();
if (! check_acl($config['id_user'], 0, 'DM')) {
db_pandora_audit(
2022-01-20 10:55:23 +01:00
AUDIT_LOG_ACL_VIOLATION,
'Trying to access Database Management'
);
include 'general/noaccess.php';
return;
}
// Get some general DB stats (not very heavy)
// NOTE: this is not realtime monitoring stats, are more focused on DB sanity
$stat_access = db_get_sql('SELECT COUNT(*) FROM tagent_access WHERE id_agent != 0');
$stat_data = db_get_sql('SELECT COUNT(*) FROM tagente_datos WHERE id_agente_modulo != 0');
$stat_data_log4x = db_get_sql('SELECT COUNT(*) FROM tagente_datos_log4x WHERE id_agente_modulo != 0');
$stat_data_string = db_get_sql('SELECT COUNT(*) FROM tagente_datos_string WHERE id_agente_modulo != 0');
$stat_modules = db_get_sql('SELECT COUNT(*) FROM tagente_estado WHERE id_agente_modulo != 0');
$stat_event = db_get_sql(' SELECT COUNT(*) FROM tevento');
$stat_agente = db_get_sql(' SELECT COUNT(*) FROM tagente');
switch ($config['dbtype']) {
case 'mysql':
$stat_uknown = db_get_sql('SELECT COUNT(*) FROM tagente WHERE ultimo_contacto < NOW() - (intervalo * 2)');
break;
case 'postgresql':
$stat_uknown = db_get_sql(
"SELECT COUNT(*)
2011-03-08 Miguel de Dios <miguel.dedios@artica.es> * include/functions_html.php, include/functions_messages.php, include/functions_exportserver.php, include/functions_reporting.php, include/functions_gis.php, include/functions_networkmap.php, include/functions_servers.php, include/functions_api.php, include/fgraph.php, include/functions_agents.php, include/functions_db.php, include/functions_alerts.php, extensions/module_groups.php, operation/incidents/incident.php, operation/incidents/incident_detail.php, operation/search_modules.php, operation/agentes/status_monitor.php, operation/agentes/export_csv.php, operation/agentes/estado_ultimopaquete.php, operation/agentes/alerts_status.php, operation/agentes/estado_agente.php, operation/agentes/sla_view.php, operation/agentes/ver_agente.php, operation/servers/view_server_detail.php, operation/menu.php, operation/search_graphs.php, operation/snmpconsole/snmp_view.php, operation/gis_maps/ajax.php, operation/events/events_rss.php, operation/events/events_list.php, operation/search_alerts.php, operation/search_reports.php, operation/reporting/reporting_xml.php, operation/reporting/graph_viewer.php, operation/search_maps.php, operation/search_users.php, mobile/operation/agents/view_agents.php, mobile/operation/events/events.php, godmode/groups/modu_group_list.php, godmode/groups/configure_group.php, godmode/groups/group_list.php, godmode/db/db_main.php, godmode/db/db_purge.php, godmode/agentes/module_manager_editor_prediction.php, godmode/agentes/modificar_agente.php, godmode/agentes/module_manager_editor.php, godmode/agentes/planned_downtime.php, godmode/servers/manage_recontask_form.php, godmode/alerts/alert_list.list.php, godmode/users/configure_user.php, godmode/massive/massive_edit_modules.php, godmode/modules/manage_network_templates_form.php, godmode/modules/manage_network_components_form_wmi.php, godmode/reporting/visual_console_builder.php, godmode/reporting/reporting_builder.item_editor.php: changed or added in some cases the SQL queries for to be PostgreSQL standard, and cleaned source style. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4074 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-03-09 15:26:36 +01:00
FROM tagente
WHERE ceil(date_part('epoch', ultimo_contacto)) < ceil(date_part('epoch', NOW())) - (intervalo * 2)"
);
break;
case 'oracle':
$stat_uknown = db_get_sql(
'SELECT COUNT(*)
2011-04-11 Juan Manuel Ramon <juanmanuel.ramon@artica.es> * include/functions_events.php include/functions_messages.php include/db/oracle.php include/functions_modules.php include/functions_reporting.php include/functions_groups.php include/functions_gis.php include/auth/mysql.php include/functions_networkmap.php include/functions_servers.php include/functions_network_components.php include/ajax/reporting.ajax.php include/ajax/agent.php include/functions_config.php include/functions_api.php include/help/en/help_timesource.php include/help/es/help_timesource.php include/help/ja/help_timesource.php include/fgraph.php include/functions.php include/functions_agents.php include/functions_db.php include/functions_fsgraph.php include/functions_alerts.php include/functions_reports.php pandoradb.oracle.sql install.php extensions/system_info.php extensions/update_manager.php extensions/dbmanager.php extensions/users_connected.php extensions/module_groups.php extensions/update_manager/sql/update_manager.oracle.sql extensions/update_manager/load_updatemanager.php extensions/update_manager/lib/libupdate_manager_client.php extensions/update_manager/lib/libupdate_manager.php extensions/update_manager/lib/libupdate_manager_components.php extensions/update_manager/lib/libupdate_manager_updates.php operation/search_modules.php operation/agentes/status_monitor.php operation/agentes/alerts_status.php operation/agentes/datos_agente.php operation/agentes/estado_ultimopaquete.php operation/agentes/exportdata.php operation/agentes/gis_view.php operation/agentes/estado_monitores.php operation/agentes/ver_agente.php operation/snmpconsole/snmp_view.php operation/users/user_edit.php operation/gis_maps/render_view.php operation/gis_maps/ajax.php operation/events/events_rss.php operation/events/events_list.php operation/events/events_marquee.php operation/search_alerts.php operation/reporting/reporting_xml.php operation/reporting/reporting_viewer.php pandoradb.data.oracle.sql extras/pandora_diag.php mobile/operation/agents/monitor_status.php mobile/operation/agents/view_agents.php mobile/operation/events/events.php general/logon_ok.php godmode/groups/group_list.php godmode/admin_access_logs.php godmode/db/db_main.php godmode/agentes/agent_template.php godmode/agentes/module_manager.php godmode/agentes/modificar_agente.php godmode/agentes/configurar_agente.php godmode/agentes/module_manager_editor.php godmode/agentes/planned_downtime.php godmode/alerts/alert_list.list.php godmode/alerts/alert_compounds.php godmode/alerts/alert_list.php godmode/setup/setup.php godmode/modules/manage_network_templates.php godmode/modules/manage_network_templates_form.php godmode/reporting/reporting_builder.list_items.php godmode/reporting/reporting_builder.preview.php godmode/reporting/reporting_builder.php godmode/reporting/reporting_builder.item_editor.php: Support for Oracle DBMS over Console code. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4187 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-04-11 19:05:20 +02:00
FROM tagente
WHERE CAST(ultimo_contacto AS DATE) < SYSDATE - (intervalo * 2)'
);
break;
2011-04-11 Juan Manuel Ramon <juanmanuel.ramon@artica.es> * include/functions_events.php include/functions_messages.php include/db/oracle.php include/functions_modules.php include/functions_reporting.php include/functions_groups.php include/functions_gis.php include/auth/mysql.php include/functions_networkmap.php include/functions_servers.php include/functions_network_components.php include/ajax/reporting.ajax.php include/ajax/agent.php include/functions_config.php include/functions_api.php include/help/en/help_timesource.php include/help/es/help_timesource.php include/help/ja/help_timesource.php include/fgraph.php include/functions.php include/functions_agents.php include/functions_db.php include/functions_fsgraph.php include/functions_alerts.php include/functions_reports.php pandoradb.oracle.sql install.php extensions/system_info.php extensions/update_manager.php extensions/dbmanager.php extensions/users_connected.php extensions/module_groups.php extensions/update_manager/sql/update_manager.oracle.sql extensions/update_manager/load_updatemanager.php extensions/update_manager/lib/libupdate_manager_client.php extensions/update_manager/lib/libupdate_manager.php extensions/update_manager/lib/libupdate_manager_components.php extensions/update_manager/lib/libupdate_manager_updates.php operation/search_modules.php operation/agentes/status_monitor.php operation/agentes/alerts_status.php operation/agentes/datos_agente.php operation/agentes/estado_ultimopaquete.php operation/agentes/exportdata.php operation/agentes/gis_view.php operation/agentes/estado_monitores.php operation/agentes/ver_agente.php operation/snmpconsole/snmp_view.php operation/users/user_edit.php operation/gis_maps/render_view.php operation/gis_maps/ajax.php operation/events/events_rss.php operation/events/events_list.php operation/events/events_marquee.php operation/search_alerts.php operation/reporting/reporting_xml.php operation/reporting/reporting_viewer.php pandoradb.data.oracle.sql extras/pandora_diag.php mobile/operation/agents/monitor_status.php mobile/operation/agents/view_agents.php mobile/operation/events/events.php general/logon_ok.php godmode/groups/group_list.php godmode/admin_access_logs.php godmode/db/db_main.php godmode/agentes/agent_template.php godmode/agentes/module_manager.php godmode/agentes/modificar_agente.php godmode/agentes/configurar_agente.php godmode/agentes/module_manager_editor.php godmode/agentes/planned_downtime.php godmode/alerts/alert_list.list.php godmode/alerts/alert_compounds.php godmode/alerts/alert_list.php godmode/setup/setup.php godmode/modules/manage_network_templates.php godmode/modules/manage_network_templates_form.php godmode/reporting/reporting_builder.list_items.php godmode/reporting/reporting_builder.preview.php godmode/reporting/reporting_builder.php godmode/reporting/reporting_builder.item_editor.php: Support for Oracle DBMS over Console code. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4187 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-04-11 19:05:20 +02:00
}
switch ($config['dbtype']) {
case 'mysql':
case 'postgresql':
$stat_noninit = db_get_sql('SELECT COUNT(*) FROM tagente_estado WHERE utimestamp = 0;');
break;
case 'oracle':
$stat_noninit = db_get_sql('SELECT COUNT(*) FROM tagente_estado WHERE utimestamp = 0');
break;
2011-03-08 Miguel de Dios <miguel.dedios@artica.es> * include/functions_html.php, include/functions_messages.php, include/functions_exportserver.php, include/functions_reporting.php, include/functions_gis.php, include/functions_networkmap.php, include/functions_servers.php, include/functions_api.php, include/fgraph.php, include/functions_agents.php, include/functions_db.php, include/functions_alerts.php, extensions/module_groups.php, operation/incidents/incident.php, operation/incidents/incident_detail.php, operation/search_modules.php, operation/agentes/status_monitor.php, operation/agentes/export_csv.php, operation/agentes/estado_ultimopaquete.php, operation/agentes/alerts_status.php, operation/agentes/estado_agente.php, operation/agentes/sla_view.php, operation/agentes/ver_agente.php, operation/servers/view_server_detail.php, operation/menu.php, operation/search_graphs.php, operation/snmpconsole/snmp_view.php, operation/gis_maps/ajax.php, operation/events/events_rss.php, operation/events/events_list.php, operation/search_alerts.php, operation/search_reports.php, operation/reporting/reporting_xml.php, operation/reporting/graph_viewer.php, operation/search_maps.php, operation/search_users.php, mobile/operation/agents/view_agents.php, mobile/operation/events/events.php, godmode/groups/modu_group_list.php, godmode/groups/configure_group.php, godmode/groups/group_list.php, godmode/db/db_main.php, godmode/db/db_purge.php, godmode/agentes/module_manager_editor_prediction.php, godmode/agentes/modificar_agente.php, godmode/agentes/module_manager_editor.php, godmode/agentes/planned_downtime.php, godmode/servers/manage_recontask_form.php, godmode/alerts/alert_list.list.php, godmode/users/configure_user.php, godmode/massive/massive_edit_modules.php, godmode/modules/manage_network_templates_form.php, godmode/modules/manage_network_components_form_wmi.php, godmode/reporting/visual_console_builder.php, godmode/reporting/reporting_builder.item_editor.php: changed or added in some cases the SQL queries for to be PostgreSQL standard, and cleaned source style. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4074 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-03-09 15:26:36 +01:00
}
// Todo: Recalculate this data dinamically using the capacity and total agents
$max_access = 1000000;
$max_data = 12000000;
ui_print_page_header(__('Current database maintenance setup'), 'images/gm_db.png', false, '', true);
2011-06-28 Juan Manuel Ramon <juanmanuel.ramon@artica.es> * extensions/module_groups/brick.png images/skin/skin_default/images/agents_group.png images/skin/skin_default/images/note.png images/skin/skin_default/images/os_icons/android_small.png: Added new icons. * include/styles/pandora.css include/functions_ui.php extensions/insert_data.php extensions/system_info.php extensions/pandora_logs.php extensions/agents_modules.php extensions/resource_registration.php extensions/resource_exportation.php extensions/module_groups.php extensions/update_manager/main.php extensions/plugin_registration.php operation/extensions.php operation/visual_console/render_view.php operation/visual_console/index.php operation/agentes/status_monitor.php operation/agentes/alerts_status.php operation/agentes/estado_ultimopaquete.php operation/agentes/custom_fields.php operation/agentes/estado_generalagente.php operation/agentes/estado_agente.php operation/agentes/status_events.php operation/agentes/sla_view.php operation/agentes/exportdata.php operation/agentes/estado_monitores.php operation/agentes/ver_agente.php operation/agentes/group_view.php operation/agentes/networkmap.php operation/users/user_edit.php operation/gis_maps/index.php operation/events/events_list.php operation/messages/message.php operation/reporting/custom_reporting.php images/skin/skin_default/include/styles/pandora.css extras/pandora_diag.php general/logon_ok.php godmode/groups/modu_group_list.php godmode/groups/configure_group.php godmode/groups/configure_modu_group.php godmode/groups/group_list.php godmode/admin_access_logs.php godmode/extensions.php godmode/db/db_main.php godmode/db/db_audit.php godmode/db/db_sanity.php godmode/db/db_refine.php godmode/db/db_info.php godmode/db/db_event.php godmode/db/db_purge.php godmode/agentes/agent_template.php godmode/agentes/module_manager_editor_common.php godmode/agentes/fields_manager.php godmode/agentes/agent_conf_gis.php godmode/agentes/module_manager.php godmode/agentes/modificar_agente.php godmode/agentes/configurar_agente.php godmode/agentes/configure_field.php godmode/agentes/planned_downtime.php godmode/agentes/manage_config_remote.php godmode/agentes/agent_manager.php godmode/servers/recon_script.php godmode/servers/plugin.php godmode/servers/modificar_server.php godmode/servers/manage_recontask_form.php godmode/alerts/alert_list.list.php godmode/alerts/configure_alert_compound.php godmode/alerts/alert_compounds.php godmode/alerts/configure_alert_template.php godmode/alerts/alert_templates.php godmode/alerts/configure_alert_action.php godmode/alerts/configure_alert_command.php godmode/alerts/alert_actions.php godmode/alerts/alert_list.builder.php godmode/alerts/alert_commands.php godmode/snmpconsole/snmp_alert.php godmode/snmpconsole/snmp_filters.php godmode/setup/os.list.php godmode/setup/news.php godmode/setup/links.php godmode/setup/setup.php godmode/setup/performance.php godmode/setup/setup_auth.php godmode/setup/gis.php godmode/setup/os.builder.php godmode/setup/setup_visuals.php godmode/users/user_list.php godmode/users/configure_user.php godmode/gis_maps/configure_gis_map.php godmode/gis_maps/index.php godmode/massive/massive_add_alerts.php godmode/massive/massive_copy_modules.php godmode/massive/massive_delete_agents.php godmode/massive/massive_enable_disable_alerts.php godmode/massive/massive_delete_profiles.php godmode/massive/massive_edit_agents.php godmode/massive/massive_delete_action_alerts.php godmode/massive/massive_delete_modules.php godmode/massive/massive_add_profiles.php godmode/massive/massive_delete_alerts.php godmode/massive/massive_edit_modules.php godmode/massive/massive_standby_alerts.php godmode/massive/massive_add_action_alerts.php godmode/modules/manage_nc_groups_form.php godmode/modules/manage_network_templates.php godmode/modules/module_list.php godmode/modules/manage_network_components_form_common.php godmode/modules/manage_network_components_form_network.php godmode/modules/manage_network_templates_form.php godmode/modules/manage_network_components_form_wmi.php godmode/modules/manage_network_components.php godmode/modules/manage_nc_groups.php godmode/reporting/visual_console_builder.wizard.php godmode/reporting/graph_builder.main.php godmode/reporting/reporting_builder.list_items.php godmode/reporting/reporting_builder.main.php godmode/reporting/visual_console_builder.data.php godmode/reporting/graph_builder.graph_editor.php godmode/reporting/reporting_builder.php godmode/reporting/reporting_builder.item_editor.php godmode/reporting/map_builder.php godmode/reporting/graphs.php godmode/tag/tag.php godmode/tag/edit_tag.php: Css style improvements. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4494 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2011-06-28 15:31:52 +02:00
echo '<table class=databox width="98%" cellspacing="4" cellpadding="4" border="0">';
// Current setup
echo '<tr><th colspan=2><i>';
echo __('Database setup');
echo '</i></td></tr>';
echo '<tr class="rowOdd"><td>';
echo __('Max. time before compact data');
echo '<td><b>';
echo $config['days_compact'].' '.__('days');
echo '</b></td></tr>';
echo '<tr class="rowPair"><td>';
echo __('Max. time before purge');
echo '<td><b>';
echo $config['days_purge'].' '.__('days');
echo '</b></td></tr>';
// DB size stats
echo '<tr><th colspan=2><i>';
echo __('Database size stats');
echo '</i></td></tr>';
echo '<tr class="rowPair"><td>';
echo __('Total agents');
echo '<td><b>';
echo $stat_agente;
echo '</b></td></tr>';
echo '<tr class="rowOdd"><td>';
echo __('Total events');
echo '<td><b>';
echo $stat_event;
echo '</b></td></tr>';
echo '<tr class="rowPair"><td>';
echo __('Total data items (tagente_datos)');
echo '<td><b>';
if ($stat_data > $max_data) {
echo "<font color='#ff0000'>$stat_data</font>";
} else {
echo $stat_data;
}
echo '</b></td></tr>';
echo '<tr class="rowPair"><td>';
echo __('Total log4x items (tagente_datos_log4x)');
echo '<td><b>';
if ($stat_data_log4x > $max_data) {
echo "<font color='#ff0000'>$stat_data_log4x</font>";
} else {
echo $stat_data_log4x;
}
echo '</b></td></tr>';
echo '<tr class="rowOdd"><td>';
echo __('Total data string items (tagente_datos_string)');
echo '<td><b>';
echo $stat_data_string;
echo '</b></td></tr>';
echo '<tr class="rowPair"><td>';
echo __('Total modules configured');
echo '<td><b>';
echo $stat_modules;
echo '</b></td></tr>';
echo '<tr class="rowOdd"><td>';
echo __('Total agent access records');
echo '<td><b>';
if ($stat_access > $max_access) {
echo "<font color='#ff0000'>$stat_access</font>";
} else {
echo $stat_access;
}
echo '</b></td></tr>';
// Sanity
echo '<tr><th colspan=2><i>';
echo __('Database sanity');
echo '</i></td></tr>';
echo '<tr class="rowPair"><td>';
echo __('Total uknown agents');
echo '<td><b>';
echo $stat_uknown;
echo '</b></td></tr>';
echo '<tr class="rowOdd"><td>';
echo __('Total non-init modules');
echo '<td><b>';
echo $stat_noninit;
echo '</b></td></tr>';
echo '<tr class="rowPair"><td>';
echo __('Last time on DB maintance');
echo '<td>';
if (!isset($config['db_maintance'])) {
echo '<b><font size=12px>'.__('Never').'</font></b>';
} else {
$seconds = (time() - $config['db_maintance']);
if ($seconds > 90000) {
// (1,1 days)
echo "<b><font color='#ff0000' size=12px>";
} else {
echo '<font><b>';
}
echo human_time_description_raw($seconds);
echo ' *';
}
echo '</td></tr>';
echo '<tr><td colspan=2>';
echo '<div align="justify"><br><hr width=100%>';
2018-05-22 19:22:37 +02:00
echo '(*) '.__("Please make sure your %s Server settings are correct and that the database maintenance daemon is running. It's very important to keep your database up to date in order to get the best performance and results from %s.", get_product_name(), get_product_name());
echo '</div>';
echo '</td></tr></table>';