Faillog m 0 линукс это

Обновлено: 06.07.2024

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

Расположение логов по умолчанию

Большинство файлов логов Linux находятся в папке /var/log/ вы можете список файлов логов для вашей системы с помощью команды ls:


Ниже мы рассмотрим 20 различных файлов логов Linux, размещенных в каталоге /var/log/. Некоторые из этих логов встречаются только в определенных дистрибутивах, например, dpkg.log встречается только в системах, основанных на Debian.

Просмотр логов в Linux

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

Я не буду останавливаться подробно на каждой из этих команд, поскольку большинство из них уже подробно рассмотрены на нашем сайте. Но приведу несколько примеров. Просмотр логов Linux выполняется очень просто:

Смотрим лог /var/log/dmesg, с возможностью прокрутки:


Просмотр логов Linux, в реальном времени:

tail -f /var/log/dmesg

Открываем лог файл dmesg:

Первые строки dmesg:

Выводим только ошибки из /var/log/messages:

grep -i error /var/log/dmesg


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


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

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

Выводы

В каталоге /var/log вы можете найти всю необходимую информацию о работе Linux. Из сегодняшней статьи вы достаточно узнали, чтобы знать где искать, и что искать. Теперь просмотр логов в Linux не вызовет у вас проблем. Если остались вопросы, задавайте в комментариях!

Как посмотреть логи в Linux?

Большинство логов в Linux генерируются системными демонами syslogd или rsyslogd и хранятся в обычном текстовом файле ASCII в каталоге /var/log. Этот каталог содержит лог-файлы самой ОС, служб и различных приложений, запущенных в системе. Вот как этот каталог выглядит в типичной системе Debian Linux:


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


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

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

tail — вывод последних 10 строк;

head — вывод первых 10 строк;

cat — вывод содержимого всего лог-файла;

grep — поиск в лог-файле всех вхождений заданного выражения или фильтрация лог-файла по заданному выражению;

zcat — отображает всё содержимое сжатых лог-файлов (с расширением *.gz);

zmore — постраничный просмотр сжатых лог-файлов, без их распаковки;

zgrep — поиск внутри сжатого лог-файла.

Основные логи

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

Многие из этих лог-файлов располагаются в каталоге var/log. Наиболее распространенными логами являются:

/var/log/boot.log — журнал загрузки системы (в нем хранится вся информация, связанная с этапами загрузки ОС);

/var/log/auth.log или /var/log/secure — журналы аутентификации и безопасности (в них хранятся записи обо всех попытках входа в систему, включая как успешные, так и неудачные);

/var/log/debug — журнал отладки (в нем хранится подробная отладочная информация системы и приложений);

/var/log/daemon.log — журнал демонов (содержит информацию о событиях, связанных с различными запущенными в системе демонами/службами);

/var/log/maillog или /var/log/mail.log — журналы почтовых серверов (в них хранится информация, относящаяся к почтовым серверам и архивированию электронных писем);

/var/log/cron — журнал, в котором хранится информация о запланированных задачах (заданиях cron);

/var/log/faillog — информация о неудачных входах в систему. Журнал полезен для изучения потенциальных нарушений безопасности, таких как: взломы учетных записей, попытки перебора паролей и пр.;

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

/var/log/dpkg.log — журнал пакетов, установленных через утилиту dpkg в системах на основе Debian Linux.

/var/log/yum.log — журнал пакетов, установленных через утилиту yum в системах на основе Red Hat Linux.

/var/log/emerge.log — журнал пакетов (ebuild), установленных через утилиту emerge в Gentoo Linux.

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




Ротация лог-файлов

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

Цель ротации заключается в сжатии устаревших лог-файлов, которые занимают много места. Лог-файлы, в конце имен которых добавлены нули, являются ротируемыми (их имена были автоматически изменены системой). Ротацию лог-файлов можно выполнить с помощью команды logrotate, например:

Настройки ротации лог-файлов хранятся в соответствующем файле конфигурации /etc/logrotate.conf:

var/log/имя_журнала.log Missingok
Notifempty
Compress
Size 20k
Daily
Create 0600 root root
>

Разберем детально каждую строку вышеприведенного фрагмента:

Missingok — указывает команде logrotate не выводить ошибку, если лог-файл отсутствует.

Notifempty — если лог-файл пуст, то ротации не будет.

Compress — лог-файл необходимо сжать.

Size 20k — гарантирует, что лог-файл не превышает заданного размера, в противном случае производится его ротация.

Daily — ротация лог-файлов по ежедневному расписанию. Также можно задавать ежечасный ( Hourly ), еженедельный ( Weekly ), ежемесячный ( Monthly ) или ежегодный ( Yearly ) график.

Create 0600 root root — создает экземпляр лог-файла, владельцем и группой которого является root.

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

systemd и journald

systemd — это подсистема инициализации и управления службами в Linux, фактически вытеснившая в 2010-е годы традиционную подсистему init. В связке с ней работает и journald — демон сбора логов, являющийся частью systemd. Он собирает логи со всей системы и хранит их в бинарном виде в каталоге /var/log/journal. Для того чтобы их просмотреть, создана специальная утилита journalctl. Рассмотрим несколько примеров её применения.

Чтобы просмотреть последние 10 строк логов всех запусков системы, достаточно выполнить следующую команду:


Видите столбец, который я обвел красным? Цифрой 0 в нем обозначена текущая загрузка системы, цифрой -1 — предыдущая и т.д. Если вы хотите просмотреть логи какой-то конкретной загрузки, например, позапрошлой, то достаточно ввести:


Также можно просмотреть информацию по выбранной службе, например, по NetworkManager:


Для получения своих, каких-то более конкретных результатов, допускается комбинировать опции и параметры команды journalctl :


Для вывода информации только по нескольким последним записям, применяется опция -n , задающая их количество:


Если говорить про systemd, то, наверное, стоит упомянуть и про команду systemd-analyze, которая отвечает за сбор статистики загрузки системы. Применение данной команды без параметров отобразит общее время загрузки системы:


С помощью параметра blame можно увидеть, сколько времени понадобилось для загрузки каждой конкретной службы (при этом сверху отобразятся самые медленные):



emerg — наивысший приоритет, что-то сломалось, повод паниковать;

alert — тревога, стоит волноваться;

crit — критическое событие, стоит насторожиться;

err — ошибка;

warning — предупреждение;

notice — уведомление, можно не заморачиваться;

debug — отладочная информация.


Или же для journalctl:



Заключение

Конечно, на данном уроке были рассмотрены только самые основные моменты данной темы. Но в то же время объема представленной информации вполне хватит обычному пользователю, чтобы свободно работать с логами в Linux. Увидимся!

Привет, друг. Если, вдруг, ты решил изучать Linux чуть глубже чем процесс установки, то рано или поздно (скорее рано), а если начнешь что-то шаманить в системе, то практически сразу, ты столкнёшься с такой штукой, которую принято называть логи. А если, вдруг, ты решишь озаботиться вопросами безопасности каких-нибудь серверов то красноглазить в километры логов будет твои любимым занятием. Я конечно утрирую, но не сильно.

Логи Linux

Теперь по сути. Основные файлы логов лежат в папке /var/log.

логи linux

Для начала рассмотрим какие вообще есть логи Linux и что в них пишется. Конечно прям все мы обсуждать не будем, дабы не плодить много букв. Возьмем только те которые мне кажуться наиболее актуальными. Кстати, в разных дистрибутивах Linux названия одних и тех-же логов могут отличаться. Для более глубокого понимания можно заглянуть в конфиг службы rsyslog. Именно она является одной из основных служб Linux отвечающей за сбор логов. Её конфиг лежит: /etc/rsyslog.d/50-default.conf

логи linux

Типы логов

А сейчас разберем, собственно сами логи, точнее какие бывают логи:

/var/log/mysql/ — лог базы данных MySQL.

Это конечно не все возможные логи, но для большинства основных задач достаточно. Ещё с некоторыми познакомимся дальше.

Информация о пользователях

Теперь познакомимся с командами позволяющими получить основную информацию о системе и пользователях. Это намного удобнее если нужно получить какую-то конкретную информацию и лопатить логи нет необходимости или желания.

логи linux

Команда who покажет нам кто из пользователей сейчас залогинен в системе и когда он зашел. Данная информация хранится в файле /var/run/utmp, но хранится она там временно, только пока пользователь в системе. Если пользователей выйдет, запись удалится. Т.е. эта команда показывает только актуальные данные.

