Ваша система Linux – отличная платформа для серверов и настольных компьютеров. Но, как и любая другая сложная система, наличие правильного мониторинга крайне важно для поддержания ее в оптимальном состоянии. К счастью, Sysdig находится совсем рядом!
Sysdig – это всесторонний инструмент мониторинга Linux, который может отслеживать вашу систему на предмет угроз, ошибок, шаблонов использования и многого другого. И в этом учебнике вы узнаете, как установить Sysdig, подчеркивая особенности конфигурации и способы улучшения мониторинга вашей системы Linux.
Продолжайте читать и больше никогда не пропустите ‘сигнал’ снова!
Предварительные условия
Этот учебник будет практическим демонстрационным материалом. Если вы хотите следовать за ним, убедитесь, что у вас есть следующее.
- A Linux machine – This tutorial uses Ubuntu 20.04 LTS, but any Linux distributions will work.
- A non-root user with sudo privileges.
Установка Sysdig на Linux
Утилита командной строки Sysdig обычно доступна в большинстве современных дистрибутивов Linux, и вы можете установить Sysdig так же, как и другие пакеты, которые вы установили на своем компьютере до этого.
1. Откройте ваш терминал и выполните команду apt update
ниже, чтобы убедиться, что у вас есть последние обновления из репозиториев вашего дистрибутива. Эта команда обновляет списки пакетов вашей системы и может занять несколько минут.

2. Затем выполните команду apt install
ниже, чтобы скачать (curl
) и установить
необходимые пакеты для Sysdig. Эта команда также устанавливает некоторые дополнительные модули, использованные позже в этом учебнике, следующим образом:
gnupg
– GNU Privacy Guard это инструмент для безопасной коммуникации и хранения данных. Этот пакет позволяет загрузить открытый GPG-ключ Sysdig для проверки подлинности пакетов Sysdig.
software-properties-common
– Обеспечивает быстрый способ управления источниками программного обеспечения через среду командной строки или графический интерфейс. Этот пакет позволяет использовать командуadd-apt-repository
для добавления репозиториев пакетов Sysdig.
linux-headers-$(uname -r)
– Предоставляет необходимые файлы для сборки ядерных модулей для вашего текущего ядра. Этот пакет необходим, потому что вы можете установить Sysdig на машину с более старым стандартным ядром.

3. Выполните команду curl
ниже, чтобы добавить открытый ключ GPG (GPG) Sysdig в кольцо ключей вашего APT. Эта команда позволяет проверить, что пакеты, загруженные с sysdig.com, действительны и не изменены.
После успешного добавления ключа вы получите сообщение ОК, как показано ниже.

4. Теперь выполните команду curl
ниже, чтобы тихо (-s) загрузить репозитории Sysdig как draios.list
и добавить его в вашу систему. Расширение .list
сообщает вашему APT, что файл представляет собой список URL-адресов для репозиториев, а не просто один URL.
5. Повторно запустите команду apt update
ниже, чтобы загрузить новые репозитории Sysdig и обновить списки пакетов APT с информацией о новых репозиториях.
Вы увидите следующий вывод, если ваш APT сконфигурирован правильно.

6. После загрузки репозиториев Sysdig выполните команду apt install
ниже, чтобы установить sysdig
на вашем компьютере. Эта команда загружает и устанавливает пакет sysdig
и его вспомогательные пакеты.

7. Наконец, выполните команду sysdig
ниже, чтобы проверить версию Sysdig, установленную на вашем компьютере.
Номер версии помогает определить, обновлен ли ваш пакет Sysdig. Версия также дает представление о том, влияет ли выпуск Sysdig на производительность системы.
Как показано ниже, на момент написания этого текста версия 0.28.0 является последней версией sysdig. Ваш номер версии может отличаться.

Отслеживание систем Linux с помощью csysdig
Теперь, когда у вас установлен Sysdig, вы можете использовать Sysdig, чтобы посмотреть, что происходит с вашей системой. У командной строки Sysdig есть много флагов, которые предоставляют разные виды вашей системы и её активности. Самый простой пример – это команда csysdig
.
Выполните команду csysdig
без каких-либо флагов, чтобы увидеть, что происходит в вашей системе прямо сейчас. Команда покажет вам активность всех текущих процессов.
Обратите внимание, что вы должны выполнять команды Sysdig с привилегиями
sudo
, чтобы иметь полный доступ к вашей системе. Некоторая активность системы по умолчанию может быть скрыта от обычных пользователей без прав администратора, например, вывод файловой системы /proc. Sysdig также требует привилегийsudo
для автоматической загрузки ядерных символов, необходимых для выполнения многих своих трюков, таких как ядровой модуль sysdig-probe
Если вы столкнетесь с следующей ошибкой, вам нужно переустановить пакет ncurses-term
. Пакет ncurses-term
часто становится поврежденным после свежей установки Sysdig. Sysdig зависит от пакета ncurses-term
для поддержки своего ncurses интерфейса.

