$filter] + $other_filter)
);
if ($modules === false) {
$modules = [];
}
$modules = array_unique($modules);
$modules = io_safe_output($modules);
echo json_encode($modules);
return;
}
if ($get_module_detail) {
// This script is included manually to be included after jquery and avoid error
ui_include_time_picker();
ui_require_jquery_file('ui.datepicker-'.get_user_language(), 'include/javascript/i18n/');
$module_id = (int) get_parameter('id_module');
$period = get_parameter('period', SECONDS_1DAY);
if ($period === 'undefined') {
$period = SECONDS_1DAY;
} else {
$period = (int) $period;
}
$group = agents_get_agentmodule_group($module_id);
$agentId = (int) get_parameter('id_agent');
$server_name = (string) get_parameter('server_name');
if (is_metaconsole()) {
$server = metaconsole_get_connection($server_name);
if (metaconsole_connect($server) != NOERR) {
return;
}
$conexion = false;
} else {
$conexion = false;
}
$freesearch = (string) get_parameter('freesearch', '');
$free_checkbox = (bool) get_parameter('free_checkbox', false);
$selection_mode = get_parameter('selection_mode', 'fromnow');
$utimestamp = get_system_time();
$date_from = (string) get_parameter('date_from', date(DATE_FORMAT, ($utimestamp - SECONDS_1DAY)));
$time_from = (string) get_parameter('time_from', date(TIME_FORMAT, ($utimestamp - SECONDS_1DAY)));
$date_to = (string) get_parameter('date_to', date(DATE_FORMAT, $utimestamp));
$time_to = (string) get_parameter('time_to', date(TIME_FORMAT, $utimestamp));
$formtable->width = '98%';
$formtable->class = 'databox';
$formtable->data = [];
$formtable->size = [];
$moduletype_name = modules_get_moduletype_name(
modules_get_agentmodule_type($module_id)
);
$periods = [
SECONDS_5MINUTES => __('5 minutes'),
SECONDS_30MINUTES => __('30 minutes'),
SECONDS_1HOUR => __('1 hour'),
SECONDS_6HOURS => __('6 hours'),
SECONDS_12HOURS => __('12 hours'),
SECONDS_1DAY => __('1 day'),
SECONDS_1WEEK => __('1 week'),
SECONDS_15DAYS => __('15 days'),
SECONDS_1MONTH => __('1 month'),
SECONDS_3MONTHS => __('3 months'),
SECONDS_6MONTHS => __('6 months'),
SECONDS_1YEAR => __('1 year'),
SECONDS_2YEARS => __('2 years'),
SECONDS_3YEARS => __('3 years'),
];
$formtable->data[0][0] = html_print_radio_button_extended(
'selection_mode',
'fromnow',
'',
$selection_mode,
false,
'',
'style="margin-right: 15px;"',
true
).__('Choose a time from now');
$formtable->data[0][1] = html_print_select($periods, 'period', $period, '', '', 0, true, false, false);
$formtable->data[0][2] = '';
$formtable->data[0][3] = "".html_print_image('images/refresh.png', true, ['style' => 'vertical-align: middle;', 'border' => '0' ]).'';
$formtable->rowspan[0][3] = 2;
$formtable->cellstyle[0][3] = 'vertical-align: middle;';
$formtable->data[1][0] = html_print_radio_button_extended(
'selection_mode',
'range',
'',
$selection_mode,
false,
'',
'style="margin-right: 15px;"',
true
).__('Specify time range');
$formtable->data[1][1] = __('Timestamp from:');
$formtable->data[1][2] = html_print_input_text(
'date_from',
$date_from,
'',
10,
10,
true
);
$formtable->data[1][2] .= html_print_input_text(
'time_from',
$time_from,
'',
9,
7,
true
);
$formtable->data[1][1] .= '
';
$formtable->data[1][1] .= __('Timestamp to:');
$formtable->data[1][2] .= '
';
$formtable->data[1][2] .= html_print_input_text(
'date_to',
$date_to,
'',
10,
10,
true
);
$formtable->data[1][2] .= html_print_input_text(
'time_to',
$time_to,
'',
9,
7,
true
);
$freesearch_object = '';
if (preg_match('/_string/', $moduletype_name)) {
$formtable->data[2][0] = __('Free search').' ';
$formtable->data[2][1] = html_print_input_text('freesearch', $freesearch, '', 20, null, true);
$formtable->data[2][2] = html_print_checkbox('free_checkbox', 1, $free_checkbox, true);
$formtable->data[2][2] .= ' '.__('Exact phrase');
$freesearch_object = json_encode(
[
'value' => io_safe_output($freesearch),
'exact' => (bool) $free_checkbox,
]
);
}
html_print_table($formtable);
$offset = (int) get_parameter('offset');
$block_size = (int) $config['block_size'];
$columns = [];
$datetime_from = strtotime($date_from.' '.$time_from);
$datetime_to = strtotime($date_to.' '.$time_to);
$columns = [
'Data' => [
'data',
'modules_format_data',
'align' => 'center',
'width' => '230px'
],
];
if ($config['prominent_time'] == 'comparation') {
$columns['Time'] = [
'utimestamp',
'modules_format_time',
'align' => 'center',
'width' => '50px'
];
} else {
$columns['Timestamp'] = [
'utimestamp',
'modules_format_timestamp',
'align' => 'center',
'width' => '50px'
];
}
if ($selection_mode == 'fromnow') {
$date = get_system_time();
$period = $period;
} else {
$period = ($datetime_to - $datetime_from);
$date = ($datetime_from + $period);
}
$count = modules_get_agentmodule_data(
$module_id,
$period,
$date,
true,
$conexion,
'ASC',
$freesearch_object
);
$module_data = modules_get_agentmodule_data(
$module_id,
$period,
$date,
false,
$conexion,
'DESC',
$freesearch_object
);
if (empty($module_data)) {
$result = [];
} else {
// Paginate the result
$result = array_slice($module_data, $offset, $block_size);
}
$table->width = '100%';
$table->class = 'databox data';
$table->data = [];
$index = 0;
foreach ($columns as $col => $attr) {
$table->head[$index] = $col;
if (isset($attr['align'])) {
$table->align[$index] = $attr['align'];
}
if (isset($attr['width'])) {
$table->size[$index] = $attr['width'];
}
$index++;
}
$id_type_web_content_string = db_get_value(
'id_tipo',
'ttipo_modulo',
'nombre',
'web_content_string'
);
$post_process = db_get_value_filter('post_process', 'tagente_modulo', ['id_agente_modulo' => $module_id]);
$unit = db_get_value_filter('unit', 'tagente_modulo', ['id_agente_modulo' => $module_id]);
foreach ($result as $row) {
$data = [];
$is_web_content_string = (bool) db_get_value_filter(
'id_agente_modulo',
'tagente_modulo',
[
'id_agente_modulo' => $row['id_agente_modulo'],
'id_tipo_modulo' => $id_type_web_content_string,
]
);
foreach ($columns as $col => $attr) {
if ($attr[1] != 'modules_format_data') {
$data[] = date('d F Y h:i:s A', $row['utimestamp']);
} else if (is_snapshot_data($row[$attr[0]])) {
if ($config['command_snapshot']) {
$data[] = "";
} else {
$data[] = ''.wordwrap(io_safe_input($row[$attr[0]]), 60, "
\n", true).'';
}
} else if (($config['command_snapshot'] == '0') && (preg_match("/[\n]+/i", $row[$attr[0]]))) {
// Its a single-data, multiline data (data snapshot) ?
// I dont why, but using index (value) method, data is automatically converted to html entities ¿?
$data[] = html_print_result_div($row[$attr[0]]);
} else if ($is_web_content_string) {
// Fixed the goliat sends the strings from web
// without HTML entities
$data[] = io_safe_input($row[$attr[0]]);
} else {
// Fixed the data from Selenium Plugin
if ($row[$attr[0]] != strip_tags($row[$attr[0]])) {
$data[] = html_print_result_div($row[$attr[0]]);
} else if (is_numeric($row[$attr[0]]) && !modules_is_string_type($row['module_type'])) {
switch ($row['module_type']) {
case 15:
$value = db_get_value('snmp_oid', 'tagente_modulo', 'id_agente_modulo', $module_id);
if ($value == '.1.3.6.1.2.1.1.3.0' || $value == '.1.3.6.1.2.1.25.1.1.0') {
if ($post_process > 0) {
$data[] = human_milliseconds_to_string(($row['data'] / $post_process));
} else {
$data[] = human_milliseconds_to_string($row['data']);
}
} else {
$data[] = remove_right_zeros(number_format($row[$attr[0]], $config['graph_precision']));
}
break;
default:
$data_macro = modules_get_unit_macro($row[$attr[0]], $unit);
if ($data_macro) {
$data[] = $data_macro;
} else {
$data[] = remove_right_zeros(number_format($row[$attr[0]], $config['graph_precision']));
}
break;
}
} else {
if ($row[$attr[0]] == '') {
$data[] = 'No data';
} else {
$data_macro = modules_get_unit_macro($row[$attr[0]], $unit);
if ($data_macro) {
$data[] = $data_macro;
} else {
$data[] = html_print_result_div($row[$attr[0]]);
}
}
}
}
}
array_push($table->data, $data);
if (count($table->data) > 200) {
break;
}
}
if (empty($table->data)) {
ui_print_error_message(__('No available data to show'));
} else {
ui_pagination(count($count), false, $offset, 0, false, 'offset', true, 'binary_dialog');
html_print_table($table);
}
if (is_metaconsole()) {
metaconsole_restore_db();
}
return;
}
if ($get_module_autocomplete_input) {
$id_agent = (int) get_parameter('id_agent');
ob_clean();
if ($id_agent > 0) {
html_print_autocomplete_modules(
'autocomplete_module_name',
'',
[$id_agent]
);
return;
}
return;
}
if ($add_module_relation) {
$result = false;
$id_module_a = (int) get_parameter('id_module_a');
$id_module_b = (int) get_parameter('id_module_b');
if ($id_module_a < 1) {
$name_module_a = get_parameter('name_module_a', '');
if ($name_module_a) {
$id_module_a = (int) db_get_value('id_agente_modulo', 'tagente_modulo', 'nombre', $name_module_a);
} else {
echo json_encode($result);
return;
}
}
if ($id_module_b < 1) {
$name_module_b = get_parameter('name_module_b', '');
if ($name_module_b) {
$id_module_b = (int) db_get_value('id_agente_modulo', 'tagente_modulo', 'nombre', $name_module_b);
} else {
echo json_encode($result);
return;
}
}
if ($id_module_a > 0 && $id_module_b > 0) {
$result = modules_add_relation($id_module_a, $id_module_b);
}
echo json_encode($result);
return;
}
if ($remove_module_relation) {
$id_relation = (int) get_parameter('id_relation');
if ($id_relation > 0) {
$result = (bool) modules_delete_relation($id_relation);
}
echo json_encode($result);
return;
}
if ($change_module_relation_updates) {
$id_relation = (int) get_parameter('id_relation');
if ($id_relation > 0) {
$result = (bool) modules_change_relation_lock($id_relation);
}
echo json_encode($result);
return;
}
if ($get_id_tag) {
$tag_name = get_parameter('tag_name');
if ($tag_name) {
$tag_id = db_get_value('id_tag', 'ttag', 'name', $tag_name);
} else {
$tag_id = 0;
}
echo $tag_id;
return;
}
if ($list_modules) {
include_once $config['homedir'].'/include/functions_modules.php';
include_once $config['homedir'].'/include/functions_servers.php';
include_once $config['homedir'].'/include/functions_tags.php';
include_once $config['homedir'].'/include/functions_clippy.php';
$agent_a = check_acl($config['id_user'], 0, 'AR');
$agent_w = check_acl($config['id_user'], 0, 'AW');
$access = ($agent_a == true) ? 'AR' : (($agent_w == true) ? 'AW' : 'AR');
$id_agente = $id_agent = (int) get_parameter('id_agente', 0);
$show_notinit = (int) get_parameter('show_notinit', 0);
$cluster_list = (int) get_parameter('cluster_list', 0);
$url = 'index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente='.$id_agent;
$selectTypeUp = '';
$selectTypeDown = '';
$selectNameUp = '';
$selectNameDown = '';
$selectStatusUp = '';
$selectStatusDown = '';
$selectDataUp = '';
$selectDataDown = '';
$selectLastContactUp = '';
$selectLastContactDown = '';
$sortField = get_parameter('sort_field');
$sort = get_parameter('sort', 'none');
$selected = 'border: 1px solid black;';
$order[] = [
'field' => 'tmodule_group.name',
'order' => 'ASC',
];
switch ($sortField) {
case 'type':
switch ($sort) {
case 'up':
$selectTypeUp = $selected;
$order[] = [
'field' => 'tagente_modulo.id_modulo',
'order' => 'ASC',
];
break;
case 'down':
$selectTypeDown = $selected;
$order[] = [
'field' => 'tagente_modulo.id_modulo',
'order' => 'DESC',
];
break;
}
break;
case 'name':
switch ($sort) {
case 'up':
$selectNameUp = $selected;
$order[] = [
'field' => 'tagente_modulo.nombre',
'order' => 'ASC',
];
break;
case 'down':
$selectNameDown = $selected;
$order[] = [
'field' => 'tagente_modulo.nombre',
'order' => 'DESC',
];
break;
}
break;
case 'status':
switch ($sort) {
case 'up':
$selectStatusUp = $selected;
$order[] = [
'field' => 'tagente_estado.estado=0 DESC,tagente_estado.estado=3 DESC,tagente_estado.estado=2 DESC,tagente_estado.estado=1 DESC',
'order' => '',
];
break;
case 'down':
$selectStatusDown = $selected;
$order[] = [
'field' => 'tagente_estado.estado=1 DESC,tagente_estado.estado=2 DESC,tagente_estado.estado=3 DESC,tagente_estado.estado=0 DESC',
'order' => '',
];
break;
}
break;
case 'last_contact':
switch ($sort) {
case 'up':
$selectLastContactUp = $selected;
$order[] = [
'field' => 'tagente_estado.utimestamp',
'order' => 'ASC',
];
break;
case 'down':
$selectLastContactDown = $selected;
$order[] = [
'field' => 'tagente_estado.utimestamp',
'order' => 'DESC',
];
break;
}
break;
default:
$selectTypeUp = '';
$selectTypeDown = '';
$selectNameUp = $selected;
$selectNameDown = '';
$selectStatusUp = '';
$selectStatusDown = '';
$selectDataUp = '';
$selectDataDown = '';
$selectLastContactUp = '';
$selectLastContactDown = '';
$order[] = [
'field' => 'tagente_modulo.nombre',
'order' => 'ASC',
];
break;
}
// Fix: for tag functionality groups have to be all user_groups (propagate ACL funct!)
$groups = users_get_groups($config['id_user'], $access);
$tags_join = '';
$tags_sql = '';
if ($cluster_list != 1) {
$tags = tags_get_user_applied_agent_tags($id_agent, $access);
if ($tags === false) {
$tags_sql = ' AND 1=0';
} else if (is_array($tags)) {
$tags_sql = ' AND ttag_module.id_tag IN ('.implode(',', $tags).')';
$tags_join = 'LEFT JOIN ttag_module
ON ttag_module.id_agente_modulo = tagente_modulo.id_agente_modulo';
}
}
$status_filter_monitor = (int) get_parameter('status_filter_monitor', -1);
$status_text_monitor = get_parameter('status_text_monitor', '');
$filter_monitors = (bool) get_parameter('filter_monitors', false);
$status_module_group = get_parameter('status_module_group', -1);
$monitors_change_filter = (bool) get_parameter('monitors_change_filter', false);
$status_filter_sql = '1 = 1';
if ($status_filter_monitor == AGENT_MODULE_STATUS_NOT_NORMAL) {
// Not normal
$status_filter_sql = ' tagente_estado.estado <> 0';
} else if ($status_filter_monitor != -1) {
$status_filter_sql = 'tagente_estado.estado = '.$status_filter_monitor;
}
if ($status_module_group != -1) {
$status_module_group_filter = 'tagente_modulo.id_module_group = '.$status_module_group;
} else {
$status_module_group_filter = 'tagente_modulo.id_module_group >= 0';
}
$status_text_monitor_sql = '%';
if (!empty($status_text_monitor)) {
$status_text_monitor_sql .= $status_text_monitor.'%';
}
if (!$show_notinit) {
$monitor_filter = AGENT_MODULE_STATUS_NO_DATA;
} else {
$monitor_filter = -15;
}
// Count monitors/modules
// Build the order sql
$first = true;
foreach ($order as $ord) {
if ($first) {
$first = false;
} else {
$order_sql .= ',';
}
$order_sql .= $ord['field'].' '.$ord['order'];
}
$sql_condition = "FROM tagente_modulo
$tags_join
INNER JOIN tagente_estado
ON tagente_modulo.id_agente_modulo = tagente_estado.id_agente_modulo
LEFT JOIN tmodule_group
ON tagente_modulo.id_module_group = tmodule_group.id_mg
WHERE tagente_modulo.id_agente = $id_agente
AND nombre LIKE '$status_text_monitor_sql'
AND delete_pending = 0
AND disabled = 0
AND $status_filter_sql
AND $status_module_group_filter
$tags_sql
AND tagente_estado.estado != $monitor_filter
";
$count_modules = db_get_all_rows_sql('SELECT COUNT(DISTINCT tagente_modulo.id_agente_modulo)'.$sql_condition);
if (isset($count_modules[0])) {
$count_modules = reset($count_modules[0]);
} else {
$count_modules = 0;
}
// Get monitors/modules
// Get all module from agent
$sql_modules_info = "SELECT tagente_estado.*, tagente_modulo.*, tmodule_group.*
$sql_condition
GROUP BY tagente_modulo.id_agente_modulo ORDER BY $order_sql";
if ($monitors_change_filter) {
$limit = ' LIMIT '.$config['block_size'].' OFFSET 0';
} else {
$limit = ' LIMIT '.$config['block_size'].' OFFSET '.get_parameter('offset', 0);
}
$paginate_module = false;
if (isset($config['paginate_module'])) {
$paginate_module = $config['paginate_module'];
}
if ($paginate_module) {
$modules = db_get_all_rows_sql($sql_modules_info.$limit);
} else {
$modules = db_get_all_rows_sql($sql_modules_info);
}
if (empty($modules)) {
$modules = [];
}
$table = new stdClass();
$table->width = '100%';
$table->cellpadding = 4;
$table->cellspacing = 4;
$table->class = 'databox data';
$table->head = [];
$table->data = [];
$isFunctionPolicies = enterprise_include_once('include/functions_policies.php');
if ($agent_w) {
$table->head[0] = "".__('F.').'';
}
if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK) {
$table->head[1] = "".__('P.').'';
}
$table->head[2] = __('Type').' '.''.html_print_image('images/sort_up.png', true, ['style' => $selectTypeUp, 'alt' => 'up']).''.''.html_print_image('images/sort_down.png', true, ['style' => $selectTypeDown, 'alt' => 'down']).'';
$table->head[3] = __('Module name').' '.''.html_print_image('images/sort_up.png', true, ['style' => $selectNameUp, 'alt' => 'up']).''.''.html_print_image('images/sort_down.png', true, ['style' => $selectNameDown, 'alt' => 'down']).'';
$table->head[4] = __('Description');
$table->head[5] = __('Status').' '.''.html_print_image('images/sort_up.png', true, ['style' => $selectStatusUp, 'alt' => 'up']).''.''.html_print_image('images/sort_down.png', true, ['style' => $selectStatusDown, 'alt' => 'down']).'';
$table->head[6] = __('Thresholds');
$table->head[7] = __('Data');
$table->head[8] = __('Graph');
$table->headstyle[8] = 'min-width: 60px';
$table->head[9] = __('Last contact').' '.''.html_print_image('images/sort_up.png', true, ['style' => $selectLastContactUp, 'alt' => 'up']).''.''.html_print_image('images/sort_down.png', true, ['style' => $selectLastContactDown, 'alt' => 'down']).'';
$table->align = [
'left',
'left',
'left',
'left',
'left',
'left',
'left',
'left',
'left',
];
$last_modulegroup = 0;
$rowIndex = 0;
$id_type_web_content_string = db_get_value(
'id_tipo',
'ttipo_modulo',
'nombre',
'web_content_string'
);
$show_context_help_first_time = false;
$hierachy_mode = get_parameter('hierachy_mode', false);
if ($hierachy_mode == 'true') {
$modules_hierachy = [];
$modules_hierachy = get_hierachy_modules_tree($modules);
$modules_dt = get_dt_from_modules_tree($modules_hierachy);
$modules = $modules_dt;
}
foreach ($modules as $module) {
if ($hierachy_mode !== 'true') {
// The code add the row of 1 cell with title of group for to be more organice the list.
if ($module['id_module_group'] != $last_modulegroup) {
$table->colspan[$rowIndex][0] = count($table->head);
$table->rowclass[$rowIndex] = 'datos4';
array_push($table->data, [''.$module['name'].'']);
$rowIndex++;
$last_modulegroup = $module['id_module_group'];
}
// End of title of group
}
$data = [];
if (($module['id_modulo'] != 1) && ($module['id_tipo_modulo'] != 100)) {
if ($agent_w) {
if ($module['flag'] == 0) {
$data[0] = ''.html_print_image('images/target.png', true, ['border' => '0', 'title' => __('Force')]).'';
} else {
$data[0] = ''.html_print_image('images/refresh.png', true, ['border' => '0', 'title' => __('Refresh')]).'';
}
}
} else {
if ($agent_w) {
$data[0] = '';
}
}
if ($isFunctionPolicies !== ENTERPRISE_NOT_HOOK) {
if ($module['id_policy_module'] != 0) {
$linked = policies_is_module_linked($module['id_agente_modulo']);
$id_policy = db_get_value_sql('SELECT id_policy FROM tpolicy_modules WHERE id = '.$module['id_policy_module']);
if ($id_policy != '') {
$name_policy = db_get_value_sql('SELECT name FROM tpolicies WHERE id = '.$id_policy);
} else {
$name_policy = __('Unknown');
}
$policyInfo = policies_info_module_policy($module['id_policy_module']);
$adopt = false;
if (policies_is_module_adopt($module['id_agente_modulo'])) {
$adopt = true;
}
if ($linked) {
if ($adopt) {
$img = 'images/policies_brick.png';
$title = '('.__('Adopted').') '.$name_policy;
} else {
$img = 'images/policies.png';
$title = $name_policy;
}
} else {
if ($adopt) {
$img = 'images/policies_not_brick.png';
$title = '('.__('Unlinked').') ('.__('Adopted').') '.$name_policy;
} else {
$img = 'images/unlinkpolicy.png';
$title = '('.__('Unlinked').') '.$name_policy;
}
}
$data[1] = ''.html_print_image($img, true, ['title' => $title]).'';
} else {
$data[1] = '';
}
}
$data[2] = servers_show_type($module['id_modulo']).' ';
if (check_acl($config['id_user'], $id_grupo, 'AW')) {
$data[2] .= ''.html_print_image('images/config.png', true, ['alt' => '0', 'border' => '', 'title' => __('Edit')]).'';
}
$data[3] = '';
if (isset($module['deep']) && ($module['deep'] != 0)) {
$data[3] .= str_repeat(' ', $module['deep']);
$data[3] .= html_print_image('images/icono_escuadra.png', true, ['style' => 'padding-bottom: inherit;']).' ';
}
if ($module['quiet']) {
$data[3] .= html_print_image(
'images/dot_blue.png',
true,
[
'border' => '0',
'title' => __('Quiet'),
'alt' => '',
]
).' ';
}
$data[3] .= ui_print_truncate_text($module['nombre'], 'module_medium');
if (!empty($module['extended_info'])) {
if ($module['extended_info'] != '') {
$data[3] .= ui_print_help_tip($module['extended_info'], true, '/images/default_list.png');
}
}
// Adds tag context information
if (tags_get_modules_tag_count($module['id_agente_modulo']) > 0) {
$data[3] .= ' '.html_print_image('images/tag_red.png', true, ['id' => 'tag-details-'.$module['id_agente_modulo'], 'class' => 'img_help']).' ';
}
// Adds relations context information
if (modules_relation_exists($module['id_agente_modulo'])) {
$data[3] .= ' '.html_print_image('images/link2.png', true, ['id' => 'relations-details-'.$module['id_agente_modulo'], 'class' => 'img_help']).' ';
}
$data[4] = ui_print_string_substr($module['descripcion'], 60, true, 8);
if ($module['datos'] != strip_tags($module['datos'])) {
$module_value = io_safe_input($module['datos']);
} else {
$module_value = io_safe_output($module['datos']);
}
modules_get_status(
$module['id_agente_modulo'],
$module['estado'],
$module_value,
$status,
$title
);
$data[5] = ui_print_status_image($status, $title, true);
if (!$show_context_help_first_time) {
$show_context_help_first_time = true;
if ($module['estado'] == AGENT_MODULE_STATUS_UNKNOWN) {
$data[5] .= clippy_context_help('module_unknow');
}
}
if ($module['id_tipo_modulo'] == 24) {
// log4x
switch ($module['datos']) {
case 10:
$salida = 'TRACE';
$style = 'font-weight:bold; color:darkgreen;';
break;
case 20:
$salida = 'DEBUG';
$style = 'font-weight:bold; color:darkgreen;';
break;
case 30:
$salida = 'INFO';
$style = 'font-weight:bold; color:darkgreen;';
break;
case 40:
$salida = 'WARN';
$style = 'font-weight:bold; color:darkorange;';
break;
case 50:
$salida = 'ERROR';
$style = 'font-weight:bold; color:red;';
break;
case 60:
$salida = 'FATAL';
$style = 'font-weight:bold; color:red;';
break;
}
$salida = "$salida";
} else {
if (is_numeric($module['datos']) && !modules_is_string_type($module['id_tipo_modulo'])) {
if ($config['render_proc']) {
switch ($module['id_tipo_modulo']) {
case 2:
case 6:
case 9:
case 18:
case 21:
case 31:
if ($module['datos'] >= 1) {
$salida = $config['render_proc_ok'];
} else {
$salida = $config['render_proc_fail'];
}
break;
default:
switch ($module['id_tipo_modulo']) {
case 15:
$value = db_get_value('snmp_oid', 'tagente_modulo', 'id_agente_modulo', $module['id_agente_modulo']);
if ($value == '.1.3.6.1.2.1.1.3.0' || $value == '.1.3.6.1.2.1.25.1.1.0') {
if ($module['post_process'] > 0) {
$salida = human_milliseconds_to_string(($module['datos'] / $module['post_process']));
} else {
$salida = human_milliseconds_to_string($module['datos']);
}
} else {
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision']));
}
break;
default:
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision']));
break;
}
break;
}
} else {
switch ($module['id_tipo_modulo']) {
case 15:
$value = db_get_value('snmp_oid', 'tagente_modulo', 'id_agente_modulo', $module['id_agente_modulo']);
if ($value == '.1.3.6.1.2.1.1.3.0' || $value == '.1.3.6.1.2.1.25.1.1.0') {
if ($module['post_process'] > 0) {
$salida = human_milliseconds_to_string(($module['datos'] / $module['post_process']));
} else {
$salida = human_milliseconds_to_string($module['datos']);
}
} else {
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision']));
}
break;
default:
$salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision']));
break;
}
}
// Show units ONLY in numeric data types
if (isset($module['unit'])) {
$data_macro = modules_get_unit_macro($module['datos'], $module['unit']);
if ($data_macro) {
$salida = $data_macro;
} else {
$salida .= ' '.''.io_safe_output($module['unit']).'';
}
}
} else {
$data_macro = modules_get_unit_macro($module['datos'], $module['unit']);
if ($data_macro) {
$salida = $data_macro;
} else {
$salida = ui_print_module_string_value(
$module['datos'],
$module['id_agente_modulo'],
$module['current_interval'],
$module['module_name']
);
}
}
}
if ($module['id_tipo_modulo'] != 25) {
$data[6] = ui_print_module_warn_value($module['max_warning'], $module['min_warning'], $module['str_warning'], $module['max_critical'], $module['min_critical'], $module['str_critical']);
} else {
$data[6] = '';
}
$data[7] = $salida;
$graph_type = return_graphtype($module['id_tipo_modulo']);
$data[8] = ' ';
if ($module['history_data'] == 1) {
$nombre_tipo_modulo = modules_get_moduletype_name($module['id_tipo_modulo']);
$handle = 'stat'.$nombre_tipo_modulo.'_'.$module['id_agente_modulo'];
$url = 'include/procesos.php?agente='.$module['id_agente_modulo'];
$win_handle = dechex(crc32($module['id_agente_modulo'].$module['nombre']));
// Try to display the SNMP module realtime graph
$rt_button = get_module_realtime_link_graph($module);
if (!empty($rt_button)) {
$data[8] = $rt_button.' ';
}
// Show events for boolean modules by default.
if ($graph_type == 'boolean') {
$draw_events = 1;
} else {
$draw_events = 0;
}
$link = "winopeng('".'operation/agentes/stat_win.php?'."type=$graph_type&".'period='.SECONDS_1DAY.'&'.'id='.$module['id_agente_modulo'].'&'.'label='.rawurlencode(
urlencode(
base64_encode($module['nombre'])
)
).'&'.'refresh='.SECONDS_10MINUTES.'&'."draw_events=$draw_events', 'day_".$win_handle."')";
if (!is_snapshot_data($module['datos'])) {
$data[8] .= ''.html_print_image('images/chart_curve.png', true, ['border' => '0', 'alt' => '']).' ';
}
$server_name = '';
$data[8] .= "".html_print_image('images/binary.png', true, ['border' => '0', 'alt' => '']).'';
}
if ($module['estado'] == 3) {
$data[9] = '';
} else {
$data[9] = '';
}
$data[9] .= ui_print_timestamp($module['utimestamp'], true, ['style' => 'font-size: 7pt']);
$data[9] .= '';
array_push($table->data, $data);
$rowIndex++;
}
?>
data)) {
if ($filter_monitors) {
ui_print_info_message([ 'no_close' => true, 'message' => __('Any monitors aren\'t with this filter.') ]);
} else {
ui_print_info_message([ 'no_close' => true, 'message' => __('This agent doesn\'t have any active monitors.') ]);
}
} else {
$url = 'index.php?'.'sec=estado&'.'sec2=operation/agentes/ver_agente&'.'id_agente='.$id_agente.'&'.'refr=&filter_monitors=1&'.'status_filter_monitor='.$status_filter_monitor.'&'.'status_text_monitor='.$status_text_monitor.'&'.'status_module_group='.$status_module_group;
if ($paginate_module) {
ui_pagination(
$count_modules,
false,
0,
0,
false,
'offset',
true,
'',
'pagination_list_modules(offset_param)',
[
'count' => '',
'offset' => 'offset_param',
]
);
}
html_print_table($table);
if ($paginate_module) {
ui_pagination(
$count_modules,
false,
0,
0,
false,
'offset',
true,
'',
'pagination_list_modules(offset_param)',
[
'count' => '',
'offset' => 'offset_param',
]
);
}
}
unset($table);
unset($table_data);
}
if ($get_type) {
$id_module = (int) get_parameter('id_module');
$module = modules_get_agentmodule($id_module);
$graph_type = return_graphtype($module['id_tipo_modulo']);
echo $graph_type;
return;
}
}