implement custom fields for node monitor view

Former-commit-id: d9dd515a726d1fa7cc5855b016270b9ef083cb6f
This commit is contained in:
alejandro-campos 2019-01-18 11:13:29 +01:00
parent 45becfe9ad
commit 2155420d71
3 changed files with 757 additions and 423 deletions

View File

@ -0,0 +1,240 @@
<?php
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2011 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; 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.
global $config;
check_login ();
if (! check_acl ($config['id_user'], 0, 'AR')
&& ! check_acl ($config['id_user'], 0, 'AW') &&
! check_acl ($config['id_user'], 0, 'AM')) {
db_pandora_audit('ACL Violation',
'Trying to access Agent Management');
require ('general/noaccess.php');
return;
}
$update = get_parameter('upd_button', '');
$default = (int) get_parameter('default', 0);
if ($default != 0) {
$fields_selected = explode (',', $config['status_monitor_fields']);
}
else if ($update != '') {
$fields_selected = (array)get_parameter('fields_selected');
if ($fields_selected[0] == '') {
$fields_selected = explode (',', $config['status_monitor_fields']);
}
else {
$status_monitor_fields = implode (',', $fields_selected);
}
$values = array(
'token' => 'status_monitor_fields',
'value' => $status_monitor_fields
);
//update 'status_monitor_fields' in tconfig table to keep the value at update.
$result = db_process_sql_update('tconfig', $values,
array ('token' => 'status_monitor_fields'));
ui_print_result_message ($result, __('Successfully updated'), __('Could not be updated'));
$config['status_monitor_fields'] = $status_monitor_fields;
}
$fields_selected = array();
$status_monitor_fields = '';
$fields_selected = explode (',', $config['status_monitor_fields']);
$result_selected = array();
//show list of fields selected.
if ($fields_selected[0]!='') {
foreach ($fields_selected as $field_selected) {
switch ($field_selected) {
case 'policy':
$result = __('Policy');
break;
case 'agent':
$result = __('Agent');
break;
case 'data_type':
$result = __('Data type');
break;
case 'module_name':
$result = __('Module name');
break;
case 'server_type':
$result = __('Server type');
break;
case 'interval':
$result = __('Interval');
break;
case 'status':
$result = __('Status');
break;
case 'graph':
$result = __('Graph');
break;
case 'warn':
$result = __('Warn');
break;
case 'data':
$result = __('Data');
break;
case 'timestamp':
$result = __('Timestamp');
break;
case 'to_critical':
$result = __('Went to critical');
break;
}
$result_selected[$field_selected] = $result;
}
}
echo '<h3>'.__('Show monitor detail fields').'</h3>';
$table = new stdClass();
$table->width = '100%';
$table->class = 'databox filters';
$table->size = array();
//~ $table->size[0] = '20%';
$table->size[1] = '10px';
//~ $table->size[2] = '20%';
$table->style[0] = 'text-align:center;';
$table->style[2] = 'text-align:center;';
$table->data = array();
$fields_available = array();
$fields_available['policy'] = __('Policy');
$fields_available['agent'] = __('Agent');
$fields_available['data_type'] = __('Data type');
$fields_available['module_name'] = __('Module name');
$fields_available['server_type'] = __('Server type');
$fields_available['interval'] = __('Interval');
$fields_available['status'] = __('Status');
$fields_available['graph'] = __('Graph');
$fields_available['warn'] = __('Warn');
$fields_available['data'] = __('Data');
$fields_available['timestamp'] = __('Timestamp');
$fields_available['to_critical'] = __('Went to critical');
//remove fields already selected
foreach ($fields_available as $key=>$available) {
foreach ($result_selected as $selected) {
if ($selected == $available) {
unset($fields_available[$key]);
}
}
}
$table->data[0][0] = '<b>' . __('Fields available').'</b>';
$table->data[1][0] = html_print_select ($fields_available, 'fields_available[]', true, '', '', 0, true, true, false, '', false, 'width: 300px');
$table->data[1][1] = '<a href="javascript:">' .
html_print_image('images/darrowright.png', true,
array('id' => 'right', 'title' => __('Add fields to select'))) .
'</a>';
$table->data[1][1] .= '<br><br><br><br><a href="javascript:">' .
html_print_image('images/darrowleft.png', true,
array('id' => 'left', 'title' => __('Delete fields to select'))) .
'</a>';
$table->data[0][1] = '';
$table->data[0][2] = '<b>' . __('Fields selected') . '</b>';
$table->data[1][2] = html_print_select($result_selected,
'fields_selected[]', true, '', '', 0, true, true, false, '', false, 'width: 300px');
echo '<form id="custom_status_monitor" method="post" action="index.php?sec=view&sec2=operation/agentes/status_monitor&section=fields&amp;pure='.$config['pure'].'">';
html_print_table($table);
echo '<div class="action-buttons" style="width: '.$table->width.'">';
html_print_submit_button (__('Update'), 'upd_button', false, 'class="sub upd"');
echo '</form>';
echo '</div>';
?>
<script type="text/javascript">
/* <![CDATA[ */
$(document).ready (function () {
$("#right").click (function () {
jQuery.each($("select[name='fields_available[]'] option:selected"), function (key, value) {
field_name = $(value).html();
if (field_name != <?php echo "'".__('None')."'"; ?>) {
id_field = $(value).attr('value');
$("select[name='fields_selected[]']").append($("<option></option>").html(field_name).attr("value", id_field));
$("#fields_available").find("option[value='" + id_field + "']").remove();
$("#fields_selected").find("option[value='0']").remove();
}
});
});
$("#left").click (function () {
var current_fields_size = ($('#fields_selected option').length);
var selected_fields = [];
var selected_fields_total = '';
jQuery.each($("select[name='fields_selected[]'] option:selected"), function (key, value) {
field_name = $(value).html();
selected_fields.push(field_name);
selected_fields_total = selected_fields.length;
});
if(selected_fields_total === current_fields_size){
display_confirm_dialog(
"<?php echo '<span style=text-transform:none;font-size:9.5pt;>'.__('There must be at least one custom field. Timestamp will be set by default').'</span>'; ?>",
"<?php echo __('Confirm'); ?>",
"<?php echo __('Cancel'); ?>",
function () {
move_left();
$("#fields_available").find("option[value='timestamp']").remove();
$("select[name='fields_selected[]']").append($("<option></option>").val('timestamp').html('<i>' + 'Timestamp' + '</i>'));
}
);
}
else{
move_left();
}
});
$("#submit-upd_button").click(function () {
$("#fields_selected").find("option[value='0']").remove();
$('#fields_selected option').map(function() {
$(this).prop('selected', true);
});
});
});
function move_left(){
jQuery.each($("select[name='fields_selected[]'] option:selected"), function (key, value) {
field_name = $(value).html();
if (field_name != <?php echo "'".__('None')."'"; ?>) {
id_field = $(value).attr('value');
$("select[name='fields_available[]']").append($("<option></option>").val(id_field).html('<i>' + field_name + '</i>'));
$("#fields_selected").find("option[value='" + id_field + "']").remove();
$("#fields_available").find("option[value='0']").remove();
}
});
}
</script>

