Вы находитесь на странице: 1из 7

Лабораторная работа.

Чтение журналов сервера


Задачи
Часть 1. Чтение файлов журналов с использованием программ Cat, More и Less
Часть 2. Файлы журналов и Syslog
Часть 3. Файлы журналов и Journalctl

Общие сведения и сценарий


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

Необходимые ресурсы
• Виртуальная машина рабочей станции CyberOps
• Доступ к Интернету

Часть 1. Чтение файлов журналов с использованием программ Cat,


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

Шаг 1. Открытие файлов журналов.


Файлы журналов обычно содержат информацию, представленную в виде обычного текста, который
можно просмотреть практически в любой программе, пригодной для обработки текста (например,
текстовых редакторах). Однако некоторые средства используются чаще других благодаря их удобству
и быстродействию. В этом разделе рассматриваются четыре программы, запускаемые из командной
строки: cat, more, less и tail.
CAT, производное от слова concatenate (сцепить), — инструмент, запускаемый из командной строки
UNIX. Используется для чтения и вывода содержимого файла на экран. Благодаря простоте
и возможности открыть текстовый файл, отображая его содержимое на терминале, работающем
только в текстовом режиме, cat широко используется по сей день.
a. Запустите ВМ рабочей станции CyberOps и откройте окно терминала.
b. Из окна терминала выполните приведенную ниже команду для отображения содержимого файла
logstash-tutorial.log, который находится в папке /home/analyst/lab.support.files/.
analyst@secOps ~$ cat /home/analyst/lab.support.files/logstash-tutorial.log
Содержимое файла должно прокручиваться в окне терминала, пока не будет показано все
содержимое.

Стр. 1 из 7
Лабораторная работа. Чтение журналов сервера

В чем состоит недостаток использования cat с текстовыми файлами большого размера?


____________________________________________________________________________________
____________________________________________________________________________________
Другим, широко распространенным средством отображения файлов журналов является more. Как
и cat, more — средство, запускаемое из командной строки UNIX, с помощью которого можно
открыть текстовый файл и вывести его содержимое на экран. Главное различие между cat и more
заключается в том, что more обеспечивает разбиение страниц и пользователь может
просматривать содержимое файла постранично. Для вывода следующей страницы нужно нажать
клавишу пробела.
c. Из того же окна терминала воспользуйтесь приведенной ниже командой для отображения
содержимого файла logstash-tutorial.log повторно. На этот раз с использованием more:
analyst@secOps ~$ more /home/analyst/lab.support.files/logstash-tutorial.log
Содержимое файла должно прокручиваться в окне терминала, пока не будет показана одна
страница. Нажмите клавишу пробела, чтобы перейти к следующей странице. Нажмите клавишу
Enter (Ввод), чтобы показать следующую строку текста.
Что является недостатком использования more?
____________________________________________________________________________________
Нельзя читать текст вверх, только вниз. Текст остается в терминале после просмотра. Нельзя
читать текст вверх, только вниз. Текст остается в терминале после просмотра.
____________________________________________________________________________________
Основываясь на функциональных возможностях cat и more, инструмент less позволяет
показывать содержимое файла страницу за страницей, одновременно позволяя пользователю
просматривать ранее отображавшиеся страницы.
d. Из того же окна терминала воспользуйтесь средством less для показа содержимого файла
logstash-tutorial.log повторно.
analyst@secOps ~$ less /home/analyst/lab.support.files/logstash-tutorial.log
Содержимое файла должно прокручиваться в окне терминала, пока не будет показана одна
страница. Нажмите клавишу пробела, чтобы перейти к следующей странице. Нажмите клавишу
Enter (Ввод), чтобы показать следующую строку текста. Используйте клавиши со стрелками вверх
и вниз для перемещения вперед и назад по текстовому файлу.
Нажмите клавишу q на клавиатуре для выхода из средства less.
e. Команда tail отображает конец текстового файла. По умолчанию tail отображает последние десять
строк файла.
Служит для показа последних 10 строк файла /home/analyst/lab.support.files/logstash-tutorial.log.
analyst@secOps ~$ tail /home/analyst/lab.support.files/logstash-tutorial.log
218.30.103.62 - - [04/Jan/2015:05:28:43 +0000] "GET /blog/geekery/xvfb-firefox.html
HTTP/1.1" 200 10975 "-" "Sogou web
spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)"
218.30.103.62 - - [04/Jan/2015:05:29:06 +0000] "GET /blog/geekery/puppet-facts-into-
mcollective.html HTTP/1.1" 200 9872 "-" "Sogou web
spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)"
198.46.149.143 - - [04/Jan/2015:05:29:13 +0000] "GET /blog/geekery/disabling-battery-
in-ubuntu-
vms.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+semicomplete%2Fmai
n+%28semicomplete.com+-+Jordan+Sissel%29 HTTP/1.1" 200 9316 "-" "Tiny Tiny RSS/1.11
(http://tt-rss.org/)"
198.46.149.143 - - [04/Jan/2015:05:29:13 +0000] "GET /blog/geekery/solving-good-or-
bad-
problems.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+semicomplete%

Стр. 2 из 7
Лабораторная работа. Чтение журналов сервера

2Fmain+%28semicomplete.com+-+Jordan+Sissel%29 HTTP/1.1" 200 10756 "-" "Tiny Tiny


RSS/1.11 (http://tt-rss.org/)"
218.30.103.62 - - [04/Jan/2015:05:29:26 +0000] "GET /blog/geekery/jquery-interface-
puffer.html%20target= HTTP/1.1" 200 202 "-" "Sogou web
spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)"
218.30.103.62 - - [04/Jan/2015:05:29:48 +0000] "GET /blog/geekery/ec2-reserved-vs-
ondemand.html HTTP/1.1" 200 11834 "-" "Sogou web
spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)"
66.249.73.135 - - [04/Jan/2015:05:30:06 +0000] "GET /blog/web/firefox-scrolling-
fix.html HTTP/1.1" 200 8956 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X)
AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25
(compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
86.1.76.62 - - [04/Jan/2015:05:30:37 +0000] "GET /projects/xdotool/ HTTP/1.1" 200
12292 "http://www.haskell.org/haskellwiki/Xmonad/Frequently_asked_questions"
"Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20140205 Firefox/24.0
Iceweasel/24.3.0"
86.1.76.62 - - [04/Jan/2015:05:30:37 +0000] "GET /reset.css HTTP/1.1" 200 1015
"http://www.semicomplete.com/projects/xdotool/" "Mozilla/5.0 (X11; Linux x86_64;
rv:24.0) Gecko/20140205 Firefox/24.0 Iceweasel/24.3.0"
86.1.76.62 - - [04/Jan/2015:05:30:37 +0000] "GET /style2.css HTTP/1.1" 200 4877
"http://www.semicomplete.com/projects/xdotool/" "Mozilla/5.0 (X11; Linux x86_64;
rv:24.0) Gecko/20140205 Firefox/24.0 Iceweasel/24.3.0"

Шаг 2. Активное отслеживание журналов.


В некоторых случаях желательно вести мониторинг файлов журналов по мере внесения записей
в файлы журналов. В этих случаях очень полезна команда tail -f.
a. Используйте tail -f для активного отслеживания содержимого файла /var/log/syslog.
analyst@secOps ~$ sudo tail –f /home/analyst/lab.support.files/logstash-
tutorial.log
Чем отличаются выходные данные tail и tail -f? Дайте пояснение.
____________________________________________________________________________________
Если нужно смотреть текстовый файл, в частности файл лога, в который добавляются новый
строки. То есть, смотреть изменение файла в реальном времени. Например, работает у вас
____________________________________________________________________________________
какое-то серверное приложение и вам надо отслеживать ошибки лога. В этом случае, нужно к
команде tail добавить опцию -f:

Стр. 3 из 7
Лабораторная работа. Чтение журналов сервера

b. Для просмотра tail –f в действии откройте второе окно терминала. Организуйте дисплей таким
образом, чтобы видеть оба окна терминала. Измените размеры окон, чтобы видеть оба
одновременно, как показано на рисунке ниже.

В окне терминала вверху выполняется tail -f для отслеживания файла


/home/analyst/lab.support.files/logstash-tutorial.log. Используйте окно терминала внизу для
добавления сведений в отслеживаемый файл.
Для упрощения визуализации выберите верхнее окно терминала (в котором выполняется tail -f)
и нажмите клавишу Enter (Ввод) несколько раз. В результате будет добавлено несколько строк
между текущим содержимым файла и введена новая информация.
c. Выберите нижнее окно терминала и введите следующую команду:
[analyst@secOps ~]$ echo "this is a new entry to the monitored log file" >>
lab.support.files/logstash-tutorial.log

Стр. 4 из 7
Лабораторная работа. Чтение журналов сервера

