Перейти к содержимому

Полезные утилиты для мониторинга Linux систем

    В данной статье мы собрали утилиты Linux которые будут полезны как системным администраторам таки и DevOps инженерам.

    top

    Запуск утилиты top

    top

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

    VIRT — использование виртуальной памяти
    RES — физическая память которую использует процесс
    SHR — общий объем использованной памяти
    S — статус процесса: R — running; S — sleeping, Z — zombie
    %CPU — процент используемого времени процессора
    %MEM — процент использованной оперативной памяти
    TIME+ — время выполнения процесса
    COMMAND — название программы, которая инициировала процесс.

    Для вывода дополнительных столбцов статистики необходимо нажать клавишу F и выбрать нужное.

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

    vmstat

    Команда vmstat выводит статистику использования виртуальной памяти. Вывод утилиты разделены на 6 групп.

    Запуск утилиты vmstat

    vmstat

    Procs

    • r: количество запущенных процессов.
    • b: количество спящих процессов.

    Memory

    • swpd: объем используемой виртуальной памяти.
    • free: объем свободной памяти.
    • buff: количество памяти, используемой в качестве буферов.
    • cache: объем памяти, используемой в качестве кеша.

    Swap

    • si: объем памяти, выгруженный с диска.
    • so: объем памяти, перенесенный на диск.

    IO

    • bi: блоки, полученные от блочного устройства (blocks/s).
    • bo: блоки, отправленные на блочное устройство (blocks/s).

    System

    • in: количество прерываний в секунду, включая часы.
    • cs: количество переключений контекста в секунду.

    CPU

    • us: время, потраченное на запуск кода, не относящегося к ядру (время пользователя).
    • sy: время, потраченное на выполнение кода ядра (системное время).
    • id: время бездействия.
    • wa: время, проведенное в ожидании ввода/вывода.
    • st: время, украденное из виртуальной машины.

    W

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

    Запуск утилиты w

    w

    uptime

    Запуск утилиты uptime

    uptime

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

    ps

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

    Запуск утилиты ps

    ps

    Полезные комбинации использования утилиты ps

    Подробный вывод информации о запущенных процессах

    ps -Al
    ps -AlF

    Вывод всех процессов запущенных на сервере

    ps ax
    ps aux

    Вывод дерева процессов

    ps axjf
    pstree

    Вывод всех процессов запущенных от определенного пользователя

    ps -U root -u root u

    Вывод всех PID определенной команды/программы

    ps -C nginx -o pid=
    pgrep nginx

    Вывод имени команды определенного PID

    ps -p 100810 -o comm=

    free

    Утилита free выводит статистику используемой и свободной памяти сервера. Информацию free получает из файла /proc/meminfo – динамически изменяющего в процессе работы системы.

    Запуск утилиты free

    free

    Вывод информации в мегабайтах

    free -m

    Интервал обновления значений задается через ключ -s и указывается числовое значение равное секундам

    free -s 5

    pmap

    Команда выводит детальную информацию по использованию оперативной памяти процессом.

    Запуск утилиты pmap

    pmap -d PID

    Для того чтобы посмотреть информацию о процессе с PID 100108 необходимо выполнить следующую команду

    pmap -d 100108

    netstat

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

    Запуск утилиты netstat

    netstat

    Вывод всех портов

    netstat -a

    Вывод всех TCP портов

    netstat -at

    Вывод всех UDP портов

    netstat -au

    Статистика по всем портам

    netstat -s

    Вывод PID и имени приложения которое находится на порте

    netstat -p

    iptraf

    Установка iptraf

    apt install iptraf

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

    tcpdump

    Утилита позволяющая проанализировать работу сети на уровне передаваемых сетевых пакетов. По умолчанию при запуске tcpdump производится поиск сетевых интерфейсов и для анализа используется первый найденный.

    Запуск tcpdump

    tcpdump [-опции] [фильтры]

    Пример вывода данные по определенному интерфейсу

    tcpdump -i eth0

    Вывод определенного типа трафика

    tcpdump icmp

    Сохранение вывода в файл

    tcpdump -i eth0 -w file_name

    Файлы /proc/

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

    cat /proc/cpuinfo
    cat /proc/meminfo
    cat /proc/zoneinfo
    cat /proc/mounts