]> git.pld-linux.org Git - packages/nagios.git/blob - nagioswall.php
fix The Alias directive probably never match issue
[packages/nagios.git] / nagioswall.php
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
24 foreach (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();
36 foreach ($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
101 function form_bit($field, $value, $bit) {
102         echo '<option value="', $bit, '" ', ($value & $bit ? 'selected' : ''), '>', $field, '</option>';
103 }
104
105 function 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);
115 if (!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.038393 seconds and 3 git commands to generate.