Меню

Ubuntu посмотреть ошибки загрузки

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

Традиционно логи в Linux хранятся в директории /var/log. Вот описание стандартных лог файлов Ubuntu, которые там присутствуют. Кстати, если вы только планируете устанавливать ubuntu, то можете воспользоваться моей подробной статьей на этот счет — установка ubuntu server. Так же вам может быть интересен мой обзор и сравнение сервера убунту с другими linux системами — Ubuntu Server — обзор для начинающих, сравнение, отзывы.

  1. syslog или messages. Последнего чаще всего нет и вместо него только syslog. Это традиционные глобальные системные журналы операционной системы linux. Сюда пишутся события загрузки, ядра системы, системы инициализации systemd и т.д.
  2. auth.log — лог авторизации и аутентификации в системе.
  3. dmesg — в этом логе хранится информация о загрузке ядра и драйверов оборудования.
  4. alternatives.log — лог файл программы update-alternatives. Не знаю, за какие такие заслуги ей выделили отдельный лог файл, а cron, к примеру, нет.
  5. kern.log — лог сообщений ядра ubuntu, да и любой другой linux системы.
  6. maillog — сообщения почтовой системы. Обычно postfix или exim. Если на сервере ubuntu они не установлены, то и почтового лога не будет.
  7. dpkg.log — логирование работы пакетных менеджеров ubuntu. Обычно это apt или apt-get.
  8. lastlog и wtmp — информация о прошлых авторизациях пользователей.

Лог загрузки

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

sudo dmesg

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

sudo dmesg | grep sda

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

sudo dmesg | grep error

И так далее.  Информация, которую выводит команда dmesg, хранится в log файле /var/log/dmesg.

Логи авторизации, в том числе ssh

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

sshd[2774]: Accepted publickey for root from 21.17.214.129 port 2673 ssh2: RSA SHA256:MCDja9Ve7rYZCzeVGpYXpqRxfAanWwVkcd+lU3GS
sshd[2774]: pam_unix(sshd:session): session opened for user root by (uid=0)
systemd-logind[628]: New session 6 of user root.

Здесь мы видим ip адрес, с которого произошло подключение и слепок сертификата, так как аутентификация была произведена с его помощью. Если хотите повысить уровень логирования подключений по ssh и получать больше информации, то можете отредактировать конфигурационный файл sshd — /etc/ssh/sshd_config, добавив туда следующий параметр.

LogLevel VERBOSE

Не забудьте перезапустить службу sshd для принятия изменений:

sudo systemctl restart sshd

После этого логирование подключений по ssh будет более подробное.

Лог локального входа в ubuntu тоже хранится в файле auth.log. Информация о подключении через консоль выглядит следующим образом.

login[680]: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
systemd-logind[628]: New session 9 of user root.
login[3094]: ROOT LOGIN on '/dev/tty1'

Устройство /dev/tty1 говорит о том, что вход локальный.

Вы можете быстро посмотреть информацию о последних входах в систему с помощью команды last. Эта информация хранится в бинарном логе /var/log/lastlog.

Примерно то же самое можно увидеть с помощью utmpdump.

sudo utmpdump /var/log/wtmp

Логи ошибок в Ubuntu

Рассмотрим теперь вопрос с расположением лога ошибок в Ubuntu. Как такового отдельного error log в традиционных linux системах нет. И Убунта тут не исключение. Ошибки придется искать по системным и программным логам выборкой ключевых слов. Обычно используют следующие фразы:

  • error или err
  • critical или crit
  • debug
  • warn

Например, посмотрим в логе загрузки dmesg все сообщения уровня предупреждений (warn).

sudo dmesg -l warn

А теперь проверим ошибки в системном логе.

sudo cat /var/log/syslog | grep error

Видим некоторые ошибки в службе systemd-resolved.

Cron logs

Часто хочется проверить лог запуска периодических заданий cron. В Ubuntu, как мне кажется, сделали не удобно. По умолчанию, cron logs не выделены в отдельный файл. Искать их стоит в общем системном логе syslog. Например, в Centos существует отдельный лог-файл /var/log/cron, где собрана вся информация о запущенных заданиях. Предлагаю сделать так же в Ubuntu.

Для этого открываем конфигурационный файл /etc/rsyslog.d/50-default.conf и добавляем туда следующую информацию.

cron.*				/var/log/cron.log

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

*.*;auth,authpriv.none,cron.none	-/var/log/syslog

Я добавил в нее cron.none, чтобы логи cron не писались больше в системный лог syslog. После этого перезапустите службы rsyslog и cron и проверяйте изменения.

sudo systemctl restart rsyslog
sudo systemctl restart cron

Проверяем cron.log

sudo cat /var/log/cron.log

Теперь у нас все логи Cron в Ubuntu будут в отдельном файле.

Лог действий пользователя

Мне часто задают вопросы, как посмотреть лог действий пользователя в системе или как узнать, какие программы он запускал. По умолчанию, такие действия не логируются в ubuntu. Для этого нужно устанавливать какое-то дополнительное программное обеспечение. Я даже не знаю, кто умеет это делать. Обычно если надо фиксировать действия пользователя, включается лог работы sudo.

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

Defaults logfile=/var/log/sudo.log

Теперь выполните какую-нибудь команду через sudo.

sudo cat /var/log/cron.log

Проверяем sudo.log.

Nov 25 23:10:36 : root : TTY=pts/3 ; PWD=/root ; USER=root ;
    COMMAND=/usr/bin/cat /var/log/cron.log

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

На сегодня по логам в Ubuntu у меня все. Желаю вам логов без ошибок и вечного аптайма (шутка, надо ставить обновы и перезагружаться).

I want to find the cause of a boot problem I have tried
ls -ltr /var/log from antony@antony which gives me login incorrect
can someone tell me what command to use to see what has upset the boot thanks

NB when trying some commands from antony@antony then password I get login incorrect.
Is that right?

asked Dec 29, 2011 at 13:54

Antony's user avatar

AntonyAntony

1,2133 gold badges14 silver badges19 bronze badges

1

For systemd based versions of Ubuntu (15.04 onwards) you’ll need to use the journalctl command to view the current boot log messages (as mentioned in this answer, and here for more info on how to enable them for previous boots):

journalctl -b

Community's user avatar

answered Sep 6, 2016 at 18:48

