Sysdig — это мощный инструмент для мониторинга и отладки системы на уровне ядра. Он перехватывает системные вызовы и позволяет в реальном времени анализировать, какие процессы что делают: какие файлы открывают, с какими сетевыми адресами общаются, сколько потребляют ресурсов.
Sysdig включает в себя как консольную утилиту sysdig (аналог tcpdump, но для системных вызовов), так и интерактивный интерфейс csysdig (напоминает htop, но с гораздо большей детализацией).
В этом руководстве я покажу, как установить Sysdig на Debian из официального репозитория Sysdig, чтобы получить свежую версию 0.41.x, которая работает на Debian 13, 12 и 11.
Предварительные требования
Перед установкой убедитесь, что:
- У вас есть доступ к интернету
- Вы имеете права
sudo(администратора)
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.
✅ Ожидаемый вывод в терминале:
root
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
Установка Sysdig
Шаг 1: Обновите систему
sudo apt update && sudo apt upgrade -y
Шаг 2: Установите зависимости
sudo apt install -y ca-certificates curl gpg ncurses-term dkms
Что делает:
ca-certificates— для проверки SSL-сертификатовcurl— для скачивания GPG-ключаgpg— для работы с ключамиncurses-term— для правильного отображенияcsysdig(исправляет ошибки терминала)dkms— для автоматической пересборки модуля ядра при обновлении ядра
Шаг 3: Импортируйте GPG-ключ Sysdig
curl -fsSL https://download.sysdig.com/DRAIOS-GPG-KEY.public | sudo gpg --dearmor -o /usr/share/keyrings/sysdig.gpg
Что делает:
curl -fsSL— скачивает открытый ключ Sysdig| sudo gpg --dearmor— преобразует в бинарный формат (требуется APT)-o /usr/share/keyrings/sysdig.gpg— сохраняет ключ в системную директорию
Шаг 4: Добавьте репозиторий Sysdig
printf '%s\n' \
'Types: deb' \
'URIs: https://download.sysdig.com/stable/deb' \
"Suites: stable-$(dpkg --print-architecture)/" \
'Signed-By: /usr/share/keyrings/sysdig.gpg' \
| sudo tee /etc/apt/sources.list.d/sysdig.sources > /dev/null
Что делает: Создаёт файл репозитория в современном формате DEB822.
Важно: У Sysdig нет поддиректорий main, поэтому Suites: заканчивается на / и включает архитектуру.
Шаг 5: Обновите список пакетов
sudo apt update
Ожидаемый вывод (должны быть строки с download.sysdig.com):
Get:1 https://download.sysdig.com/stable/deb stable-amd64/ InRelease [1,390 B]
Get:2 https://download.sysdig.com/stable/deb stable-amd64/ Packages [52.5 kB]
Шаг 6: Проверьте, что репозиторий активен
apt-cache policy sysdig
✅ Ожидаемый вывод:
sysdig:
Installed: (none)
Candidate: 0.41.x
Version table:
0.41.x 500
500 https://download.sysdig.com/stable/deb stable-amd64/ Packages
Шаг 7: Установите Sysdig и заголовки ядра
sudo apt install -y linux-headers-$(uname -r) sysdig
Что делает: Устанавливает заголовки вашего текущего ядра и сам Sysdig.
Важно: Во время установки DKMS автоматически соберёт модуль scap.ko. Если вы когда-нибудь обновите ядро, DKMS пересоберёт модуль автоматически.
✅ Ожидаемый вывод (частично):
Setting up sysdig (0.41.4) ...
Loading new scap-8.1.0+driver DKMS files...
Building initial module for 6.x.x-amd64
Done.
scap.ko:
- Installation
- Installing to /lib/modules/6.x.x-amd64/updates/dkms/
Проверка установки
sysdig --version
command -v csysdig
✅ Ожидаемый вывод:
sysdig version 0.41.4
/usr/bin/csysdig
Основы работы с Sysdig
Просмотр доступных полей для фильтрации
Sysdig умеет фильтровать события по тысячам параметров. Чтобы увидеть все доступные поля:
sysdig -l
Пример полей: proc.name (имя процесса), fd.name (имя файла), evt.type (тип события: read, write, open), container.name (имя контейнера Docker).
Мониторинг процессов в реальном времени
Показать процессы, потребляющие больше всего CPU (chisel topprocs_cpu):
sudo sysdig -c topprocs_cpu
Что делает: Запускает встроенный скрипт (chisel), который отображает процессы в реальном времени, отсортированные по использованию CPU.
Фильтрация событий по имени процесса
sudo sysdig proc.name=nginx
Что делает: Показывает все системные вызовы процесса с именем nginx. Это мощный способ отладки конкретного приложения.
Список всех доступных chisels
sysdig -cl
Что делает: Выводит все встроенные скрипты анализа (chisels), сгруппированные по категориям: CPU, память, сеть, ошибки, безопасность.
Использование csysdig (интерактивный интерфейс)
csysdig — это интерактивная версия Sysdig с интерфейсом, похожим на htop.
Запуск csysdig
sudo csysdig
Что делает: Запускает интерактивный режим с видом «Processes» по умолчанию.
Навигация по csysdig
- F2 или : (двоеточие) — переключение между видами (processes, connections, errors, containers)
- F4 или l — применить фильтр
- F5 или s — сортировка по столбцу
- F6 или a — добавить/убрать столбцы
- F1 или h — справка
- Esc или q — выход
Пример создания пользовательского вида
- Нажмите F2 → выберите «Add view»
- Введите имя вида (например, «My Nginx View»)
- Выберите столбцы:
PID,CPU%,Command - Добавьте фильтр:
proc.name=nginx - Сохраните.
Решение типичных проблем
8.1 Ошибка: kernel module не загружается
Симптом: При запуске Sysdig появляется ошибка, что модуль не может загрузиться.
Причина: Отсутствуют заголовки ядра или модуль не собрался.
Пошаговое решение:
Шаг 1: Убедитесь, что заголовки ядра установлены:
sudo apt install -y linux-headers-$(uname -r)
Шаг 2: Попробуйте загрузить модуль вручную:
sudo modprobe scap
(отсутствие вывода = успех)
Шаг 3: Если модуль всё ещё не загружается, используйте eBPF-режим (требуется ядро 5.8+):
sudo sysdig --modern-bpf -cl
Что делает: Использует встроенную в ядро поддержку eBPF вместо отдельного модуля.
8.2 Ошибка: csysdig показывает кракозябры или ошибки терминала
Симптом: При запуске sudo csysdig появляются ошибки о терминале xterm-256color.
Причина: Не установлен пакет ncurses-term.
Пошаговое решение:
Шаг 1: Установите пакет:
sudo apt install -y ncurses-term
Шаг 2: Перезапустите csysdig.
8.3 Ошибка: Permission denied (не хватает прав)
Симптом: Команда sysdig возвращает ошибку о недостаточных правах.
Причина: Для захвата системных вызовов нужны права root.
Пошаговое решение:
Всегда запускайте sysdig и csysdig с sudo:
sudo sysdig proc.name=nginx
sudo csysdig
8.4 Sysdig не видит контейнеры Docker
Симптом: sysdig container.name=... не находит контейнеры.
Причина: Sysdig не может получить список контейнеров из Docker.
Пошаговое решение:
Шаг 1: Убедитесь, что Docker установлен и запущен:
sudo systemctl status docker
Шаг 2: Запустите Sysdig с sudo — этого достаточно, контейнеры должны определиться автоматически.
Шаг 3: Проверьте список контейнеров через csysdig в виде «Containers».
8.5 Утечка памяти или высокая нагрузка от модуля scap
Симптом: После длительной работы Sysdig система начинает тормозить, растёт потребление памяти.
Причина: Модуль scap может не выгружаться при завершении sysdig.
Пошаговое решение:
Шаг 1: Выгрузите модуль вручную:
sudo modprobe -r scap
Шаг 2: Используйте eBPF-режим вместо модуля:
sudo sysdig --modern-bpf -c topprocs_cpu
Чек-лист: что проверить после установки
- [ ] Sysdig установлен:
sysdig --versionпоказывает версию 0.41.x - [ ] Модуль scap загружается при запуске: `sudo sysdig -c topprocs_cpu` работает
- [ ] csysdig установлен:
command -v csysdigвозвращает/usr/bin/csysdig - [ ] Можно делать захват:
sudo sysdig -c topprocs_cpuпоказывает процессы - [ ] Фильтрация работает:
sudo sysdig proc.name=systemdне выдаёт ошибок - [ ] csysdig запускается:
sudo csysdigоткрывает интерактивный интерфейс
Обновление Sysdig
sudo apt update && sudo apt install --only-upgrade sysdig -y
Что делает: Обновляет только Sysdig, если он уже установлен.
Удаление Sysdig
Шаг 1: Удалите пакет
sudo apt remove sysdig -y
Шаг 2: Удалите репозиторий и ключ
sudo rm -f /etc/apt/sources.list.d/sysdig.sources
sudo rm -f /usr/share/keyrings/sysdig.gpg
sudo apt update
Шаг 3: Проверьте, что пакет удалён
apt-cache policy sysdig
✅ Ожидаемый вывод: Installed: (none) и Candidate: (none) (на Debian 12 может показывать Candidate: 0.29.3-1+b1 — это из стандартного репозитория).
Поддержка в разных версиях Debian
| Релиз | Статус | Примечание |
|---|---|---|
| Debian 13 (Trixie) | ✅ Поддерживается (репозиторий Sysdig) | В стандартных репозиториях Debian 13 нет Sysdig |
| Debian 12 (Bookworm) | ✅ Поддерживается (репозиторий Sysdig) | В стандартных репозиториях — устаревшая версия 0.29.x |
| Debian 11 (Bullseye) | ✅ Поддерживается (репозиторий Sysdig) | В стандартных репозиториях — нет Sysdig |
Часто задаваемые вопросы (FAQ)
Вопрос: Чем Sysdig отличается от strace и htop?
Ответ: strace показывает системные вызовы одного процесса, htop — общую нагрузку. Sysdig делает и то, и другое сразу, плюс умеет фильтровать по контейнерам, файлам, сетевым адресам и имеет встроенные скрипты анализа.
Вопрос: Что такое chisels?
Ответ: Chisels — это встроенные Lua-скрипты, которые превращают сырой поток системных вызовов в удобные отчёты. Например, topprocs_cpu показывает процессы по CPU, netstat — активные соединения.
Вопрос: Нужно ли перезагружать сервер после установки Sysdig?
Ответ: Нет, модуль ядра загружается сразу.
Вопрос: Ядро 5.10 и новее — нужно ли использовать --modern-bpf?
Ответ: Нет, --modern-bpf — это альтернативный способ захвата, но стандартный модуль scap работает стабильнее. Используйте eBPF, если модуль не собирается.
Вопрос: Есть ли графический интерфейс у Sysdig?
Ответ: Нет. Только консоль (sysdig) и текстовый интерфейс (csysdig).
Заключение
Теперь Sysdig установлен на вашем Debian. Вы можете:
- Отслеживать системные вызовы в реальном времени
- Использовать
csysdigкак мощную альтернативуhtop - Анализировать поведение контейнеров и приложений
Что дальше?
- Изучите официальную документацию Sysdig
- Установите Docker и проверьте фильтрацию по контейнерам
- Настройте мониторинг сервера с помощью Sysdig и других инструментов