Если нужно выяснить когда пользователь заходил в систему и сколько времени в ней находился то эта инфа хранится в логе /var/log/wtmp. Чтобы получить эти данные используется команда last и указывается имя пользователя, либо можно имя не указывать тогда увидим отчет по всем пользователям.

логи linux

Следующая команда, которая может быть крайне полезной, это:

логи linux

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

Способы чтения логов в Linux

Просматривать логи в Linux можно несколькими способами. Можно делать это стандартными средствами системы, а можно использовать специализированный софт.

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

cat

Она просто выведет в терминал содержимое файла, дополнительный функционал не предусмотрен.

Чуть более удобна в использовании утилита less.

после ввода команды, чтобы увидеть справку можно нажать кнопку h, чтобы выйти кнопку q. Используя less, можно перемещаться по файлу лога впере-назад построчно, либо поэкранно. Также можно следить за изменениями в реальном времени.

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

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

Одна из лучших утилит для просмотра логов это Log File Navigator или lnav. Установить её можно командой:

либо, если ты используешь дистрибутив, в репозиториях которого её нет, то вот ссылка на неё:

Log File Navigator

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

Как пользоваться? Тут все просто. Если запустить программу без параметров:

то нам покажет журнал syslog. Если нужно посмотреть какой-то другой лог, то после lnav нужно указать какой именно, а если нужно увидеть несколько логов то просто их перечисляем, например:

Log File Navigator

Log File Navigator

Естественно есть возможность поиска нужны строк. Для этого жмём кнопку ? и вводим слово для поиска, одновременно с этим видим подсказку по синтаксису поиска.

Log File Navigator

Ротация логов

Вроде как разобрались с lnav и неспеша переходим дальше. А дальше у нас такая штука как ротация логов. Учитывая что логи пишутся постоянно и по любому поводу, то если бы этот процес был неконтролируемым, через некоторое время файлы логов стали бы огромными, занимали бы кучу места и работать с ними стало бы просто нереально. Естественно этот процес контролируемый и отвечает за него утилита logrotate. Она плодит файлы с названием лога и цифрой через точку, либо такие же архивы. Туда сохраняются старые записи, чтобы к ним можно было вернуться через время. Естественно работу этой утилиты можно и нужно настраивать. Под свои потребности, так сказать.

Основной конфиг утилиты лежит в файле /etc/logrotate.conf. Но правильнее будет настраивать используя конфиги в папке: /etc/logrotate.d/. Здесь под каждый лог лежит отдельный конфиг. В котором, после названия самого лога перечисляются параметры его ведения.

ротация логов

Теперь понимая, какой параметр за что отвечает, можно каждому логу задать индивидуальные параметра ведения. И если для домашнего использования это вряд ли необходимо, подойдут и стандартные параметры, то для, какого-нибудь сервера, пожалуй обязательная история.

Логи Linux. journald

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

journald

journald

Можно также получить логи касающиеся только конкретной службы. Например давай увидим все что касается только службы Network Manager:

Если нужно следить за логами в режиме реального времени, то используется параметр -f.
Также, параметры запуска этой утилиты можно комбинировать, для получения более конкретного результата:

Если нужно увидеть только несколько последних записей, то их количество можно задать параметром -n:

Ну и раз уж, уже вспомнили про systemd в целом, то наверное надо сказать и про systemd-analyze. Это такая штука которая собирает статистику загрузки системы.

Если ввести в терминале просто:

без каких-либо параметров, то мы увидим общее время загрузки системы. А если добавить параметр blame, то увидим сколько времени загружалась каждая служба, самые медленные процессы будут сверху.

systemd

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

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

логи linux

Или в случае с journalctl:

логи linux

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

propk.ru

Мониторинг в Linux, смотрим логи

В отличии от windows мониторинг системы linux предоставляется очень сложным процессом. Тут нет графического интерфейса, необходимо понимать и знать что ты хочешь увидеть используя ту или иную команду.

Мои знания в процессе мониторинга linux систем очень скудны. Соответственно эта статья будет началом в познании этого направления.

Расскажу о том, что интересует меня на данный момент и как это посмотреть.

