PDA

Bekijk Volledige Versie : Het grote NOC-Script support-topic



Randy
02/06/06, 20:39
Oke, op verzoek mogen jullie hier verder gaan met de NOC-vragen/antwoorden. (Randy hoopt nog steeds grote uitbereidingen te zien omdat het script al >100x de deur uitgegaan is)

DutchTSE
03/06/06, 02:57
*wacht ook op uitbereidingen!*

zodra onze NOC server draait ga ik eraan beginnen ;) (morgennacht online dus zondagmiddag ;))

WilloW
03/06/06, 10:45
*wacht ook op uitbereidingen!*

zodra onze NOC server draait ga ik eraan beginnen ;) (morgennacht online dus zondagmiddag ;))

Wat voor uitbreidingen zou je dan willen zien?

phreak
03/06/06, 11:21
@Randy, is het geen idee omdit in het zgn. Tutorial subforum te gooien?

mordor
03/06/06, 12:03
Iemand zou een uptime report erin bouwen zodat er kan gezien worden wat de uptime is per maand.

Jorem
03/06/06, 12:23
Weet iemand hoe ik de regels om en om een achtergrond kleur moet geven?

Dus zoals hieronder:
wit
grijs
wit
grijs etc

Denk dat het er dan mooier uitziet en de leesbaarheid wordt vergroot bij langere lijst.

Ik ben zelf meer thuis in het design en html gedeelte. Dus mocht iemand daar aanpassingen willen dan hoor ik het graag. Kunnen we gezamelijk een mooi uitziend NOC maken.

Dennie-DeTi
03/06/06, 13:21
Even een simpele oplossing voor het om en om een kleurtje geven:

In het bestand status.php moet je volgende code toevoegen:

Op regel 21 ( voor de query ):



$even = true; //Of false, afhankelijk van met welke kleur je wil beginnen


En in de while lus vervang je het echo gedeelte door:



if( $even ) {
$style = "style='background-color: red;'"; //Verander hier de kleur voor even rijen.
$even = false;
}else {
$style = "style='background-color: white;'"; //Verander hier de kleur voor oneven rijen.
$even = true;
}

echo "
<tr ". $style . ">
<td><a href=\"http://". $row["hostname"] ."/\" target=\"_new\">". $row["hostname"] ."</a></td>
<td>". $row["servicetype"] ."</td>
<td>". $row["load"] ."</td>
<td>". $status ."</td>
<td>". date("d-m H:i:s", $row["last_check"]) ."</td>
</tr>
";


Ik hoop dat dit is wat je bedoeld en dat je er wat aan hebt. Je kan het uiteraard ook met een class doen en dan in je css file de kleuren zetten.

- Dennie

gjtje
03/06/06, 13:41
Background-color op <tr>'s werkt niet in IE, moet je op <td> niveau doen.

RayManZ
03/06/06, 13:44
ik doe het ook op TR en dat werkt gewoon hoor in IE...

InterNetjes
03/06/06, 13:50
Weet iemand hoe ik de regels om en om een achtergrond kleur moet geven?

Dus zoals hieronder:
wit
grijs
wit
grijs etc

Denk dat het er dan mooier uitziet en de leesbaarheid wordt vergroot bij langere lijst.

Ik ben zelf meer thuis in het design en html gedeelte. Dus mocht iemand daar aanpassingen willen dan hoor ik het graag. Kunnen we gezamelijk een mooi uitziend NOC maken.



<?

$i=0;

$array=array(10,20,30,40,50,60,70,80,90,100);

echo "<table>";
foreach ($array as $value)
{
if (($i%2)==0) $color="********"; else $color="#DDDDDD";
echo "<tr><td style='background-color:".$color.";'>".$value."</td></tr>";
$i++;
}
echo "</table>";

?>

Jorem
03/06/06, 13:54
Thanks. helemaal super.

RayManZ
03/06/06, 13:54
## Bgcolor function :: bgcolor(string $color)
function bgcolor($color) {

if($color == "") {
$color = "eerste kleur";
} elseif($color == "tweede kleur") {
$color = "eerste kleur";
} elseif($color == "eerste kleur") {
$color = "tweedekleur";
}

return $color;
}


Handige functie... Plaatje in je whileloop

als
bgcolor($color);

dan waar je de kleur wilt hebben in je whileloop plaats je de $color variable. Simpel :)

mordor
03/06/06, 14:58
Raymond Karsten van Intronic IS jij hebt het mooi overzicht met de uptime report en zelfs een historie report ervan.

Zou je dit willen delen met ons?

Alerd
03/06/06, 15:28
@Randy, is het geen idee omdit in het zgn. Tutorial subforum te gooien?
Wat is hier een tut aan ?:)

Sander-
03/06/06, 15:29
Raymond Karsten van Intronic IS jij hebt het mooi overzicht met de uptime report en zelfs een historie report ervan.

Zou je dit willen delen met ons?


Volgens mij is dat allemaal nog handmatig...

crazycoder
03/06/06, 15:32
Volgens mij is dat allemaal nog handmatig...
Is een eitje om in een database te proppen.

Kan je gelijk zaken als load ook meenemen.

RayManZ
03/06/06, 18:52
Nee dat word netjes uit het database gehaald. Ik heb helaas nog geen tijd gehad de code even aan te passen zodat iedereen het kan gebruiken. Dus geduld mensen.

TiMMiEJ
03/06/06, 20:36
Uhm, als iemand mij het script wil sturen op timmiieej {at} hotmail {dot} com. Dan wil ik het script uitbreiden waar nodig, zoals uptime per maand enz...

Mark17
03/06/06, 22:33
verstuurd TiMMiEJ

mind
05/06/06, 00:42
Ik zal het goede voorbeeld dan maar geven :p Hier is mijn aangepaste versie van noc.php zonder exec() functie en met "toegangscontrole"...


<?php
// In $allow kun je de ip adressen of netwerken plaatsen die toegang hebben
// tot de load informatie van de server.
//
// Let op, het ip wordt als string behandeld. 192.168.1 geeft dus een
// match voor 192.168.1.*, 192.168.11.* en 192.168.111.*

$allow = "192.168.0. 127.0.0.1";
$filename = "/proc/loadavg";


header("Content-Type: text/plain");

$ips = explode(" ", $allow);
foreach ($ips as $ip) {
if (strpos($_SERVER['REMOTE_ADDR'], $ip) === 0) {
if ($fp = fopen($filename, "r")) {
$load = fgets($fp, 64);
fclose($fp);
} else {
$load = "-1";
}
$result = explode(" ", $load, 2);
echo $result[0];
exit;
}
}
echo "Access denied, please leave...";
?>


Wie volgt :D

mordor
07/06/06, 00:06
Niemand?

Mark17
07/06/06, 00:46
Ik ben met dingen aan het voorbereiden om een uitgebreidere versie gratis ter download aan te bieden. Deze is gebaseerd op dit script (enkel werkt deze net iets anders).

mordor
07/06/06, 00:49
Ik ben met dingen aan het voorbereiden om een uitgebreidere versie gratis ter download aan te bieden. Deze is gebaseerd op dit script (enkel werkt deze net iets anders).

Ik ben benieuwd naar je werk.

TiMMiEJ
07/06/06, 00:52
Ik ben bezig met wat aanpassingen, maar op het moment hebben we het erg druk.

ErikM
07/06/06, 01:23
Ik zal het goede voorbeeld dan maar geven :p Hier is mijn aangepaste versie van noc.php zonder exec() functie en met "toegangscontrole"...


<?php
// In $allow kun je de ip adressen of netwerken plaatsen die toegang hebben
// tot de load informatie van de server.
//
// Let op, het ip wordt als string behandeld. 192.168.1 geeft dus een
// match voor 192.168.1.*, 192.168.11.* en 192.168.111.*

$allow = "192.168.0. 127.0.0.1";
$filename = "/proc/loadavg";


header("Content-Type: text/plain");

$ips = explode(" ", $allow);
foreach ($ips as $ip) {
if (strpos($_SERVER['REMOTE_ADDR'], $ip) === 0) {
if ($fp = fopen($filename, "r")) {
$load = fgets($fp, 64);
fclose($fp);
} else {
$load = "-1";
}
$result = explode(" ", $load, 2);
echo $result[0];
exit;
}
}
echo "Access denied, please leave...";
?>


Wie volgt :D


hoort dit niet in een .htaccess file?

Randy
07/06/06, 01:26
hoort dit niet in een .htaccess file?

Huh, uit welke kroeg kom jij vandaan?

ErikM
07/06/06, 01:34
Huh, uit welke kroeg kom jij vandaan?

ik bedoel meer de toegangs controle je moet niet dingen in je script gaan doen die je ook al(en misschien sneller) op een ander niveau kan doen. en load zou ik zelf ook niet op die manier uitlezen maar met snmpd doen(OID .1.3.6.1.4.1.2021.10.1.3.1).

DutchTSE
07/06/06, 13:41
heb hem ook geinstalled, maar ik zit te stoeien met me cronjob. Heeft er iemand een goede cronjob lijn voor me? want de mijne werken niet.

