Файлы журналов в Linux часто содержат информацию, которая может помочь отследить причину проблем, снижающих производительность системы или сети. Если у вас несколько серверов или уровней ИТ-архитектуры, количество создаваемых вами журналов может вскоре стать огромным. В этой статье мы рассмотрим некоторые способы облегчения бремени управления журналами Linux.
Централизация журналов Linux
Один из лучших способов управления журналами Linux — объединять или централизовать их в одном месте. Это особенно полезно, если ваша ИТ-инфраструктура включает несколько серверов, многоуровневую архитектуру хранения или сайты в географически разнесенных местах. То же самое относится и к любой организации, которая использует сочетание локальных серверов и облачных сервисов.
Централизация ваших журналов в одном месте значительно упрощает поиск в них любой полезной информации, которую они могут содержать. Вместо того, чтобы пытаться угадать, какой сервер имеет конкретный файл Linux, который вы хотите, вы можете просто обратиться к своему центральному хранилищу данных регистрации для поиска соответствующих событий. Это облегчает и ускоряет устранение неполадок или решение производственных проблем. Во многих случаях инженеры могут решить проблемы без прямого доступа к системам.
Большинство систем Linux используют встроенный демон системного журнала для централизации журналов. Syslog — это сервис, который собирает файлы журналов от сервисов и приложений, запущенных на хосте. Он может записывать эти журналы в файл или пересылать их на другой сервер по протоколу системного журнала. Существует несколько вариантов, включая Rsyslog, облегченный демон, установленный в большинстве распространенных дистрибутивов Linux, и syslog-n, второй по популярности демон syslog для Linux.
Крупные решения по управлению журналированием Linux используют централизацию в качестве ключевой функции, поскольку она позволяет им анализировать, анализировать и индексировать журналы, прежде чем сохранять их в центральном концентраторе. Централизация позволяет выполнять резервное копирование журналов в отдельном месте, защищая их от случайной потери или отказов ваших локальных серверов.
Помимо уменьшения общего объема дискового пространства, необходимого для хранения файлов журнала, их хранение в одном месте также экономит вычислительные ресурсы, которые в противном случае могли бы быть потрачены впустую при сложных поисках с использованием SSH или неэффективных команд grep.
Управление ротацией логов
Файлы журнала в системах Linux автоматически переворачиваются. Система поддерживает только фиксированное количество пролонгированных журналов. Вращение может происходить довольно часто, и когда это происходит, текущему журналу присваивается немного другое имя файла, и создается новый файл журнала.
В приведённом ниже примере показано вращение файла системного журнала, в котором обычно хранятся ваши обычные системные сообщения:
Старые файлы системного журнала переворачиваются в полночь каждую ночь и хранятся в течение недели, после чего самая старая удаляется. Таким образом, в приведенном выше примере файл syslog.7.gz будет удален из системы, а syslog.6.gz будет переименован в syslog.7.gz. Остальные файлы журнала будут следовать той же схеме, пока syslog не станет syslog.1 и не будет создан новый файл syslog. В общем, вы никогда не увидите более восьми файлов журналов одновременно, что дает вам чуть больше недели для просмотра собранных данных.
Количество файлов, поддерживаемых системой Linux для любого конкретного файла журнала, зависит от самого файла журнала. Для некоторых количество включаемых файлов может быть целых 13. Более старые файлы — как для syslog, так и для dpkg — обычно сжимаются или передаются с помощью g-zip для экономии места. Вы можете использовать gunzip для расширения любых старых файлов, которые вам особенно интересны.
Обратите внимание, что файлы журналов могут быть повернуты в зависимости от возраста и размера, поэтому вам следует помнить об этом при их проверке. Вы можете посмотреть файлы, такие как /etc/rsyslog.conf и /etc/logrotate.conf, чтобы узнать, как настроить ротацию в вашей системе.
Использование файлов журнала
Знание того, как извлекать информацию из файлов журналов, может быть очень полезным, когда вы хотите понять, насколько хорошо работает ваша система Linux или если вам нужно отследить конкретную проблему. Чтобы сделать это эффективно, вам необходимо получить общее представление о том, какая информация хранится в каждом файле и что эти данные могут рассказать вам о производительности вашей системы и любых проблемах, с которыми она может столкнуться.
На скриншоте ниже приведены некоторые типичные примеры:
Есть также команды Linux, которые вы можете запускать для извлечения информации из ваших файлов журнала. Например, чтобы просмотреть список перезагрузок системы, вы можете использовать такую команду:
Использование расширенных менеджеров журналов
Хотя вы можете писать сценарии, чтобы упростить поиск нужной информации в файлах журналов, для анализа файлов журналов доступны сложные инструменты. Некоторые продвинутые менеджеры журналов могут сопоставлять информацию из нескольких источников, чтобы дать более полное представление о том, что происходит в вашей сети. Другие могут обеспечить мониторинг в режиме реального времени. Среди лучших коммерческих инструментов SolarWinds Log & Event Manager и PRTG Network Monitor.
Существуют также бесплатные инструменты управления журналами, если вам нужно вести учет Linux с ограниченным бюджетом. Например, Logwatch — это программа, которая сканирует системные журналы на наличие строк, которые могут указывать на определенные виды активности, а утилита Logcheck — это анализатор и репортер системных журналов.