Логи (лог-файлы) - это файлы, содержащие системную информацию работы сервера или компьютера, в которые заносятся определенные действия пользователя или программы. Иногда также употребляется русскоязычный аналог понятия - журнал.
Их предназначение - протоколирование операций, выполняемых на машине, для дальнейшего анализа администратором. Регулярный просмотр журналов позволит определить ошибки в работе системы в целом, конкретного сервиса или сайта (особенно скрытые ошибки, которые не выводятся при просмотре в браузере), диагностировать злонамеренную активность, собрать статистику посещений сайта.
Поскольку основное программное обеспечение, установленное на сервере, чаще всего производит запись в системные журналы, то для каждой из таких программ будет свой журнал. В частности, можно выделить такие наиболее распространенные логи:
Месторасположение журналов зависит от программного обеспечения, реализации настроек по умолчанию или пути, заданного администратором. То есть, в зависимости от того, что вы используете (возможно, это виртуальный хостинг, -план или или США), доступность и расположение логов будут значительно отличаться. Как правило, большая часть логов сервера хранится по пути /var/log/, но некоторые сервисы могут хранить логи в других каталогах. Для удобства всегда можно задать подходящий путь в конфигурационных файлах нужного программного обеспечения. Например, на сервере можно настроить демон syslog/rsyslog, который будет упорядочивать поступающие в него записи о работе сервисов и сохранять их в заданные пользователем файлы логов.
Рассмотрим расположение основных логов для наиболее распространенных дистрибутивов Linux. По умолчанию журналы в Linux хранятся в /var/log.
Для распространенного веб-сервера Apache файлы журналов называются access.log (журнал доступа к серверу) и error.log (журнал ошибок и уведомлений). Путь по умолчанию для журнала ошибок Apache - /var/log/httpd/error_log .
Логи nginx сохраняются по пути /var/log/nginx. Журнал ошибок MySQL - /var/lib/mysql/$hostname.err , где вместо $hostname указан хостнейм (имя) сервера.
Основной файл лога - /var/log/syslog .
Лог загрузки системы - /var/log/dmesg .
По умолчанию логи Apache будут сохраняться по пути /var/log/apache2 .
Логи nginx - /var/log/nginx .
Журнал ошибок MySQL - /var/log/mysql/error.log .
Основной файл лога - /var/log/syslog .
Лог загрузки системы - /var/log/dmesg .
Вам нужно ? У нас вы найдете лучшие предложения от Центров сертификации Comodo, GeoTrust и Symantec.
Помимо стандартной статистики сайта, которая включает в себя количество уникальных посетителей, открытых страниц и еще массу другой полезной информации, веб-мастер должен знать еще множество других вещей о таком сайте, и именно это раскрывают ему логи. При этом начинающие веб-мастера достаточно часто даже не знают, что такое лог и что он дает.
Как говорилось выше, помимо стандартных параметров, владелец сайта должен знать еще массу других данных:
В преимущественном большинстве случаев на сайтах устанавливается платный или же бесплатный счетчик, при этом ресурс, который его предоставляет, осуществляет тщательный анализ сайта и ведет статистику посещений, с которой можно в любой момент ознакомиться. Особенно использование таких счетчиков является востребованным в том случае, если человек размещает собственный сайт на бесплатном хостинге. Рассматривая, что такое лог, важно научиться работать и с такими счетчиками, так как, по сути, они включают в себя большинство нужных данных.
Преимущественное большинство хостеров, предоставляющих платный хостинг, изначально дают своим клиентам возможность использовать средства анализа, которые уже установлены в созданный сайт. К примеру, в серверах Apache применяется специализированная утилита под названием Webalizer, которая используется в роли дополнительного модуля сервера.
Те, кто пользуются платными хостингами, могут также полностью самостоятельно обрабатывать все данные касательно своего сайта, так как веб-мастер, который знает, что такое лог сайта и как им пользоваться, имеет полный доступ ко всей нужной информации.
На любом сайте ведется собственный лог, в который веб-мастер может заглянуть в любой удобный ему момент. Что такое лог? Это отдельный текстовый файл, в котором находится информация касательно всех запросов к сайту, а также касательно различных ошибок, относящихся к этим запросам.
Первоначально пользователь набирает в собственном браузере адрес определенного сайта и переходит на него. После этого браузер пользователя начинает передавать на сервер, на котором располагается данный сайт, запрос на выдачу интересующей пользователя веб-страницы. Вместе с этим серверу предоставляется следующая информация:
После этого посетителю выдается сервером интересующий его запрос, и вся информация касательно проведенной транзакции оформляется в журнале событий, создавая так называемый лог-файл.
Грамотный анализ логов сайта позволяет веб-мастеру определить, как именно используется его ресурс и в каком направлении его более актуально развивать.
Просматривая логи сайта, можно найти огромнейшее количество полезной информации, которая позволит улучшить дальнейшее продвижение ресурса и сделать его более эффективным:
Лог-файл
Лог-файл
Лог-файл - файл, содержащий системную информацию о работе сервера и информацию о действиях пользователей:
- дату и время визита пользователя;
- IP-адрес компьютера пользователя;
- наименование браузера пользователя;
- URL запрошенной пользователем страницы;
- реферер пользователя.
Эта информация используется для анализа и оценки сайтов и их посетителей.
По-английски: Log file
См. также: Лог-файлы Файлы Веб-серверы
Финансовый словарь Финам .
Файл, содержащий системную информацию о работе сервера и информацию о действиях пользователей: дату и время визита пользователя; IP адрес компьютера пользователя; наименование браузера пользователя; URL запрошенной пользователем страницы; реферер … Словарь бизнес-терминов
Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите статью в соответствии с правилами написания статей. Файл регистрации, протокол … Википедия
Файл регистрации, протокол, журнал или лог (англ. log) файл с записями о событиях в хронологическом порядке. Ведение протокола, или протоколирование, хронологическая запись c различной (настраиваемой) степенью детализации сведений о происходящих… … Википедия
файл - у, ч. 1) спец. Сукупність взаємопов язаних блоків інформації, яка розпізнається комп ютером як одне ціле. || Набір даних на логічному рівні розглядання. Контро/льний файл файл, створений виконуваними операторами для забезпечення контролю за… … Український тлумачний словник
лог - 1) овраг с пологими травянистыми склонами и плоским дном; 2) комп.жарг. создаваемый комп. программой файл отчёта, содержащий сведения о выполненных операциях … Универсальный дополнительный практический толковый словарь И. Мостицкого
На иллюстрации Джона Чарльза Доллмана … Википедия
Radminer сетевой червь, занимающийся самораспространением посредством протокола крэкерами, освоившими протокол RAdmin и решившими применить знания на практике, для создания сообственного децентрализованного ботнета. В качестве примера будет… … Википедия
- (кейлоггер) (англ. key клавиша и logger регистрирующее устройство) это программное обеспечение или аппаратное устройство, регистрирующее каждое нажатие клавиши на клавиатуре компьютера. Содержание 1 Виды информации, котор … Википедия
Кейлогер, кейлоггер (англ. keylogger, правильно читается «ки логгер» от англ. key клавиша и logger регистрирующее устройство) это программное обеспечение или аппаратное устройство, регистрирующее различные… … Википедия
Тема может и банальная, но когда программа начинает работать как то не так, и вообще вести себя очень странно, часто приходится читать логи. И много логов, особенно если нет возможности отлаживать программу и не получается воспроизвести ошибку. Наверно каждый выработал для себя какие то правила, что, как и когда логировать. Ниже я хочу рассмотреть несколько правил записи сообщений в лог, а также будет небольшое сравнение библиотек логирования для языков php, ruby и go. Сборщики логов и системы доставки не будут рассматриваться сознательно (их обсуждали уже много раз).
Есть такая linux утилита, а также по совместительству сетевой протокол под названием syslog. И есть целый набор RFC посвящённый syslog, один из них описывает уровни логирования https://en.wikipedia.org/wiki/Syslog#Severity_level (https://tools.ietf.org/html/rfc5424). Согласно rfc 5424 для syslog определено 8 уровней логирования, для которых также дается краткое описание. Данные уровни логирования были переняты многими популярными логерами для разных языков программирования. Например, http://www.php-fig.org/psr/psr-3/ определяет те же самые 8 уровней логирования, а стандартный Ruby logger использует немного сокращённый набор из 5 уровней. Несмотря на формальное указание в каких случаях должен быть использован тот или иной уровень логов, зачастую используется комбинация вроде debug/info/fatal - первый для логирования во время разработки и тестирования, второй и третий в расчёте на продакшен. Потом в какой то момент на продакшене начинает происходить что то не понятное и вдруг оказывается, что info логов не хватает - бежим включать debug. И если они не сильно нагружают систему, то зачастую так и остаются включенными в продакшен окружении. По факту остаётся два сценария, когда нужно иметь логи:
В языке Go в котором всё упрощено до предела, стандартный логер тоже прилично покромсали и оставили следующие варианты:
Я часто при написании программы с нуля повсеместно использую debug уровень для логирования с расчётом, что на продакшене будет выставлен уровень логирования info и тем самым сократится зашумлённость сообщениями. Но в таком подходе часто возникают ситуация, что логов вдруг становится не хватать. Трудно угадать, какая информация понадобиться, что бы отловить редкий баг. Возможно рационально всегда использовать по умолчанию уровень info, а в обработчиках ошибок уровень error и выше. Но если у вас сотни и больше сообщений лога в секунду, то тогда наверно есть смысл тонкой настройки между info/debug. В таких ситуациях уже имеет смысл использовать специализированные решения что бы не просаживать производительность.
Есть ещё тонкий момент, когда вы пишите что то вроде logger.debug(entity.values) - то при выставленном уровне логирования выше debug содержимое entity.values не попадёт в лог, но оно каждый раз будет вычисляться отъедая ресурсы. В Ruby логеру можно передать вместо строки сообщения блок кода: Logger.debug { entity.values } . В таком случае вычисления будут происходить только при выставленном соответствующем уровне лога. В языке Go для реализации ленивого вычисления в логер можно передать объект поддерживающий интерфейс Stringer.
После того, как разобрались с использованием уровней логов, нужно ещё уметь связывать разрозненные сообщения, особенно это актуально для многопоточных приложений или связанных между собой отдельных сервисов, когда в логах все сообщения оказываются вперемешку.
Типичный формат строки сообщения в логе можно условно разделить на следующие составные части:
+ +
Где:
Но с единым контекстом в рамках запроса возникает проблема с различными ORM, http клиентами или другими сервисами\библиотеками, которые живут своей жизнью. И ещё хорошо, если они предоставляют возможность переопределить свой стандартный логер хотя бы глобально, а вот выставить контекст для логера в рамках запроса зачастую не реально. Данная проблема в основном актуальна для многопоточной обработки, когда один процесс обслуживает множество запросов. Но например в фрэймворке Rails имеется очень тесная интеграция между всеми компонентами и запросы ActiveRecord могут писаться в лог вместе с глобальным контекстом для текущего сетевого запроса. А в языке Go некоторые библиотеки логирования позволяют динамически создавать новый объект логера с нужным контекстом, выглядит это примерно так:
ReqLog:= log.WithField("requestID", requestID)
После этого такой экземпляр логера можно передать как зависимость в другие объекты. Но отсутствие стандартизированного интерфейса логирования (например как psr-3 в php) провоцирует создателей библиотек хардкодить малосовместимые реализации логеров. Поэтому если вы пишите свою библиотеку на Go и в ней есть компонент логирования, не забудьте предусмотреть интерфейс для замены логера на пользовательский.
Резюмируя:
Из разговора двух веб-мастеров:
– Вчера был на твоём сайте…
– Так это был ты!..
Кроме общей статистики сайта (количество уникальных посетителей, количество открытых ими веб-страниц и т.д.), большое значение для веб-мастеров имеет и другая информация, например: какие страницы сайта посещаются наиболее часто, какие поисковые запросы приводят посетителей на сайт, какими браузерами и операционными системами пользуются посетители, какое разрешение экрана на посетителей и т.д. и т.п.
Как правило, на каждом сайте устанавливается внешний бесплатный (реже – платный) счётчик. Ресурс, предоставивший счётчик, ведёт расширенную статистику посещения ресурса (включая всю вышеуказанную информацию), с которой можно ознакомиться в любое время. Особенно с такими счётчиками удобно работать тем, кто размещает свои сайты на бесплатном хостинге.
Большинство хостинг-провайдеров (хостеров) платного хостинга предоставляют своим клиентам возможность использовать уже установленные средства анализа. Например, для серверов Apache часто используется программа Webalizer , которая устанавливается в качестве дополнительного модуля веб-сервера.
Те, кто хостится на платном хостинге, могут также обрабатывать всю информацию по посещению сайта самостоятельно: ведь веб-мастер имеет полный доступ к лог-файлам своего сайта.
Что такое лог-файл веб-сайта
Лог-файл веб-сайта (log file , log -файл, лог-файл, лог) – это текстовый файл, в котором регистрируются все запросы к сайту, а также все ошибки, связанные с этими запросами.
Как происходит запись событий в лог-файл сайта
Поэтому одной из основных целей создания сайта должен быть не просто рост количества посещений, а рост релевантных посещений, – то есть не надо обманывать посетителей ложными названиями, обещаниями, ключевыми словами и т.д., – посетитель должен находить то, что ищет, он имеет на это право!..
Примечания
1. По подсчётам исследовательской компании Netcraft , в июне 2009 г. в Интернете насчитывалось 238 027 855 сайтов. При этом доля веб-серверов Apache составила около 47%, Microsoft IIS – 24,80%, qq,com – 12,79%, Google – 4,98%, nginx – 3,69%, Sun – 0,30%.
2. Лог-файлы серверов Apache