Als ik:
php /*map*/*map*/servercheck.php

uitvoer geeft hij dat hij inc/config.php etc niet kan vinden met nog wat andere foutmeldingen (o.a. niet kunnen connecten naar db)

als ik php servercheck.php uitvoer (in de map zelf) dan werkt het wel, alleen dit is weer niet vanuit een cronjob uit te voeren.

snaaps
07/06/06, 13:59
/usr/local/bin/php -q -f /home/gebruikersnaam/domains/uw-domeinnaam/public_html/scripts/scripts.php > /dev/null

of:
GET http://www.domeinnaam.nl/map/script.php > /dev/null

DutchTSE
07/06/06, 14:36
/usr/local/bin/php -q -f /home/gebruikersnaam/domains/uw-domeinnaam/public_html/scripts/scripts.php > /dev/null

of:
GET http://www.domeinnaam.nl/map/script.php > /dev/null
volgens mij doet de bovenste het, zover ik net heb getest.

Ik zal binnenkort de hele package ff opnieuw maken, met een goede readme.txt etc :)

RayManZ
07/06/06, 16:50
Hier is versie 0.1

Het is allemaal nog heel erg beperkt. Ik wil eerst weten wat jullie precies zoeken. Moet er een hele layout omheen of moet ik hem zo kaal mogelijk laten?

Op dit moment maak hij alleen netjes het overzicht, mailt als er iets down is en hij bewaard alles netjes voor de komende jaren.

Suggesties, opmerkingen en vragen zijn welkom.

Er zit een readme.txt bij. Succes!

mordor
07/06/06, 18:03
Hier is versie 0.1

Het is allemaal nog heel erg beperkt. Ik wil eerst weten wat jullie precies zoeken. Moet er een hele layout omheen of moet ik hem zo kaal mogelijk laten?
[QUOTE]
Op dit moment maak hij alleen netjes het overzicht, mailt als er iets down is en hij bewaard alles netjes voor de komende jaren.


Waar bewaard hij dan de overzicht van de komende jaren?



Suggesties, opmerkingen en vragen zijn welkom.


Ik mis de Load functie en de sms functie of vind je die niet interresant?
Lijkt mij toch wel handige functies.
Is het misschien ook handig ter info om de hoeveelheid van dagen dat de server online is?

Ber|Art
07/06/06, 18:09
Is er ergens al een demo te zien?

DutchTSE
07/06/06, 18:14
Bugfixje:

in bestand add_servers.php de lijn include("config.php"); veranderen naar include("../config.php");

of config.php bestand in de admincp map zetten ;)

----------------------------------------------------
En nog 1:

Warning: Division by zero in /var/www/index.php on line 33
Warning: Division by zero in /var/www/index.php on line 33


Is er ergens al een demo te zien?
komt er nu aan :) ff me servers toevoegen en klaar

RayManZ
07/06/06, 18:15
Waar bewaard hij dan de overzicht van de komende jaren?

Ik mis de Load functie en de sms functie of vind je die niet interresant?
Lijkt mij toch wel handige functies.
Is het misschien ook handig ter info om de hoeveelheid van dagen dat de server online is?

Alles word opgeslagen in het database. Na elke nieuwe maand begint hij opnieuw met tellen. Dus alles blijft netjes bewaard. Een overzicht van afgelopen perioden uptime is dus simpel te maken.

Load functie zit er niet in. Wel als de load hoger dan 100 is dan geeft hij ook een down aan. Je ontvangt dus ook e-mail.

SMS is simpel op te lossen. www.gin.nl gebruik ik zelf ook en werkt perfect. Waarom moeilijk doen als het makkelijk kan?

@ BerArt: Voorbeeld heb ik niet. Misschien dat iemand het online kan zeten :) Zoveel werk is het niet.

@DutchTSE: Klein foutje inderdaad: Zal ik meenemen in de volgende versie als er wat meer dingen bij komen want voor zo'n klein dingetje ga ik niet even een nieuwe versie maken :) Ik had add_servers.php namelijk later verplaatst in de admincp map.

DutchTSE
07/06/06, 18:19
Is er ergens al een demo te zien?
http://noc.myh2oservers.com/

en een demotje :)

persoonlijk vind ik de versie van randy mooier (http://noc.myh2oservers.com/noc/), maar ik wacht rustig af wat dit gaat worden ;)

RayManZ
07/06/06, 18:22
Ideeën zijn welkom natuurlijk ;)

Ber|Art
07/06/06, 18:23
en een demotjeThx! :)

DutchTSE
07/06/06, 18:29
Ideeën zijn welkom natuurlijk ;)
De load functie, uptime in dagen functie, verschillende services (poorten) functie

nooit tegen mij zeggen dat ik met ideeen moet komen :D (2 ervan kun je uit randy zijn script halen btw)

RayManZ
07/06/06, 18:31
verschillende poorten zitten er express niet in... Een klant wil alleen zien of de server online is ja of nee. Niet wat er offline is.

Load weergeven moet niet zo'n probleem zijn lijkt me. even kijken :)

Ber|Art
07/06/06, 18:33
Ideeën zijn welkom natuurlijkVerschillende poorten monitoren
sms en e-mail meldingen na b.v x down meetingen
meten vanuit meerdere lokaties
output voor klanten


verschillende poorten zitten er express niet inMaar de hoster wil het mss wel zien? of is het alléén voor de klant bedoeld? soms is het voor een klant best makkelijk als hij weet dat alléén de MySQL server down is b.v.?

spoorweg
07/06/06, 18:36
Ik heb het script nog niet bekeken, maar slaat ie altijd de status op in de database of alleen bij downtime?

Als ie alles opslaat in de database lijkt me dit op den duur niet echt handig meer. Als je 5 servers hebt en hij controleert elke 5 minuten (5*12*24*365) dan heb je iets van 100.000 records per jaar. Zou het daarom niet beter zijn (snelheid?) om alleen deze info op te slaan als een server down is?

RayManZ
07/06/06, 18:36
ik zal kijk naar de mogelijkheden :)


Ik heb het script nog niet bekeken, maar slaat ie altijd de status op in de database of alleen bij downtime?

Als ie alles opslaat in de database lijkt me dit op den duur niet echt handig meer. Als je 5 servers hebt en hij controleert elke 5 minuten (5*12*24*365) dan heb je iets van 100.000 records per jaar. Zou het daarom niet beter zijn (snelheid?) om alleen deze info op te slaan als een server down is?

Hij maakt per server 1 record per maand aan. Dus per jaar voor 1 server 12 rows. :)

DutchTSE
07/06/06, 18:39
Maar de hoster wil het mss wel zien? of is het alléén voor de klant bedoeld? soms is het voor een klant best makkelijk als hij weet dat alléén de MySQL server down is b.v.?
Hier inderdaad dezelfde gedachte, dit script is primair voor onze noc pagina, waar zowel wij als de klant kunnen kijken ;)

Sander-
07/06/06, 19:43
Iemand al een idee voor als de NOC server down is? Of als de NOC server helemaal niks kan bereiken omdat daar een probleem is?

mordor
07/06/06, 20:46
verschillende poorten zitten er express niet in... Een klant wil alleen zien of de server online is ja of nee. Niet wat er offline is.

Load weergeven moet niet zo'n probleem zijn lijkt me. even kijken :)

Heb geprobeerd die load functie uit de script van Randy te halen maar het werdt een totale ramp dus ik krijg het niet voor elkaar.

Tevens de mannier hoe ik de komende maanden kan laten zien als geschiedennis (zoals jij het nu op je website hebt) krijg ik ook niet voor elkaar.

_arno_
07/06/06, 20:47
Over nagedacht wat gebeurt er als de server down is die het script draait?

spoorweg
07/06/06, 20:50
Over nagedacht wat gebeurt er als de server down is die het script draait?

Dan moeten we maar backup voor elkaar draaien he :W:

RayManZ
07/06/06, 20:53
dan heb je pech :) daarom moet je hem 2x draaien he... Een mede hoster is vast wel zo vriendelijk dit scriptje voor je te draaien lijkt me. Als jij hetzelfde voor hem doet.

@mordor: Heb je misschien het script van randy voor me. Kan ik even kijken hoe die er precies uitziet want ik ben wel benieuwd geworden.

ErikM
07/06/06, 21:27
wat moet de output van noc.php zijn? de laaste load value?
want ik krijg
PHP Notice: Undefined offset: 16 in /root/noc/noc.php on line 13

volgens mij kan je dan beter met pop() werken. heb je iig altijd de laatste.

ik zal ook is kijken of ik zoiets in perl en postgres/xml kan maken

RayManZ
07/06/06, 21:30
hm raar. Ik zal even kijk naar die pop() functie :)

t.bloo
07/06/06, 21:41
Over nagedacht wat gebeurt er als de server down is die het script draait?
Meten is een hobby van me, daarom bied ik bij deze (onder behoud van fair use policy) tien gratis micro accountjes aan om je script te kunnen draaien vanaf een andere server/netwerk.

