Поиск по сайту:

Sysdig — мощный инструмент для мониторинга системы и устранения неполадок для Linux


Sysdig — это кроссплатформенный, мощный и гибкий инструмент с открытым исходным кодом для мониторинга и устранения неполадок системы для Linux; он также работает в Windows и Mac OSX, но с ограниченной функциональностью и может использоваться для системного анализа, проверки и отладки.

Обычно для выполнения задач мониторинга и отладки Linux используется сочетание различных инструментов мониторинга производительности и устранения неполадок Linux, включая перечисленные ниже:

  1. strace – обнаруживает системные вызовы и сигналы процесса.
  2. tcpdump — мониторинг необработанного сетевого трафика.
  3. netstat – мониторинг сетевых подключений.
  4. htop – мониторинг процессов в реальном времени.
  5. iftop – мониторинг пропускной способности сети в реальном времени.
  6. lsof – просмотреть, какие файлы каким процессом открыты.

Однако sysdig объединяет в себе все вышеперечисленные и многие другие инструменты в одной простой программе, к тому же с великолепной поддержкой контейнеров. Он позволяет вам захватывать, сохранять, фильтровать и исследовать реальное поведение (поток событий) систем Linux, а также контейнеров.

Он поставляется с интерфейсом командной строки и мощным интерактивным пользовательским интерфейсом (csysdig), который позволяет вам наблюдать за активностью системы в режиме реального времени или выполнять дамп трассировки и сохранять ее для последующего анализа. Вы можете посмотреть, как работает csysdig, из видео ниже.

Возможности Sysdig:

  • Это быстрый, стабильный и простой в использовании продукт, который хорошо документирован.
  • Поставляется с встроенной поддержкой контейнерных технологий, включая Docker, LXC.
  • Это можно написать в Lua; предлагает долота (облегченные скрипты Lua) для обработки захваченных системных событий.
  • Поддерживает полезную фильтрацию вывода.
  • Поддерживает трассировку системы и приложений.
  • Его можно интегрировать с Ansible, Puppet и Logstash.
  • Включите образец расширенного анализа журнала.
  • Он также предлагает функции анализа атак на сервер Linux (криминалистики) для этических хакеров и многое другое.

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

Как установить Sysdig в Linux

Установить пакет sysdig так же просто, как запустить приведенную ниже команду, которая проверит все требования; если все на месте, он загрузит и установит пакет из репозитория Draios APT/YUM.

curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash 
OR
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

После установки вам необходимо запустить sysdig от имени пользователя root, поскольку для этого требуется доступ к критически важным областям, таким как файловая система /proc, /dev/sysdig*. > устройств и необходимо автоматически загрузить модуль ядра sysdig-probe (если это не так); в противном случае используйте команду sudo.

Самый простой пример — запуск без каких-либо аргументов. Это позволит вам просматривать поток событий вашей системы Linux, обновляемый в режиме реального времени:

sudo sysdig

Приведенный выше вывод (необработанные данные), возможно, не имеет для вас особого смысла, для более полезного вывода запустите csysdig:

sudo csysdig 

Примечание. Чтобы по-настоящему ощутить работу этого инструмента, вам нужно использовать sysdig, который создает необработанные данные, как мы видели ранее, из запущенного приложения. Система Linux: это требует от вас понимания того, как использовать фильтры и долота.

Но если вам нужен безболезненный способ использования sysdig – продолжайте использовать csysdig.

Понимание долот и фильтров Sysdig

Долота Sysdig — это минимальные сценарии Lua для проверки потока событий sysdig для выполнения полезных действий по устранению неполадок системы и многого другого. Команда ниже поможет вам просмотреть все доступные долота:

sudo sysdig -cl

На снимке экрана показан примерный список долот по различным категориям.

Если вы хотите узнать больше информации о конкретном долоте, используйте флаг -i:

sudo sysdig -i topprocs_cpu

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