Pierz's user avatar

PierzPierz

2,7451 gold badge21 silver badges14 bronze badges

2

You can use two log files to view the boot problem.

/var/log/boot.log  ---  System boot log

/var/log/dmesg     ---  print or control the kernel ring buffer

answered Dec 29, 2011 at 14:50

Mughil's user avatar

MughilMughil

1,57211 silver badges16 bronze badges

3

To view kernel messages…

dmesg

or to page through the messages…

dmesg | less

The program helps users to print out their kernel messages. Instead of
copying the messages by hand, the user only needs to enter at the console:
$ dmesg > kernel.messages
and mail the kernel.messages file to whoever can debug their problem.

Serge Stroobandt's user avatar

answered Dec 29, 2011 at 14:15

1

I am using sudo dmesg -T --color=always --level=err,warn | more to see kernel errors and warnings

answered May 23, 2022 at 6:09

Shobeira's user avatar

ShobeiraShobeira

1111 silver badge11 bronze badges

Trying to add to previous useful answers, boot log is populated with many rows. Only a few of then will help you fixing the issue. Filter the reading of the most appropriate log file with grep may speed up your research.
In my case, issue keyword was «hid», so gave me the very rows I was interested in:

a@acero:~$
journalctl -b  | grep hid
Jul 01 07:40:50 acero kernel: hid: raw HID events driver (C) Jiri Kosina
Jul 01 07:40:50 acero kernel: i2c_hid_acpi i2c-SYNA7DB5:01: failed to reset device: -61
Jul 01 07:40:50 acero kernel: i2c_hid_acpi i2c-SYNA7DB5:01: failed to reset device: -61
Jul 01 07:40:50 acero kernel: i2c_hid_acpi i2c-SYNA7DB5:01: failed to reset device: -61
Jul 01 07:40:50 acero kernel: i2c_hid_acpi i2c-SYNA7DB5:01: failed to reset device: -61
Jul 01 07:40:50 acero kernel: i2c_hid_acpi i2c-SYNA7DB5:01: can't add hid device: -61
Jul 01 07:41:05 acero kernel: hid-generic 0003:10C4:8108.0001: input,hidraw0: USB HID v1.11 Mouse [YSPRINGTECH USB OPTICAL MOUSE] on usb-0000:03:00.3-2/input0
 

answered Jul 1, 2022 at 5:50

Augusto's user avatar

AugustoAugusto

4173 silver badges15 bronze badges

Содержание

  1. Основные log файлы в Ubuntu — загрузка, авторизация, ошибки и др.
  2. Основные log файлы Ubuntu
  3. Лог загрузки
  4. Логи авторизации, в том числе ssh
  5. Логи ошибок в Ubuntu
  6. Cron logs
  7. Лог действий пользователя
  8. Как посмотреть логи в Linux
  9. Расположение логов по умолчанию
  10. Просмотр логов в Linux
  11. Логи Linux. Всё о логах и журналировании
  12. Логи Linux
  13. Типы логов
  14. Информация о пользователях
  15. Способы чтения логов в Linux
  16. Log File Navigator — lnav и логи Linux
  17. Ротация логов
  18. Логи Linux. journald
  19. Приоритет сообщений в логах
  20. ИТ База знаний
  21. Полезно
  22. Навигация
  23. Серверные решения
  24. Телефония
  25. Корпоративные сети
  26. Как найти и читать логи в Linux
  27. Как просматривать логи Linux
  28. Важные системные логи Linux
  29. Системные логи
  30. Демон системных логов
  31. Логи приложений
  32. Логи не в удобочитаемом формате
  33. Графические интерфейсы для просмотра файлов логов Linux
  34. Как настроить файлы логов в Ubuntu и CentOS
  35. Выполнить ротацию лога
  36. Итоги

Основные log файлы в Ubuntu — загрузка, авторизация, ошибки и др.

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

Основные log файлы Ubuntu

Лог загрузки

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

ubuntu logs 01

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

ubuntu logs 02

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

Логи авторизации, в том числе ssh

ubuntu logs 03

Не забудьте перезапустить службу sshd для принятия изменений:

После этого логирование подключений по ssh будет более подробное.

ubuntu logs 04

Устройство /dev/tty1 говорит о том, что вход локальный.

ubuntu logs 07

Примерно то же самое можно увидеть с помощью utmpdump.

Логи ошибок в Ubuntu

Рассмотрим теперь вопрос с расположением лога ошибок в Ubuntu. Как такового отдельного error log в традиционных linux системах нет. И Убунта тут не исключение. Ошибки придется искать по системным и программным логам выборкой ключевых слов. Обычно используют следующие фразы:

Например, посмотрим в логе загрузки dmesg все сообщения уровня предупреждений (warn).

ubuntu logs 05

А теперь проверим ошибки в системном логе.

ubuntu logs 06

Видим некоторые ошибки в службе systemd-resolved.

Cron logs

Часто хочется проверить лог запуска периодических заданий cron. В Ubuntu, как мне кажется, сделали не удобно. По умолчанию, cron logs не выделены в отдельный файл. Искать их стоит в общем системном логе syslog. Например, в Centos существует отдельный лог-файл /var/log/cron, где собрана вся информация о запущенных заданиях. Предлагаю сделать так же в Ubuntu.

Для этого открываем конфигурационный файл /etc/rsyslog.d/50-default.conf и добавляем туда следующую информацию.

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

Я добавил в нее cron.none, чтобы логи cron не писались больше в системный лог syslog. После этого перезапустите службы rsyslog и cron и проверяйте изменения.

ubuntu logs 08

Теперь у нас все логи Cron в Ubuntu будут в отдельном файле.

Лог действий пользователя

Мне часто задают вопросы, как посмотреть лог действий пользователя в системе или как узнать, какие программы он запускал. По умолчанию, такие действия не логируются в ubuntu. Для этого нужно устанавливать какое-то дополнительное программное обеспечение. Я даже не знаю, кто умеет это делать. Обычно если надо фиксировать действия пользователя, включается лог работы sudo.

Теперь выполните какую-нибудь команду через sudo.

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

На сегодня по логам в Ubuntu у меня все. Желаю вам логов без ошибок и вечного аптайма (шутка, надо ставить обновы и перезагружаться).

Источник

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

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

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

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

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

Snimok ekrana ot 2020 09 02 20 43 42

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

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

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

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

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

