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);
?>
Posted in IT, Проекти | Tagged , , | 3 Comments

Оправих си емотиконите в коментарите

Предвид това, че ме дразнеше може би от години кофти изместването на емотиконите в коментарите на долен ред в ляво, а и забележката в офиса направена ми от Георги Фурнаджиев, реших да ги оправя. В момента всичко е наред (защото така е поискал бог би казала чистачката ни в офиса след лекция за сътворението на човека и колко лошо нещо е генното инжинерство) и емотиконите в коментарите са екстра. След още няколко години се очаква да си оправя емотиконите и в постовете. 😀

Posted in Funny, Говорилня, Дневник | Tagged , | 2 Comments

reset MySQL root password

Ако случайно вършите десетина различни неща и съответно сте толкова разсеяни (да не казвам тъпи като мен) и забравите или не си запишете каква парола сте сетнали на новоинсталирания MySQL можете да си я сетнете на ново по следния начин:

1. Спирате MySQL сървъра
2. Стартирате го с опцията –skip-grant-tables
3. mysql -u root и се логвате без парола
4. UPDATE mysql.user SET Password=PASSWORD(‘НОВАТА-ПАРОЛА’) WHERE User=’root’;
5. Спрете MySQL-a и го пуснете с нормални опции за работа и ще можете да използвате новопоставената си парола

Posted in IT | Tagged , , | 1 Comment

brutali.com на 3 години

На 1 юни се навършиха 3 години от стартирането на гангстерската игра brutali.com.

Преди 3 години на 1 юни 2006 играта стартира с наименованието brutals.org и от края на септември 2006 е с настоящето си име. За рожденния си ден, си подарихме малко подобрения в дизайна:

screenshot-2

brutali-new


Posted in Проекти | Tagged , , | 6 Comments

Втора сесия и първа година – успешни!

Както Ви разказах в началото на февруари, първата ми сесия мина успешно, а вече и втората. Все още нямам отчетено посещение на поправителна сесия. Ето и оценките от сесия номер 2:

Информатика – 6
Физкултура и спорт – 6
Микроикономика – 5
Основи на управлението – 5
Основи на правото – 5
Икономика на труда – 4
Математика – 3

Среден успех от 2ри семестър: 4.86
Среден успех за 1ви курс: 4.58

Posted in Дневник | Tagged , , | 2 Comments

България 1:1 Ейре – Поне публиката беше на ниво!

Днес почети нямам глас, затова ще пиша:) Причината е, че вчера бях на мача и си изкарах страхотно. Настроението беше невероятно, секторите се надвиквахме едни други и се забавлявахме. За съжаление обаче националите с нищо не ни зарадваха или поне не и мен. Единствено мога да отлича Кишишев, който буквално си игра като за последно, Димитър Иванков с няколко доста добри изяви и Мартин Петров, който искаше, но не можеше. Централния ни нападател Валери Божинов горкия нищо не игра. Освен при един удар с глава в аут не го видях да докосне втори път топката. За защитата какво да кажа… ГОЛА ВОДА! Без Александър тунчев нищо не става, а Валентин Илиев не мога да разбера защо не го вика? Може би мача на Терек Грозни срещу Палестина е бил от съществено значение и Мъри Стоилов е решил да го пропусне с повиквателна. Вижте няколко снимки и клипчета, които направих.. Continue reading

Posted in Дневник, Спорт | Tagged , , , , , | Leave a comment

substr() – как може да се използва с кирилица в UTF-8 encoding

Тази сутрин се сблъсках с интересен проблем, занимавайки се с една мини тикет система за единия от сайтовете ми (brutali.com). PHP функцията substr() не работи коректно с UTF-8 енкодинг, защото при него всеки символ е по 2 байта. Ето пример:

substr(‘Тест текст’, 0, 7);

Използваната функция ще върне: Тес?

При използването сме указали да ни покаже първите 7 символа в задения текст, а за функцията това значи първите 7 байта. В UTF-8 всеки символ като е по 2 байта показва само първите 3 букви, а от третата показва половината или по-точно нищо :). Този проблем го има само с кирилицата, с латиница и числа проблем няма. Ето и моето решение на проблема, след като изчетох няколко материала за фиксване като този и този, но нещо не ми помогнаха и се позамислих… семпло и работещо 100%:

Алгоритъм на действията:
1. Обръщаме стринга в CP1251
2. Режем каквото ни трябва от текста със substr()
3. Обръщаме изходящия текст в UTF-8 и го ползваме за каквото ни трябва

<?php
$mytext = “Кирилица”;
echo iconv(‘cp1251’, ‘utf-8’, substr(iconv(‘utf-8’, ‘cp1251’, $mytext), 0, 5));
?>

Въпросния код ще покаже текста: Кирил

Забележка: Гурутата да не ме нападнат, че не чета php.net и не знам какво е mbstring, при който функцията е mb_substr, но въпросния модул  го нямам зареден на тази машина…

Posted in IT | Tagged , , , | 6 Comments

CV – Ту би ор нот ту би :D

Преди време си бях драснал едно CV за чернова. Да имам за всеки случай. Разбира се, когато кандидатствах за работа забравих за него. Сега, когато вече не си търся работа май е време да го пусна, та да ми се носи славата и на мен.

Когато бях в гимназията имах един не лош предмет – Бизнескомуникации. Интересно, забавно (напр. научих че финландците обичали да провеждат бизнес срещите си в сауна).. Та в този предмет сме говорили и за CV-тата. Как се правят и причие. Някъде дори си пазя и европейския формат, който изключително се различава от “препоръчителния” в кой да е сайт за търсене на работа унас. Аз си го направих във формат, удобен за четене в блога ми, но ако трябва да го изпратя на някой може би бих използвал европейския формат.

Posted in Говорилня, Дневник | Tagged , | 5 Comments

РНР 5 – Професионално програмиране

PHP 5 - Професионално програмиранеTова е книгата, която си купих тази седмица. Прочетох на доста добри места много добри отзиви за нея, надявам се превода да е добър. Автори са:

АНДИ ГУРМАНС – съавтор на PHP 3 и всички следващи версии. Като член на основния екип на PHP той е един от най-уважаваните PHP разработчици.

СТИГ БАККЕН – също член на основия екип на PHP, създател на PEAR – хразнилище за PHP разширения и приложения. Това е фреймуърк и глобална система за разпространяване на PHP компоненти за многократна употреба.

ДЕРИК РИТАНС – редовно пише код за роекта PHP и е водач на екипа за контрол на качеството.

Искрено се надявам да ми е голям душевен кеф докато я чета и да науча доста нови неща. Имам нужда от развитие, защото съм доста бос в обектите, a определено и в класовете има какво да науча още.

Да не пропусна и да похваля онлайн книжарницата Мобилис и по-точно техните доставчици, които ми се обадиха 3 или 4 пъти докато намерят удобно за мен време, когато съм си вкъщи, за да я доставят. И не на последно ми излезе по-евтино дори с доставката до входната ми врата, отколкото да отида да я търся по книжарниците в София и да си я купя.

Posted in Дневник, Книги | Tagged , , , | 8 Comments

Христос Воскресе!

dsc01491Пожелавам на ви на всички приятно изкарване на празника!

Това са моите яйца, които боядисах вчера.

Очаквам всички да се похвалите кой най-много се е чукал, с яйца разбира се 😀

Posted in Говорилня, Дневник | Tagged , , , | 5 Comments