wbakker-letsgoonline
07/06/06, 21:41
Nog een demo:

http://www.dark-network.net/server_status.php

ErikM
07/06/06, 21:51
hm raar. Ik zal even kijk naar die pop() functie :)

in php heet het array_pop() zie ik nu http://nl3.php.net/manual/en/function.array-pop.php

mind
08/06/06, 01:20
Ik vond de check voor een http server in het script van Randy niet helemaal geweldig. Vooral het ontbreken van een mogenlijkheid om op een adere poort te kunnen checken was een probleem voor mij. Ik heb nu zelf het onderstaande in elkaar geknutseld. Is dit iets, of werkt het icm. bepaalde webservers niet?



function check_LOAD($host, $port, $timeout = TIMEOUT) {

// Return: -1 -> Server responding normal (only no load info returned)
// -2 -> Server not responding

$load = -2;
$socket = @fsockopen($host, $port, $errno, $err, $timeout);
if ($socket) {
fwrite($socket, "GET /noc.php HTTP/1.0\r\nHost: ". $host ."\r\nUser-Agent: ServerCheck 1.0\r\n\r\n");
$http_response = fgets($socket, 16);
if (strpos($http_response, "200 OK")) {
$http_response = fread($socket,1024);
$load = trim(substr($http_response, strpos($http_response, "\r\n\r\n")));
} elseif (ereg("HTTP/[0-9].[0-9] ([0-9]{3})", $http_response)) {
$load = -1;
}
fclose($socket);
}
return $load;
}


Graag jullie kommentaar...

DutchTSE
08/06/06, 01:57
Ik heb er ook ff mee zitten spelen, ik heb nog nooit zo rigoreus geknipt en geplakt, maar volgens mij heb ik het toch goed gedaan:

DutchTSE presents:

randy zijn script + uptime percentage :D
http://noc.myh2oservers.com/noc/

WebXtrA-Rámon
08/06/06, 02:10
Goed werk, ziet er overzichtelijk uit!

Jorem
08/06/06, 02:11
Ziet er goed uit zo :).

ErikKosters
08/06/06, 02:16
je mag je tijd wel ff syncen of verbeeld ik me

DutchTSE
08/06/06, 02:25
je mag je tijd wel ff syncen of verbeeld ik me
Mijn server update 1x per 5 min ;)

Bijna voltooid met readme.txt, zodirect komt nieuwe versie hier te staan :)

edit: sorry het gaat nog ff duren, ik ga lekker door met verbeteren :p

Randy
08/06/06, 03:38
Je ging toch slapen zei je net op MSN, of heb je nachtmerries in PHP?

DutchTSE
08/06/06, 09:52
Je ging toch slapen zei je net op MSN, of heb je nachtmerries in PHP?
hehe nee ben ik ook ;)
had 4 regels gedaan en toen was uitbereiding klaar :D

ben 2:29 weggegaan op msn ;)

snaaps
08/06/06, 10:12
Ik heb er ook ff mee zitten spelen, ik heb nog nooit zo rigoreus geknipt en geplakt, maar volgens mij heb ik het toch goed gedaan:

DutchTSE presents:

randy zijn script + uptime percentage :D
http://noc.myh2oservers.com/noc/

zou je deze willen delen?, bij mij werkt nu de load weer niet en krijg vrage errors.

Sander-
08/06/06, 10:35
Ik zal zodra ik weer wat meer tijd heb eens kijken of het hele script even in een keurig class gestopt kan worden zodat bij elke update niet iedereen zijn complete implementatie weer hoeft aan te passen...

Maar ben atm ff heel druk dus dat laat nog even op zich wachten.

_arno_
08/06/06, 11:06
Meten is een hobby van me, daarom bied ik bij deze (onder behoud van fair use policy) tien gratis micro accountjes aan om je script te kunnen draaien vanaf een andere server/netwerk.
Lief aangeboden, maar ik wil het script niet draaien ;)

Vroeg me alleen af of mensen er al over nagedacht hadden.



Optie misschien is om het op 3 servers te draaien en vanuit je gui via xml feeds alles uit te lezen.
Dat is namelijk veel cooler.

IT-worX
08/06/06, 17:10
Interessant topicje...Ga ik ook even volgen ;-)

XBL
08/06/06, 18:51
Ook hier het script, aangepast met een mooiere layout en betere database layout (servers in eigen tabel (met een alias naam; zodat je wat meer info in een sms kwijt kan), services in eigen tabel, mensen die mail en/of sms moeten krijgen in eigen tabel). Ik moet nog uptime info inbouwen (stats dus; ook een mooie plot van de load meteen), zag alleen dat DutchTSE dit al had. Wil je misschien het betreffende stukje code delen?

Andere wijzigingen die ik heb gemaakt, is dat je nu ook een mail/sms ontvangt indien de server weer online komt (kan heel soms voorkomen dat de server precies weer online komt op het moment dat jij uit je bed wilt kruipen ;)).

We maken gebruik van Mollie, de functie die erin zit is dus gebouwd voor Mollie... Dat is natuurlijk helemaal om te bouwen.

Wat nog niet echt goed werkt: Als de server online komt, staat er in het mailtje/sms voor elke service 'Bla is online'. Dat moet nog gefixt worden.

leesmij.txt:

Hoi,

Dit is een simpel NOC/Monitor scriptje, gebaseerd op het script van Randy die het weer heeft gebaseerd op die van pcextreme. Dezelfde voorwaarden gelden: 'as is', ik draag geen verantwoordelijkheid voor opblazende servers en andere gevolgen uit dit script, het is open source en er zit geen support op.

Features:
* Alles lekker handmatig in de database kloppen (phpmyadmin raad ik aan ;))
* Per server services die gemonitord moeten worden in te stellen.
* Meerdere mensen in te stellen met telefoonnummer (sms) en/of e-mail voor ontvangen van storingsmeldingen.
* SMS+mail bij offline gaan.
* SMS+mail bij online gaan van server.

Installatie:
* dump.sql importeren naar een database (staat voorbeeld info in).
* in de directory waaruit de bestanden geserveerd worden die je ziet als je je ip in de browser bekijkt (/var/www/ bijv), een bestandje noc.php maken met daarin:
---------------------------
<?php
$uptime = exec("uptime");
$array = explode (" ",$uptime);
echo trim(str_replace(",","",$array[13]));
?>
---------------------------
* je eigen dingen in de database kieperen (zit weinig tot geen controle op juistheid!).
* cronjob toevoegen:
*/1 * * * * (/path/naar/php /path/naar/servercheck.php &> /dev/null 2>&1)
Bijv:
*/1 * * * * (/usr/local/bin/php /home/noc/public/servercheck.php &> /dev/null 2>&1)

Te doen:
* Uptime stats.
* In een mooie class gieten.
* Config naar database verhuizen.
* Uitgebreidere controle (oa. de status melding van de pagina).
* Controle paneel(tje).
* Meerdere controle punten (geen false positives als één van de noc servers eruit ligt/niet kan verbinden met een andere server).
* Zullen waarschijnlijk nog wel wat foutjes in zitten, die ik niet zo snel heb gevonden.

Allemaal onder voorbehoud dat niemand mij voor is met bovenstaande.

Om dat ik echt bier drink, kunnen Perfect Drafts naar:
Heereweg 73-A
1901MB Castricum

Jochem van Leeuwen
jochem at openhost dot nl

Jochem

Edit: demo op monitor.openhost.nl (http://monitor.openhost.nl).

IT-worX
08/06/06, 19:02
Jochem,

Heb jij er ergens een online voorbeeld van? bvb noc.openhost.nl werkt hiet ;)

XBL
08/06/06, 19:04
Jochem,

Heb jij er ergens een online voorbeeld van? bvb noc.openhost.nl werkt hiet ;)
Heb het er met een edit nog bij gezet: monitor.openhost.nl (http://monitor.openhost.nl).

Jochem

IT-worX
08/06/06, 19:10
Ziet er echt heel goed uit. Heb enkel nog een klein vraagje: werkt dit alles ook met Belgische GSM providers?

snaaps
08/06/06, 19:13
Mischien een leuk idee om een linkje te maken zodat de extra servicesen verschijn onder 1e service.

Ik bedoel, als je 25 servers hebt staan wordt die pagina wel erg lang!

IT-worX
08/06/06, 19:15
Snaaps: goed idee eigenlijk...
Ping naar IP => server is UP, klikken op link en pas daar dan de services...

spoorweg
08/06/06, 19:20
Om dat ik echt bier drink, kunnen Perfect Drafts naar:
Heereweg 73-A
1901MB Castricum

Ziet er erg netjes uit! Maar ondanks dat je 500 meter verderop woont hou ik de Perfect Draft lekker zelf :W:

mordor
08/06/06, 19:24
DutchTSE je bent goed bezig het ziet er goed uit met die uptime info erbij.

Kunnen wij deze al van je downloaden?

XBL
08/06/06, 20:14
Ziet er echt heel goed uit. Heb enkel nog een klein vraagje: werkt dit alles ook met Belgische GSM providers?Hangt af van je SMS provider. Bij Mollie is dit geen probleem (http://mollie.nl/informatie/bereikbaarheid/).


Mischien een leuk idee om een linkje te maken zodat de extra servicesen verschijn onder 1e service.Dat is inderdaad een goed idee. Uitklapbaar maken met Javascript of iets dergelijks. Of met AJAX, zodat je de load ook meteen verminderd op je MySQL.


Ziet er erg netjes uit! Maar ondanks dat je 500 meter verderop woont hou ik de Perfect Draft lekker zelf :W:
Waar woon je ;)? Dan kom ik em wel even leeg drinken ;).