Источник

Логи Linux. Всё о логах и журналировании

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

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

Логи Linux

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

image

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

image 4

Здесь описываются правила хранения логов в зависимости от их типа. Все достаточно просто: слева указывается какой тип информации. а справа в какой лог её записывать. Символ «звездочка» обозначает «любое значение» или исключение из списка. Так, для примера первая строка обозначает, что все авторизационные данные должны записываться в файл auth.log, а вторая обозначает что все данные кроме авторизационных, должны записываться в файл syslog. Я думаю общий смысл понятен, а сами службы и их настройку, разберем чуть позже.

Типы логов

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

/var/log/syslog (может называться /var/log/messages) — это основной системный журнал. Туда пишется все с момента запуска системы, служб, информация об устройствах, состояния сетевых служб и т.д. Если в системе что-то не работает или работает не так как надо, то в этот журнал стоит заглянуть в первую очередь, скорее всего ответ будет именно там.

/var/log/auth.log (может называться /var/log/secure) — это информация об авторизации пользователей, а также информация о использованных механизмах аутентификации. В этот лог записываются как удачные, так и не удачные попытки входа всех пользователей. Если подключение удаленное, то также будет виден ip c которого подключились. В этот же лог записываются все изменения касающиеся списка пользователей и групп пользователей. Но тут, на всякий случай нужно помнить, что факт создания нового пользователя будет записан в лог только в том случае если пользователь создавался из графического интерфейса или из терминала, командой useradd. Если вписать пользователя руками в файлы /etc/passwd (список всех пользователей системы) и /etc/shadow (там в зашифрованном виде хранятся пароли) то записей в журнале не будет. Правда они все равно появятся когда пользователь войдет в систему, но помнить об этом моменте нужно.

/var/log/dmesg — лог драйверов устройств. Чтобы его посмотреть достаточно ввести в терминале dmesg;

/var/log/boot.log — лог загрузки системы т.е. все что касается загрузки системы храниться здесь;

/var/log/dpkg.log — лог менеджера пакетов. Название может отличаться в зависимости от используемого в системе менеджера пакетов;

/var/log/faillog — лог неудачных попыток входа в систему;

/var/log/apache2/ (может называться /var/log/httpd/) — лог веб-сервера Apache. Журнал доступа это access_log, а ошибки записываются в error_log;

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

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

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

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

image 1

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

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

image 2

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

image 3

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

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

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

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

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

image 5

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

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

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

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

Log File Navigator — lnav и логи Linux

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

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

image 6

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

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

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

image 7

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

Если нужно открыть заархивированный лог то перед названием лога нужно добавить параметр -r.
Ещё одна, иногда полезная функция — это гистограмма, если нажать кнопку i, то появится такой график, по которому видно в какое время сколько сообщений было добавлено в лог. Крайне полезно на серваках.

image 8

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

image 9

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

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

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

image 10

Здесь все достаточно просто:
monthly — означает что логи меняются ежемесячно. Можно изменить на ежедневно или еженедельно;
rotate — означает что может быть создано 12 файлов с сохраненными логами (тех самых — через точку);
compress — архивировать файлы со старыми логами;
missingok — означает что logrotate не будет выводить ошибку если файл с логами отсутствует;
notifempety — если файл пустой, то ротация выполнятся не будет
create — файлу логов будут присвоены права 644, владельцем будет пользователь root и группа root;
size — можно установить максимальный размер файла логов (например 1М), по достижению которого будет выполнена ротация.

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

Логи Linux. journald

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

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

image 11

image 12

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

Чтобы увидеть сообщения ядра системы вводим:

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

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

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

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

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

image 15

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

Приоритет сообщений в логах

Как rsyslog так и joirnald имеют одну общую штуку, касающуюся ведения логов. Это приоритет сообщений. Логи в системе генерируются в зависимости от типа события, а это событие, в свою очередь, имеет определенную степень критичности. Вот в зависимости от этой критичности, событию присваивается определенный приоритет. Знать типы приоритетов, совсем не лишнее, будет немного проще разбирать логи Linux.

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

image 13

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

image 14

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

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Как найти и читать логи в Linux

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

rocket

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

1

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

1. Сначала откройте терминал Linux как пользователь root. Это позволит получить root-права.

2. Используйте следующую команду для просмотра папки где находятся файлов логов:

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

2

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

Эта команда отображает временную шкалу всей информации, относящейся к этой операции.

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

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

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

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

Системные логи

Файлы логов необходимы для работы Linux. Они содержат значительный объем информации о функциональности системы. Наиболее распространенные файлы логов:

Демон системных логов

Логирование осуществляется при помощи демона syslogd

Программы отправляют свои записи журнала в syslogd, который обращается к конфигурационному файлу /etc/syslogd.conf или /etc/syslog и при обнаружении совпадения записывает сообщение журнала в нужный файл журнала. Каждый файл состоит из селектора и поля ввода действия. Демон syslogd также может пересылать сообщения журнала. Это может быть полезно для отладки. Этот файл выглядит приерно так:

Логи приложений

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

Файлы логов, которые попадают в эту категорию, включают логи системы печати CUPS, лог Rootkit Hunter, логи HTTP-сервера Apache, логи SMB-сервера Samba и лог сервера X11.

Логи не в удобочитаемом формате

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

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

Графические интерфейсы для просмотра файлов логов Linux

Интерфейс предоставляет несколько функций для управления логами, включая отображение статистики лога. Это удобный графический интерфейс для мониторинга логов.

В качестве альтернативы можно использовать Xlogmaster, который может отслеживать значительное количество файлов логов.

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

Как настроить файлы логов в Ubuntu и CentOS

Начнем с примера CentOS. Чтобы просмотреть пользователей, которые в настоящее время вошли на сервер Linux, введите команду who от имени пользователя root:

3

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

4

Чтобы просмотреть информацию о последнем входе в систему, введите:

5

Выполнить ротацию лога

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

Чтобы включить дополнительные функции для logrotate, начните с ввода следующей команды:

Он сжимает и изменяет размер желаемого файла логов.

Команды выполняют следующие действия:

Итоги

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

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Источник

Оригинал:

«Ubuntu Hacks: Chapter 8 — Administration»

Авторы: Кайл Ранкин, Джонатан Оксер, Билл Чайлдерс (Kyle Rankin, Jonathan Oxer, Bill Childers)

Дата публикации: June 2006

Перевод: Н.Ромоданов

Дата перевода: октябрь 2010 г.

Совет # 82: Проверяем вахтенный журнал

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

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

Обычная настольная система, даже когда в ней все в порядке, создает каждый день удивительно большое количество журналов. Когда вы подключаетесь к сети, подключаете новое устройство, входите в систему или выполняете ряд других вещей, система фиксирует ваши действия в журналах.
Большинство системных журналов находятся в директории /var/log. Информация в некоторых
журналах дублирует друг-друга; например, сообщения, идущие от демонов, будут отображаться как
в журнале daemon.log, так и в журнале syslog. Вот некоторые из журналов, которые
вы найдете в директории /var/log:

syslogsyslog является основным системным журналом и в нем сохраняются сообщения демонов и других программ, работающих в системе, например, dhclient, cron, init, xscreensaver, а также некоторые сообщения ядра. Этот журнал — первое место, откуда надо начинать просмотр при попытке отследить типичные системные ошибки.

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

kern.log — Как и в dmesg, в этом журнале содержатся сообщения ядра; но, его преимущество в том, что указывается время выдачи сообщения.

Xorg.?.log — В журналах Xorg содержится очень подробная выходная информация Xorg, номер журнала указывает номер дисплея, на котором работает сессия Xorg. По умолчанию сессия Xorg работает на дисплее 0, так что, в основном, чтобы отследить ошибки в Xorg, вам нужно смотреть журнал Xorg.0.log.

messages — Этот журнал содержит некоторые сообщения ядра и журнальные записи некоторых
системных программ. Например, gconfd и некоторые другие программы выдают сюда свои сообщения.

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

auth.log — Внутри auth.log вы найдете информацию об аутентификации пользователей, причем о каждом входе в систему и о каждом использовании команды sudo.

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

apache/ — Если у вас в вашей системе установлен веб сервер Apache, то в директории /var/log/apache будут находится журналы ccess_log, error_log и все другие основные журналы сервера Apache.

cups/ — CUPS это система печати Ubuntu. В этом директории находятся разнообразные журналы сервиса CUPS, так что здесь ищите
сообщения при решении проблем с печатью в системе.

gdm/ — GDM является графическим менеджером входа в систему в GNOME. Если вы заметили какие-либо проблемы с экраном входа в систему, смотрите журналы, находящиеся в этом директории.

Просмотр журналов

Теперь, вы знаете, где искать информацию, и есть несколько способов, которыми можно практически воспользоваться для просмотра журналов. В Ubuntu есть замечательный графический инструмент для просмотра журнала, который называется System Log Viewer. Чтобы запустить эту программу, выберите System → Administration → System Log (Система → Администрирование → Системный журнал). Окно, открываемое по умолчанию, состоит из левой боковой панели со списком системных журналов, которые вы можете открыть, и основной части, в котором показывается содержимое выбранного журнала. По умолчанию в System Log Viewer указан только журнал syslog, но можно нажать кнопку Log → Open (Журнал → Открыть) и добавить журнал в список, расположенный на боковой панели (рис. 8-14).

Ubuntu Hacks. Окно программы System Log Viewer

Рис.8-14. Окно программы System Log Viewer, открываемое по умолчанию

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

Вы также можете просматривать журналы по старинке из терминала. Для этого есть замечательная программа less, не имеющая излишеств и предназначенная для открытия журнала и его просмотра. Просто введите:

$ less /var/log/syslog

чтобы открыть журнал syslog (можно заменить этот файл и указать путь
к другому файлу, который вы хотите открыть). Вы можете воспользоваться клавишами со стрелками для перемещения вверх и вниз по файлу, или вы можете нажимать клавишу G для перехода к самому концу файла, или клавишу g – для перехода к самому началу файла. Для того, чтобы выполнить поиск в журнале по ключевому слову, введите символ «/», за которым укажите ключевое слово для поиска. В терминале будут выделены все совпадения с ключевым словом, и вы можете нажать клавишу n для перехода к следующему совпадению, либо – клавишу N для перехода к предыдущему совпадению. Нажмите клавишу F, чтобы программа less продолжила обновление журнала по мере добавления в него новых строк (почти также, как команда tail -f работает с файлами).

Предостережение

У некоторых может возникнуть соблазн для открытия журнала просто использовать редактор vi, однако имейте в виду, что vi, когда он открывает файл, кэширует на диске весь файл. Если журнал небольшой, то проблем не возникает, но когда вы открываете журнал Apache размером в 2 ГБ, вы можете заполнить все место, оставшееся на диске! Программа less не кэширует весь файл так, как это делает vi, так что это более безопасный выбор для больших журнальных файлов.

Также для работы с журналами очень полезным инструментом является grep. Grep в качестве аргумента получает шаблон и ищет в файле совпадения с этим шаблоном. Например:

$ grep dhclient /var/log/syslog

вернет все записи, в которых содержится слово «dhclient». Grep
особенно полезен для работы с журналами Xorg, поскольку все предупреждения и ошибки в этих журналах предваряются префиксами WW и EE, соответственно. Для того, чтобы из файла Xorg.0.log выделить предупреждения и ошибки, введите следующее:

$ grep -E '(WW|EE)' /var/log/Xorg.0.log

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

Подсказка

Некоторые журналы, которые вы хотите просмотреть, могут быть сжаты
для удобства ротации журналов. В этом случае просто воспользуйтесь zless и zgrep вместо соответственно less и grep.


Если вам понравилась статья, поделитесь ею с друзьями:


Tag/tag.png

Needs Expansion
This article is incomplete, and needs to be expanded. More info…

Contents

  1. Introduction
  2. Target Audience
  3. System Logs

    1. Authorization Log
    2. Daemon Log
    3. Debug Log
    4. Kernel Log
    5. Kernel Ring Buffer
    6. System Log
  4. Application Logs

    1. Apache HTTP Server Logs
    2. CUPS Print System Logs
    3. Rootkit Hunter Log
    4. Samba SMB Server Logs
    5. X11 Server Log
  5. Non-Human-Readable Logs

    1. Login Failures Log
    2. Last Logins Log
    3. Login Records Log
  6. System Logging Daemon (syslogd)

    1. Configuration of syslogd
    2. Echoing Messages to syslogd With Logger
    3. Log Rotation
  7. Essential Commands

    1. Getting Started
    2. Editing Files
    3. Viewing Files
    4. Viewing the Beginning of Files
    5. Viewing the End of Files
    6. Watching a Changing File
    7. Searching Files
  8. Resources

    1. Local System Resources
    2. WWW Resources

Introduction

One of the things which makes GNU/Linux a great operating system is that virtually anything and everything happening on and to the system may be logged in some manner. This information is invaluable for using the system in an informed manner, and should be one of the first resources you use to trouble-shoot system and application issues. The logs can tell you almost anything you need to know, as long as you have an idea where to look first.

Your Ubuntu system provides vital information using various system log files. These log files are typically plain ASCII text in a standard log file format, and most of them sit in the traditional system log subdirectory /var/log. Many are generated by the system log daemon, syslogd on behalf of the system and certain applications, while some applications generate their own logs by writing directly to files in /var/log.

This guide talks about how to read and use several of these system log files, how to use and configure the system logging daemon, syslogd, and how log rotation works. See the Resources section for additional information.

Target Audience

This guide will be simple enough to use if you have any experience using the console and editing text files using a text editor. See the end of this document for some essential commands that may help you find your way around these files if you’re relatively new to the command line.

System Logs

System logs deal primarily with the functioning of the Ubuntu system, not necessarily with additional applications added by users. Examples include authorization mechanisms, system daemons, system messages, and the all-encompassing system log itself, syslog.

The Authorization Log tracks usage of authorization systems, the mechanisms for authorizing users which prompt for user passwords, such as the Pluggable Authentication Module (PAM) system, the sudo command, remote logins to sshd and so on. The Authorization Log file may be accessed at /var/log/auth.log. This log is useful for learning about user logins and usage of the sudo command.

Use grep to cut down on the volume. For example, to see only information in the Authorization Log pertaining to sshd logins, use this:

grep sshd /var/log/auth.log | less

Daemon Log

A daemon is a program that runs in the background, generally without human intervention, performing some operation important to the proper running of your system. The daemon log at /var/log/daemon.log and contains information about running system and application daemons such as the Gnome Display Manager daemon gdm, the Bluetooth HCI daemon hcid, or the MySQL database daemon mysqld. This can help you trouble-shoot problems with a particular daemon.

Again, use grep to find specific information, plugging in the name of the daemon you’re interested in.

Debug Log

The debug log at /var/log/debug and provides detailed debug messages from the Ubuntu system and applications which log to syslogd at the DEBUG level.

Kernel Log

The kernel log at /var/log/kern.log provides a detailed log of messages from the Ubuntu Linux kernel. These messages may prove useful for trouble-shooting a new or custom-built kernel, for example.

Kernel Ring Buffer

The kernel ring buffer is not really a log file per se, but rather an area in the running kernel you can query for kernel bootup messages via the dmesg utility. To see the messages, use this:

dmesg | less

Or to search for lines that mention the Plug & Play system, for example, use grep like this:

dmesg | grep pnp | less

By default, the system initialization script /etc/init.d/bootmisc.sh sends all bootup messages to the file /var/log/dmesg as well. You can view and search this file the usual way.

System Log

The system log typically contains the greatest deal of information by default about your Ubuntu system. It is located at /var/log/syslog, and may contain information other logs do not. Consult the System Log when you can’t locate the desired log information in another log. It also contains everything that used to be in /var/log/messages.

Application Logs

Many applications also create logs in /var/log. If you list the contents of your /var/log subdirectory, you will see familiar names, such as /var/log/apache2 representing the logs for the Apache 2 web server, or /var/log/samba, which contains the logs for the Samba server. This section of the guide introduces some specific examples of application logs, and information contained within them.

Apache HTTP Server Logs

The default installation for Apache2 on Ubuntu creates a log subdirectory: /var/log/apache2. Within this subdirectory are two log files with two distinct purposes:

  • /var/log/apache2/access.log — records of every page served and every file loaded by the web server.

  • /var/log/apache2/error.log — records of all error conditions reported by the HTTP server

By default, every time Apache accesses a file or page, the access logs record the IP address, time and date, browser identification string, HTTP result code and the text of the actual query, which will generally be a GET for a page view. Look at the Apache documentation for a complete rundown; quite a lot can be gleaned from this file, and indeed many statistical packages exist that perform analyses of these logs.

Also, every time any error occurs, Apache adds a line to the error log. If you run PHP with error and warning messages disabled, this can be your only way to identify bugs.

CUPS Print System Logs

The Common Unix Printing System (CUPS) uses the default log file /var/log/cups/error_log to store informational and error messages. If you need to solve a printing issue in Ubuntu, this log may be a good place to start.

Rootkit Hunter Log

The Rootkit Hunter utility (rkhunter) checks your Ubuntu system for backdoors, sniffers and rootkits, which are all signs of compromise of your system. The log rkhunter uses is located at /var/log/rkhunter.log.

Samba SMB Server Logs

The Server Message Block Protocol (SMB) server, Samba is popularly used for sharing files between your Ubuntu computer and other computers which support the SMB protocol. Samba keeps three distinct types of logs in the subdirectory /var/log/samba:

  • log.nmbd — messages related to Samba’s NETBIOS over IP functionality (the network stuff)

  • log.smbd — messages related to Samba’s SMB/CIFS functionality (the file and print sharing stuff)

  • log.[IP_ADDRESS] — messages related to requests for services from the IP address contained in the log file name, for example, log.192.168.1.1.

X11 Server Log

The default X11 Windowing Server in use with Ubuntu is the Xorg X11 server, and assuming your computer has only one display defined, it stores log messages in the file /var/log/Xorg.0.log. This log is helpful for diagnosing issues with your X11 environment.

Non-Human-Readable Logs

Some log files found in the /var/log subdirectory are designed to be readable by applications, not necessarily by humans. Some examples of such log files which appear in /var/log follow.

Login Failures Log

The login failures log located at /var/log/faillog is actually designed to be parsed and displayed by the faillog command. For example, to print recent login failures, use this:

faillog

Last Logins Log

The last logins log at /var/log/lastlog should not typically be parsed and examined by humans, but rather should be used in conjunction with the lastlog command. For example to see a listing of logins with the lastlog command, displayed one page per screen with the less command, use the following command:

lastlog | less

