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.
252 lines
7.6 KiB
252 lines
7.6 KiB
1 year ago
|
<?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();
|