Server monitoring

Последната седмица или две имам доста проблеми с един сървър. Положението е такова, че поставих още един сайт на него освен този, който се хостваше например. Сайта представлява авторска система за ротиране на банери, която засега е единствено за вътрешно ползване на местата, където рекламирам brutali.com (някои не малки български торент сайтове и гейм форуми). В пиковите часове заявките към тази система за банери са доста и списъка с кънекции към уеб сървъра не е никак къс. Това го натоварва и понякога зависва или качва много loads. Предприех следните стъпки:

1) Ъпгрейд на RAM паметта – даде много добър ефект. Понижи много натоварването на сървъра, но уви не реши проблема. Понякога apache2 забива и уж върви, но сайтове не показва, което продължи да не ми е особено приятно : )

2) Написах си мониторинг на сървъра, който помогна с две неща:
– Ако натоварването е по-високо от нормалното, то значи има някакъв проблем на лице (забили дъщерни процеси на apache-то или някой зависнал cron job) и когато го забележа бягам на сървъра да го оправям.
– Ако натоварването е нулево, явно apache-то е зависнало и бягам да го рестартирам.

Ето и скрийншот от самия мониторинг: линк

3) По идея на колегата ми в host.bgЙордан Георгиев – написах едно скриптче за мониторинг на уеб сървъра. Метода му на работа е да проверява на всеки 2 минути дали се отваря някой от сайтовете разположени на сървъра и ако не се отваря да рестартира (ако е забило) или да го стартира (ако е спряло поради някаква причина) apache-то. От 2 дни наблюдението ми показва, че скриптчето върши идеална работа. Настроил съм го и да ми праща sms-и ако е станало нещо нередно, като за всяко извършено действие за оправяне на нещата ми изпраща съобщение със статуса на предприетите действия и това какъв резултат са дали (дали сайтовете са вече наред или пък че проблема е все още на лице). Скрипта е писан на PHP

Дали тези предприети действия са дали резултат ще стане ясно следващите дни или седмица, като се надявам това да е така, защото освен на мен тези проблеми създадоха доста неудобства и на потребителите ползващи сайтовете разположени на сървъра.

Edit: Ето примерен скрипт за точка 3:

<?php
$handle = @fopen(‘http://brutali.com/’, ‘r’);
if (empty($handle))
{
@exec(‘/usr/sbin/apache2ctl restart’);
mail(‘359888@sms.mtel.net’, ‘servername@server.com’, ‘web is down’);
}
@fclose($handle);
?>
This entry was posted in IT, Проекти and tagged , , . Bookmark the permalink.

3 Responses to Server monitoring

  1. Йордан says:

    Мерси, че си споменал батко, като източник на мъдрост за твоите постижения 🙂 За мен е чест, че съм ти дал добър съвет 🙂

  2. svetljjjo says:

    ще може ли да дадеш кода на скриптчето за да го ползваме и ние които сме малко по в страни с РНР

  3. JaG says:

    @svetljjjo, примерен скрипт пуснах в статията. Дано ти свърши някаква работа.

Leave a Reply

Your email address will not be published. Required fields are marked *