Всеки е стигал до момент в който се чуди какво се случва с неговия сървър или VPS и защо не му достига ресурс.

Тук ще разгледам някой от най-популярните и най-добри мониторинг системи които могат да Ви дадат нужната информация за да откриете какво генерира голямо натоварване на сървъра който ползвате.

Голяма част от Linux дистрибуциите имат доста приложения за следене на натовареността на сървъра, но до каква степен те ще Ви бъдат полезни на вас.

Приготвил съм малък списък от най-често използваните мониторинг системи които можете да ползвате.

Тяхната инсталация е бърза и не изискват от вас да имате големи познания по Linux за да ги разберете.

1. #top - програма за следене на CPU в реално време

С тази програма можете да следите CPU натоварването в реално време и кои процеси изискват най-много процесорно време.

Опресняването на информацията е на всеки 5 секунди.

Стартирането на програмата става при изписване на top. За да излезнете от нея натискате q.

Инсталацията на програмата се извършва със следната команда:

yum install top

2. #htop - всичко в едно

Този малък пакет съдържа голяма част от необходимата информация която на вас Ви е нужна.

Тук ще намерите информация за процесора; какви заявки се изпълняват; с какъв потребител се изпълняват; възможност да спрете някой от заявките; проследяване на mysql процесите и др.

Стартирането на програмата става при изписване на htop. За да излезнете от нея натискате q.

Инсталацията на софтуера става чрез:

yum install htop

3. #w - вижте кой е влезнал във вашия сървър и какво прави

Тази команда върви с всяка Linux дистрибуция. С нея можете да видите кой е влезнал във вашия сървър и какви действия извършва. Командата е полезна ако се съмнявате, че има проникване от друго лице което иска да навреди на вашия сървър.

Командата се изпълнява лесно, просто натискате на w след което Enter и ще Ви изведе следния резултат.

[root~]# w 08:59:18 up 34 days,  6:17,  1 user,  load average: 0.13, 0.18, 0.17 USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT root     pts/0    77.70.**.**     08:15    1.00s  0.00s  0.00s w

Тук след изпълнение на командата можем да видим кой се е логнал и какво действие извършва в момента.

В случая имаме влезнали двама потребители като root и единият от тях чете index.php файл.

root:~# w 09:15:49 up 560 days,  5:12,  3 users,  load average: 11.49, 10.56, 8.86 USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT root     pts/0    91.215.**.**   31Dec10 206days  0.00s  0.00s bash --noprofile root     pts/1    91.215.**.**    09:15    3.00s  0.03s  0.00s nano index.php root     pts/2    77.70.**.**     08:00    0.00s  0.04s  0.00s w

4. #mytop - MySQL процеси

Командата mytop ще Ви изведе резултат за всички MySQL процеси които са активни на вашия сървър или на определена база данни. Тук е мястото да кажа, че с тази команда можете да видите кои MySQL заявки се изпълняват по бавно за да ги коригирате, което е от голямо значени за бързото преглеждане на сайта, който правите и поддържате.

Инсталацията на командата е следната:

yum install mytop

След като завършите инсталацията е необходимо да изпишете mytop. Ако не ви изведе съобщение, че не може да се свърже с MySQL сървъра е необходимо да направите корекции в следния файл.

nano /usr/bin/mytop

Там трябва да опишете данните за достъп до базата данни.

В случая, можете да не извършвате това действие, а директно да въведете следната команда.

mytop -u db_name -p <password> -h localhost

Съдържанието се опреснява на всеки 5 секунди.

Ето така изглежда резултата от изпълнението на mytop.

Тук имате опция да килнете MySQL заявка. Това което трябва да направите е да натиснете бутона K на клавиатурата след което да копирате номера на заявката (пример: 24539768 - това е номера на заявката която можете да видите на скриншота) и да натиснете Enter. По този начин можете да килнете заявка която се изпълнява дълго време или е забила от което блокира достъпа до сайта Ви.

За да излезнете от нея натискате q.

5. #ps - показване на процеси

ps командата показва всички процеси които се изпълняват в момента на самия сървър. Можете да я използвате с различно изпълнение според това което ви е необходимо.

Ето и някой от най-честите използвания на тази команда.

При изпълнение на ps -A щe Ви изведе информация за всички процеси A - All.

[root~]# ps -A PID TTY          TIME CMD 1 ?        00:00:00 init 2 ?        00:00:28 migration/0 3 ?        00:00:01 ksoftirqd/0 4 ?        00:00:00 watchdog/0 5 ?        00:00:00 events/0 6 ?        00:00:00 khelper ................... ................... ................... 28700 ? 00:00:19 splitlogs 28702 ? 00:00:00 httpd 28703 ? 00:00:00 leechprotect 28710 ? 00:00:00 httpd 30681 ? 00:00:00 imap 30684 ? 00:00:00 imap 31282 ? 00:00:00 imap 31332 ? 00:00:00 imap 32073 ? 00:00:43 exim 32189 ? 00:00:57 spamd

За да видите по подробна информация използвайте:

ps -Al

За да видите всички процеси подробно можете да ползвате:

ps ax



ps axu



ps auxf

Дървовидна структура на процеси:

ps -ejH



ps axjf



pstree

Информация за сигурност:

ps -eo euser,ruser,suser,fuser,f,comm,label



ps axZ



ps -eM

10 процеса които изразходват много рам памет

ps -auxf | sort -nr -k 4 | head -10

10 процеса които изразходват много CPU

ps -auxf | sort -nr -k 3 | head -10

Това е първата част от статията. Очаквайте скоро нейното продължение където ще разгледаме други способи за следене на натовареноста и как да оптимизирате използвания от вас сървър.

Етикети: #monitoring-systems