Как установить Sysdig для мониторинга вашей системы Linux

Ваша система 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 ниже, чтобы убедиться, что у вас есть последние обновления из репозиториев вашего дистрибутива. Эта команда обновляет списки пакетов вашей системы и может занять несколько минут.

sudo apt update -y
Updating your System’s Package Lists

2. Затем выполните команду apt install ниже, чтобы скачать (curl) и установить необходимые пакеты для Sysdig. Эта команда также устанавливает некоторые дополнительные модули, использованные позже в этом учебнике, следующим образом:

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

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

curl -s https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public | apt-key add -

После успешного добавления ключа вы получите сообщение ОК, как показано ниже.

Adding the GPG key to APT”s Keyring

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

curl -s -o /etc/apt/sources.list.d/draios.list http://download.draios.com/stable/deb/draios.list

5. Повторно запустите команду apt update ниже, чтобы загрузить новые репозитории Sysdig и обновить списки пакетов APT с информацией о новых репозиториях.

sudo apt update -y

Вы увидите следующий вывод, если ваш APT сконфигурирован правильно.

Updating your APT’s Package Lists

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

sudo apt install sysdig -y
Installing Sysdig

7. Наконец, выполните команду sysdig ниже, чтобы проверить версию Sysdig, установленную на вашем компьютере.

sudo sysdig --version

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

Как показано ниже, на момент написания этого текста версия 0.28.0 является последней версией sysdig. Ваш номер версии может отличаться.

Verifying Sysdig Version Installed

Отслеживание систем Linux с помощью csysdig

Теперь, когда у вас установлен Sysdig, вы можете использовать Sysdig, чтобы посмотреть, что происходит с вашей системой. У командной строки Sysdig есть много флагов, которые предоставляют разные виды вашей системы и её активности. Самый простой пример – это команда csysdig.

Выполните команду csysdig без каких-либо флагов, чтобы увидеть, что происходит в вашей системе прямо сейчас. Команда покажет вам активность всех текущих процессов.

Обратите внимание, что вы должны выполнять команды Sysdig с привилегиями sudo, чтобы иметь полный доступ к вашей системе. Некоторая активность системы по умолчанию может быть скрыта от обычных пользователей без прав администратора, например, вывод файловой системы /proc. Sysdig также требует привилегий sudo для автоматической загрузки ядерных символов, необходимых для выполнения многих своих трюков, таких как ядровой модуль sysdig-probe

sudo csysdig

Если вы столкнетесь с следующей ошибкой, вам нужно переустановить пакет ncurses-term. Пакет ncurses-term часто становится поврежденным после свежей установки Sysdig. Sysdig зависит от пакета ncurses-term для поддержки своего ncurses интерфейса.

Getting an Error while Running csysdig

Если команда 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.

Monitoring System Processes using Csysdig

Нажмите F2, и верхние вкладки изменятся, отображая новый набор информации, организованный во вкладки слева, как показано ниже.

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

Viewing System Information via the Csysdig Views

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

ls /usr/share/sysdig/chisels
Listing files (scripts) in the /usr/share/sysdig/chisels directory

Мониторинг процессов, потребляющих CPU, с помощью Sysdig Chisels

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

1. Выполните команду sysdig ниже, чтобы получить список доступных долот.

sudo sysdig -cl

Ниже показано только несколько резцов. Но вы можете найти и изучить полный список всех доступных резцов в официальной документации.

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

Showing Sysdig Chisels

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

sudo sysdig -i topprocs_cpu

Вы можете увидеть всю информацию о резце topprocs_cpu ниже, включая его название, категорию и краткое описание функции резца.

В этом примере резец topprocs_cpu относится к использованию ЦП и показывает верхний процесс, определенный как наиболее интенсивно использующий ЦП.

После того как вы поняли функциональность резца, вы можете начать его использовать.

Showing All Information About the topprocs_cpu Chisel

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

sudo sysdig -c topprocs_cpu

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

Listing the process defined by the highest CPU utilization.

Мониторинг отфильтрованной информации о системе

В некоторых случаях вывод огромен, что затрудняет фильтрацию системной информации на основе конкретного долота. К счастью, Sysdig предлагает мощную опцию фильтрации, которая использует синтаксис Lua, чтобы вы могли выполнять эффективную фильтрацию.

Предположим, вы ищете только процессы sshd, которые потребляют много процессорного времени. Вы можете определить выражение фильтрации по конкретному PID или имени процесса.

Запустите следующую команду sysdig, чтобы показать только процесс sshd, который использует много процессорного времени.

sudo sysdig proc.name=sshd

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

Из вывода вы можете получить дополнительную информацию о процессе sshd, например, почему процесс sshd использует больше процессорного времени или памяти и т. д.

Listing the SSHD process

Создание файла журнала событий для мониторинга вашей системы

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

1. Запустите следующую команду, чтобы создать файл (-w) с именем ata.scap в вашей домашней директории, где Syslog будет хранить все выводы sysdig.

Расширение файла .scap позволяет сохранять потоки данных в форме человекочитаемого текста.

sudo sysdig -w ata.scap

2. Далее запустите команду ls -la ниже, чтобы перечислить все файлы в рабочем каталоге.

ls -la

Вы заметите новый файл с именем ata.scap в вашем домашнем каталоге, как показано ниже.

Listing All Files in Home Directory

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

sudo sysdig -r ata.scap
Viewing the ata.scap File

Заключение

В этой статье вы узнали, как установить Sysdig на Ubuntu 20.04 и использовать csysdig для сбора информации о вашей системе, приложениях и безопасности. Вы также коснулись создания файла журнала событий, который позволяет записывать поведение вашей системы.

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

Теперь, обладая этим новым знанием, почему бы не научиться декодировать ваш трафик HTTP с помощью Sysdig? Или как отслеживать узкие места приложения с помощью трассировщиков Sysdig?

Source:
https://adamtheautomator.com/sysdig/