Jochem

IT-worX
08/06/06, 20:19
Zou dit bvb ook gaan via www.mobileweb.be?

XBL
08/06/06, 20:28
Zou dit bvb ook gaan via www.mobileweb.be?
Ik denk het wel. Zolang er iets omheen te scripten valt (e-mail to sms of een http request), kan het in het script gebouwd worden. Dit kan, lijkt het, enkel met hun 'sms gateway' (die EUR 250,- setup + EUR 250,- per jaar kost).

Jochem

DutchTSE
08/06/06, 23:52
DutchTSE je bent goed bezig het ziet er goed uit met die uptime info erbij.

Kunnen wij deze al van je downloaden?
sorry was best wel werken van 10-21... ik ga hem ff uppen

http://www.myh2oservers.com/downloads/noc_v1.zip

Let erop dat de mijne geen sms functie ondersteund :) heb ik eruit gesloopt :D

Als er liefhebbers zijn voor de sms functie dan hoor ik het wel, ga ik hem maken :)

snaaps
09/06/06, 00:43
Snaaps: goed idee eigenlijk...
Ping naar IP => server is UP, klikken op link en pas daar dan de services...

Ik zit boordevol ideeen, echter ben zelf niet zo goed in php.
Begrijp het een heel klein beetje.

IT-worX
09/06/06, 03:23
snaaps: idem ;)

Kan mijn plan trekken in PHP en uit een bestaand script de fouten zoeken maar zelf schrijven...vooral ZONDER lekken... :(

Randy
09/06/06, 03:47
Type het in mensen, leuk voor de tussenuurtjes. (Al is het nu de derde nacht achter elkaar dat ik niet voor 3 uur in bed lig...)

IT-worX
09/06/06, 04:03
Is het de bedoeling enkel de servers te monitoren, of meteen een geheel NOC script ervan te maken (met bvb een pagina waar alle (on)voorziene storingen opstaan voor klanten, en dat deze ingegeven kunnen worden via een adminpage?

XBL
09/06/06, 08:09
IT-worX en anderen: Gooi al je ideeën hier maar neer, net als Randy heb ik ook nog wel tussenuurtjes waarin ik iets kan scripten. Misschien doe ik dan nog ideeën voor mezelf op ;).

Ik denk dat het wel interessant is als er inderdaad ook een functie komt waarmee er nieuws op de pagina gezet kan worden.

Jochem

DutchTSE
09/06/06, 08:36
IT-worX en anderen: Gooi al je ideeën hier maar neer, net als Randy heb ik ook nog wel tussenuurtjes waarin ik iets kan scripten. Misschien doe ik dan nog ideeën voor mezelf op ;).

Ik denk dat het wel interessant is als er inderdaad ook een functie komt waarmee er nieuws op de pagina gezet kan worden.

Jochem
Als er serieus interesse is om aan dit script verder te gaan werken denk ik dat het beter is als iemand de huidige versie herschrijft, er afspraken komen over welke variabelen/functies er gebruikt worden, en we het allemaal gaan 'plannen', zodat we niet elkaars versie's zitten te editten en beide een leuke nieuwe feature scripten, en de gebruiker dus moet kiezen tussen 2 verschillende scripts ;)

XBL
09/06/06, 09:02
Zit wat in. Sowieso is het verstandig de basis functies in een class te proppen, zodat je zelf de class makkelijk kan extenden. Als de toegevoegde functionaliteit dan erg handig blijkt, kan één iemand die in de default class stoppen. Lijkt me dus het handigst als 1 iemand het script beheerd.

Oja, de manier van uptime meten die jij gebruikt vind ik zelf niet zo heel netjes ;). Je mist de mogelijkheid om bijvoorbeeld per week (of welke tijd-hoeveelheid dan ook) de uptime weer te geven. Het is denk ik verstandiger de downtijd op te slaan, met datetime erbij. Ik zit dan alleen een beetje met het probleem van downtime die 's nachts plaats vind (en dus deels op de ene dag plaats vind en deels op de andere).

Je zou er ook voor kunnen kiezen om per check op te slaan; nadeel is dat je dan binnen een jaar met een controle per minuut op ruim een half miljoen records zit. Niet belachelijk veel (nog snel te doorzoeken als je de keys goed zet), maar het tikt wel erg rap aan als je enkele jaren aan het monitoren bent.

Jochem

DutchTSE
09/06/06, 11:04
Oja, de manier van uptime meten die jij gebruikt vind ik zelf niet zo heel netjes ;). Je mist de mogelijkheid om bijvoorbeeld per week (of welke tijd-hoeveelheid dan ook) de uptime weer te geven. Het is denk ik verstandiger de downtijd op te slaan, met datetime erbij. Ik zit dan alleen een beetje met het probleem van downtime die 's nachts plaats vind (en dus deels op de ene dag plaats vind en deels op de andere).

Ik heb zelf nauwelijks naar de code gekeken, heb alleen de 2 scripts samengevoegd tot een werkend geheel :) niet gekeken naar de manier waarop de uptime berekend wordt.

Verder is deze uptime per maand, dus elke maand wordt hij gereset, een overzicht welke maand welke uptime had is makkelijk te maken (select * from uptime where maand = '$maand', en dan uptime delen door aantal checks ;)

Active8
09/06/06, 11:37
@DutchTSE
Als ik op je website het noc script wil bekijken zegt ie:


Welkom op de Network Operations Control pagina van Eliveld Networks. Op deze pagina vindt u een status
overzicht van ons netwerk. Storingen worden automatisch per SMS bekend gemaakt aan de technische dienst.

Let op! Indien een van de servers slecht of niet reageert, wordt Eliveld Networks hier automatisch van op de hoogte gesteld.

Ik denk dat je nog het script van Randy effe moet aanpassen (ivm Eliveld tekst)

spoorweg
09/06/06, 12:36
Als er serieus interesse is om aan dit script verder te gaan werken denk ik dat het beter is als iemand de huidige versie herschrijft, er afspraken komen over welke variabelen/functies er gebruikt worden, en we het allemaal gaan 'plannen', zodat we niet elkaars versie's zitten te editten en beide een leuke nieuwe feature scripten, en de gebruiker dus moet kiezen tussen 2 verschillende scripts ;)

CVS Repository :)

XBL
09/06/06, 13:29
Verder is deze uptime per maand, dus elke maand wordt hij gereset, een overzicht welke maand welke uptime had is makkelijk te maken (select * from uptime where maand = '$maand', en dan uptime delen door aantal checks ;)
Dat was niet m'n punt, m'n punt was dat ik de downtime op alle manieren wil kunnen berekenen. Desnoods per uur. Dat betekend dus dat het op een andere manier moet worden opgeslagen als dat het nu gebeurd; daar was ik een beetje over aan het nadenken. Nog geen goede oplossing gevonden; zijn er mensen die hier wat meer ervaring/ideeën over hebben (het berekenen van het uptime percentage).

Jochem

Alerd
09/06/06, 13:31
de metingen opslaan, niet de uptime :)

De metingen zijn immers je gegevens.

mahel
09/06/06, 13:32
http://www.myh2oservers.com/downloads/noc_v1.zip



Als ik een server toevoeg krijg ik deze fout melding.


Fatal error: Call to a member function on a non-object in /home/admin/domains/hackz.nl/public_html/noc/admincp/add_servers.php on line 4

t.bloo
09/06/06, 13:38
Gebruik dan svn (subversion), dat is de opvolger van cvs.

XBL
09/06/06, 13:42
de metingen opslaan, niet de uptime :)

De metingen zijn immers je gegevens.
Maar dan zit je dus na een jaar met ruim een half miljoen records. Dat loopt dus aardig op. Ik heb geen (directe) ervaring met dergelijke databeesten; wil dat nog fatsoenlijk draaien na, zeg, 3 jaar? (anderhalf miljoen records).

edit: en dat is per server. Met 10 servers zit je dus op 15 miljoen records na 3 jaar (5 miljoen na 1 jaar).

Jochem

ErikM
09/06/06, 13:49
Maar dan zit je dus na een jaar met ruim een half miljoen records. Dat loopt dus aardig op. Ik heb geen (directe) ervaring met dergelijke databeesten; wil dat nog fatsoenlijk draaien na, zeg, 3 jaar? (anderhalf miljoen records).

edit: en dat is per server. Met 10 servers zit je dus op 15 miljoen records na 3 jaar (5 miljoen na 1 jaar).

Jochem

consolidation?

XBL
09/06/06, 13:55
consolidation?Niet genoeg ervaring met databasen (dus ik kan me niet zo heel veel voorstellen bij die opmerking, behalve dan dat je data samen voegt); maar de data moet wel gewoon beschikbaar blijven. Dus ook na een jaar moet je in principe nog de uptime kunnen berekenen van een bepaalde maand. Anders kan je net zo goed meteen de data per maand (oid) op gaan slaan, zoals met het script van DutchTSE gebeurd. Iets wat ik juist wil vermijden.

Jochem

Alerd
09/06/06, 13:56
Niet genoeg ervaring met databasen (dus ik kan me niet zo heel veel voorstellen bij die opmerking, behalve dan dat je data samen voegt); maar de data moet wel gewoon beschikbaar blijven. Dus ook na een jaar moet je in principe nog de uptime kunnen berekenen van een bepaalde maand. Anders kan je net zo goed meteen de data per maand (oid) op gaan slaan, zoals met het script van DutchTSE gebeurd. Iets wat ik juist wil vermijden.

Jochem
Sla de mislukte attempts op :)

Weet je automatisch dat de rest goed is :)

t.bloo
09/06/06, 13:58
Een miljoen records meer of minder maakt weinig uit als je er niets mee doet. Wil je er wel wat mee doen, zoals doorheen zoeken, dan moet je een index erop maken. Al die records daadwerkelijk gebruiken, zoals ze weergeven of iets mee berekenen, kost natuurlijk evenredig veel tijd. Tenzij je ze zoals hierboven gesuggereerd ook samenvoegt in deelstukjes.

snaaps
09/06/06, 14:06
iemand een id hoe je de servers kan rangschikken op id nummer?
Zie voorbeeld:
http://www.ccchosting.nl/netwerk/status/index1.php

De servers staan dus verkeerd gerangschikt.

spoorweg
09/06/06, 14:11
Gebruik dan svn (subversion), dat is de opvolger van cvs.
Ook prima, het ging mij om het idee :)

XBL
09/06/06, 14:30
iemand een id hoe je de servers kan rangschikken op id nummer?'ORDER BY' gebruiken in de queries. Bijvoorbeeld: 'ORDER BY `serverid`' of 'ORDER BY `ip`', etc ;).

@t.bloo: het is dus geen punt als er paar miljoen records staan (met primary key en foreign keys) en daaruit een aantal worden gehaald (die van een maand, bijvoorbeeld). In de zin van: het gaat zo geen eeuwen duren om te zoeken, waardoor MySQL enorm veel kracht gaat vragen van de server.

En dat 'samenvoegen in deelstukjes', hoe mag ik me dat voor me zien? Ik kan me er wel vaag wat bij voorstellen, maar verkloot je de data er dan niet volledig mee?

@Alerd: Ik voel me aardig dom :). Is inderdaad gewoon een mooiere oplossing.

Jochem

xYnta
09/06/06, 16:01
Fatal error: Call to a member function on a non-object in /home/xynta/public_html/noc/admincp/add_servers.php on line 4

--

Daarnaast wil ik graag het root path weten van cPanel. Volgens mij hebk em maar ik krijg em er niet op.

DutchTSE
09/06/06, 16:22
Fatal error: Call to a member function on a non-object in /home/xynta/public_html/noc/admincp/add_servers.php on line 4

--

Daarnaast wil ik graag het root path weten van cPanel. Volgens mij hebk em maar ik krijg em er niet op.
excuses moi, heb het gefixt, zou je hem nog een keer kunnen downloaden?

http://www.myh2oservers.com/downloads/noc_v1.zip


@DutchTSE
Als ik op je website het noc script wil bekijken zegt ie:


Ik denk dat je nog het script van Randy effe moet aanpassen (ivm Eliveld tekst)
je moet http://noc.myh2oservers.com gebruiken, ipv www.myh2oservers.com/noc ;)

subdomein noc gaat namelijk naar andere server dan domein zelf. Zal voor verwarring de ander ff weghalen :)

®on
09/06/06, 17:14
Daarnaast wil ik graag het root path weten van cPanel. Volgens mij hebk em maar ik krijg em er niet op.
/usr/local/apache/htdocs


http://www.myh2oservers.com/downloads/noc_v1.zip

Er zit nog een klein foutje in je .sql:

`ip` varchar(16) NOT NULL default '',
Moet zijn:

`ipadress` varchar(16) NOT NULL default '',

Never mind, sql verhaal is kul :D

Eenvoudiger is het om in add_servers.php iets aan te passen:

if($_POST) {
mysql_query("INSERT INTO `servers` (`ip`, `hostname`, `status`, last_check) VALUES ('".$_POST["ip"]."', '".$_POST["hostname"]."', '0', '".time()."');");
}
Waar "ipadress" staat even aanpassen naar "ip".

spoorweg
09/06/06, 19:00
OK, ik heb het hele script herschreven en alleen de layout gekopieerd, maar ik heb het nu werkend met een % uptime. Er wordt nu alleen informatie naar de database geschreven als de server down is.
Voorbeeld: http://dev.venatio.nl/noc/

snaaps
09/06/06, 19:43
Zodra wefact online is zullen wij proberen deze tool te implenteren in wefact.
(module)
Tevens wil ik ons script voor de mededelingen ook toevoegen zodat je een totale noc pagina krijgt.
http://www.ccchosting.nl/netwerk/status/index.php

xYnta
09/06/06, 20:54
http://www.noc.io/ (layout gedeeltelijk aangepast).

Mededelingen komen er straks boven te staan.

NDIS
09/06/06, 21:07
ziet er goed uit xYnta!

crazycoder
09/06/06, 21:26
Niet genoeg ervaring met databasen (dus ik kan me niet zo heel veel voorstellen bij die opmerking, behalve dan dat je data samen voegt); maar de data moet wel gewoon beschikbaar blijven. Dus ook na een jaar moet je in principe nog de uptime kunnen berekenen van een bepaalde maand. Anders kan je net zo goed meteen de data per maand (oid) op gaan slaan, zoals met het script van DutchTSE gebeurd. Iets wat ik juist wil vermijden.

Jochem
Waarom zou je na x tijd de dagen niet samen gaan voegen, bijvoorbeeld naar gegevens per dag/week/maand. Die schuif je vervolgens in een archief tabel en je smijt ze uit de tabel waar je realtime gegevens uit trek.

Volgens mij is er gewoonweg niemand die naar erg oude gegevens gaat kijken. Als je een grafiek met historie wil genereren dan lijkt het mij prima om dat per week te doen. Je kan jezelf verliezen in details, lijkt mij persoonlijk niet echt zinvol.

mind
09/06/06, 23:56
Sla de mislukte attempts op :)

Weet je automatisch dat de rest goed is :)
Sla alleen de status wissels op. Op deze manier kan je eenvoudig overzichten genereren van problemen en de duur van problemen bepalen zonder tig records door te worstelen. (2 per event is dan voldoende). Alleen de statuswissel is interessant, dus die sla je op in een database. (Database bouwen les 1: Sla nooit dubbele informatie op ;) )

Doe er je voordeel mee of niet natuurlijk :)

O, ja een paar regels extra code zijn ook wel handig om te voorkomen dat het script weer gestart wordt als het nog niet met de vorige check ronde klaar is. Anders loopt je Noc server wel heel snel vol met processen als er problemen zijn met bv. de netwerkverbindig. Alleen natuurlijk als je het script via cron start...

dirty fix:

$last = mysql_query("SELECT MAX(`last_check`) AS `last_check` FROM `servers`");
$fetch = mysql_fetch_array($last);

$diff = time() - $fetch["last_check"];
if ($diff < 30) {
exit;
}

ook het aanpassen van de regel om een ftp server te checken is wel handig.

Maak daar het volgende van:
$conn = ftp_connect($ip, 21, 5);
Andrs is de timeout 30 seconden en dat vertraagt wel heel erg.

IT-worX
10/06/06, 14:35
Zijn er anders mensen die zin hebben om een complete NOC page te maken voor andere servers (gratis uiteraard)? BVB dit script (uitgezonderd de load etc) gecombineerd met een smokeping? en dat op een eigen domein laten draaien?

Is ook maar een idee'tje...Heb anders al een leuk domeintje ervoor :)

spoorweg
10/06/06, 14:38
Zijn er anders mensen die zin hebben om een complete NOC page te maken voor andere servers (gratis uiteraard)? BVB dit script (uitgezonderd de load etc) gecombineerd met een smokeping? en dat op een eigen domein laten draaien?

Is ook maar een idee'tje...Heb anders al een leuk domeintje ervoor :)

Zoiets als http://host-tracker.com/ bedoel je?

IT-worX
10/06/06, 15:00
host-tracker.com trekt inderdaad wat op wat ik in mn hoofd heb. Echter vind ik daar bvb geen smokeping in. Ook de snelheid van de site ligt aan de trage kant?

Kris

spoorweg
10/06/06, 15:15
host-tracker.com trekt inderdaad wat op wat ik in mn hoofd heb. Echter vind ik daar bvb geen smokeping in. Ook de snelheid van de site ligt aan de trage kant?

Kris

Gelukkig maken ze voor het kijken of de servers up zijn gebruik van zo'n 50 externe servers. Maar geen smokeping daar nee. Ik wil best helpen met een eigen NOC pagina, maar dan vooral de NOC zelf want smokeping ken ik niet zo goed.

IT-worX
10/06/06, 15:56
50? Zijn er 26, waarvan er een paar platliggen (http://host-tracker.com/our-monitoring-network/ ) ;)

Info over smokeping kan je vinden op http://oss.oetiker.ch/smokeping/ .
Anders nog ideeën voor op een NOC page ofzo?

spoorweg
10/06/06, 16:01
50? Zijn er 26, waarvan er een paar platliggen (http://host-tracker.com/our-monitoring-network/ ) ;)
Ehm, ook goed. Het was maar een gokje :rolleyes:


Info over smokeping kan je vinden op http://oss.oetiker.ch/smokeping/ .
Had ik ook al gevonden jah, zal er eens naar kijken.


Anders nog ideeën voor op een NOC page ofzo?
Als het echt goed moet zijn natuurlijk controle vanuit meerdere netwerken en datacenters, snelheid, uptime (%), melden aan meerdere mensen. Verder kan ik zo snel ook niet echt iets bedenken.

IT-worX
10/06/06, 16:02
Misschien beter een apart topic hiervoor openen, en dit topic niet beter vervuilen... Even uitkijken, zometeen is ie geopend:)

Randy
10/06/06, 16:15
Als je een dedicated server nodig hebt, heb nog een Raq4 met FC4/Rackstar OS in het DC hangen. Ding serveert enkel een streampje voor de lokale omroep hier, dus kan nog wel wat hebben.
Anders ook nog wel 2 Raq 550's met FC4/Rackstar OS, komen eind deze maand online in verschillende netwerken (offertetraject loopt hier)

Herbert
10/06/06, 20:37
Ik heb het script gedownload..
Het script draaide op mijn server, de cronjob stond op 5 min.
Vreemd genoeg werden elke 5 minuten de ftp verbindingen verbroken door de servercheck.php
Nu ik de cronjob stop heb gezet gebeurd dat niet meer..
Waar dit aan ligt moet ik nog uitzoeken, mischien hebben er meer last van?

SebastiaanStok
10/06/06, 21:22
Het script controleerd ook de FTP, dus een verbinding is normaakl.
Maar bedoel je dat hij alle verbindingen verbrekt?!

_arno_
10/06/06, 21:34
misschien de resource opgeven bij ftp_close() ?

Herbert
10/06/06, 22:02
Het script controleerd ook de FTP, dus een verbinding is normaakl.
Maar bedoel je dat hij alle verbindingen verbrekt?!
Ja hij verbrekt de verbindingen van de users die zijn ingelogd met FTP

Offtopic: verbrekt = achterhoeks, verbreekt is nederlands :)

SebastiaanStok
11/06/06, 11:17
Zware dag gehad en het was laat ;)

Gebruik je toevalig ProFTPd? :X

Herbert
11/06/06, 13:36
Zware dag gehad en het was laat ;)

Gebruik je toevalig ProFTPd? :X
Ja die gebruik ik.

SebastiaanStok
11/06/06, 14:12
Misschien dat het er iets mee te maken heeft maar heb ik is een keer gelezen dat hij nogal moelijk kan gaan doen.

crazycoder
11/06/06, 14:16
Misschien dat het er iets mee te maken heeft maar heb ik is een keer gelezen dat hij nogal moelijk kan gaan doen.
Als het niets meer of minder is dan een normale ftp connect zou het geen enkel probleem mogen zijn.

Dus:
- script controleren
- ProFTPD updaten

Als het probleem blijft bestaan een bugreport invullen.

mrleejohn
11/06/06, 22:05
Al langer zitten pielen met vanalles. Dus ik dacht.... mail Randy maar eens of ik dat noc-script ook kan krijgen.... Heb (nog) niks gehoord. Moet ook zegen dat ik niet snap dat iedereen er een database aan moet hangen.... heb ik helemaal geen zin in. Vandaag eens met Nagios gaan spelen.... en idd.... gaaf... en geen mysql. Liep wel tegen nogal wat haken en ogen aan. Omdat ik op Centos met selinux werk, ging het niet allemaal vanzelf. Zie http://www.mrleejohn.nl/nagios.htm ... wie weet heeft iemand er wat aan....

Randy
12/06/06, 11:32
Hoi,

Gisteren toevalig iets te ijverig geweest met Webmail en de omruiming van wat mail.
Zie bijlage;

IT-worX
12/06/06, 13:04
Hoi,

Gisteren toevalig iets te ijverig geweest met Webmail en de omruiming van wat mail.
Zie bijlage;
Dit script kan je gratis downloaden, zonder probs?

Randy
12/06/06, 13:19
Ja, zo te downloden.

Databeest (mr. LeeJohn);
Je zou MySQL eruit kunnen halen en met een array kunnen werken, zal ook geen probleem zijn. Weet niet hoe groot je serverpark is, maar wij monitoren 70+ servers op 3 locaties, dus dan wordt een array ietwat lastig. MySQL kunnen we gewoon koppelen met NOC-Beheer.

WilloW
12/06/06, 13:29
Ja, zo te downloden.

Databeest (mr. LeeJohn);
Je zou MySQL eruit kunnen halen en met een array kunnen werken, zal ook geen probleem zijn. Weet niet hoe groot je serverpark is, maar wij monitoren 70+ servers op 3 locaties, dus dan wordt een array ietwat lastig. MySQL kunnen we gewoon koppelen met NOC-Beheer.


je vergeet wel te vermelden dat wij Nagios voor monitoring gebruiken wat regstreeks meldingen en andere shit op private IRC kanaal post.

noc ding wat van ons online staat is meer een testje wat ooit eens gemaakt is wordt niet echt gebruikt

mrleejohn
12/06/06, 14:25
We hebben nu 25 servers op ons lan (cluster, file, print, web, enz). Dan is service-monitoring nog wel te overzien. Maar we gaan wellicht met andere organisatie samenwerken.... en dan is een service-monitor heel prettig.

En een mysql-db-tje meer of minder mag de pret niet drukken. Maar ik let er wel op.

Maar ik heb nu wat met Nagios gespeeld.... en het bevalt me heel goed. Selinux werkte even wat tegen, maar dat zou met een noc-script ook zijn. Beetje pielen wel met de configs van de hosts, maar dat gaat prima. Denk dat ik het dus bij Nagios hou.

zabulus
13/06/06, 16:34
Zeer interessant script!
Ben het zelf ook even aan het proberen, maar er zit een probleempje met mijn cron job denk ik.
*/2 * * * * /home/admin/domains/zaboe.be/public_html/server/servercheck.php
*/2 * * * * http://www.zaboe.be/server/servercheck.php

Maar hij update niet :/ (Gebruik DirectAdmin)
Ook de server load, hij zet in de database een deel van html code van index.php

Iemand een idee?

spoorweg
13/06/06, 16:40
*/2 * * * * /home/admin/domains/zaboe.be/public_html/server/servercheck.php
*/2 * * * * http://www.zaboe.be/server/servercheck.php


Probeer eens:

*/2 * * * * php /home/admin/domains/zaboe.be/public_html/server/servercheck.php

zabulus
13/06/06, 17:05
mm, krijg een mail van deamon terug

/bin/sh: line 1: php: command not found

WilloW
13/06/06, 17:11
mm, krijg een mail van deamon terug

/bin/sh: line 1: php: command not found


Je moet even kijken waar de php binary staat als die er is anders moet je gewoon even iets met wget of lynx gaan doen.

/usr/bin/php -v misschien dat dit werkt? mocht dit beetje output geven met wat versie nummers van je php dan kun je dit path naam gebruiken ..

zabulus
13/06/06, 17:28
/bin/sh: line 1: /usr/bin/php: Onbekend bestand of map
geef hij terug, maar ik denk dat het iets met DA te maken heeft.

*edit
hij werkt
moest zijn: /usr/local/bin/php /home/admin/domains/zaboe.be/public_html/server/servercheck.php

en include in php stond ook nog op "./inc/config";

iemand een idee waarom die load niet werkt?

XBL
13/06/06, 18:30
iemand een idee waarom die load niet werkt?Nee, want je verteld helemaal niets over je situatie. Misschien heb je in de webroot van de betreffende server (bij DA server volgens mij /var/www/html/) niet het benodigde bestandje staan (lees de leesmij.txt even)? Het is allemaal gissen...

Jochem

Randy
13/06/06, 18:56
Even een noc.php aanmaken in de /var/www/html



<?php
$uptime = exec("uptime");
$array = explode(" ",$uptime);
echo trim(str_replace(",","",$array[13]));
?>

