]> git.pld-linux.org Git - packages/nagios.git/blame - nagioswall.php
fix The Alias directive probably never match issue
[packages/nagios.git] / nagioswall.php
CommitLineData
4e60ae1d
ER
1<?php
2/**
3 * Nagios Status Query Builder
4 *
5 * Can be used to build urls to display active Nagios status on some kind of wall screen.
6 * And browser side auto-refresh.
7 *
8 * Author: Elan Ruusamäe <glen@delfi.ee>
9 * Copyright: GPL v2
10 *
11 * $Id$
12 */
13
14$defaults = array(
15 'host' => 'all',
16 'hostprops' => '42',
17 'hoststatustypes' => '14',
18 'serviceprops' => '42',
19 'servicestatustypes' => '28',
20 'sortoption' => '3',
21 'sorttype' => '2',
22);
23
24foreach (array('servicestatustypes', 'serviceprops', 'hoststatustypes', 'hostprops') as $k) {
25 if (!is_array($_GET[$k])) {
26 continue;
27 }
28 $v = 0;
29 foreach ($_GET[$k] as $bit) {
30 $v |= $bit;
31 }
32 $_GET[$k] = $v;
33}
34
35$props = array();
36foreach ($defaults as $k => $v) {
37 $props[$k] = isset($_GET[$k]) ? $_GET[$k] : $defaults[$k];
38}
39
40$hoststatustypes = array(
41 'HOST_PENDING' => 1,
42 'HOST_UP' => 2,
43 'HOST_DOWN' => 4,
44 'HOST_UNREACHABLE' => 8,
45);
46
47$servicestatustypes = array(
48 'SERVICE_PENDING' => 1,
49 'SERVICE_OK' => 2,
50 'SERVICE_WARNING' => 4,
51 'SERVICE_UNKNOWN' => 8,
52 'SERVICE_CRITICAL' => 16,
53);
54
55$hostprops = array(
56 'HOST_SCHEDULED_DOWNTIME' => 1,
57 'HOST_NO_SCHEDULED_DOWNTIME' => 2,
58 'HOST_STATE_ACKNOWLEDGED' => 4,
59 'HOST_STATE_UNACKNOWLEDGED' => 8,
60 'HOST_CHECKS_DISABLED' => 16,
61 'HOST_CHECKS_ENABLED' => 32,
62 'HOST_EVENT_HANDLER_DISABLED' => 64,
63 'HOST_EVENT_HANDLER_ENABLED' => 128,
64 'HOST_FLAP_DETECTION_DISABLED' => 256,
65 'HOST_FLAP_DETECTION_ENABLED' => 512,
66 'HOST_IS_FLAPPING' => 1024,
67 'HOST_IS_NOT_FLAPPING' => 2048,
68 'HOST_NOTIFICATIONS_DISABLED' => 4096,
69 'HOST_NOTIFICATIONS_ENABLED' => 8192,
70 'HOST_PASSIVE_CHECKS_DISABLED' => 16384,
71 'HOST_PASSIVE_CHECKS_ENABLED' => 32768,
72 'HOST_PASSIVE_CHECK' => 65536,
73 'HOST_ACTIVE_CHECK' => 131072,
74 'HOST_HARD_STATE' => 262144,
75 'HOST_SOFT_STATE' => 524288,
76);
77
78$serviceprops = array(
79 'SERVICE_SCHEDULED_DOWNTIME' => 1,
80 'SERVICE_NO_SCHEDULED_DOWNTIME' => 2,
81 'SERVICE_STATE_ACKNOWLEDGED' => 4,
82 'SERVICE_STATE_UNACKNOWLEDGED' => 8,
83 'SERVICE_CHECKS_DISABLED' => 16,
84 'SERVICE_CHECKS_ENABLED' => 32,
85 'SERVICE_EVENT_HANDLER_DISABLED' => 64,
86 'SERVICE_EVENT_HANDLER_ENABLED' => 128,
87 'SERVICE_FLAP_DETECTION_ENABLED' => 256,
88 'SERVICE_FLAP_DETECTION_DISABLED' => 512,
89 'SERVICE_IS_FLAPPING' => 1024,
90 'SERVICE_IS_NOT_FLAPPING' => 2048,
91 'SERVICE_NOTIFICATIONS_DISABLED' => 4096,
92 'SERVICE_NOTIFICATIONS_ENABLED' => 8192,
93 'SERVICE_PASSIVE_CHECKS_DISABLED' => 16384,
94 'SERVICE_PASSIVE_CHECKS_ENABLED' => 32768,
95 'SERVICE_PASSIVE_CHECK' => 65536,
96 'SERVICE_ACTIVE_CHECK' => 131072,
97 'SERVICE_HARD_STATE' => 262144,
98 'SERVICE_SOFT_STATE' => 524288,
99);
100
101function form_bit($field, $value, $bit) {
102 echo '<option value="', $bit, '" ', ($value & $bit ? 'selected' : ''), '>', $field, '</option>';
103}
104
105function form_multiple($field, $values) {
106 global $props;
107 echo '<select multiple name="', $field, '[]">';
108 foreach ($values as $k => $v) {
109 form_bit($k, $props[$field], $v);
110 }
111 echo '</select>';
112}
113
114$args = http_build_query($props);
115if (!empty($_GET['control'])) {
116?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
117<html>
118<head>
119<meta name="robots" content="noindex, nofollow">
120<title>Wall</title>
121<LINK REL='stylesheet' TYPE='text/css' HREF='/nagios/stylesheets/common.css'><LINK REL='stylesheet' TYPE='text/css' HREF='/nagios/stylesheets/status.css'></head>
122</head>
123<form target="_top" action="?control=0">
124<div style="font-family: Tahoma, Arial, Sans-Serif; font-size: 8pt; float: left;">servicestatustypes (<?= $props['servicestatustypes'] ?>):<br/><?= form_multiple('servicestatustypes', $servicestatustypes) ?><br/></div>
125<div style="font-family: Tahoma, Arial, Sans-Serif; font-size: 8pt; float: left;">serviceprops(<?= $props['serviceprops'] ?>):<br/><?= form_multiple('serviceprops', $serviceprops) ?><br/></div>
126<div style="font-family: Tahoma, Arial, Sans-Serif; font-size: 8pt; float: left;">hoststatustypes (<?= $props['hoststatustypes'] ?>):<br/><?= form_multiple('hoststatustypes', $hoststatustypes) ?><br/></div>
127<div style="font-family: Tahoma, Arial, Sans-Serif; font-size: 8pt; float: left;">hostprops(<?= $props['hostprops'] ?>):<br/><?= form_multiple('hostprops', $hostprops) ?><br/></div>
128<div class="font-family: Tahoma, Arial, Sans-Serif; font-size: 8pt; clear: both;"><input type=submit></div>
129 </form>
130</tr></table>
131<?php
132 echo "$url";
133 exit;
134}
135
136?><frameset rows="90,*">
137 <frame name="control" frameborder="0" src="<?= basename($_SERVER['SCRIPT_NAME']) ?>?control=1&<?= htmlspecialchars($args) ?>">
138 <frame name="nagios" frameborder="0" src="/nagios/cgi-bin/status.cgi?<?= htmlspecialchars($args) ?>">
139</frameset>
140</html>
This page took 0.089847 seconds and 4 git commands to generate.