Всем привет.
Показывая Как читать журналы также необходимо сказать Что именно читать. Поэтому сказав вчера "А" сегодня скажу "Б", т.е. продолжу серию заметок про журналы Linux.
Администраторам Linux часто нужно заглядывать в лог-файлы для устранения неполадок. По сути, это действие первой необходимости для любого админа. Система Linux и ее приложения могут создавать разные типы сообщений, которые записываются в различные журналы. Linux использует набор конфигурационных файлов, каталогов, программ, команд и демонов для создания, хранения и повторного использования таких сообщений. Поэтому зная, где система хранит свои журналы и как воспользоваться определенными командами, можно сэкономить драгоценное время во время устранения неполадок.
Стандартные журналы.
По умолчанию журналы в Linux хранятся в /var/log.
Для просмотра списка журналов, находящихся в данном каталоге, используйте команду ls -l /var/log.
Примеры журналов:
/var/log/syslog или /var/log/messages - глобальный системный журнал
/var/log/auth.log или /var/log/secure - информация об авторизации пользователей
/var/log/dmesg - оборудование и драйверы устройств
/var/log/anaconda.log - лог установки системы
/var/log/audit - лог демона auditd
/var/log/boot.log - лог загрузки системы
/var/log/cron - лог демона crond
Для каждого дистрибутива создается отдельный журнал менеджера пакетов:
/var/log/yum.log — для программ установленных с помощью yum в RedHat
/var/log/emerge.log — для ebuild-ов установленных из Portage с помощью emerge в Gentoo
/var/log/dpkg.log — для программ установленных с помощью dpkg в Debian и всем семействе родственных дистрибутивов
/var/log/mysql - логи базы данных MySQL
/var/log/apache2 - логи веб-сервера Apache
/var/log/nginx - логи веб-сервера NGINX
root@logs ~]# dmesg -l err
[1131424.604352] logs kernel: end_request: I/O error, dev sdc, sector
[1131424.604352] logs kernel: Buffer I/O error on device sdc, logical
[1131424.604352] logs kernel: Buffer I/O error on device sdc, logical
Просмотр логов.
Как показано выше в каталоге /var/log находится несколько общих журналов:
• wtmp
• utmp
• dmesg
• messages
• maillog или mail.log
• spooler
• auth.log или secure
Файлы wtmp и utmp отслеживают пользователей, вошедших и покинувших систему. Содержимое данных журналов нельзя читать с помощью простой команды «cat», для этого есть специальные команды, с которыми теперь нужно ознакомиться. Чтобы узнать, кто в текущий момент находится на сервере Linux, нужно использовать команду «who». Она извлекает информацию из /var/run/utmp (в CentOS и Debian) или из /run/utmp (в Ubuntu).
Это пример ее работы в CentOS:
[root@TestLinux ~]# who
root tty1 2013-12-09 10:44
root pts/0 2013-12-09 10:29 (10.0.2.2)
sysadmin pts/1 2013-12-09 10:31 (10.0.2.2)
joeblog pts/2 2013-12-09 10:39 (10.0.2.2)
Команда «sysadmin» выводит историю входа пользователей:
[root@TestLinux ~]# last | grep sysadmin
sysadmin pts/1 10.0.2.2 Mon Dec 9 10:31 still logged in
sysadmin pts/0 10.0.2.2 Fri Nov 29 15:42 - crash (00:01)
sysadmin pts/0 10.0.2.2 Thu Nov 28 17:06 - 17:13 (00:06)
sysadmin pts/0 10.0.2.2 Thu Nov 28 16:17 - 17:05 (00:48)
sysadmin pts/0 10.0.2.2 Thu Nov 28 09:29 - crash (06:04)
sysadmin pts/0 10.0.2.2 Wed Nov 27 16:37 - down (00:29)
sysadmin tty1 Wed Nov 27 14:05 - down (00:36)
sysadmin tty1 Wed Nov 27 13:49 - 14:04 (00:15)
В данном примере нужно было получить историю входа пользователя sysadmin. Как можно видеть, было пару случаев, когда он приводил к сбою системы.
Чтобы узнать время последней перезагрузки системы, используйте следующую команду:
[root@TestLinux ~]# last reboot
Результат имеет примерно такой вид:
reboot system boot 2.6.32-358.el6.x Mon Dec 9 10:27 - 10:47 (00:19)
reboot system boot 2.6.32-358.el6.x Fri Dec 6 16:37 - 10:47 (2+18:10)
reboot system boot 2.6.32-358.el6.x Fri Dec 6 16:28 - 16:36 (00:08) reboot system boot 2.6.32-358.el6.x Fri Dec 6 11:06 - 16:36 (05:29)
reboot system boot 2.6.32-358.el6.x Mon Dec 2 17:00 - 16:36 (3+23:36)
reboot system boot 2.6.32-358.el6.x Fri Nov 29 16:01 - 16:36 (7+00:34)
reboot system boot 2.6.32-358.el6.x Fri Nov 29 15:43 - 16:36 (7+00:53)
...
...
wtmp begins Fri Nov 15 16:11:54 2013
Чтобы узнать время последнего входа в систему, используйте lastlog:
[root@TestLinux ~]# lastlog
Результат на CentOS выглядит примерно так:
Username Port From Latest
root tty1 Mon Dec 9 10:44:30 +1100 2013
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**
sync **Never logged in**
shutdown **Never logged in**
halt **Never logged in**
mail **Never logged in**
uucp **Never logged in**
operator **Never logged in**
games **Never logged in**
gopher **Never logged in**
ftp **Never logged in**
nobody **Never logged in**
vcsa **Never logged in**
saslauth **Never logged in**
postfix **Never logged in**
sshd **Never logged in**
sysadmin pts/1 10.0.2.2 Mon Dec 9 10:31:50 +1100 2015
dbus **Never logged in**
Для просмотра содержимого текстовых журналов можно использовать команды «cat», «head» или «tail». В приведенном ниже примере просматриваются последние 10 строк журнала /var/log/messages на Debian:
debian@debian:~$ sudo tail /var/log/messages
Вывод:
Dec 16 01:21:08 debian kernel: [ 9.584074] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Dec 16 01:21:08 debian kernel: [ 9.584074] Bluetooth: BNEP filters: protocol multicast
Dec 16 01:21:08 debian kernel: [ 9.648220] Bridge firewalling registered
Dec 16 01:21:08 debian kernel: [ 9.696728] Bluetooth: SCO (Voice Link) ver 0.6
Dec 16 01:21:08 debian kernel: [ 9.696728] Bluetooth: SCO socket layer initialized
Dec 16 01:21:08 debian kernel: [ 9.832215] lp: driver loaded but no devices found
Dec 16 01:21:08 debian kernel: [ 9.868897] ppdev: user-space parallel port driver
Dec 16 01:21:11 debian kernel: [ 12.748833] [drm] Initialized drm 1.1.0 20060810
Dec 16 01:21:11 debian kernel: [ 12.754412] pci 0000:00:02.0: PCI INT A -> Link[LNKB] -> GSI 11 (level, low) -> IRQ 11
Dec 16 01:21:11 debian kernel: [ 12.754412] [drm] Initialized vboxvideo 1.0.0 20090303 for 0000:00:02.0 on minor 0
No comments:
Post a Comment
А что вы думаете по этому поводу?