Приведенная выше команда добавляет в файл /home/analyst/lab.support.files/logstash-


tutorial.log сообщение "this is a new entry to the monitored log file" (это новая запись
в отслеживаемый файл журнала). Поскольку tail –f отслеживает файл в данный момент, в файл
добавляется строка. В верхнем окне новая строка должна отображаться в режиме реального
времени.
d. Нажмите CTRL + C, чтобы остановить выполнение tail -f и вернуться в командную строку.
e. Закройте одно из двух окон терминала.

Часть 2. Файлы журналов и системный журнал


Из-за их важности файлы журналов обычно размещаются на одном отслеживающем компьютере.
Syslog — это система, цель которой — позволить устройствам отправлять свои файлы журналов на
центральный сервер, известный как сервер syslog. Клиенты обмениваются данными с сервером
syslog с использованием протокола syslog. Syslog разворачивается часто, он совместим практически
со всеми вычислительными платформами.
Виртуальная машина рабочей станции CyberOps создает файлы журналов на уровне операционной
системы и передает их в syslog.
a. Используйте команду cat как root для отображения содержимого файла /var/log/syslog.1. Этот
файл содержит записи журналов, создаваемые операционной системой виртуальной машины
рабочей станции CyberOps и отправленные в службу syslog.
analyst@secOps ~ $ sudo cat /var/log/syslog.1
[sudo] пароль для analyst:
Feb 7 13:23:15 secOps kernel: [ 5.458959] psmouse serio1: hgpk: ID: 10 00 64
Feb 7 13:23:15 secOps kernel: [ 5.467285] input: ImExPS/2 BYD TouchPad as
/devices/platform/i8042/serio1/input/input6
Feb 7 13:23:15 secOps kernel: [ 5.502469] RAPL PMU: API unit is 2^-32 Joules, 4
fixed counters, 10737418240 ms ovfl timer
Feb 7 13:23:15 secOps kernel: [ 5.502476] RAPL PMU: hw unit of domain pp0-core 2^-
0 Joules
Feb 7 13:23:15 secOps kernel: [ 5.502478] RAPL PMU: hw unit of domain package 2^-0
Joules
Feb 7 13:23:15 secOps kernel: [ 5.502479] RAPL PMU: hw unit of domain dram 2^-0
Joules
Feb 7 13:23:15 secOps kernel: [ 5.502480] RAPL PMU: hw unit of domain pp1-gpu 2^-0
Joules
Feb 7 13:23:15 secOps kernel: [ 5.672547] ppdev: user-space parallel port driver
Feb 7 13:23:15 secOps kernel: [ 5.709000] pcnet32 0000:00:03.0 enp0s3: renamed
from eth0
Feb 7 13:23:16 secOps kernel: [ 6.166738] pcnet32 0000:00:03.0 enp0s3: link up,
100Mbps, full-duplex
Feb 7 13:23:16 secOps kernel: [ 6.706058] random: crng init done
Feb 7 13:23:18 secOps kernel: [ 8.318984] floppy0: no floppy controllers found
Feb 7 13:23:18 secOps kernel: [ 8.319028] work still pending
Feb 7 14:26:35 secOps kernel: [ 3806.118242] hrtimer: interrupt took 4085149 ns
Feb 7 15:02:13 secOps kernel: [ 5943.582952] pcnet32 0000:00:03.0 enp0s3: link down
Feb 7 15:02:19 secOps kernel: [ 5949.556153] pcnet32 0000:00:03.0 enp0s3: link up,
100Mbps, full-duplex
Почему команда cat должна быть выполнена как root?
____________________________________________________________________________________
____________________________________________________________________________________

Стр. 5 из 7
Лабораторная работа. Чтение журналов сервера

b. Обратите внимание, что в файле /var/log/syslog хранятся только недавние записи журнала. Для
того чтобы размер файла syslog оставался небольшим, операционная система периодически
выполняет ротацию файлов журналов, переименовывая старые файлы журналов в syslog.1,
syslog.2 и т. д.
Используйте команду cat для создания списка старых файлов syslog
analyst@secOps ~ $ sudo cat /var/log/syslog.2
analyst@secOps ~ $ sudo cat /var/log/syslog.3
analyst@secOps ~ $ sudo cat /var/log/syslog.4
Можете ли вы назвать причины, по которым так важно правильно синхронизировать время и дату
компьютеров?
____________________________________________________________________________________
____________________________________________________________________________________

Часть 3. Файлы журналов и Journalctl


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

Шаг 1. Запуск journalctl без параметров.


a. Для того чтобы найти журналы journald, используйте команду journalctl. Средство journalctl
интерпретирует и отображает записи журнала, которые ранее хранились в двоичных файлах
журналов journal.
analyst@secOps ~ $ journalctl
-- Logs begin at Fri 2014-09-26 14:13:12 EDT, end at Tue 2017-02-07 13:23:29 ES
Sep 26 14:13:12 dataAnalyzer systemd[1087]: Starting Paths.
Sep 26 14:13:12 dataAnalyzer systemd[1087]: Reached target Paths.
Sep 26 14:13:12 dataAnalyzer systemd[1087]: Starting Timers.
Sep 26 14:13:12 dataAnalyzer systemd[1087]: Reached target Timers.
Sep 26 14:13:12 dataAnalyzer systemd[1087]: Starting Sockets.
Sep 26 14:13:12 dataAnalyzer systemd[1087]: Reached target Sockets.
Sep 26 14:13:12 dataAnalyzer systemd[1087]: Starting Basic System.
Sep 26 14:13:12 dataAnalyzer systemd[1087]: Reached target Basic System.
Sep 26 14:13:12 dataAnalyzer systemd[1087]: Starting Default.
Sep 26 14:13:12 dataAnalyzer systemd[1087]: Reached target Default.
Sep 26 14:13:12 dataAnalyzer systemd[1087]: Startup finished in 18ms.
Sep 26 14:14:24 dataAnalyzer systemd[1087]: Stopping Default.
Sep 26 14:14:24 dataAnalyzer systemd[1087]: Stopped target Default.
Sep 26 14:14:24 dataAnalyzer systemd[1087]: Stopping Basic System.
Sep 26 14:14:24 dataAnalyzer systemd[1087]: Stopped target Basic System.
Sep 26 14:14:24 dataAnalyzer systemd[1087]: Stopping Paths.
Sep 26 14:14:24 dataAnalyzer systemd[1087]: Stopped target Paths.
Sep 26 14:14:24 dataAnalyzer systemd[1087]: Stopping Timers.
Sep 26 14:14:24 dataAnalyzer systemd[1087]: Stopped target Timers.
Sep 26 14:14:24 dataAnalyzer systemd[1087]: Stopping Sockets.
<output omitted>

Стр. 6 из 7
Лабораторная работа. Чтение журналов сервера

Примечание. При запуске journalctl в качестве root будут показаны более подробные сведения.
b. Используйте сочетание клавиш CTRL + C для выхода.

Шаг 2. Journalctl и некоторые параметры.


Возможности средства journalctl отчасти заключаются в его параметрах. Для следующих команд
используйте CRTL + C для выхода.
a. Используйте journalctl -utc для показа всех меток времени по Гринвичу.
analyst@secOps ~$ sudo journalctl –utc
b. Используйте journalctl -b для отображения записей журнала, записанных во время последней
загрузки.
analyst@secOps ~ $ sudo journalctl-b
Feb 07 08:23:13 secOps systemd-journald[172]: Time spent on flushing to /var is
Feb 07 08:23:13 secOps kernel: Linux version 4.8.12-2-ARCH (builduser@andyrtr)
Feb 07 08:23:13 secOps kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 fl
Feb 07 08:23:13 secOps kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE re
Feb 07 08:23:13 secOps kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX re
Feb 07 08:23:13 secOps kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]
Feb 07 08:23:13 secOps kernel: x86/fpu: Enabled xstate features 0x7, context si
Feb 07 08:23:13 secOps kernel: x86/fpu: Using 'eager' FPU context switches.
Feb 07 08:23:13 secOps kernel: e820: BIOS-provided physical RAM map:
<output omitted>
c. Используйте journalctl, чтобы указать службу и период времени для записей журнала.
Приведенная ниже команда показывает все журналы службы nginx, записанные сегодня.
analyst@secOps ~$ sudo journalctl -u nginx.service --since today
d. Используйте параметр -k для показа только сообщений, созданных ядром.
analyst@secOps ~ $ sudo journalctl -k
e. Аналогично средству tail -f, описанному выше, используйте параметр -f для активного
отслеживания журналов по мере их записи.
analyst@secOps ~ $ sudo journalctl – f

Вопросы для повторения


Сравните Syslog и Journald. В чем заключаются преимущества и недостатки каждого из них?
_______________________________________________________________________________________
_______________________________________________________________________________________
_______________________________________________________________________________________

Стр. 7 из 7

Вам также может понравиться