Login Records Log

The file /var/log/wtmp contains login records, but unlike /var/log/lastlog above, /var/log/wtmp is not used to show a list of recent logins, but is instead used by other utilities such as the who command to present a listed of currently logged in users. This command will show the users currently logged in to your machine:

who

System Logging Daemon (syslogd)

The system logging daemon syslogd, also known as sysklogd, awaits logging messages from numerous sources and routes the messages to the appropriate file or network destination. Messages logged to syslogd usually contain common elements like system hostnames and time-stamps in addition to the specific log information.

Configuration of syslogd

The syslogd daemon’s configuration file is /etc/syslog.conf. Each entry in this file consists of two fields, the selector and the action. The selector field specifies a facility to be logged, such as for example the auth facility which deals with authorization, and a priority level to log such information at, such as info, or warning. The action field consists of a target for the log information, such as a standard log file (i.e. /var/log/syslog), or the hostname of a remote computer to send the log information to.

Echoing Messages to syslogd With Logger

A neat utility exists in the logger tool, which allows one to place messages into the System Log (i.e. /var/log/syslog) arbitrarily. For example, assume your user name is buddha, and you would like to enter a message into the syslog about a particularly delicious pizza you’re eating, you could use a command such as the following at a terminal prompt:

logger This Pizza from Vinnys Gourmet Rocks

and you would end up with a line in the /var/log/syslog file like this:

Jan 12 23:34:45 localhost buddha: This Pizza from Vinnys Gourmet Rocks

You can even specify a tag the messages come from, and redirect the output standard error too.

#
# sample logger error jive
#
logmsg="/usr/bin/logger -s -t MyScript "

# announce what this script is, even to the log
$logmsg "Directory Checker FooScript Jive 1.0"

# test for the existence of Fred's home dir on this machine
if [ -d /home/fred ]; then
   $logmsg "I. Fred's Home Directory Found"
else
   $logmsg "E. Fred's Home Directory was NOT Found. Boo Hoo."
   exit 1
fi

Executing this script as chkdir.sh on the machine butters where Fred does not have a home directory, /home/fred, gives the following results:

bumpy@butters:~$./chkdir.sh
MyScript: Directory Checker FooScript Jive 1.0
MyScript: E. Fred's Home Directory was NOT Found. Boo Hoo.
bumpy@butters:~$tail -n 2 /var/log/syslog
Jan 12 23:23:11 localhost MyScript: Directory Checker FooScript Jive 1.0
Jan 12 23:23:11 localhost MyScript: E. Fred's Home Directory was NOT Found. Boo Hoo.

So, as you can see, we received the messages both via standard error, at the terminal prompt, and they also appear in our syslog.

Log Rotation

When viewing directory listings in /var/log or any of its subdirectories, you may encounter log files with names such as daemon.log.0, daemon.log.1.gz, and so on. What are these log files? They are ‘rotated’ log files. That is, they have automatically been renamed after a predefined time-frame, and a new original log started. After even more time the log files are compressed with the gzip utility as in the case of the example daemon.log.1.gz. The purpose of log rotation is to archive and compress old logs so that they consume less disk space, but are still available for inspection as needed. What handles this functionality? Why, the logrotate command of course! Typically, logrotate is called from the system-wide cron script /etc/cron.daily/logrotate, and further defined by the configuration file /etc/logrotate.conf. Individual configuration files can be added into /etc/logrotate.d (where the apache2 and mysql configurations are stored for example).

This guide will not cover the myriad of ways logrotate may be configured to handle the automatic rotation of any log file on your Ubuntu system. For more detail, check the Resources section of this guide.

IconsPage/note.png NOTE: You may also rotate system log files via the cron.daily script /etc/cron.daily/sysklogd instead of using logrotate. Actually, the utility savelog may produce unexpected results on log rotation which configuring logrotate seems to have no effect on. In those cases, you should check the cron.daily sysklogd script in /etc/cron.daily/sysklogd and read the savelog manual page to see if savelog is not in fact doing the rotation in a way that is not what you are specifying with logrotate.

Essential Commands

If you’re new to the console and the Linux command line, these commands will get you up and running to the point where you can work with log files at a basic level.

Getting Started

To change to the log directory, where most of these files sit, use the cd command. This saves having to type out a full path name for every subsequent command:

cd /var/log

Editing Files

You can view and edit files in GEdit or Kate, the simple text editors that come with Ubuntu and Kubuntu respectively, but these can be overkill when all you want to do is look at a file or make simple changes. The easiest editor to use from the console is nano, which is less powerful but also less complicated than vim or emacs. The command to edit a particular logfile /var/log/example.log using nano is:

nano example.log

Press Ctrl+X to exit. It will ask if you want to save your changes when you exit, but unless you run it with the sudo command the files won’t be writable. In general, you won’t want to save your changes to log files, of course.

Viewing Files

To simply look at a file, an editor is overkill. Use the less command, which pages through a file one screen at a time:

less example.log

You don’t need sudo to look at a file. Press h for help, or q to quit. The cursor keys and page up/down keys will work as expected, and the slash key («/») will do a case-sensitive search; the n key repeats the last search.

Viewing the Beginning of Files

To see the first ten lines of a file, use the head command:

head example.log

To see some other number of lines from the beginning of the file, add the -n switch, thus:

head -n 20 example.log

Viewing the End of Files

To see the final ten lines of a file, the analogous command is tail:

tail example.log

Again, the -n switch gives you control over how many lines it displays:

tail -n 20 example.log

Watching a Changing File

Also, the -f («follow») switch puts tail into a loop, constantly waiting for new additions to the file it’s displaying. This is useful for monitoring files that are being updated in real time:

tail -f example.log

Press Ctrl+C to quit the loop.

Searching Files

Because log files can be large and unwieldy, it helps to be able to focus. The grep command helps you strip out only the content you care about. To find all the lines in a file containing the word «system», for example, use this:

grep "system" example.log

To find all the lines containing «system» at the beginning of the line, use this:

grep "^system" example.log

Note the caret symbol, a regular expression that matches only the start of a line. This is less useful for standard log files, which always start with a date and time, but it can be handy otherwise. Not all files have a standard format.

Any time the result of a grep is still too long, you can pipe it through less:

grep "system" example.log | less

Resources

Additional information on system and application logs and syslogd is available via the following resources:

Local System Resources

man dmesg

System manual page for the dmesg kernel ring buffer utility

man faillog

System manual page for the faillog command (and also the faillog configuration file via man 5 faillog)

man grep

System manual page for the grep pattern searching utility

man head

System manual page for the head utility

man klogd

System manual page for the kernel log daemon (klogd)

man last

System manual for the last command which shows last logged in users

man less

System manual page for the less paging utility

man logger

System manual page for the logger command-line interface to syslog utility

man logrotate

System manual page for the the logrotate utility

man savelog

System manual page for the savelog log file saving utility

man syslogd

System manual page for the system log daemon (syslogd)

man syslog.conf

System manual page for the syslogd configuration file

man tail

System manual page for the tail utility

WWW Resources

Checking Your System Logs with awk

Syslog — Watching Your Logs

http://www.ibm.com/developerworks/linux/library/l-roadmap5/-Linux Logging

Sawing Linux Logs With Simple Tools


CategorySystem

Команда dmesg и содержимое файла

/var/log/dmesg

позволяют посмотреть сообщения ядра Linux при последней загрузке. При этом строки, которые видно на экране при загрузке Debian, заметно отличаются от этих самых сообщений ядра так как содержат вывод скриптов инициализации. Иногда получается что какое-нибудь сообщение об ошибке мелькает при загрузке, но потом в dmesg его невидно. Что делать? А варианты такие…

1. Кнопками Shift+PgUp/Shift+PgDn можно листать не влезающие в экран сообщения.
2. При загрузке нажатием Ctrl+S можно остановить вывод сообщений на экран, Ctrl+Q — продолжить.
3. В файле

/etc/default/bootlogd

поправить BOOTLOGD_ENABLE=No на BOOTLOGD_ENABLE=Yes и с комфортом смотреть лог загрузки в файле

/var/log/boot

.

UPD. Последнее я пробовал только в Debian, очень полезная штука, а в Ubuntu, говорят, нормально не работает с тех пор как появилась прогрессивная система загрузки Upstart. Сейчас может и починили, может кто проверить?

Источник: http://rulinux.net.ru/node/118

ЗЫЖ: На всякий случай, цитирую первый коммент из первоисточника:
В Ubuntu — Неа, не починили, и врядли скоро починят. Я спрашивал у разработчиков этого самого upstart на их официальном IRC канале — они сказали, это пока не работает (хотя в конфиге даже ручкая такая есть чтоб покрутить) и когда заработает они не знают. А дальше они между собой стали обсуждать вопрос что файловая система находится в readonly в момент загрузки, или что-то в этом духе, но я уже невнимательно следил за их обсуждением. Вот так, то.

Похожие статьи

Система Linux загружается так быстро, что большая часть вывода слишком быстро прокручивается, чтобы прочитать текст (показывая запущенные службы), отправленные на консоль.

Поэтому наблюдение за проблемами загрузки / ошибками становится для нас проблемой.

В этой статье мы кратко объясним различные этапы процесса загрузки системы Linux, а затем узнаем, как установить и решить проблемы с загрузкой.

Краткое описание процесса загрузки Linux

Итак, как только мы нажмем кнопку Power On, BIOS (Basic Input Output System), программа встроенная в материнскую плату, выполняет POST (Power on Self Test) – где такие аппаратные средства, как диски, оперативная память (Random Access Memory), клавиатура, и т. д. сканируются.

В случае ошибки (отсутствие / неисправное оборудование), это сообщается на экране.

Во время POST BIOS также ищет загрузочное устройство, на котором установлен диск (обычно первый жесткий диск, однако мы можем настроить его как DVD, USB, сетевую карту и т. д).

Загрузочная флэшка Linux на Windows

Затем система подключится к диску и выполнит поиск основной загрузочной записи (размером 512 байт), в которой хранится загрузчик (размер 446 байт), а остальная часть пространства хранит информацию о дисковых разделах (четыре максимум) и MBR.

Загрузчик будет идентифицировать и указывать на него, а также загружать ядро и файл initrd (диск с инициализацией) – который обеспечивает доступ ядра к установленной корневой файловой системе и модулям / драйверам, хранящимся в каталоге / lib), которые обычно хранятся в каталоге /boot файловой системы.

После загрузки ядра он запускает init (или systemd на более новых дистрибутивах Linux), первый процесс с PID 1, который, в свою очередь, запускает все остальные процессы в системе.

Это также последний процесс, который должен быть выполнен при завершении работы системы.

Как определить проблемы загрузки Linux или сообщения об ошибках

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

Поэтому, принимая во внимание проблемы с загрузкой / ошибки, администратор системы обращается к некоторым важным файлам определенными командами.

К ним относятся:

/var/log/boot.log – регистрирует сообщения загрузки системы

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

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

Мы используем команду cat для этой задачи следующим образом (ниже приведен пример этого файла):

# cat /var/log/boot.log
[  OK  ] Started Load/Save RF Kill Switch Status.
[ TIME ] Timed out waiting for device dev-disk-byx2duuid-53e41ce9x2ddc18x2d458cx2dbc08x2d584c208ed615.device.
[DEPEND] Dependency failed for /dev/disk/by-uuid/53e41ce9-dc18-458c-bc08-584c208ed615.
[DEPEND] Dependency failed for Swap.
[  OK  ] Reached target System Initialization.
[  OK  ] Listening on UUID daemon activation socket.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Listening on CUPS Scheduler.
[  OK  ] Started Daily apt activities.
[  OK  ] Reached target Timers.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Started ACPI Events Check.
[  OK  ] Started Trigger resolvconf update for networkd DNS.
[  OK  ] Started CUPS Scheduler.
[  OK  ] Reached target Paths.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Listening on ACPID Listen Socket.
Starting Console System Startup Logging...
[  OK  ] Listening on Cockpit Web Service Socket.
[  OK  ] Reached target Sockets.
[  OK  ] Reached target Basic System.
Starting LSB: Set the CPU Frequency Scaling governor to "ondemand"...
[  OK  ] Started ACPI event daemon.
[  OK  ] Started mintsystem.service.
Starting Detect the available GPUs and deal with any system changes...
Starting LSB: daemon to balance interrupts for SMP systems...
Starting Bluetooth service...
[  OK  ] Started ClamAV virus database updater.
Starting LSB: Starts syslogd...
[  OK  ] Started Regular background program processing daemon.
Starting Modem Manager...
Starting Accounts Service...
......

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

