';
32 |
33 | if ($name == null && $host == null) {
34 | foreach($outages as $outage) {
35 | $sTable .=' | '. $outage['name'] . ' | '. $outage['host'] . ' | ' . $outage['type'] . ' | ' . date("H:i | d M Y", $outage['down']) . ' | ' . date("H:i | d M Y", $outage['upagain']) . ' | ' . number_format((($outage['upagain'] - $outage['down']) / 60), 0, '.', '') . ' Min |
';
36 | }
37 | }
38 | elseif($name != null && $host == null) {
39 | foreach($outages as $outage) {
40 | if ($name == $outage['name']) {
41 | $sTable .=' | '. $outage['name'] . ' | '. $outage['host'] . ' | ' . $outage['type'] . ' | ' . date("H:i | d M Y", $outage['down']) . ' | ' . date("H:i | d M Y", $outage['upagain']) . ' | ' . number_format((($outage['upagain'] - $outage['down']) / 60), 0, '.', '') . ' Min |
';
42 | }
43 | }
44 | }
45 | elseif($name == null && $host != null) {
46 | foreach($outages as $outage) {
47 | if ($host == $outage['host']) {
48 | $sTable .=' | '. $outage['name'] . ' | '. $outage['host'] . ' | ' . $outage['type'] . ' | ' . date("H:i | d M Y", $outage['down']) . ' | ' . date("H:i | d M Y", $outage['upagain']) . ' | ' . number_format((($outage['upagain'] - $outage['down']) / 60), 0, '.', '') . ' Min |
';
49 | }
50 | }
51 | }
52 | elseif($name != null && $host != null) {
53 | foreach($outages as $outage) {
54 | if ($host == $outage['host'] && $host == $outage['host']) {
55 | $sTable .=' | '. $outage['name'] . ' | '. $outage['host'] . ' | ' . $outage['type'] . ' | ' . date("H:i | d M Y", $outage['down']) . ' | ' . date("H:i | d M Y", $outage['upagain']) . ' | ' . number_format((($outage['upagain'] - $outage['down']) / 60), 0, '.', '') . ' Min |
';
56 | }
57 | }
58 | }
59 |
60 | $sJavascript = '';
61 | $sTable .= '';
62 | include($index);
63 |
64 |
65 |
66 |
67 | ?>
68 |
--------------------------------------------------------------------------------
/pull/index.php:
--------------------------------------------------------------------------------
1 | ' . "\r\n");
76 | file_put_contents($path, json_encode(array('load' => $load, 'time' => $time, 'name' => $server['name'])));
77 | }
78 | elseif($server['maxload'] > $load && file_exists($path)) {
79 | $data = json_decode(file_get_contents($path),true);
80 | unlink($path);
81 | if($data['name'] == $server['name']) {
82 | $message = "Node: " . $server['name'] . " on host " . $server['host'] . " has returned to a normal load at " . date("H:i | d M Y", $time) . ". It was in a critical load for " . number_format((($time - $data['time']) / 60), 0, '.', '') . " Minutes." ;
83 | //$message = wordwrap($message, 70, "\r\n");
84 | mail($emailto, "ServerStatus: " . $server['name'] . " load has returned to normal!", $message, 'From: ServerStatus <' . $emailfrom . '>' . "\r\n");
85 | }
86 | }
87 | }
88 | }
89 |
90 | // This file checks if the server was down!
91 | function checkdown($id, $mailme, $emailto, $emailfrom, $time, $failafter, $server) {
92 | $path = '../cache/' . $id . '.down';
93 | if (file_exists($path)) {
94 | $data = json_decode(file_get_contents($path), true);
95 | unlink($path);
96 | $totalfail = $time - $data['time'];
97 | if($totalfail > $failafter && $data['name'] == $server['name']) {
98 | $failures = array();
99 | $failures[] = array('down' => $data['time'], 'upagain' => $time, 'name' => $server['name'], 'host' => $server['host'], 'type' => $server['type'], 'uptime' => $data['uptime']);
100 | $oldfails = json_decode(file_get_contents("../cache/outages.db"), true);
101 | if($mailme == 1) {
102 | $message = "Node: " . $server['name'] . " on host " . $server['host'] . " is up as of: " . date("H:i | d M Y", $time) . ". It was down for: " . number_format((($time - $data['time']) / 60), 0, '.', '') . " Minutes.";
103 | //$message = wordwrap($message, 70, "\r\n");
104 | mail($emailto, "ServerStatus: " . $server['name'] . " is up!", $message, 'From: ServerStatus <' . $emailfrom . '>' . "\r\n");
105 | }
106 | foreach($oldfails as $fail) {
107 | $failures[] = $fail;
108 | }
109 | file_put_contents("../cache/outages.db", json_encode($failures));
110 | }
111 | }
112 |
113 | }
114 |
115 | // This function creates .down files when a server goes offline and manages
116 | // email alerts
117 | function downfile($id, $server, $failafter, $mailme, $emailto, $emailfrom, $time) {
118 | $path = '../cache/' . $id . '.down';
119 | if (!file_exists($path)) {
120 | file_put_contents($path, json_encode(array('time'=> $time, 'name' => $server['name'])));
121 | }
122 | else {
123 | $down = json_decode(file_get_contents($path), true);
124 | if(($down['time'] + $failafter) <= $time && !isset($down['mailed']) && $mailme == 1 && $down['time'] != null) {
125 | $message = "Node: " . $server['name'] . " on host " . $server['host'] . " is down as of: " . date("H:i | d M Y", $down['time']) . ". It has currently been down for " . $failafter . " seconds.";
126 | //$message = wordwrap($message, 70, "\r\n");
127 | mail($emailto, "ServerStatus: " . $server['name'] . " is down!", $message, 'From: ServerStatus <' . $emailfrom . '>' . "\r\n");
128 | $down['mailed'] = 'yes';
129 | file_put_contents($path, json_encode($down));
130 | }
131 | }
132 | }
133 |
134 | // This function is for posting the down array info
135 | function downinfo() {
136 | $array = array();
137 | $array['uptime'] = '
138 |