You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zabbix/ui/app/partials/administration.system.info.php

252 lines
7.6 KiB

<?php
/*
** Zabbix
** Copyright (C) 2001-2023 Zabbix SIA
**
** 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, or
** (at your option) any later version.
**
** 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, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
/**
* @var CPartial $this
* @var array $data
*/
$status = $data['system_info']['status'];
$info_table = (new CTableInfo())
->setHeader([_('Parameter'), _('Value'), _('Details')])
->setHeadingColumn(0)
->addClass(ZBX_STYLE_LIST_TABLE_STICKY_HEADER)
->addRow([
_('Zabbix server is running'),
(new CSpan($status['is_running'] ? _('Yes') : _('No')))
->addClass($status['is_running'] ? ZBX_STYLE_GREEN : ZBX_STYLE_RED),
$data['system_info']['server_details']
])
->addRow([
_('Zabbix server version'),
$status['has_status'] ? $status['server_version'] : '',
''
])
->addRow([
_('Zabbix frontend version'),
ZABBIX_VERSION,
''
])
->addRow([
_('Number of hosts (enabled/disabled)'),
$status['has_status'] ? $status['hosts_count'] : '',
$status['has_status']
? [
(new CSpan($status['hosts_count_monitored']))->addClass(ZBX_STYLE_GREEN), ' / ',
(new CSpan($status['hosts_count_not_monitored']))->addClass(ZBX_STYLE_RED)
]
: ''
])
->addRow([
_('Number of templates'),
$status['has_status'] ? $status['hosts_count_template'] : '',
''
])
->addRow([
(new CSpan(_('Number of items (enabled/disabled/not supported)')))
->setTitle(_('Only items assigned to enabled hosts are counted')),
$status['has_status'] ? $status['items_count'] : '',
$status['has_status']
? [
(new CSpan($status['items_count_monitored']))->addClass(ZBX_STYLE_GREEN), ' / ',
(new CSpan($status['items_count_disabled']))->addClass(ZBX_STYLE_RED), ' / ',
(new CSpan($status['items_count_not_supported']))->addClass(ZBX_STYLE_GREY)
]
: ''
])
->addRow([
(new CSpan(_('Number of triggers (enabled/disabled [problem/ok])')))
->setTitle(_('Only triggers assigned to enabled hosts and depending on enabled items are counted')),
$status['has_status'] ? $status['triggers_count'] : '',
$status['has_status']
? [
$status['triggers_count_enabled'],
' / ',
$status['triggers_count_disabled'],
' [',
(new CSpan($status['triggers_count_on']))->addClass(ZBX_STYLE_RED),
' / ',
(new CSpan($status['triggers_count_off']))->addClass(ZBX_STYLE_GREEN),
']'
]
: ''
])
->addRow([
_('Number of users (online)'),
$status['has_status'] ? $status['users_count'] : '',
$status['has_status'] ? (new CSpan($status['users_online']))->addClass(ZBX_STYLE_GREEN) : ''
]);
if ($data['user_type'] == USER_TYPE_SUPER_ADMIN) {
$info_table->addRow([
_('Required server performance, new values per second'),
($status['has_status'] && array_key_exists('vps_total', $status)) ? round($status['vps_total'], 2) : '',
''
]);
// Check requirements.
foreach ($data['system_info']['requirements'] as $requirement) {
if ($requirement['result'] == CFrontendSetup::CHECK_FATAL) {
$info_table->addRow(
(new CRow([
$requirement['name'],
$requirement['current'],
$requirement['error']
]))->addClass(ZBX_STYLE_RED)
);
}
}
if ($data['system_info']['encoding_warning'] !== '') {
$info_table->addRow(
(new CRow(
(new CCol($data['system_info']['encoding_warning']))->setAttribute('colspan', 3)
))->addClass(ZBX_STYLE_RED)
);
}
}
if (array_key_exists('history_pk', $data['system_info']) && !$data['system_info']['history_pk']) {
$info_table->addRow([
_('Database history tables use primary key'),
(new CSpan(_('No')))->addClass(ZBX_STYLE_RED),
''
]);
}
// Check DB version.
if ($data['user_type'] == USER_TYPE_SUPER_ADMIN) {
foreach ($data['system_info']['dbversion_status'] as $dbversion) {
switch ($dbversion['flag']) {
case DB_VERSION_LOWER_THAN_MINIMUM:
$error = _s('Error! Unable to start Zabbix server.').' '.
_s('Minimum required %1$s database version is %2$s.', $dbversion['database'],
$dbversion['min_version']
);
break;
case DB_VERSION_HIGHER_THAN_MAXIMUM:
$error = _s('Error! Unable to start Zabbix server.').' '.
_s('Maximum required %1$s database version is %2$s.', $dbversion['database'],
$dbversion['max_version']
);
break;
case DB_VERSION_FAILED_TO_RETRIEVE:
$error = _('Warning! Unable to retrieve database version.');
$dbversion['current_version'] = '';
break;
case DB_VERSION_NOT_SUPPORTED_ERROR:
$error = _s('Error! Unable to start Zabbix server.').' '.
_s('Unsupported %1$s database server version. Must be at least %2$s.', $dbversion['database'],
$dbversion['min_supported_version']
);
break;
case DB_VERSION_NOT_SUPPORTED_WARNING:
$error = _s('Warning! Unsupported %1$s database server version. Should be at least %2$s.',
$dbversion['database'], $dbversion['min_supported_version']
);
break;
case DB_VERSION_HIGHER_THAN_MAXIMUM_ERROR:
$error = _s('Error! Unable to start Zabbix server.').' '.
_s('Unsupported %1$s database server version. Must not be higher than %2$s.',
$dbversion['database'], $dbversion['max_version']
);
break;
case DB_VERSION_HIGHER_THAN_MAXIMUM_WARNING:
$error = _s('Warning! Unsupported %1$s database server version. Should not be higher than %2$s.',
$dbversion['database'], $dbversion['max_version']
);
break;
case DB_VERSION_SUPPORTED:
default:
continue 2;
}
$info_table->addRow(
(new CRow([$dbversion['database'], $dbversion['current_version'], $error]))->addClass(ZBX_STYLE_RED)
);
}
foreach ($data['system_info']['dbversion_status'] as $dbversion ) {
if ($dbversion['database'] === 'Oracle') {
$db_error = _(
'Warning! Support for Oracle DB is deprecated since Zabbix 7.0 and will be removed in future versions.'
);
$info_table->addRow(
(new CRow([$dbversion['database'], '', $db_error]))->addClass(ZBX_STYLE_RED)
);
}
}
if (array_key_exists(CHousekeepingHelper::OVERRIDE_NEEDED_HISTORY, $data['system_info'])) {
$info_table->addRow((new CRow([
_('Housekeeping'),
_('Override item history period'),
(new CCol([
_('This setting should be enabled, because history tables contain compressed chunks.'),
' ',
new CLink([_('Configuration'), HELLIP()],
(new CUrl('zabbix.php'))->setArgument('action', 'housekeeping.edit')
)
]))->addClass(ZBX_STYLE_RED)
])));
}
if (array_key_exists(CHousekeepingHelper::OVERRIDE_NEEDED_TRENDS, $data['system_info'])) {
$info_table->addRow((new CRow([
_('Housekeeping'),
_('Override item trend period'),
(new CCol([
_('This setting should be enabled, because trend tables contain compressed chunks.'),
' ',
new CLink([_('Configuration'), HELLIP()],
(new CUrl('zabbix.php'))->setArgument('action', 'housekeeping.edit')
)
]))->addClass(ZBX_STYLE_RED)
])));
}
if ($data['system_info']['ha_cluster_enabled']) {
$info_table->addRow([
_('High availability cluster'),
(new CSpan(_('Enabled')))->addClass(ZBX_STYLE_GREEN),
_s('Fail-over delay: %1$s', $data['system_info']['failover_delay'])
]);
}
else {
$info_table->addRow([
_('High availability cluster'),
_('Disabled'),
''
]);
}
}
$info_table->show();