[DEPEND] Dependency failed for /dev/disk/by-uuid/53e41ce9-dc18-458c-bc08-584c208ed615.
[DEPEND] Dependency failed for Swap.

Проблема: проблема с разделом подкачки; система либо не прочитала файл подкачки / устройство / раздел, либо его нет.

Давайте проверим, использует ли система пространство подкачки с командой free.

# free
total        used        free      shared  buff/cache   available
Mem:        3742792     2421060      433696      287376      888036      967000
Swap:             0           0           0

Кроме того, мы можем запустить команду swapon, чтобы просмотреть сводку использования пространства подкачки системы (мы не получим никакого вывода).

# swapon -s

Мы можем решить эту проблему, создав пространство подкачки в Linux.

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

/var/log/messages – Общие системные журналы

В этом файле хранятся общие системные сообщения, в том числе сообщения, которые регистрируются во время загрузки системы.

Чтобы просмотреть его, введите:

# cat /var/log/messages
Jun  4 13:04:44 tecmint syslogd (GNU inetutils 1.9.4): restart
Jun  4 13:19:55 tecmint -- MARK --
Jun  4 13:39:55 tecmint -- MARK --
Jun  4 13:59:55 tecmint -- MARK --
Jun  4 14:19:55 tecmint -- MARK --
Jun  4 14:20:17 tecmint vmunix: [ 4945.388740] i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment
Jun  4 14:20:17 tecmint vmunix: [ 4945.388837] i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment
Jun  4 14:20:17 tecmint vmunix: [ 4945.388903] i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment
Jun  4 14:20:17 tecmint vmunix: [ 4945.388930] i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment
Jun  4 14:20:17 tecmint vmunix: [ 4945.389334] i915 0000:00:02.0: BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment
Jun  4 14:20:17 tecmint vmunix: [ 4945.389402] pcieport 0000:00:1c.0: BAR 15: assigned [mem 0xdfa00000-0xdfbfffff 64bit pref]
.....

Поскольку этот файл может быть относительно длинным, мы можем просмотреть его  постранично, используя команду more (которая даже показывает проценты):

# more /var/log/messages

Содержимое /var/log/messages, в отличие от предыдущего файла, не очищается, так как оно содержит не только загрузочные сообщения, но и сообщения о других действиях системы.

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

# ls -l message*
-rw-r--r-- 1 root root 1206127 Jun 10 14:20 messages
-rw-r--r-- 1 root root 1419494 Jun  4 13:00 messages.1
-rw-r--r-- 1 root root  153011 May 28 09:30 messages.2.gz

dmesg – Показывает сообщения ядра

Команда dmesg может показывать операции после завершения процесса загрузки, такие как параметры командной строки, переданные ядру; обнаруженные аппаратные компоненты, события при добавлении нового USB-устройства или ошибки, такие как сбои сетевого адаптера (Network Interface Card), что драйверы не сообщают о активности канала в сети и о многом другом.

# dmesg
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.0-21-generic (buildd@lgw01-21) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 (Ubuntu 4.4.0-21.37-generic 4.4.6)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-21-generic root=UUID=57b36d48-1938-43c2-bf85-e97bc9f423ea ro quiet splash
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Supporting XSAVE feature 0x01: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x02: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x04: 'AVX registers'
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] x86/fpu: Using 'eager' FPU context switches.
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008ffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000000090000-0x00000000000bffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000201fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000020200000-0x0000000040003fff] usable
[    0.000000] BIOS-e820: [mem 0x0000000040004000-0x0000000040004fff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000040005000-0x0000000080b2ffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000080b30000-0x0000000080d31fff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000080d32000-0x00000000ce3eefff] usable
[    0.000000] BIOS-e820: [mem 0x00000000ce3ef000-0x00000000ce5eefff] type 20
[    0.000000] BIOS-e820: [mem 0x00000000ce5ef000-0x00000000daeeefff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000daeef000-0x00000000daf9efff] ACPI NVS
....

journalctl – Содержимое  журнала Systemd

Эти сообщения включают сообщения ядра и загрузки; сообщения из syslog или различных служб.

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

# journalctl

Jun 13 16:35:32 tecmint mtp-probe[963]: checking bus 2, device 5: "/sys/devices/pci0000:00/0000:00:1d.0/u
Jun 13 16:35:32 tecmint mtp-probe[963]: bus: 2, device: 5 was not an MTP device
Jun 13 16:35:54 tecmint systemd[1]: dev-disk-byx2duuid-53e41ce9x2ddc18x2d458cx2dbc08x2d584c208ed615.
Jun 13 16:35:54 tecmint systemd[1]: Timed out waiting for device dev-disk-byx2duuid-53e41ce9x2ddc18x2d
Jun 13 16:35:54 tecmint systemd[1]: Dependency failed for /dev/disk/by-uuid/53e41ce9-dc18-458c-bc08-584c2
Jun 13 16:35:54 tecmint systemd[1]: Dependency failed for Swap.
Jun 13 16:35:54 tecmint systemd[1]: swap.target: Job swap.target/start failed with result 'dependency'.
Jun 13 16:35:54 tecmint systemd[1]: dev-disk-byx2duuid-53e41ce9x2ddc18x2d458cx2dbc08x2d584c208ed615.
Jun 13 16:35:54 tecmint systemd[1]: dev-disk-byx2duuid-53e41ce9x2ddc18x2d458cx2dbc08x2d584c208ed615.
Jun 13 16:35:54 tecmint systemd[1]: Reached target System Initialization.
Jun 13 16:35:54 tecmint systemd[1]: Started ACPI Events Check.
Jun 13 16:35:54 tecmint systemd[1]: Listening on CUPS Scheduler.
Jun 13 16:35:54 tecmint systemd[1]: Starting Console System Startup Logging...
Jun 13 16:35:54 tecmint systemd[1]: Started Daily Cleanup of Temporary Directories.

Вышеприведенный пример вывода команды показывает ошибку, которую мы уже идентифицировали, просмотрев /var/log/boot.log: ошибка раздела подкачки.

Чтобы просмотреть больше выходных строк, просто нажмите кнопку [Ввод].

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ubuntu посмотреть логи ошибок
  • Ubuntu ошибка установки grub