Самый простой и распространенный фильтр — это базовая проверка «class.field=value». Вы также можете комбинировать долота с фильтрами для еще более мощных настроек.

Чтобы просмотреть список доступных классов полей, полей и их описаний, введите:


sudo sysdig -l

Создание файла трассировки системы Linux

Чтобы сохранить вывод sysdig в файл для последующего анализа, используйте такой флаг -w.

Вы можете прочитать файл дампа трассировки, используя флаг -r:


sudo sysdig -r trace.scap

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

sudo sysdig -s 3000 -w trace.scap
sudo sysdig -r trace.scap proc.name=mongod

Мониторинг процессов Linux

Чтобы просмотреть системные процессы, введите:

sudo sysdig -c ps

Мониторинг процессов по использованию ЦП

Чтобы просмотреть основные процессы по проценту использования ЦП, выполните следующую команду:

sudo sysdig -c topprocs_cpu

Мониторинг сетевых подключений и ввода-вывода

Чтобы просмотреть сетевые подключения системы, запустите:

sudo sysdig -c netstat

Следующая команда поможет вам составить список основных сетевых подключений по общему количеству байтов:

sudo sysdig -c topconns

Далее вы также можете перечислить основные процессы по сетевому вводу-выводу следующим образом:

sudo sysdig -c topprocs_net    

Мониторинг системного ввода-вывода файлов

Вы можете вывести данные, прочитанные и записанные процессами в системе, как показано ниже:

sudo sysdig -c echo_fds

Чтобы составить список основных процессов по дисковым байтам (чтение + запись), используйте:

sudo sysdig -c topprocs_file   

Устранение неполадок производительности системы Linux

Чтобы следить за узкими местами системы (медленными системными вызовами), выполните следующую команду:

sudo sysdig -c bottlenecks

Отслеживание времени выполнения процесса

Чтобы отслеживать время выполнения процесса, вы можете запустить эту команду и сохранить трассировку в файл:

sudo sysdig -w extime.scap -c proc_exec_time 

Затем используйте фильтр, чтобы уточнить детали конкретного процесса (в данном примере postgres) следующим образом:

sudo sysdig -r extime.scap proc.name=postgres

Откройте для себя медленный сетевой ввод/0

Эта простая команда поможет вам обнаружить медленный сетевой ввод-вывод:

sudo sysdig -c netlower     

Просмотр записей файла журнала

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

sudo sysdig -c spy_syslog      

Вы можете распечатать любые данные, записанные любым процессом, в файл журнала следующим образом:

sudo sysdig -c spy_logs   

Мониторинг запросов HTTP-сервера

Если в вашей системе работает HTTP-сервер, такой как Apache или Nginx, просмотрите журнал запросов сервера с помощью этой команды:

sudo sysdig -c httplog    
sudo sysdig -c httptop   [Print Top HTTP Requests] 

Отображение оболочек входа и интерактивной активности пользователей

Команда ниже позволит вам просмотреть все идентификаторы оболочки входа:

sudo sysdig -c list_login_shells

И последнее, но не менее важное: вы можете отображать интерактивную активность пользователей системы следующим образом:

sudo sysdig -c spy_users

Дополнительную информацию и примеры использования можно найти на страницах руководства sysdig и csysdig:

man sysdig 
man csysdig

Ссылка: https://www.sysdig.org/.

Также проверьте эти полезные инструменты мониторинга производительности Linux:

  1. BCC — инструменты динамической трассировки для мониторинга производительности Linux, работы в сети и многого другого
  2. pyDash — веб-инструмент для мониторинга производительности Linux
  3. Perf — инструмент мониторинга и анализа производительности для Linux.
  4. Collectl: расширенный универсальный инструмент мониторинга производительности для Linux
  5. Netdata — инструмент мониторинга производительности в реальном времени для систем Linux
Заключение

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

Чтобы задать любые вопросы или поделиться мыслями об этом инструменте, воспользуйтесь формой обратной связи ниже.