zabulus
13/06/06, 18:57
Hoe ik vertel niets over mijn situatie? Als je een paar posts terug kijkt zag je ook dat ik DA gebruikte. En inderdaad, de file stond niet in de map html, dat was het probleem.
(ik had de readme gelezen btw ;) )

bedankt Randy, handige tool!

XBL
13/06/06, 19:41
Hoe ik vertel niets over mijn situatie?Je zegt: "en waarom doet m'n load het niet?" Dat kan allerlei redenen hebben, waarbij de eerste hoogst waarschijnlijk was dat je geen noc.php had aangemaakt (wat gewoonweg in de readme stond). Tweede had kunnen zijn dat je een error kreeg; als dat zo is wil ik (en andere die je helpen) graag de error horen. Of misschien kreeg je wel een andere fout melding.

Kortom: beetje info wat je al had geprobeerd, welke foutmeldingen je kreeg, etc is altijd gewenst als je een vraag stelt op een forum. En staat ook wel zo netjes, aangezien het anders staat alsof je alles maar direct vraagt zonder enig onderzoek (had je wel wat onderzoek gedaan, had je gelezen dat er nog een noc.php gemaakt moest worden).

Wijze les voor de volgende keer :).

Jochem

zabulus
13/06/06, 22:58
Als ik een error kreeg had ik hem wel gepost hoor..
En je leest mijn post niet, ik had wel een noc.php aangemaakt hij stond gewoonweg in de verkeerde dir (niet in html, want bij DA is dat zo blijkbaar)
Enja, echt veel stond er niet in de readme, ik heb wel degelijk onderzoek verricht...
Anyway, iedereen moet hier precies z'n gelijk proberen te halen, dus ik denk dat we er nu beter mee ophouden

_arno_
14/06/06, 11:30
even kleine comment?:


function sendsms($sms, $afzender, $sms_user, $sms_pass, $sms_url){
$select = mysql_query("SELECT `telefoon` FROM `ontvangers`");
while($row = mysql_fetch_array($select)){
$telefoon .= $row["telefoon"].",";
}
$sms = urlencode($sms);
$to = urlencode($telefoon);
$$afzender = urlencode($afzender);
$url = $sms_url."?username=". $sms_user ."&password=". $sms_pass ."&afzender=". $afzender ."&ontvanger=". $to ."&message=". $sms;
$result = implode ('', file($url));
}
$$afzender = urlencode($afzender);
moet
$afzender = urlencode($afzender);
zijn ?

Als ik dit verkeerd zie kun je me uiteraard gewoon negeren ;)

Even nog een ander idee?

Je verkrijgt nu alleen de load vanaf andere servers, en het mysql checken etc doe je vanaf je 'lokale' server.
Is het niet logischer om alles vanaf de externe server te laden, ik vraag me af in hoevere een fsockopen altijd goed valideerd.

Keizer
14/06/06, 14:47
Ik heb ook wat foutjes:



$content = trim(fgets($fp));
if($content > 1){

// Load is hoger dan 5 waarschuwing sms sturen naar de beheerder


Load is hoger dan 1, status is Kritiek, maar ik krijg geen e-mail? Ik ga er van uit dat het niet alleen voor sms is maar ook voor de mail. En ja ik heb de e-mail-adressen-array juist aangepast

Verder krijg ik van 1 van me servers geen load terug, terwijl het bestandje er goed staat in var/www/html met de goeie inhoud. Ook krijg ik geen errors en zijn de 3 portchecks op die server ook prima verlopen... Iemand?

Edit: bij de load van betreffende server in de db: <br />

Randy
14/06/06, 15:07
Verder krijg ik van 1 van me servers geen load terug, terwijl het bestandje er goed staat in var/www/html met de goeie inhoud. Ook krijg ik geen errors en zijn de 3 portchecks op die server ook prima verlopen... Iemand?

Kan zijn dat de server geen 'exec()' commando's slikt, of dat je [13] even moet wijzigen naar bijvoorbeeld [16]. Probeer anders onderstaande noc.php


<?php
// In $allow kun je de ip adressen of netwerken plaatsen die toegang hebben
// tot de load informatie van de server.
//
// Let op, het ip wordt als string behandeld. 192.168.1 geeft dus een
// match voor 192.168.1.*, 192.168.11.* en 192.168.111.*

$allow = "192.168.0. 127.0.0.1";
$filename = "/proc/loadavg";


header("Content-Type: text/plain");

$ips = explode(" ", $allow);
foreach ($ips as $ip) {
if (strpos($_SERVER['REMOTE_ADDR'], $ip) === 0) {
if ($fp = fopen($filename, "r")) {
$load = fgets($fp, 64);
fclose($fp);
} else {
$load = "-1";
}
$result = explode(" ", $load, 2);
echo $result[0];
exit;
}
}
echo "Access denied, kick -> ban -> sterf!";
?>

Keizer
14/06/06, 15:18
Ik heb idd zelf nog op die server disable_function="exec" toegevoegd aan php.ini, op aanwijzingen van snaaps :p

what about the e-mail?

snaaps
15/06/06, 11:36
even een paar probleempjes:

S'nachts bij het backuppen gaat het mis, wellicht doordat de serverload te hoog is van de servers. (wil nog wel eens uitlopen naar 4+)
Hierdoor geeft mijn statistieken nu en uptime van 99,9xxx%
(heb dit handmatig maar ff op 100% gezet)

Heeft dit nu te maken omdat de serverload te hoog is?
(waar kan ik dit aanpassen?)

Of dat de server niet reageerden?

WilloW
15/06/06, 11:40
even een paar probleempjes:

S'nachts bij het backuppen gaat het mis, wellicht doordat de serverload te hoog is van de servers. (wil nog wel eens uitlopen naar 4+)
Hierdoor geeft mijn statistieken nu en uptime van 99,9xxx%
(heb dit handmatig maar ff op 100% gezet)

Heeft dit nu te maken omdat de serverload te hoog is?
(waar kan ik dit aanpassen?)

Of dat de server niet reageerden?

Je zou iets kunnen maken wat snachts tussen bepaalde tijd geen load checkt. Uiteraard wel de rest anders zou je nooit weten als je server plotseling snachts echt uit gaat.

snaaps
15/06/06, 11:44
Dat is wel een optie idd.

Mijn vorige noc systeem draaide de serload appart die snachts tussen 3 en 5 uur niet werd gecontroleerd.
Echer ik heb geen flauw idee hoe ik dit script daarop moet aanpassen.

Keizer
15/06/06, 12:04
de cronjob aanpassen kan toch?

nu is et geloof ik zoiets (ik ben naab hoor dus neem niets over)

*/2 * * * * /usr/bin/php -r -f map/naar/je/servercheck.php

als je daar van maakt

*/2 5-3 * * * /usr/bin/php -r -f map/naar/je/servercheck.php

dan gaat ie toch alleen om de 2 minuten vanaf 5 uur 's ochtends tot 3 uur die nacht erop checken?

ik kan et mis hebbe hoor maar volgens mij moet et zo lukken

WilloW
15/06/06, 12:06
de cronjob aanpassen kan toch?

nu is et geloof ik zoiets (ik ben naab hoor dus neem niets over)

*/2 * * * * /usr/bin/php -r -f map/naar/je/servercheck.php

als je daar van maakt

*/2 5-3 * * * /usr/bin/php -r -f map/naar/je/servercheck.php

dan gaat ie toch alleen om de 2 minuten vanaf 5 uur 's ochtends tot 3 uur die nacht erop checken?

ik kan et mis hebbe hoor maar volgens mij moet et zo lukken


Ja gaat goed joh... oeps server plat... gebruik dan gewoon geen servercheck

Keizer
15/06/06, 12:08
heb je ook zin om met een serieuze reaktie te komen, hier heeft niemand wat aan namelijk

ErikM
15/06/06, 12:39
misschien is kijken naar de processen en de prioriteiten daarvan, of de timeout van het controleren misschien dat die te hoog staat. en load kan je ook via snmp opvragen. en dat de load boven de 4 al een probleem is wil er bij mij niet echt in. ik heb ook monitor scripts van load gezien en tot een load van 300+ ging het gewoon nog goed. zie plaatje:
http://haas.oezie.org/rrd/graph_image.wit.png

Keizer
15/06/06, 16:04
Daar ben ik het niet mee eens. Ik wil in 1 oogopslag kunnen zien waar meer wordt verbruikt dan normaal. Vervolgens op SSH inloggen op de betreffende server en dan via top kijken wat de boel verziekt.

Wat wel handig is misschien om de servers te clusteren... dat je gewoon ziet of je server online of offline is, en als je dan op het plusje ([+]) voor de server drukt dat er dmw een javascriptje de andere poorten onderweg schuiven en daar ook tal keer online of offline staat.

Wel wat werk, en helaas kan ik dat niet :rolleyes:

SebastiaanStok
15/06/06, 16:13
Ik wil niet opscheppen maar ik heb dit binnen een uur gemaakt, het javascript dan he.

Het jammere is dat ik nu geen tijd heb anders had ik wel even wat gepost.

klasje.be
15/06/06, 23:56
Ik zal als nog niemand zo iets gemaakt heeft dat tegen zondag wel maken.
(zaterdag examens gedaan, tis daarmee)
Is voor mij ook kinderspel ;-)
Voorbeeld:

<script language="javascript">
function showMenu(id) {
if(document.getElementById(id).style.visibility == "hidden") {
document.getElementById(id).style.position = "static";
document.getElementById(id).style.visibility = "visible";
}
else {
document.getElementById(id).style.visibility = "hidden";
document.getElementById(id).style.position = "absolute";
document.getElementById(id).style.left = -100;
document.getElementById(id).style.top = -100;
}

document.getElementById('mainTable').height = '100%';
}
</script>

<table width=100% cellpadding=0 cellspacing=0>
<tr><td width=5 class="menuTitle">&nbsp;<a style="cursor: s-resize;" onClick="showMenu('wereld')">#</a>&nbsp;</td>
<td><a style="cursor: s-resize;" onClick="showMenu('wereld')"><b>Wereld</b></a></td></tr>
</table>
<table width=100% cellpadding=0 cellspacing=0 ID="wereld" style="position: absolute; left: -100; top: -100; visibility: hidden;>
<tr><td><a href="index.php">Serveruptimeblablabla</a></td></tr>
</table>

Ik heb er zelfs meteen een cursorverandering ingescript, dat het een openen pijltje wordt, dan is dat ook wat duidelijker :-p
Veel plezier met de codes.

Er kan best nog ajax ingebouwd worden enzo, maar heb maar snel ff het javascript gedeelte gemaakt!

NDIS
16/06/06, 21:36
Werkt niet echt volgens mij.

@ firefox doet hij helemaal niks
@ IE doet hij het 1x, en daarna kun je het niet meer wegklikken etc.

SebastiaanStok
17/06/06, 10:33
Dat is een bekend probleem, je moet weten welke momenteel visible is, die moet je dan hidden.

Ik was even vergeten dat het iets moelijker is dan het lijkt :)
Een vriend van mij heeft zo iets gemaakt (met hulp van mij :D ) Als online is zal ik het even vragen ;)

SebastiaanStok
18/06/06, 16:02
Zoals belooft:

Javascript:


function findObj(theObj, theDoc)
{
var p, i, foundObj;

if(!theDoc) theDoc = document;
if((p = theObj.indexOf("?")) > 0 && parent.frames.length)
{
theDoc = parent.frames[theObj.substring(p+1)].document;
theObj = theObj.substring(0,p);
}
if(!(foundObj = theDoc[theObj]) && theDoc.all)
{
foundObj = theDoc.all[theObj];
}
for (i=0; !foundObj && i < theDoc.forms.length; i++)
{
foundObj = theDoc.forms[i][theObj];
}
for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++)
{
foundObj = findObj(theObj,theDoc.layers[i].document);
}
if(!foundObj && document.getElementById)
{
foundObj = document.getElementById(theObj);
}

return foundObj;
}

isCollapsed = null;
function Collapse(objectName)
{
object = findObj(objectName);

if(object.className == 'subtabelh')
{
object.className = 'subtabelnh';
if(isCollapsed === null)
{
isCollapsed = object;
}
else
{
isCollapsed.className = 'subtabelh';
isCollapsed = object;
}
}
else
{
isCollapsed.className = 'subtabelh';
isCollapsed = null;
}
}


CSS


.subtabelh
{
display: none;
}
.subtabelnh
{
background-color: #cccccc;
border-bottom: 1px solid #000000;
/*display: none;*/
}


Veel succes ;)

Hij laat ALTIJD maar eentje zien per keer.

starfix
18/06/06, 18:01
Mooi script. Ik gebruik hem nu ook.

Alleen een bug in PHP met fsockopen, de timeout werkt niet... Iemand hier een oplossing voor?

Keizer
18/06/06, 20:47
LOL nice man rollerscapes, ik zal es proberen.. misschien een idee om dit in een nieuwe 'release' van et gezamenlijke script te stoppen? ik kan vast wel meer dingen verzinnen ;)

he ik weet ik ben hier niet zo goed in:P

ik heb in index ff ?> <script language=javascript> blaat </script <? gezet

en in css die 2 classes.. en nou?

rvingen
18/06/06, 21:43
Mooi, Als iemand hem wil maken dat mensen zich kunnen aanmelden voor monitoring dan wil ik we 2 server's beschikbaar stellen om voor meer mensen dit te checken !

Server 1 - NL
Server 2 - UK

Roy

IT-worX
18/06/06, 21:54
Idem hier,

Server 1 - LCL Brussel
Server 2 - InterXion Brussel

Keizer
18/06/06, 22:00
Idem hier, Novaxxes Schiphol-Rijk

IT-worX
18/06/06, 22:06
http://www.webhostingtalk.nl/scripting-techniek-beveiliging/98036-controlesite-idee.html

Dat was waar ik hier mee naartoe wou ;)

klasje.be
19/06/06, 15:22
Ik zal mij er mee bezig houden met zo een controle script te maken.
Dat leden hun eigen site veilig kunnen aanmelden.
Maar als er andere mensen dit ook willen doen: be my guest!
Ik heb het nog even druk maar zal mijn best doen.

Hoe moet het systeem juist zijn?
Alle controleerbare sites op 1 pagina of beter per user based?
Zijn alle stats voor iedereen zichtbaar?
Mss beter wel?

Verder ben ik het noc.php script aan het aanpassen dat het op 2 manieren werkt, via exec en de andere (hierboven ergens vermeld).

Mvg,
www.gamecoll.com

Keizer
19/06/06, 16:12
LOL nice man rollerscapes, ik zal es proberen.. misschien een idee om dit in een nieuwe 'release' van et gezamenlijke script te stoppen? ik kan vast wel meer dingen verzinnen ;)

he ik weet ik ben hier niet zo goed in:P

ik heb in index ff ?> <script language=javascript> blaat </script <? gezet

en in css die 2 classes.. en nou?

hier waren we ontopic gebleven hè...

iemand een oplossing?

Randy
19/06/06, 16:17
Denk dat iemand even een nieuwe package moet maken met alle wijzigingen.

Dieter@be
20/06/06, 13:34
indien jullie nog op zoek zijn naar ideeen, dan heb ik er hier 2:
1) layout scheiden van php code mbhv een template parser, http://templatepower.codocad.com bvb is een goeie en eenvoudige daarvoor

2) om nog even verder te gaan op het idee om het script te draaien op meerdere locaties om te verzekeren tegen uitval van de "noc-server": een soap clientje schrijven (gaat ook in php) zodat de noc-scripts met elkaar kunnen synchroniseren als ze bvb merken dat hun laatste meting enkele uren geleden is (=server is platgegaan)

Keizer
20/06/06, 14:57
wie o wie repacked de nieuwste versie even :)

W3SERVE
20/06/06, 15:25
Inderdaad, zou iemand het script online kunnen plaatsen of naar mij kunnen e-mailen?

Keizer
22/06/06, 12:55
Vrijwilligers? of is het afgestorven

burp2001
22/06/06, 12:55
Wat ik lees is dat er vanaf meerdere pop's gechecked wil worden ?

zoja, meld ik mijn aan vanaf Rotterdam Luna.nl Datacenter.

SebastiaanStok
22/06/06, 13:04
"Vrijwilligers? of is het afgestorven" :D Leuke word speeling :p
Je bedoelt uitgestorven ;)

Kennelijk is idereen ergens anders mee bezig, daarom maak ik zelf iets maar dit kan ik helaas niet delen omdat er een compleete systeem achterhand wat op de diensten van Rollerscapes is afgestemt :)
(Moet eerst nog een NOC-Server regelen :X )

starfix
26/06/06, 15:32
<?php
$uptime = exec("uptime");
$array = explode (" ",$uptime);
if ( trim(str_replace(",","",$array[13])) == "" ){
echo trim(str_replace(",","",$array[12]));
}else{
echo trim(str_replace(",","",$array[13]));
}
?>

in noc.php is beter, aangezien als je server minder dan 24 uur online is je geen load krijgt te zien omdat er een spatie te weinig is.

ErikM
26/06/06, 15:52
<?php
$uptime = exec("uptime");
$array = explode (" ",$uptime);
print_r (str_replace(",","",$array[count($array)-3]));
?>

of zo, aangezien je weet dat de 1 min load altijd de 3e van achter is.

ik ben zelf ook is aan het knutselen geweest met perljax http://haas.oezie.org/cgi-bin/noc.pl wel heel erg traag.

starfix
27/06/06, 01:16
Op verlenging van het "cross site checking": http://www.webhostingtalk.nl/scripting-techniek-beveiliging/98987-cross-site-checks-noc-vanaf-andere-locaties.html#post732207

DelTa
04/10/09, 05:10
Heeft iemand t meest up-to-date noc script ergen staan?

Ik zou hier graag mee willen experimenteren!