Как посмотреть логи линукс через терминал

Содержание
  1. Просмотр файлов системных журналов с помощью интерфейса командной строки Linux
  2. Директория /var/log
  3. Просмотр содержимого файла системного журнала с помощью утилиты less
  4. Просмотр сообщений ядра ОС с помощью утилиты dmesg
  5. Просмотр содержимого файла системного журнала с помощью утилиты tail
  6. Существуют и другие инструменты
  7. Просмотр и анализ логов сайта на Linux сервере
  8. Важные логи сайта
  9. Расположение логов
  10. Стандартные пути до Error.log
  11. Nginx
  12. Php-Fpm
  13. Apache (CentOS)
  14. Apache (Ubuntu, Debian)
  15. Стандартные пути до Access.log
  16. Nginx
  17. Php-Fpm
  18. Apache (CentOS)
  19. Apache (Ubuntu, Debian)
  20. Чтение записей в логах
  21. Примеры записей
  22. Error.log
  23. Access.log
  24. Просмотр логов сервера с помощью команды tail
  25. Первый вариант использования Tail
  26. Второй вариант использования Tail
  27. Аналог команды Tail
  28. Изменение стандартного количества строк для вывода
  29. Просмотр логов с помощью ISPManager
  30. Программы для анализа логов
  31. Статические программы
  32. WebLog Expert
  33. Web Log Explorer
  34. Программы для анализа в режиме реального времени
  35. GoAccess
  36. Logstash
  37. Ведения логов медленных запросов сервера
  38. MySQL
  39. PHP-FPM
  40. Анализ логов медленных запросов
  41. Ведение логов в Logrotate

Просмотр файлов системных журналов с помощью интерфейса командной строки Linux

Оригинал: Viewing Linux Logs from the Command Line
Автор: Jack Wallen
Дата публикации: 9 декабря 2016 г.
Перевод: А.Панин
Дата перевода: 14 декабря 2016 г.

При возникновении проблем с системой в первую очередь тщательно исследуется содержимое файлов системных журналов. Jack Wallen научит вас делать это.

Если вы администрируете системы Linux, вам рано или поздно придется исследовать файлы системных журналов. В конце концов, они используются для хранения очень важной информации, позволяющей диагностировать причину той или иной неполадки. Фактически, каждый опытный системный администратор без колебаний согласится с тем, что при возникновении той или иной проблемы следует в первую очередь исследовать файлы системных журналов.

Причем вы можете обнаружить в своей системе большое количество таких файлов: это файлы с информацией о событиях, происходящих на уровне системы, ядра ОС, менеджера пакетов программного обеспечения, системы инициализации, веб-сервера Apache, сервера баз данных MySQL… То есть, практически для любого вообразимого системного программного компонента существует свой файл журнала.

Большая часть файлов системных журналов расположена в удобной директории: /var/log . В ней находятся все файлы журналов системы и служб, с которыми вы наверняка будете плотно работать в том случае, если у вас возникнут какие-либо проблемы с системой или с одной из ее основных служб. Файлы с информацией о событиях, происходящих на уровне отдельных приложений с графическим интерфейсом, могут располагаться в различных директориях (например, приложение Thunderbird сохраняет файлы с информацией о событиях аварийного завершения работы в директории «/.thunderbird/Crash Reports» ). Путь к директории, в которой будут храниться файлы журнала событий, происходящих на уровне каждого отдельного приложения с графическим интерфейсом, зависит от намерений разработчика этого приложения, а также возможности указания произвольного пути к этой директории.

В данной статье мы сфокусируем свое внимание на файлах системных журналов, так как они чаще всего используются в процессе диагностики Linux-систем. А главный вопрос, на который мы постараемся ответить, звучит следующим образом: «Как просмотреть содержимое этих файлов?».

К счастью, существует несколько подходов к просмотру содержимого файлов системных журналов, каждый из которых связан с использованием интерфейса командной строки системы.

Директория /var/log

Данная директория является одной из наиболее важных директорий Linux-систем. Откройте окно терминала и выполните с помощью него команду cd /var/log . Теперь выполните команду ls и ознакомьтесь со списком всех файлов системных журналов из этой директории (Рисунок 1).

Рисунок 1: Список файлов из директории /var/log.

А теперь давайте попытаемся получить доступ к содержимому одного из этих файлов.

Просмотр содержимого файла системного журнала с помощью утилиты less