Все события, процессы происходящие с файлами, работа оборудования в linux фиксируется в файлах.

Файлов этих много и все они расположены в директории /var/log/.

Как правило стандартные файлы Logi системы, в пример возьмем Debian, содержат следующее:

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

/var/log/auth.log — авторизация в системе, механизм идентификации пользователей

/var/log/daemon.log — содержит информацию о различных процессах который запущены в системе (демоны). Смотрим тут если есть падения системы

/var/log/user.log — вся информация о журналах на уровне пользователя

/var/log/faillog — число неудачных попыток входа в систему. Команда faillog показывает содержимое

/var/log/mail.log, /var/log/mail.err, /var/log/mail.info, /var/log/mail.warn — записаны все почтовые события

/var/log/lastlog — записи о предыдущих входах в систему

var/log/apt — информация об установке/удалении пакета с помощью программы apt

/var/log/aptitude — файл программы aptitude содержащий информацию об установке/удалении пакетов

/var/log/dbconfig-common — записи утилиты dbconfig

/var/log/dpkg.log — информация об установке/удалении пакета программой dpkg

/var/log/fsck — здесь вы можете найти информацию если проводили проверку файловой системы

/var/log/apache2 — журналы access_log и error_log

/var/log/mysql.err и /var/log/mail.info — сведения о работе СУБД MySQL

Мониторинг в реальном времени, что происходит в системе

Тут вам поможет команда

мониторинг

Что мы видим после ввода команды:

Общая информация:

up время (сколько система работает)

количество пользовательских сессий (1 user)

Статистика процессов:

общее количество процессов в системе

количество работающих в данный момент процессов

количество спящих процессов (они работающие, просто «ждут» события)

количество остановленных событий (останавливаются командой ctrl+z)

количество процессов, ожидающих родительский процесс для передачи статуса завершения (0 zombie)

Статистика использования CPU:

1,2 us — процент использования центрального процессора пользовательскими процессам

0.9 sy — процент использования центрального процессора системными процессами

0.0 ni — процент использования центрального процессора процессами с приоритетом, повышенным при помощи вызова nice

97.3 id (id это idle cpu time, т.е. время простоя CPU) — процент простоя процессора

0.1 wa — процент использования центрального процессора процессами, ожидающими завершения операций ввода-вывода (например чтение/запись на диск)

0.0 hi (hi это Hardware IRQ, т.е. аппаратные прерывания) — процент использования центрального процессора обработчиками аппаратных прерываний

0.5 si (si это Software Interrupts, т.е. программные прерывания) — процент использования центрального процессора обработчиками программных прерываний

0.0 st (st это Steal Time , т.е. заимствованное время) — количество ресурсов центрального процессора «заимствованных» у виртуальной машины гипервизором для других задач (таких, как запуск другой виртуальной машины); это значение будет равно нулю на не использующих виртуальные машины

Статистика использования физической и swap памяти:

общее количество памяти (total)

количество используемой памяти (used)

количество свободной памяти (free)

количество памяти в кэше буферов (buffers)

Список процессов, отсортированный по степени использования центрального процессора (по умолчанию), опишем столбцы:

PID — идентификатор процесса

USER — имя пользователя, который является владельцем процесса

PR — приоритет процесса

NI — значение «NICE», влияющие на приоритет процесса

VIRT — объем виртуальной памяти, используемый процессом

RES — объем физической памяти, используемый процессом

SHR — объем разделяемой памяти процесса

S — указывает на статус процесса: S=sleep (ожидает событий) R=running (работает) Z=zombie (ожидает родительский процесс)

%CPU — процент использования центрального процессора данным процессом (0.3)

%MEM — процент использования оперативной памяти данным процессом

TIME+ — общее время активности процесса (17:55.83)

COMMAND — имя процесса

Что можно делать в утилите top

Нажав на клавишу k мы можем убить процесс, достаточно будет ввести его PID

нажав на клавишу u и введя имя пользователя мы можем увидеть все процессы определенного пользователя

нажав на клавишу b или z и работающие процессы будут выделены цветом

Можно узнать запущен ли данный процесс-программа

Информация о всех процессах всех пользователей в системе

Все процессы этого пользователя

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

Читайте также: