ТРАБЛШУТИНГ LINUX // Основные команды, примеры

Основные команды для быстрого поиска проблем (траблшутинга) сервера или виртуальной машины на Linux (Ubuntu, Debian, CentOS, Astra). Как диагностировать проблемы с дисками, процессами, оперативной памятью, сетью. Как смотреть логи в Linux.

Краткое содержание видео:

В этом видео автор рассказывает о том, как быстро находить проблемы на Linux-серверах. Он делится основными командами, которые должен знать каждый инженер, и показывает, как их использовать на реальных примерах.

Темы, рассмотренные в видео:

Проверка места на диске:
    Используйте команду df -h для просмотра свободного места на дисках.
    Используйте команду du -sh <директория> для просмотра количества места, занимаемого файлами в определенной директории.
    Узнайте, что такое inodes и как их проверить с помощью команды df -i.
Состояние дисков:
    Используйте команду smartctl -A <устройство> для просмотра SMART-отчета диска.
    Обратите внимание на такие параметры, как Located Event Count, Reader Rate, Percentage Used.
Нагрузка на диски:
    Используйте команды iotop и eat для просмотра информации о том, какие процессы читают или записывают данные на диск.
Нагрузка на процессор:
    Используйте команду top для просмотра информации о загрузке процессора, использовании памяти и работе процессов.
    Обратите внимание на такие параметры, как %Cpu(r), %Cpu(s), %Cpu(n), %Idle, %Wait.
Оперативная память:
    Используйте команды top, vmstat, free -m для просмотра информации об использовании оперативной памяти.
    Обратите внимание на такие параметры, как Total, Used, Free, Cached.
Процессы:
    Используйте команду ps aux для просмотра списка всех запущенных процессов.
    Используйте команду kill <pid> для принудительного завершения процесса.
    Используйте команду systemctl status <сервис> для проверки состояния сервиса.
Сеть:
    Используйте команду netstat -tnlp для просмотра списка сетевых подключений.
    Используйте команду ip a для просмотра информации о сетевых интерфейсах.
    Используйте команду nmap для сканирования сети.
    Используйте команды ping, traceroute, dig, curl для диагностики сетевых проблем.
Логи:
    Используйте команду tail -f /var/log/syslog для просмотра последних записей в системном журнале.
    Используйте команду journalctl для просмотра системных журналов.

Ссылки:

[неправильный URL удален]
[неправильный URL удален]
[неправильный URL удален]

Важно:

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

https://gemini.google.com

Расшифровка видео

