Уеб сървърът е автономна система. Ако е правилно конфигуриран, програмите могат да работят месеци наред без човешка намеса. В същото време на сървъра непрекъснато се случват много събития:
- Посетителите посещават уебсайтове, разглеждат страници и попълват формуляри;
- Пощенският сървър получава и изпраща поща;
- Системата за архивиране създава резервни копия;
- Възникват системни и други грешки.
Всички тези събития се записват в дневник и администраторите на сървъра могат да ги наблюдават и анализират.
Какво представляват логовете?
Това са съобщения, които записват информация за събития в сървъра. Протоколите на сървъра се записват автоматично в хронологичен ред. Те съдържат данни за потребителите и техните действия в платформата, както и за работата на сървъра.
Всеки път, когато някой браузър или потребителски агент, включително търсачка, поиска ресурс от вашия сървър - страница, изображение, файл JavaScript и т.н., тази информация се записва в регистрационния файл на сървъра. В регистрационния файл се съхранява информация, включваща IP адреса на клиента, датата и часа на заявката, заявената страница, HTTP кода и др. Тези данни могат да се обединят в един файл или да се разделят на отделни регистрационни файлове. Те не са достъпни за обикновените потребители на интернет, а са видими само за разработчика или други администратори.
Защо ви трябват логове
Тъй като логовете записват всичко, което се случва, анализът на логовете ви позволява да използвате данните в областта на популяризирането и поддръжката на уебсайта.
- Като преглеждате логовете на сървъра, можете да определите причината за системните грешки и сривове.
- Логовете на уеб сървъра ви помагат да наблюдавате процесите по-ефективно, да правите прогнози за бъдещето и да поддържате цялостен контрол.
- Дори ако системата работи безпроблемно, препоръчваме периодично да анализирате регистрационните файлове на сървъра. Това ви позволява да идентифицирате уязвимости или недостатъци на ранен етап, преди те да се превърнат в проблем.
- Протоколите помагат за идентифициране на зловреден софтуер и хакове.
- Те предоставят ценна информация за разработването на уебсайтове. Те помагат за събиране на статистически данни за трафика чрез входящи технически данни.
- От логовете можете да определите откъде идват потребителите, къде се намират и какви устройства използват, за да посетят сайта.
Какво се съхранява в журналите и защо се проверяват
Лог-файлът е своеобразен бележник на събитията, в който се записват данни за грешки, действия на потребителите и други събития, които се случват на сървъра или в системата. В лога се съдържа информация в съкратен формат, която може да изглежда на обикновения потребител като неразбираем набор от символи. Всеки запис обаче има свое собствено значение и е важно специалистите да могат да ги разбират.
Класификация на журналов
В идеалния случай логовете трябва да се записват през цялото време. Ако обаче "трупате" всичко, полезната информация ще бъде загубена. За да се улесни търсенето и четенето на логовете, те са разделени на класове.
- Дебъгване - записване на важни промени в състоянието, като достъп до база данни, стартиране/пауза на услугата, успешна обработка на записи и т.н.
- Предупреждение - нестандартна ситуация, потенциален проблем: неправилен формат на заявката или неправилен параметър на повикването.
- Грешката е типична грешка.
- Критична грешка е пълен срив в работата, когато няма достъп до базата данни или до мрежата, няма място на твърдия диск.
Лог-файлът може да бъде допълнен с още две нива на записи:
- Трасиране - запис на процеса стъпка по стъпка. Това е полезно, когато е трудно да се открие грешка.
- Информация - обща информация за работата на службата (услугата).
Видове журнали
Журналите се разделят на видове за по-лесна обработка:
- системни силогове;
- сървърни;
- пощенски;
- логове на базата данни;
- логове на оторизация и удостоверяване на автентичността.
Всеки тип лог има свой собствен запис в журнала. За да проверите логовете за оторизация, трябва да отидете в журнал за достъп. За да проверите натоварването на системата - отидете в dmesg log, а за данни за потребителските заявки - в access_log. Когато някои логове се записват отделно от други, е по-лесно да се диагностицира ситуацията и да се намери източникът на проблема.
Как да преглеждате и проверявате логовете на сървъра
Валидирането може да се извърши по различни начини. Ръчният начин е добър метод за отделни сървъри, но с разрастването на сървърния парк и увеличаването на броя на приложенията се препоръчва да се използват специализирани системи за регистриране, като Graylog, ELK, Loggy или Splunk. Тези инструменти ви позволяват да организирате мащабен мониторинг, да настроите предупреждения за проблеми и да зададете прагове за откриване на заплахи.
Къде се съхраняват сървърните логове и как да ги видите
Логовете се записват във файлове и най-често с разширение .log. Можете да прегледате съдържанието им с помощта на текстов редактор.
Мястото, където се намират логовете на Linux сървъра, зависи от софтуера, настройките и пътя, посочен от администратора. Обикновено можете да преглеждате сървърните логове в директорията /var/log/. Не всички услуги обаче използват тази директория.
Препоръчително е да се използва съхранение в облак за съхраняване на логове на мрежи, инженерно оборудване, бази данни и приложения. Дори при достатъчно място на твърдия диск и силна защита, оборудването може да се повреди и нарушители могат да изтрият файловете с логове. Съхранението в облак ви позволява да възстановите събитията и да разследвате инцидента дори в случай на пълен отказ на системата.
Как да четете
Стартирането и деактивирането на регистрирането на събития се извършва в административния панел. Обикновено достъпът до логовете се осъществява чрез раздела "Log" или "Logs". Записаните файлове обаче не се съхраняват завинаги.
В журнала за достъп (access.log) ще намерите:
- адресът на ресурса, до който е осъществен достъп;
- IP адресът на потребителя, който е направил заявката;
- датата и часа на посещението, като се посочва часовата зона;
- тип заявка (GET/POST) за получаване или изпращане на данни;
- страницата, до която потребителят е осъществил достъп;
- протоколът, чрез който посетителят е влязъл в ресурса;
- код за отговор на сървъра, който показва дали заявката е била успешна или е имало проблем;
- броят на прехвърлените байтове;
- информация за посетителя (или бота) - устройство, операционна система и др.
Обикновено тези данни са достатъчни, за да се анализира ситуацията и да се предприемат необходимите мерки. Например, можете да блокирате бот, който създава прекомерно натоварване на сайта.
Файлът за грешки (error.log) записва случаите, когато нещо се обърка. В него може да се намери следната информация:
- дата, час и вид на грешката, както и IP адреса на потребителя;
- вид на събитието;
- пътя до файла и реда със съобщението за грешка.
Кодовете за отговор на сървъра се тълкуват по следния начин:
- 1xx - информационни съобщения, напр. код 102 е страница в процес на обработка;
- 2xx - успешно зареждане на страницата;
- 3xx - пренасочване (редирект);
- 4xx - грешка при зареждане на съдържанието;
- 5xx - грешка от страна на сървъра.
Анализи
След като данните са декриптирани, все още трябва да ги анализирате. За тази цел има различни програми, като Weblog Expert, WebAlyzer, Analog, Webtrends, Awstats, SpyLOG Flexolyzer и други платени и безплатни програми. Те помагат да се организират и анализират данните от логовете, за да се извлече полезна информация и да се предприемат по-нататъшни действия.
Накратко, какво трябва да знаете за логовете
Журналът е текстов файл, който автоматично записва важни данни за работата на системата. Той е своеобразен дневник, съдържащ информация за грешки, действия на потребителя и др. Записва се от специален софтуер, който управлява вътрешните процеси на сървъра. Разработчиците и инженерите често се позовават на тези данни, когато отстраняват грешки или проверяват функционалността на софтуера.