View File

@ -36,9 +36,38 @@ enterprise_include_once ('include/functions_metaconsole.php');
$isFunctionPolicies = enterprise_include_once ('include/functions_policies.php');
if (! defined ('METACONSOLE')) {
//Header
ui_print_page_header (__('Monitor detail'),
'images/brick.png', false);
$section = (string) get_parameter ("section", "view");
$buttons['fields'] = array('active' => false,
'text' => '<a href="index.php?sec=view&sec2=operation/agentes/status_monitor&amp;section=fields">' .
html_print_image("images/custom_columns.png", true, array("title" => __('Custom fields'))) . '</a>',
'operation' => true);
$buttons['view'] = array('active' => false,
'text' => '<a href="index.php?sec=view&sec2=operation/agentes/status_monitor">' .
html_print_image("images/list.png", true, array("title" => __('View'))) . '</a>',
'operation' => true);
switch ($section) {
case 'fields':
$buttons['fields']['active'] = true;
$subpage = ' - ' . __('Custom fields');
break;
default:
$buttons['view']['active'] = true;
break;
}
ui_print_page_header (__("Monitor detail") . $subpage, "", false, "", true, $buttons);
if ($section == 'fields') {
require_once($config["homedir"] . '/godmode/agentes/status_monitor_custom_fields.php');
exit();
}
}
else {
@ -882,60 +911,90 @@ if (!empty($result)) {
$table->size = array ();
$table->align = array ();
$show_fields = explode (',', $config['status_monitor_fields']);
if (in_array('policy', $show_fields)) {
if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK)
$table->head[0] = '<span title=\'' . __('Policy') . '\'>' . __('P.') . '</span>';
}
if (in_array('agent', $show_fields) || is_metaconsole()) {
$table->head[1] = __('Agent');
$table->head[1] .=' <a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;refr=' . $refr . '&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=agent_alias&amp;sort=up">' . html_print_image('images/sort_up.png', true, array('style' => $selectAgentNameUp, 'alt' => 'up')) . '</a>' .
'<a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;refr=' . $refr . '&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=agent_alias&amp;sort=down">' . html_print_image('images/sort_down.png', true, array('style' => $selectAgentNameDown, 'alt' => 'down')) . '</a>';
}
if (in_array('data_type', $show_fields) || is_metaconsole()) {
$table->head[2] = __('Data Type');
$table->head[2] .= ' <a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=type&amp;sort=up">' . html_print_image('images/sort_up.png', true, array('style' => $selectTypeUp, 'alt' => 'up')) . '</a>' .
'<a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=type&amp;sort=down">' . html_print_image('images/sort_down.png', true, array('style' => $selectTypeDown, 'alt' => 'down')) . '</a>';
$table->align[2] = 'left';
}
if (in_array('module_name', $show_fields) || is_metaconsole()) {
$table->head[3] = __('Module name');
$table->head[3] .= ' <a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=module_name&amp;sort=up">' . html_print_image('images/sort_up.png', true, array('style' => $selectModuleNameUp, 'alt' => 'up')) . '</a>' .
'<a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=module_name&amp;sort=down">' . html_print_image('images/sort_down.png', true, array('style' => $selectModuleNameDown, 'alt' => 'down')) . '</a>';
}
if (in_array('server_type', $show_fields) || is_metaconsole()) {
$table->head[4] = __('Server type');
$table->head[4] .= ' <a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=moduletype&amp;sort=up">' . html_print_image('images/sort_up.png', true, array('style' => $selectModuleNameUp, 'alt' => 'up')) . '</a>' .
'<a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=moduletype&amp;sort=down">' . html_print_image('images/sort_down.png', true, array('style' => $selectModuleNameDown, 'alt' => 'down')) . '</a>';
}
if (in_array('interval', $show_fields) || is_metaconsole()) {
$table->head[5] = __('Interval');
$table->head[5] .= ' <a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=interval&amp;sort=up">' . html_print_image('images/sort_up.png', true, array('style' => $selectIntervalUp, 'alt' => 'up')) . '</a>' .
'<a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=interval&amp;sort=down">' . html_print_image('images/sort_down.png', true, array('style' => $selectIntervalDown, 'alt' => 'down')) . '</a>';
$table->align[5] = 'left';
}
if (in_array('status', $show_fields) || is_metaconsole()) {
$table->head[6] = __('Status');
$table->head[6] .= ' <a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=status&amp;sort=up">' . html_print_image('images/sort_up.png', true, array('style' => $selectStatusUp, 'alt' => 'up')) . '</a>' .
'<a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=status&amp;sort=down">' . html_print_image('images/sort_down.png', true, array('style' => $selectStatusDown, 'alt' => 'down')) . '</a>';
$table->align[6] = 'left';
}
if (in_array('graph', $show_fields) || is_metaconsole()) {
$table->head[7] = __('Graph');
$table->align[7] = 'left';
}
if (in_array('warn', $show_fields) || is_metaconsole()) {
$table->head[8] = __('Warn');
$table->align[8] = 'left';
}
if (in_array('data', $show_fields) || is_metaconsole()) {
$table->head[9] = __('Data');
$table->align[9] = 'left';
if ( is_metaconsole() ) {
$table->head[9] .= ' <a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=data&amp;sort=up">' . html_print_image('images/sort_up.png', true, array('style' => $selectStatusUp, 'alt' => 'up')) . '</a>' .
'<a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=data&amp;sort=down">' . html_print_image('images/sort_down.png', true, array('style' => $selectStatusDown, 'alt' => 'down')) . '</a>';
}
}
if (in_array('timestamp', $show_fields) || is_metaconsole()) {
$table->head[10] = __('Timestamp');
$table->head[10] .= ' <a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=timestamp&amp;sort=up">' . html_print_image('images/sort_up.png', true, array('style' => $selectTimestampUp, 'alt' => 'up')) . '</a>' .
'<a href="index.php?sec=view&amp;sec2=operation/agentes/status_monitor&amp;datatype='.$datatype . '&amp;moduletype='.$moduletype . '&amp;refr=' . $refr . '&amp;modulegroup='.$modulegroup . '&amp;offset=' . $offset . '&amp;ag_group=' . $ag_group . '&amp;ag_freestring=' . $ag_freestring . '&amp;ag_modulename=' . $ag_modulename . '&amp;status=' . $status . $ag_custom_fields_params . '&amp;sort_field=timestamp&amp;sort=down">' . html_print_image('images/sort_down.png', true, array('style' => $selectTimestampDown, 'alt' => 'down')) . '</a>';
$table->align[10] = 'left';
}
if (in_array('to_critical', $show_fields)) {
$table->head[11] = __('Went to critical');
}
$id_type_web_content_string = db_get_value('id_tipo', 'ttipo_modulo',
'nombre', 'web_content_string');
foreach ($result as $row) {
//Avoid unset, null and false value
if (empty($row['server_name']))
$row['server_name'] = "";
@ -957,6 +1016,8 @@ if (!empty($result)) {
}
$data = array ();
if (in_array('policy', $show_fields) || is_metaconsole()) {
if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK) {
if(is_metaconsole()){
$node = metaconsole_get_connection_by_id($row['server_id']);
@ -1016,7 +1077,9 @@ if (!empty($result)) {
metaconsole_restore_db();
}
}
}
if (in_array('agent', $show_fields) || is_metaconsole()) {
$agent_alias = !empty($row['agent_alias']) ? $row['agent_alias'] : $row['agent_name'];
// TODO: Calculate hash access before to use it more simply like other sections. I.E. Events view
@ -1044,8 +1107,9 @@ if (!empty($result)) {
$data[1] .= ui_print_truncate_text($agent_alias, 'agent_medium', false, true, false, '[&hellip;]', 'font-size:7.5pt;');
$data[1] .= '</a></strong>';
}
}
if (in_array('data_type', $show_fields) || is_metaconsole()) {
$data[2] = html_print_image('images/' . modules_show_icon_type ($row['module_type']), true);
$agent_groups = is_metaconsole()
? $row['groups_in_server']
@ -1083,7 +1147,9 @@ if (!empty($result)) {
'</a>';
}
}
}
if (in_array('module_name', $show_fields) || is_metaconsole()) {
$data[3] = ui_print_truncate_text($row['module_name'], 'agent_small', false, true, true);
if ($row['extended_info'] != '') {
$data[3] .= ui_print_help_tip ($row['extended_info'], true, '/images/default_list.png');
@ -1094,13 +1160,20 @@ if (!empty($result)) {
'title' => $row['tags'],
'style' => 'width: 20px; margin-left: 3px;'));
}
}
if (in_array('server_type', $show_fields) || is_metaconsole())
$data[4] = servers_show_type ($row['id_modulo']);
if (in_array('interval', $show_fields) || is_metaconsole()) {
$data[5] = ($row['module_interval'] == 0) ?
human_time_description_raw($row['agent_interval'])
:
human_time_description_raw($row['module_interval']);
}
if (in_array('status', $show_fields) || is_metaconsole()) {
if ($row['utimestamp'] == 0 && (($row['module_type'] < 21 ||
$row['module_type'] > 23) && $row['module_type'] != 100)) {
$data[6] = ui_print_status_image(STATUS_MODULE_NO_DATA,
@ -1178,7 +1251,9 @@ if (!empty($result)) {
break;
}
}
}
if (in_array('graph', $show_fields) || is_metaconsole()) {
$data[7] = "";
$acl_graphs = false;
@ -1233,6 +1308,9 @@ if (!empty($result)) {
$row['module_name'] .
'</span>';
}
}
if (in_array('warn', $show_fields) || is_metaconsole()) {
$data[8] = ui_print_module_warn_value($row['max_warning'],
$row['min_warning'], $row['str_warning'], $row['max_critical'],
@ -1376,9 +1454,12 @@ if (!empty($result)) {
}
}
}
}
if (in_array('data', $show_fields) || is_metaconsole())
$data[9] = $salida;
if (in_array('timestamp', $show_fields) || is_metaconsole()) {
if ($row['module_interval'] > 0)
$interval = $row['module_interval'];
else
@ -1391,6 +1472,18 @@ if (!empty($result)) {
$option = array ('style' => 'font-size:7pt;');
}
$data[10] = ui_print_timestamp ($row['utimestamp'], true, $option);
}
if (in_array('to_critical', $show_fields)) {
if ($row['estado'] == 1) {
$to_critical_timestamp = db_get_sql ('SELECT utimestamp FROM tevento WHERE id_agentmodule=' . $row['id_agente_modulo'] . ' AND event_type LIKE "going_up_critical" ORDER BY utimestamp DESC');
$data[11] = ui_print_timestamp ($to_critical_timestamp, true, $option);
} else {
$data[11] = '-';
}
}
array_push ($table->data, $data);
}

View File

@ -85,6 +85,7 @@ INSERT INTO `tconfig` (`token`, `value`) VALUES
('netflow_nfdump', '/usr/bin/nfdump'),
('netflow_max_resolution', '50'),
('event_fields', 'evento,id_agente,estado,timestamp'),
('status_monitor_fields', 'policy,agent,data_type,module_name,server_type,interval,status,graph,warn,data,timestamp'),
('list_ACL_IPs_for_API', '127.0.0.1'),
('enable_pass_policy', 0),
('pass_size', 4),