Одним из наиболее важных файлов из директории /var/log является файл syslog . Этот файл содержит все сообщения о системных событиях за исключением сообщений о событиях, связанных с авторизацией. Предположим, что вы хотите просмотреть содержимое этого файла. Для этого вы можете просто выполнить команду less /var/log/syslog . Эта команда позволяет открыть файл системного журнала для чтения сообщений с начала. Вы можете использовать кнопки со стрелками для прокрутки содержимого файла по строкам, пробел для прокрутки содержимого файла по страницам или колесико мыши для быстрой прокрутки его содержимого.

Единственная проблема данного метода заключается в том, что размер файла syslog со временем может стать сравнительно большим; и, ввиду того, что интересующее вас сообщение будет наверняка находиться ближе к его концу, вам может быть неудобно листать строки или страницы до достижения конца файла. Поэтому после открытия файла syslog с помощью утилиты less вы также можете воспользоваться сочетанием клавиш Shift+g для немедленного перехода к концу файла. Конец файла будет обозначен с помощью специальной метки ( END ). После этого вы сможете пролистать содержимое файла вверх с помощью клавиш со стрелками или колесика мыши и найти интересующее вас сообщение.

Читайте также:  Пуск для windows start button changer

Конечно же, такой подход не является самым эффективным.

Просмотр сообщений ядра ОС с помощью утилиты dmesg

Утилита dmesg позволяет получить доступ к содержимому кольцевого буфера, который используется для хранения информации о событиях, происходящих на уровне ядра ОС. По умолчанию данная утилита выводит все сообщения из этого кольцевого буфера. Воспользуйтесь окном терминала для выполнения команды dmesg и убедитесь в том, что все содержимое кольцевого буфера было успешно выведено (Рисунок 2).

Рисунок 2: Проблема с внешним накопителем с интерфейсом USB требует дополнительного исследования.

К счастью, существует встроенный механизм, позволяющий выводить лишь сообщения, соответствующие определенному критерию (например, связанные с работой демонов).

Предположим, вам нужно получить сообщения уровня пользователей и вы хотите использовать критерий «user» . Для этого достаточно выполнить команду dmesg —facility=user . Если какие-либо из сообщений будут соответствовать этому критерию, они будут выведены.

В отличие от утилиты less , утилита dmesg выведет все содержимое кольцевого буфера и переместит вас в конец вывода. При этом вам ничто не помешает использовать колесико мыши для просмотра содержимого буфера окна терминала (конечно же, если такая функция поддерживается эмулятором терминала). Если же вы хотите передать вывод утилиты dmesg на ввод утилиты less , вы можете воспользоваться следующей командой:

Приведенная выше команда выведет информацию, переданную утилитой dmesg и позволит вам перемещаться в рамках строк сообщений таким же образом, как и в случае просмотра содержимого обычного файла журнала с помощью утилиты less .

Просмотр содержимого файла системного журнала с помощью утилиты tail

Утилита tail , скорее всего, является одним из наиболее полезных инструментов, для просмотра файлов системных журналов. tail осуществляет вывод завершающих строк текстовых файлов. Таким образом, если вы выполните команду tail /var/log/syslog , будет выведено несколько последних строк из файла системного журнала syslog .

Но подождите, веселье еще не закончилось. Утилита tail поддерживает параметр -f , позволяющий выполнять очень удобный трюк. В случае исполнения команды tail -f /var/log/syslog утилита tail будет отслеживать изменения файла системного журнала и выводить строки, записываемые в него. Это означает, что вы можете отслеживать сообщения, записываемые в файл системного журнала с помощью окна терминала практически в реальном времени (Рисунок 3).

Рисунок 3: Отслеживание изменений в файле /var/log/syslog с помощью утилиты tail.

Благодаря возможности использования данного трюка утилита tail является незаменимым инструментом для диагностики системных проблем.

Для завершения работы утилиты tail (в режиме отслеживании изменений в файле) достаточно воспользоваться сочетанием клавиш Ctrl+x .

Вы также можете сообщить утилите tail о необходимости отслеживания лишь заданного количества строк. Предположим, что вам нужно получить лишь последние пять строк, записанные в файл системного журнала; в этом случае вы можете воспользоваться следующей командой:

