function monitoring_icinga_objects_definitions_output in Monitoring 7
Creates the object definitions output part.
Parameters
bool $active_checks:
bool $check_freshness:
Return value
array Renderable array.
3 calls to monitoring_icinga_objects_definitions_output()
- monitoring_icinga_config_active_page in modules/
monitoring_icinga/ monitoring_icinga.admin.inc - Icinga config active page callback.
- monitoring_icinga_config_passive_page in modules/
monitoring_icinga/ monitoring_icinga.admin.inc - Icinga config passive page callback.
- monitoring_icinga_config_passive_with_freshness_page in modules/
monitoring_icinga/ monitoring_icinga.admin.inc - Icinga config active page callback.
File
- modules/
monitoring_icinga/ monitoring_icinga.admin.inc, line 164 - Monitoring Icinga admin pages.
Code
function monitoring_icinga_objects_definitions_output($active_checks = TRUE, $check_freshness = FALSE) {
$host = monitoring_host();
$host_def = monitoring_config_code('monitoring_icinga', 'host', array(
'@host' => $host,
'@ip' => $_SERVER['SERVER_ADDR'],
));
$services_def = array();
$servicegroups = array();
foreach (monitoring_sensor_manager()
->getEnabledSensorInfo() as $sensor_name => $sensor_info) {
$services_def[] = monitoring_config_code('monitoring_icinga', 'service', array(
'@host' => $host,
'@service_description' => monitoring_icinga_service_description($sensor_info),
'@sensor_name' => $sensor_name,
'@site_key' => monitoring_host_key(),
'@description' => $sensor_info
->getDescription(),
'@active_checks' => (int) $active_checks,
'@passive_checks' => (int) (!$active_checks),
'@check_freshness' => (int) $check_freshness,
'@check_command' => $check_freshness ? 'service_is_stale' : 'check_drupal',
));
$category = strtolower(str_replace(' ', '_', $sensor_info
->getCategory()));
$servicegroups[$category]['alias'] = $category;
$servicegroups[$category]['members'][] = $host . ',' . monitoring_icinga_service_description($sensor_info);
}
$services_def = implode("\n\n", $services_def);
$servicegroups_def = array();
foreach ($servicegroups as $name => $servicegroup) {
$servicegroups_def[] = monitoring_config_code('monitoring_icinga', 'servicegroup', array(
'@name' => monitoring_host_key() . '_' . $name,
'@alias' => $servicegroup['alias'],
'@members' => implode(', ', $servicegroup['members']),
));
}
$servicegroups_def = implode("\n", $servicegroups_def);
// $system_services = monitoring_config_code('monitoring_icinga', 'system', array('@host' => $host));
return array(
'#theme' => 'monitoring_config_box',
'#title' => t('Host and services configuration'),
'#description' => t('At the Icinga server create /etc/icnga/objects/@name_icinga.cfg file with following code. Note that the code changes based on which sensor are enabled/disabled.', array(
'@name' => monitoring_host_key(),
)),
'#code' => "; === HOST DEFINITION ===\n" . $host_def . "\n; === SERVICEGROUPS DEFINITIONS ===\n" . $servicegroups_def . "\n; === DRUPAL SERVICES DEFINITIONS ===\n" . $services_def,
'#code_height' => '300',
);
}