Webserver monitoring

Привет,

В този пост ще споделя за най-често използваните методи от мен за така наречения webserver monitoring.
Идеята е ясна – като уеб администратор, за мен е много важно да знам винаги какво се случва зад колисите на уеб сървъра.

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

netstat

netstat е моят най-добър приятел в подобни ситуации. С годините съм се осъвършенствал в използването му и съм открил най-добрата комбинация от параметри с които лесно да откривам от кой сървърът ми е „flood“-нат.

 netstat -tn 2>/dev/null | grep ':80 ' | awk '{print $5}' | cut -f1 -d: | sort | uniq -c | sort -rn | head

И резултата е следният :

[root@web ~]# netstat -tn 2>/dev/null | grep ':80 ' | awk '{print $5}' | cut -f1 -d: | sort | uniq -c | sort -rn | head
47 104.31.11.*
25 86.229.74.*
12 109.133.39.*
12 104.20.209.*
10 94.225.141.*
10 213.219.168.*
7 84.198.179.*
7 81.82.83.*
7 68.180.228.*
7 213.119.25.*

Същата комбинация може да се използва и за порт 443!!

Алтернатива на netstat може да бъде командата : ss

Когато имаме IP адресите, можеш бързо и лесно чрез whois да разберем кой от къде идва, и да предприемем съответните мерки.

Приермно да ги блокираме :

iptables -I INPUT -s $IP -j DROP

Access Logs

Много е важно правилното разчитана на логовете на уеб сървъра. Много често ни нападат така наречените „ботове„, които отварят wp-login.php и пробват да влязат в нашият wordpress. Всеки такъв опит обаче отваря нова заявка към php и mysql сървърите ни, и „яде“ процесорно време и памет.

Подробности може да прочетете в моят предишен пост wordpress wp-login.php attack

top, mytop

top е командата която използвам най-често за мониторинг в реално време – тя ми показва кой процес товари най-много сървъра ни и така мога лесно да се ориентирам къде да търся проблема.
top

mytop е алтернатива на top специализирана за мониторинг на mysql сървъри. Чрез него можем да наблюдаваме заявките в реално време на машината, като можем да kill-ваме директно по ID-та, да наблюдаваме репликацията (ако има такава) и още много други!
mytop

graphics

Разбира се за къде сме без графиките.

Аз лично използвам LibreNMS и Netdata за наблюдение на сървърите ми и рисуване на графиките им.

LibreNMS
LibreNMS
Netdata
Netdata

Много години използвах cacti , но поради ред причини мигрирах към LibreNMS (преди това Observium)

 

Разбира се има и много други начини за мониторинг на нашият уеб сървър, но за мен изброените по-горе са най-добрите.