Вступление
0:00
Привет Сегодня мы будем разбираться Как
0:02
быстро находить проблемы на линуксом
0:03
серверах я покажу Какие основные команды
0:06
должен знать каждый уважающий себя
0:07
инженер как мы вообще понимаем что
Мониторинг
0:10
что-то идёт не так в идеале у нас должны
0:12
быть подключены какие-то системы
0:14
мониторинга это может быть как привычный
0:16
всем зак так и проте или nagios мы так
0:20
или иначе увидели какую-то проблему с
0:21
сервером может быть мы графики смотрели
0:24
и увидели что там нагрузка высокая или
0:26
нам Пришло Уведомление от системы
0:28
мониторинга куда-нибудь в мессенджер на
0:29
почту вообще от системы мониторинга
0:31
должно быть сразу понятно На каком
0:33
сервере что случилось такое должно быть
0:34
сообщение от неё но в целом команды я
0:37
разделил на пять групп Давай перейдём в
0:39
терминал и посмотрим какие команды Я
0:41
сегодня тебе покажу и мы находимся на
Место на дисках
0:44
каком-то сервере мы начнём с проверки
0:48
оставшегося места на жёстких дисках для
0:51
этого у нас используется команда DF А мы
0:54
берём ключ минус H который
0:56
превращает значение так называемое в
0:58
человеко читае это хума R формат то есть
1:01
там будет показано Не в байтах
1:03
килобайтах а будет показано в гигабайтах
1:05
мегабайтах и тому подобное Значит в этой
1:08
команде Мы видим что у нас подключены
1:10
такие-то диски э такой-то диск такой-то
1:13
диск они примонтировать
1:28
диски есть ещё команда Ду показывает
1:32
количество места которое занимает
1:34
определённые файлы в определённой
1:36
директории например с помощью команды Du
1:38
мину с TM мы можем посмотреть количество
1:42
мест которое занимают все файлы в
1:44
директории те Есть немного противный
1:47
вопрос который иногда задают На
1:49
собеседованиях вот мы зашли на сервер
1:51
какой-то видим что там место ещё есть мы
1:53
видим там условно 100 ГБ ещё осталось но
1:57
файл мы создать не можем ошибка
1:59
возникает аэ вопрос нацелен на то знаешь
2:01
ли ты что такое ноды ноды – это
2:05
структуры которые хранят некую служебную
2:08
информацию о файлах в Linux э там
2:11
хранятся права на файлы указатели на
2:14
блок данных на жёстком диске где они
2:16
находятся но важно знать что ноды не
2:20
содержат имя файла каждый файл в системе
2:23
имеет свой ИТ и посмотреть их можно
2:26
командой DF – I и он нам показывает
2:29
сколько у нас тут всего Ино сколько
2:31
использовано Сколько свободно если здесь
2:33
100% нужно что-то с этим делать но это
2:36
уже нужно гуглить и смотреть место на
Состояние дисков
2:39
дисках мы проверили теперь давай
2:41
посмотрим на общее состояние жёстких
2:43
дисков перейду на сервер на котором У
2:45
меня обычные жёсткие диски не nvme не
2:48
SSD а самые обычные вот такие большие у
2:50
которых металлическая пластина внутри
2:52
крутится для того чтобы посмотреть
2:53
состояние жёсткого диска есть такая
2:55
штука Как Смарт отчёты эта штука не
2:58
линуксом отдают о себе отладочные в
3:01
Linux можно посмотреть с помощью команды
3:02
Smart ctl – A и вводим название
3:06
устройства например Def sda наш диск вот
3:08
этот и мы получаем всю информацию о
3:12
нашем диске включая его модель серийный
3:15
номер который часто нужно подавать Хосте
3:18
если у тебя не свой сервер ты его
3:20
арендуете нужно по какой-то причине
3:22
заменить диск ты ему говоришь Ну
3:25
человеку в дата-центре ты говоришь
3:27
именно серийный номер жёсткого диска
3:30
коне ниже тут бла-бла-бла-бла-бла вот он
3:32
Смарт отчёт здесь показана вся
3:35
информация Есть ли какие-то ошибки на
3:39
диске сколько он раскручивается при
3:41
запуске сколько раз он запускался вот 30
3:44
раз у меня стартовал этот жёсткий
3:46
диск То есть можно сделать примерный
3:49
Вывод что этот сервер включался и
3:51
выключался 30 раз сколько часов он
3:54
работает этот жёсткий диск и всякие
3:56
такие штуки Поэтому если вот например
3:59
вот такой параметры located Event Count
4:01
растёт или Reader Rate растёт то это
4:06
показатель того что что-то с диском не
4:08
так и стоит его наверное заменить А
4:11
такие Смарт отчёты есть на обычных HDD
4:14
дисках на nvm дисках такого Смарт отчёта
4:17
нету но
4:18
программа Smart stl прекрасно его
4:21
считает на самом деле Давай попробуем на
4:23
nvme диски читать smartctl ми AD nvme 1
4:28
N1
4:30
он нам покажет также информацию о диске
4:32
тут серийный номер и тому подобное и
4:34
покажет общее состояние жёсткого диска и
4:36
вот этот параметр percentage use он
4:38
говорит о том сколько примерно
4:40
использовано жизненного ресурса этого
4:42
диска из примерно заложенного
4:45
производителем Я думаю оно меряется
4:47
изначально по часам наработки и здесь
4:51
можно сказать что использовано 0% потому
4:53
что это сервер новый диск Здесь тоже
4:54
новый стоит также если на нашем сервере
4:56
есть сотовый Рей массив мы можем
4:58
посмотреть о нём информацию в файлики
5:01
про MD Stat мы тут видим что у меня есть
5:05
три софтов рейда они все Рей о в каждом
5:08
есть по два диска и они работают если
5:10
какой-то диск вылетает с ним какие-то
5:12
проблемы рейд начинает разваливаться и
5:14
здесь будет прочерк с дисками мы
Нагрузка на диски
5:16
разобрались теперь переходим к категории
5:18
процессор и память будем смотреть
5:21
нагрузку на процессор память и на
5:24
жёсткие диски именно нагрузку не
5:26
состояние начнём с команд eat и eop они
5:30
обе могут быть не установлены на твоём
5:32
сервере поэтому вероятно их нужно будет
5:34
установить Но посмотрим как они выглядят
5:36
eat он показывает общую информацию о том
5:40
сколько данных на диск сейчас пишется
5:43
или с него читается и есть команда
5:46
ИО топ который показывает Какие процессы
5:51
пишут сейчас на диск либо читают с него
5:54
дальше начинается Самое интересное это
Процессор
5:57
утилита Топ она дефолтная L она
6:00
показывает сразу и lage по нашей системе
6:04
И сколько процессорного времени у нас
6:06
используется в каждом режиме и как
6:09
память у нас расходуется и какие
6:11
процессы и какой у них айдини сколько
6:14
чего жрут главное всё правильно читать
6:16
начнём с режимов работы процессора р –
6:19
это процент времени процессора который
6:21
был затрачен на выполнение процессов в
6:24
пользовательском режиме это как раз
6:25
самый обычный режим Когда мы запускаем
6:27
какой-нибудь условный у нас он в режиме
6:31
System тут идёт временно выполнение
6:33
операции системы и
6:35
ядра nce – это процент времени на
6:38
выполнение операции с изменённым
6:40
приоритетом через команду най про него
6:42
будет отдельное видео А я в описании
6:45
оставлю ссылочку на пост в Telegram
6:47
канале там я рассказывал как работают
6:49
приоритеты idle – это сколько времени у
6:51
нас процессор простаивает То есть сейчас
6:54
у нас видно что на сервер никакой
6:55
нагрузки особой нету у нас 99% он
6:58
простаивает Wi и или E это процент
7:01
времени когда система ожидает завершения
7:04
операции ввода-вывода причём это не
7:06
обязательно диски может быть и нагрузка
7:08
на сеть причём увеличенное время может
7:11
реально говорить о каких-то проблемах с
7:13
дисками или с сетью например проблемы с
7:14
сетевой кар – это Hardware и Software
7:19
это аппаратные или программные
7:21
прерывания и Стил – это время которое
7:25
было украдено у виртуальной машины
7:28
гипервизоров в среда лизации это время
7:31
когда гипервизор по какой-то причине
7:33
занят обработкой других задач и не может
7:35
нужные ресурсы предоставить виртуальной
7:36
машине Ну то есть основные параметры
7:38
которые нужно смотреть Это вот первые
7:40
пять штучек даже на nce можно особо не
7:42
смотреть Что такое lad aage lad average
7:46
показывает среднее количество процессов
7:49
И самое главное и операции ввода-вывода
7:52
в процессорной очереди его можно
7:55
посмотреть как командой топ так и
7:57
командой Up
8:00
или мы можем это посмотреть в программе
8:03
п которую частенько нужно устанавливать
8:04
дополнительно но иногда она уже есть в
8:06
комплекте значит ХП Это топ только
8:10
красивенький тут даже можно мышкой
8:11
тыкать и менять приоритизации здесь есть
8:15
куча всяких фильтров и тому подобной
8:16
штуки теперь перейдём к оперативной
Оперативная память
8:19
памяти мы можем её смотреть мы уже
8:20
видели в Топ она тут отображается мы
8:23
можем её видеть ВП в дефолтном режиме
8:25
вот так вот в графическом виде мы можем
8:28
еть
8:30
с помощью
8:31
команды vmstat такая информация можем
8:35
посмотреть с помощью команды fre с
8:37
ключом M и в целом здесь вот такая
8:40
информация будет значит total – это
8:42
общий объём оперативной памяти который у
8:44
нас есть в системе это 64 Гб у меня на
8:46
сервере стоит ust – это объём памяти
8:49
который используется всеми процессами и
8:51
системой то есть 52 ГБ у меня используют
8:53
какие-то процессы буферы и Кэш – это
8:56
память которая использована для буферов
8:58
ядра и для кэша страниц индексов
9:01
файловой системы и вот здесь воф мы
9:03
можем видеть объём памяти который не
9:05
используется ни процессами и системы ни
9:07
кэша и буферами также супер подробную
9:09
информацию о памяти мы можем посмотреть
9:11
в файлики
9:14
проо здесь прям супер подробно перейдём
Процессы
9:18
к следующей категории – это процессы не
9:21
процессоры процессы мы их можем
9:22
посмотреть с помощью команды process
9:24
snapshot сокращённо PS я её чаще всего
9:26
использую с ключами AUX и она у нас
9:29
выводит все процессы которые у нас
9:32
запущены на сервере она показывает их
9:35
пользователя под которым они запущены их
9:37
айди ник различную служебную информацию
9:39
Дату когда он был запущен время сколько
9:41
он работает и команду с помощью которой
9:42
он был запущен с помощью PS Мы в целом
9:44
можем понять работает ли наш процесс или
9:47
может быть он просто погиб если у нас
9:48
какой-то процесс подвис мы можем
9:50
попробовать его принудительно завершить
9:51
с помощью команды Kill и передав ей в
9:54
качестве аргумента айдини нашего
9:56
процесса если у нас процессы в
9:58
операционной си системе управляется с
10:00
помощью System
10:01
ctl мы можем использовать команду System
10:04
ctl статус и например смотреть статус
10:07
наших сервисов
10:09
ginx посмотреть что у нас Jin всё О’кей
10:12
тут какие-то служебные информации логи
10:15
бла-бла-бла мы можем посмотреть дишни
10:17
нашего процесса главного есть такая
10:19
программа называется stace она нужна для
10:22
отладки процессов это прямо глубокая
10:24
отладка она показывает какие системные
10:26
вызовы выполняются в реальном времени и
10:29
мы можем отслеживать новый процесс
10:30
например
10:32
S Trace
10:34
LS какие-то тут вот системные вызовы
10:37
были Либо мы можем подключиться
10:39
к имеющемуся процессу честно скажу за
10:44
всё время мне рейс Понадобился два раза
Сеть
10:47
с процессами долго сидеть не хочется
10:49
перейдём к ещё более интересным штукам
10:51
поговорим про сеть что можно проверять
10:54
на сервере по сетевой части и какие
10:55
команды вообще Для этого и нужно знать
10:57
первые мы посмотрим на коман с такими
10:59
ключами
11:01
tpn она показывает процессы которые
11:05
слушают какие-то сетевые порты на
11:08
сервере можно видеть что у меня
11:09
установлен pog который слушает порт 5432
11:13
у меня установлен Джинс который слушает
11:14
443 восьмидесятый порт SS работает на
11:18
двадцать втором порту тут можно понять
11:20
не занят ли какой-то порт у тебя
11:22
какое-то приложение может не запускаться
11:23
Потому что его порт Уже чем-то занят
11:26
может быть даже предыдущий копии этого
11:28
же приложение потому что она зависла
11:30
приложение netstat может быть не
11:32
установлено на сервере его нужно
11:33
установить дополнительно Поэтому вот
11:35
более встроенно так сказать программка
11:37
SS э с ключами лнту покажет примерно то
11:41
же самое теперь посмотрим информацию о
11:43
сетевых интерфейсах а попробуем понять
11:46
каким интерфейсом у нас какой IP адрес
11:48
назначен команда
11:49
ipa Мы видим что у нас есть LB интерфейс
11:52
1271 У нас есть основной интерфейс у
11:55
него адрес такой у нас есть вот такие
11:58
интерфейсы
11:59
это у меня докер контейнеры подняты и в
12:02
общем тут вся вот эта информация есть
12:05
если IP не работает можно
12:06
воспользоваться командой в
12:09
config в целом тоже самое вот Мак адреса
12:13
у
12:14
интерфейсов Сколько пакетиков через них
12:16
бегает теперь посмотрим информацию о
12:18
сетевых маршрутах есть команда N ми
12:23
rn здесь в принципе видно что у нас
12:25
маршрут по умолчанию идёт на вот
12:27
такой-то шлюз а и он прикручен к
12:30
такому-то интерфейсу и в принципе
12:31
маршруты для Докера для Бридж ов
12:34
контейнеров если команда неста у нас
12:37
нету Она устанавливается дополнительно
12:39
можно воспользоваться командой ipr в
12:41
принципе показывает то же самое
12:42
двигаемся дальше по программам для
12:44
диагностики сети э известный всем
12:49
пин который показывает вообще
12:53
доступность удалённых хостов мы
12:54
убеждаемся что сеть в целом работает
12:57
пакеты уходят спокойненько на другой
12:59
сервер и также она помогает проверить
13:01
что у нас работает на нашей машине DNS
13:02
resolving Потому что если
13:05
указать здесь доменное имя а не IP адрес
13:08
оно должно каким-то образом превратиться
13:10
в IP адрес то есть DNS у нас работает
13:13
дальше команда Trace
13:16
Road она
13:18
показывает путь пакетов от вашего
13:21
сервера до конечного сервера он
13:25
показывает все промежуточные
13:27
маршрутизаторы между нашим сервером и
13:31
конечным который DNS Гугла есть ещё
13:34
программка МТР которая покажет
13:36
трассировку в живом режиме так сказать Э
13:39
мы можем увидеть какие-то потери и на
13:41
каком узле они происходят программа к
13:44
или nslookup они позволяют делать
13:46
различные запросы к ДНС серверам
13:48
проверять их ответы скорость можно
13:51
указывать различные ДНС серверы Давай
13:53
посмотрим а на к то есть мы указываем Di
13:56
это GE Def и смотрим Что у нас ДНС
14:00
сервер это наш локальный резольвер он
14:03
говорит что есть вот такая ДНС запись на
14:06
сервере это запись типа А которая
14:09
превращается в айпишник такой-то мы
14:12
можем запросить эту информацию не У
14:15
нашего локального сервера А у гулого ДНС
14:18
сервера четыре
14:20
восьмёрки ток
14:23
Def мы уже спрашиваем У него там такая
14:27
же информация лежит с помощью параметра
14:29
минут мы можем указывать какой тип
14:31
записи мы хотим запросить у сервера
14:33
например Мы хотим запросить почтовую
14:35
запись у моего сайта на R домене и видим
14:38
что есть вот такая MX запись там дальше
14:41
у нас идёт программа которую вообще
14:42
стоило ставить на первое место это
14:43
конечно же с URL А Он позволяет
14:45
выполнять запросы к различным нпои а
14:48
чаще всего с помощью URL Я так люблю его
14:50
называть можно сделать http https Запрос
14:53
к какому-нибудь сайту и получить ответ
14:55
мы можем проверить код ответа
14:57
сертификаты Какие http хрс были
15:00
отправлены или получены и Давай
15:02
попробуем сделать запрос с такими
15:04
ключами к моему
15:07
сайту по умолчанию он у нас всю мку
15:11
подгрузить сюда поэтому мы смело
15:14
двигаемся На самый верх и смотрим Что у
15:16
нас он попытался подключиться к моему
15:19
сайту к айпишник по восьмидесятом порту
15:22
дальше который у меня стоит говорит что
15:24
30 код ответа он перен навсегда на сот
15:29
порт тут мы подключаемся тут сертификати
15:32
тлс бла-бла-бла и дальше HTML пошла
15:35
очень часто приходится что-то проверять
15:37
с помощью curl через curl можно ещё
15:40
делать запросы к различным протоколам
15:42
Например можно проверить доступность
15:43
какого-нибудь удалённого порта с помощью
15:46
telnet но через URL то есть URL ми V
15:51
telnet например
15:54
127 и 22 нам telnet отвечает
15:59
что это ssh но самогоне Может на машине
16:03
не стоять Мы через Кул это делаем также
16:05
мы можем делать запросы напрямую к
16:08
никсом сокета с помощью подобной
16:10
конструкции 2 мину UN Socket указываем
16:13
путь к сокету и ссылку которую мы хотим
16:15
проверить тут у нас P пото что у меня
16:17
там ничего такого нету но Окей так можно
16:20
делать дальше команда tcp
16:26
dcp с такими ключами
16:31
пор эта программа показывает Какие
16:33
пакеты бегают через определённые сетевые
16:35
интерфейсы иногда бывает с одного
16:37
сервера недоступен сервис на другом и
16:39
нужно посмотреть доходят ли вообще
16:40
пакеты и Отвечает ли удалённый сервер
16:43
нам и Давай запустим посмотрим как это
16:45
вообще выглядит tcp Dump мину и
16:47
показывает на каких интерфейсах Я хочу
16:50
запустить tcp Dump здесь я говорю что на
16:52
всех интерфейсах пожалуйста Слушай всё
16:54
пор 99.000 мы послушаем Какие пакеты
16:57
бегают через 9.100 пор на котором
16:59
работает node exp поте – это такая штука
17:01
которая собирает железные метрики с
17:04
моего сервера а потом Victoria Matrix
17:06
или прометеус собирает эти данные к себе
17:08
в базу и ключ минус NN говорит чтобы IP
17:12
адреса которые в данных будут не
17:14
превращались обратно в доменные имена и
17:18
смотрим вот у меня какой-то сервер
17:21
запросил какую-то информацию Мы ему
17:24
ответили в целом вот так вот это всё
17:26
выглядит очень удобно э иногда бывает
17:29
смотреть и главное очень полезно с сетью
Логи
17:31
закончили Давай перейдём к последней
17:32
категории это мы будем смотреть логи где
17:35
у нас вообще операционной системе живут
17:37
логи чаще всего это директория Warlock
17:39
здесь есть куча файлив и мы посмотрим
17:43
основной источник логов это файл Warlock
17:49
sisl добавлю ещё вот такой ключик что у
17:53
нас это за команда такая Tale выводит
17:55
последние 10 строчек в файле мину F –
17:59
это сокращение от Follow который будет
18:01
выводить Все изменения по файлу то есть
18:03
мы открыли файл если в него что-то
18:05
записывается в этот момент мы это увидим
18:07
у себя на экране и ключ N он
18:09
перезаписывает вот это количество
18:11
строчек по умолчанию то есть мы выведем
18:12
сейчас 50 строчек Давай
18:15
посмотрим в принципе здесь видны
18:17
какие-то данные из системы что-то тут у
18:20
меня сербо говорит у меня тут крон
18:22
выполняет какие-то задания systemd
18:24
что-то говорит Окей Какие ещё есть
18:27
основные
18:28
файлики У нас есть файл Warlock Log в
18:33
нём будут логи в нём будут логи попыток
18:36
входа на сервер или выполнения каких-то
18:38
команд с повышением привилегий дальше
18:41
Файлик
18:43
Warlock Log здесь сообщение от ядра
18:46
системы сообщение от ядра системы Также
18:48
можно посмотреть с помощью команды D
18:50
минут минут сделает просто тайм штампы
18:54
человеческими здесь мы смотрим все
18:57
сообщения ядра начина
18:59
запуска системы также если у нас система
19:01
управляется с помощью System ctl помните
19:03
мы смотрели
19:05
логи через статус
19:08
Уса мы можем смотреть эти логи с помощью
19:13
команды по умолчанию показывает вообще
19:15
все логи системы то есть по сути но мы
19:19
можем их немножечко фильтра нуть через
19:22
ключик и указать название сервиса вот
19:25
видим что у ня когда-то перезапуска
19:28
какие-то сообщения он туда давал в
19:29
принципе вот все логи Джинкс будут здесь
19:33
А на этом всё помните что каждое
19:35
подобное проблема – это шанс научиться
19:37
чему-то новому и прокачать свои скилы Не
19:39
бойтесь экспериментировать и исследовать
19:42
Всем пока и удачи

Поделиться: