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 е командата която използвам най-често за мониторинг в реално време – тя ми показва кой процес товари най-много сървъра ни и така мога лесно да се ориентирам къде да търся проблема.
mytop е алтернатива на top специализирана за мониторинг на mysql сървъри. Чрез него можем да наблюдаваме заявките в реално време на машината, като можем да kill-ваме директно по ID-та, да наблюдаваме репликацията (ако има такава) и още много други!
graphics
Разбира се за къде сме без графиките.
Аз лично използвам LibreNMS и Netdata за наблюдение на сървърите ми и рисуване на графиките им.
Много години използвах cacti , но поради ред причини мигрирах към LibreNMS (преди това Observium)
Разбира се има и много други начини за мониторинг на нашият уеб сървър, но за мен изброените по-горе са най-добрите.
Ето и линк на статия с много полезни линукс команди.