Если команда csysdig
успешна, вы получите следующий вывод, организованный во вкладки.
Description | |
PID | The Process ID that assigned by the Linux kernel. You use PIDs to identify and manage processes. |
PPID | The parent process ID of the process. You use PPID to trace the process back through its parent processes. Together, PID and PPID uniquely identify a process on your system. |
CPU | The percentage of CPU used by the application since it started can be seen on a scale from 0 to 100%, where 100% equals total CPU usage. You use CPU usage to find applications that are hogging system resources. |
USER | The name of the user that started the process. You use USER to find out who is executing a process you are interested in. |
TH | The name of the user that started the process. You use USER to find out who is executing a process you are interested in. |
VIRT | The total amount of virtual memory used by the application. You use VIRT to find applications that are hogging your system’s memory. |
RES | The number of resident memory pages a process has, as mapped to physical memory. You use RES to find applications that are hogging your system’s memory. |
FILE | The disk’s file descriptor used by the application. You use FILE to see which files are being read or written frequently, usually an indication of I/O activity. |
NET | The network socket descriptor used by the application. You use NET to see which network connections are being used by the process, and how much data is being transferred in bytes per second. |
Command | The network socket descriptor used by the application. You use NET to see which network connections are being used by the process, and how much data is being transferred in bytes per second. |
На первый взгляд интерфейс csysdig выглядит похожим на инструменты мониторинга, такие как htop.

Нажмите F2, и верхние вкладки изменятся, отображая новый набор информации, организованный во вкладки слева, как показано ниже.
Sysdig называет их “просмотрами”, потому что они представляют различные системные виды, организованные по видам информации, которую они отображают, предоставляя больше контекста. И поскольку эти виды основаны на сценариях LUA, вы можете настраивать сценарии для извлечения различных данных из системы и изменения отображения по вашему выбору.

По умолчанию сценарии LUA находятся в каталоге /usr/share/sysdig/chisels, как показано ниже.

Мониторинг процессов, потребляющих CPU, с помощью Sysdig Chisels
Sysdig предлагает несколько готовых к использованию “долот”, которые автоматически собирают конкретную информацию о системе, известные как “долота” (chisels). Возможно, у вас наблюдается медленная производительность вашего ЦП. В таком случае выполнение команды sysdig
с указанным долотом позволяет вам увидеть, какие приложения/процессы занимают большую часть загрузки ЦП.
1. Выполните команду sysdig
ниже, чтобы получить список доступных долот.
Ниже показано только несколько резцов. Но вы можете найти и изучить полный список всех доступных резцов в официальной документации.
Резцы Sysdig также являются сценариями LUA. Вы можете создавать собственные резцы, чтобы отслеживать конкретную информацию о системе или реализовывать свое собственное представление, но это выходит за рамки данного руководства.

2. Затем выполните нижеуказанную команду, чтобы увидеть подробную информацию (-i
) о конкретном резце, например, topprocs_cpu
в этом демонстрационном варианте.
Вы можете увидеть всю информацию о резце topprocs_cpu ниже, включая его название, категорию и краткое описание функции резца.
В этом примере резец topprocs_cpu относится к использованию ЦП и показывает верхний процесс, определенный как наиболее интенсивно использующий ЦП.
После того как вы поняли функциональность резца, вы можете начать его использовать.

3. Запустите команду sysdig
ниже, указав правильный резец (-c topprocs_cpu
), чтобы найти приложения, использующие наибольшее количество ЦП в вашей системе.
Sysdig захватывает десять наиболее потребляющих ЦП процессов в этой демонстрации и выводит их на терминал. Самый интенсивно использующий ЦП процесс будет отображен вверху (sshd), что позволит быстрее их найти.

Мониторинг отфильтрованной информации о системе
В некоторых случаях вывод огромен, что затрудняет фильтрацию системной информации на основе конкретного долота. К счастью, Sysdig предлагает мощную опцию фильтрации, которая использует синтаксис Lua, чтобы вы могли выполнять эффективную фильтрацию.
Предположим, вы ищете только процессы sshd, которые потребляют много процессорного времени. Вы можете определить выражение фильтрации по конкретному PID или имени процесса.
Запустите следующую команду sysdig
, чтобы показать только процесс sshd
, который использует много процессорного времени.
Как показано ниже, вы получите отфильтрованный вывод без получения информации о других процессах.
Из вывода вы можете получить дополнительную информацию о процессе sshd, например, почему процесс sshd использует больше процессорного времени или памяти и т. д.

Создание файла журнала событий для мониторинга вашей системы
Одна из отличных функций, которую предлагает Sysdig, это файлы журнала событий, которые позволяют вам собирать всю информацию о том, что делает ваше приложение или система для последующего анализа. Файлы журналов событий предоставляют ту же информацию, что и вывод командной строки в предыдущих примерах, но сохраняются в файле на диске.
1. Запустите следующую команду, чтобы создать файл (-w
) с именем ata.scap
в вашей домашней директории, где Syslog будет хранить все выводы sysdig
.
Расширение файла .scap позволяет сохранять потоки данных в форме человекочитаемого текста.
2. Далее запустите команду ls -la
ниже, чтобы перечислить все файлы в рабочем каталоге.
Вы заметите новый файл с именем ata.scap в вашем домашнем каталоге, как показано ниже.

3. Наконец, выполните нижеприведенную команду для Sysdig, чтобы прочитать (-r
) файл журнала событий Sysdig (ata.scap
) и напечатать поведение вашей системы при подключении по SSH к вашему серверу.

Заключение
В этой статье вы узнали, как установить Sysdig на Ubuntu 20.04 и использовать csysdig для сбора информации о вашей системе, приложениях и безопасности. Вы также коснулись создания файла журнала событий, который позволяет записывать поведение вашей системы.
На этом этапе вы осознали, что установка Sysdig в вашей системе предоставляет вам мощные инструменты. И эти инструменты помогают вам получить больше информации о том, как работают ваша система, приложения и инфраструктура.
Теперь, обладая этим новым знанием, почему бы не научиться декодировать ваш трафик HTTP с помощью Sysdig? Или как отслеживать узкие места приложения с помощью трассировщиков Sysdig?