Приведенная выше команда позволяет осуществить отслеживание событий записи строк в файл системного журнала и вывести в окно терминала лишь последние пять записанных в него строк. После записи в файл следующей строки будет осуществлена замена самой первой строки вывода вверху. Данный подход позволяет дополнительно упростить процесс отслеживания изменений в файлах системного журнала. Я настоятельно рекомендую не использовать данный параметр для отслеживания изменений менее чем четырех или пяти строк, так как в этом случае будет осуществляться автоматическая обрезка строк и вы не сможете ознакомиться с полными сообщениями, записываемыми в файл системного журнала.

Существуют и другие инструменты

Вы и сами сможете найти множество других утилит (и даже несколько отличных инструментов с графическим интерфейсом), позволяющих просматривать файлы системных журналов. Обратите внимание на такие утилиты, как more , grep , head , cat , multitail и System Log Veiwer , которые также могут пригодиться в случае возникновения необходимости в работе с файлами системных журналов.

Источник

Просмотр и анализ логов сайта на Linux сервере

Содержание:

Логи сайта — это системные журналы, позволяющие получить информацию о посещении сайта ботами и пользователями, а также выявить скрытые проблемы на сервере — ошибки, битые ссылки, медленные запросы от сервера и многое другое.

Важные логи сайта

  • Access.log — логи посещений пользователей и ботов. Позволяет составить более точную и подробную статистику, нежели сторонние ресурсы, выполняющие внешнее сканирование сайта и отправляющие ряд ненужных запросов серверу. Благодаря данному логу можно получить информацию об используемом браузере и IP-адрес посетителя, данные о местонахождении клиента (страна и город) и многое другое. Стоит обратить внимание, если сайт имеет высокую посещаемость, то анализ логов сервера потребует больше времени. Поэтому для составления статистики стоит использовать специализированные программы (анализаторы).
  • Error.log — программные ошибки сервера. Стоит внимательно отнестись к анализу данного лога, ведь боты поисковиков, сканируя, получают все данные о работе сайта. При обнаружении большого количества ошибок, сайт может попасть под санкции поисковых систем. В свою очередь из записей данного журнала можно узнать точную дату и время ошибки, IP-адрес получателя, тип и описание ошибки.
  • Slow.log (название зависит от используемой оболочки сервера) — в данный журнал записываются медленные запросы сервера. Так принято обозначать запросы с повышенным порогом задержки, выданные пользователю. Этот журнал позволяет выявить слабые места сервера и исправить проблему. Ниже будет рассмотрен способ включить ведение данного лога на разных типах серверов, а также настройка задержки, с которой записи будут заноситься в файл.
Читайте также:  Как исправить ошибку msvcp100 dll для windows 10 64 bit

Расположение логов

Важно обратить внимание, что местоположение логов сайта по умолчанию зависит от используемого типа оболочки и может быть изменено администратором.

Стандартные пути до Error.log

Nginx

Php-Fpm

Apache (CentOS)

Apache (Ubuntu, Debian)

Стандартные пути до Access.log

Nginx

Php-Fpm

Apache (CentOS)

Apache (Ubuntu, Debian)

Чтение записей в логах

Записи в логах имеют структуру: одно событие – одна строка .

Записи в разных логах имеют общие черты, но количество подробностей отличается. Далее будут приведены примеры строк из разных системных журналов.

Примеры записей

Error.log

В приведенном примере:

  • [Sat Sep 1 15:33:40.719615 2019] — дата и время события.
  • [:error] [pid 10706] — ошибка и её тип.
  • [client 66.249.66.61:60699] — IP-адрес подключившегося клиента.
  • PHP Notice: Undefined variable: moduleclass_sfx in — событие PHP Notice. В данной ситуации — обнаружена неизвестная переменная.
  • /var/data/www/site.ru/modules/contacts/default.php on line 14 — путь и номер строки в проблемном файле.

Access.log

В приведенном примере:

  • 194.61.0.6 — IP-адрес пользователя.
  • alex — если пользователь зарегистрирован в системе, то в логах будет указан идентификатор.
  • [10/Oct/2019:15:32:22 -0700]— дата и время записи.
  • «GET /apache_pb.gif HTTP/1.0» — «GET» означает, что определённый документ со страницы сайта был отправлен пользователю. Существует команда «POST», наоборот отправляет конкретные данные (комментарий или любое другое сообщение) на сервер . Далее указан извлечённый документ «Apache_pb.gif», а также использованный протокол «HTTP/1.0».
  • 200 5396 — код и количество байтов документа, которые были возвращены сервером.
  • «http://www. www.mysite/myserver.html»— страница, с которой был произведён запрос на извлечение документа «Apache_pb.gif».
  • «Mozilla/4.08 [en] (Win98; I ;Nav)» — данные о пользователе, которой произвёл запрос (используемый браузер и операционная система).

Просмотр логов сервера с помощью команды tail

Выполнить просмотр логов в Linux можно с помощью команды tail . Данный инструмент позволяет смотреть записи в логах, выводя последние строки из файла. По умолчанию tail выводит 10 строк.

Первый вариант использования Tail

Аргумент «-f» позволяет команде делать просмотр событий в режиме реального времени, в ожидании новых записей в лог файлах. Для прерывания процесса следует нажать сочетание клавиш «Ctrl+C».

На место переменной «/var/log/syslog» в примере следует подставить актуальный адрес до нужных системных журналов.

Второй вариант использования Tail

В Linux логи веб-сервера не ведутся до бесконечности, поскольку это усложняет их дальнейший анализ. При преодолении лимита записей, система переименует переполненный строками файл журнала и отправит в «архив». Вместо старого файла создастся новый, но с прежним названием.

Если будет использоваться аргумент «-f», команда продолжит отслеживание старого, переименованного журнала. Данный метод делает невозможным просмотр логов в реальном времени, поскольку файл более не актуален.

При использовании аргумента «-F», команда, после окончания записи старого журнала, перейдёт к чтению нового файла с логами. В таком случае просмотр логов в режиме реального времени продолжится.

Аналог команды Tail

Отличие команды tailf от предыдущей заключается в том, что она не обращается к файлу и файловой системе в период, когда запись логов не происходит. Это экономит ресурсы системы и заряд, если используется нестационарное устройство — ноутбук, смартфон или планшет.

Недостаток данного способа — проблема с чтением больших файлов. Если системный журнал достаточно большой, возникает вероятность отказа в работе программы.

Изменение стандартного количества строк для вывода

Как и отмечалось выше, по умолчанию выводится 10 строк. Если требуется увеличить или уменьшить их количество, в команду добавляется аргумент «-n» и необходимое число строк.

При использовании данной команды будут показаны последние 100 строк журнала.

Просмотр логов с помощью ISPManager

Если на сервере установлен ISPManager, логи можно легко читать, используя приведенный ниже алгоритм.

  1. На главной странице, в панели инструментов «WWW» нужно нажать на вкладку «Журналы».
  2. ISPManager выдаст журналы посещений и серверных ошибок в виде:
    • ru.access.log;
    • ru.error.log.*

* Вместо «newdomen.ru» из примера в выдаче будет название актуального домена.

Открыть файл лога можно, нажав на «Посмотреть» в верхнем меню.

  • Для просмотра всех записей журнала, необходимо нажать на «Скачать» и сохранить файл на локальный носитель.
  • Более старые версии логов можно найти во вкладке «Архив».
  • Программы для анализа логов

    Анализировать журналы с большим количеством данных вручную не только сложно, но и чревато ошибками. Для упрощения работы с лог файлами было создано большое количество сервисов и утилит.

    Инструменты для анализа логов делятся на два основных типа — статические и работающие в режиме реального времени.

    Статические программы

    Данный тип выполняет работу только с извлеченными логами, но обеспечивает быструю сортировку данных.

    WebLog Expert

    Возможности
    • Предоставление информации об активность сайта, количестве посетителей, доступ к файлам, URL страницы, ссылающиеся страницы, информацию о пользователе (браузер и операционная система).
    • Создание отчётов в формате HTML (.html), PDF (.pdf), CSV (.csv).
    • Поддерживает анализ логов Nginx, Apache, ISS.
    • Чтение файлов даже в архивах ZIP (.zip), GZ (.gz).

    Web Log Explorer

    Возможности
    • Создание многоуровневых отчётов, включающих количество посетителей, маршруты пользователей по сайту, местоположение хостов (страна и город), указанные в поисковике ключевые слова.
    • Поддержка более 43 форматов логов.
    • Возможность прямой загрузки логов с FTP, HTTP сервера.
    • Чтение архивированных журналов.

    Программы для анализа в режиме реального времени

    Эти инструменты встраиваются в программную среду сервера, анализируют данные в реальном времени и записывают непрерывный отчёт.

    GoAccess

    Возможности
    • Автоматическая генерация отчёта в формате HTML (.html), JSON (.json), CSV (.csv).
    • При подключении к серверу через SSH, возможен анализ в браузере и в терминале
    • Поддержка почти всех форматов (Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront и др.).

    Logstash

    Возможности
    • Постоянная генерация отчёта в файл JSON (.json).
    • Получение и анализ информации из нескольких источников.
    • Возможность пересылать журналы с помощью Filebeat.
    • Поддержка анализа системных журналов.
    • Поддерживается большое количество форматов: от Apache до Log4j (Java).

    Ведения логов медленных запросов сервера

    Анализ данного лога позволяет определить на какие типы запросов сервер отвечает долго. В идеале задержка должна составлять не более 1 секунды.

    На некоторых типах оболочек (MySQL, PHP-FPM) ведение данного лога по умолчанию отключено. Процесс запуска и ведения зависит от сервера.

    MySQL

    Если сервер управляется с помощью MySQL, то необходимо создать каталог и сам файл для ведения журнала с помощью команд:

    Стоит изменить владельца файла, чтобы избежать дальнейших проблем с записью логов. Делается это командой:

    После выполнения предыдущих действий, нужно совершить вход в командную строку MySQL под учётной записью суперпользователя:

    Для запуска и настройки ведения логов нужно последовательно ввести в терминале следующие команды:

    • slow_query_log — запускает ведение журналов медленных запросов.
    • slow_launch_time — указывает максимальную задержку отклика, после которой статистика запроса попадёт в журнал. В данном случае запись в логи происходит при преодолении откликом порога 2 секунды.
    • slow_query_log_file — задаёт путь до используемого журнала.

    Проверить статус и параметры ведения лога медленных запросов можно командой:

    Выход из консоли MySQL выполняется командой:

    После выполнения всех предыдущих действий, можно просмотреть логи сервера. Для этого в терминале вводится:

    PHP-FPM

    Для ведения журнала на данной оболочке, необходимо отредактировать параметры в конфигурационном файле. Для этого в терминале вводится команда:

    Далее нужно найти строки:

    • request_slowlog_timeout = 10s — параметр, позволяющий указать задержку, с которой запись о длительном запросе попадёт в журнал.
    • slowlog = /var/log/php-fpm/www-slow.log — параметр, указывающий путь до актуального файла логирования (.log).

    После применения изменений, необходимо перезагрузить сервер PHP-FPM. Для этого в консоль вводится команда:

    Просмотр логов запускается командой:

    Анализ логов медленных запросов

    Логи медленных запросов могут за незначительное время вырасти до огромных размеров. Для сортировки и отображения повторяющихся запросов рекомендуется использовать программу MySQLDumpSlow.

    Для запуска просмотра логов с помощью этой утилиты, нужно составить команду по приведенному ниже алгоритму:

    Ведение логов в Logrotate

    На больших ресурсах журналы могут достигать огромных размеров, поэтому нужно своевременно архивировать или очищать логи. С помощью утилиты Logrotate можно управлять ведением журналов: настроить период ротации (архивирование старого журнала и создание нового), период и количество хранения журналов и многое другое.

    Изначально программа отсутствует в системе. Ниже приведены команды для инсталляции Logrotate из официальных репозиториев.

    Ubuntu, Debian:

    CentOS:

    После установки необходимо проверить путь для будущих конфигурационных файлов. Для правильной работы они должны находится в папке «logrotate.d». Проверить данный параметр можно открыв конфигурационный файл командой:

    В директории «RPM packages drop log rotation information into this directory» должна присутствовать строка:

    Теперь создаётся конфигурационный файл «rsyslog.conf». В нём будет находиться конфигурацию по работе с логами. Для создания файла в терминале вводится команда:

    В окне терминала откроется текстовой редактор. Теперь нужно внести конфигурацию, как указано в образце. В качестве примера будет использоваться журнал посещений «Access.log» (Nginx).

    Теперь остаётся только запустить Logrotate. Для этого вводится команда:

    Для проверки правильности работы программы в терминале можно ввести команду:

    Начни экономить на хостинге сейчас — 14 дней бесплатно!

    Источник

    Читайте также:  Ускорение windows 10 для слабых ноутбуков
    Оцените статью