Сбор средств "Вместе двинем codeby". Деньги будут потрачены на рекламу, PR проекта и покупку сайтов нашей тематики. Подробнее ...


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

Что первое, приходящее на ум, когда вам нужно проследить системные запросы, сделанные и полученные процессом? Возможно вы подумаете о strace, и вы правы. Какой инструмент вы бы стали использовать для мониторинга сырого сетевого трафика из командной строки? Если вы подумали о tcpdump, вы снова сделали превосходный выбор. А если вы когда-либо столкнётесь с необходимостью отслеживать все открытые файлы (в Unix смысле этого слова: все является файлами), скорее всего, вы будете использовать lsof.

strace, tcpdump и lsof действительно отличные утилиты, которые должны быть частью набора инструментов каждого сисадмина, и это именно та причина, по которой вы полюбите sysdig, мощный инструмент с открытым кодом для исследования и решения проблем на уровне системы, представлен его создателями как «strace + tcpdump + lsof + потрясающие соус с маленькой Луа вишенкой наверху.» Юмор в сторону, одноа из великолепных функций sysdig заключается в возможности не только анализировать «живое» состояние системы Linux, но и также сохранять состояние в дамп файле для автономного контроля. А ещё вы можете настраивать поведение sysdig или даже усовершенствовать её возможности, используя встроенные (или написанные вами) маленькие скрипты, называемые чизелзы (chisels — долото, зубило). Индивидуальные чизелзы используются для анализа захваченных sysdig’ом потоков событий в различных специфичных для скрипта ситуациях.

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

Установка Sysdig

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

Выполните следующую команду под рутом для установки sysdig из официального репозитория apt/yum:

15334678580_8673d072a4_o

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

Наш экран будет немедленно заполнен тем, что происходит в нашей системе, не давая нам сделать что-то большее с этой информацией. По этой причине мы выполним:

для просмотра списка доступных чизелей.

15334678610_92acc0cc94_o

Следующие категории доступны по умолчанию, каждая из них наполнена многими чизелзами.

  • CPU Usage (использование процессора)
  • Errors (Ошибки)
  • I/O (Ввод/вывод)
  • Logs (Логи)
  • Misc (Разное)
  • Net (Сеть)
  • Performance (Производительность)
  • Security (Безопасность)
  • System State (Состояние системы)

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

Например, мы можем проверить информацию по чизелю spy_port в категории «Net» запустив:

15521424095_118d54de7e_o

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

Фильтры следуют структуре «class.field» (класс.поле). Например:

  • fd.cip: клиентский IP адрес.
  • evt.dir: направление события может быть как ‘>’ для ввода событий или ‘<‘ для выхода событий.

Полный список фильтров может быть отображён с:

В оставшейся части урока я продемонстрирую несколько случаев использования sysdig.

Примеры Sysdig: Решение проблем с производительностью сервера

Предположим ваш сервер испытывает проблемы с производительностью (например, отсутствие реакции или заметные задержки в ответах). Вы можете использовать чизел bottlenecks для отображения списка из десяти самых медленных системных вызовов в данный момент.


Наш партнер GENESIS HACKSPACE

Хакспейс: Клуб — физическое место, где собираются увлеченные техникой, IT, электроникой, роботами и физикой люди. Первая сеть бесплатных хакспейсов в г.Тверь и области.

Используйте следующую команду для проверки живого сервера в реальном времени. Флаг «-c», за которым следует название чизеля, говорит sysdig’у выполнить специфичный чизел.

Как вариант, вы можете осуществить оффлайн анализ производительности сервера. В этом случае вы можете сохранить полный след sysdig’а в файл, и запустить чизел bottlenecks на этот след как показано:

Во-первых, сохраните след sysdig (используйте Ctrl+c для остановки сбора):

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

15334678670_931b92e525_o

Вам нужно обратить внимание на столбцы #2, #3 и #4 ,которые показывают, соответственно, время исполнения, имя процесса и PID.

Пример Sysdig: Мониторинг интерактивной активности пользователей

Предположим вы, как сисадмин, хотите проверить интерактивную активность пользователей в системе (например, какие команды пользователь напечатал из командной строки и в какие каталоги пользователь заходил). Для этого нам в помощь спешит чизел spy_user.

Давайте сначала соберём след sysdig’а с парой дополнительный опций.

  • «-s 4096» говорит sysdig’у захватить до 4096 байтов каждого события.
  • «-z» (используется с «-w») задействует сжатие файла следа.
  • «-w <файл-следа>» сохраняет след sysdig с специфичный файл.

Выше мы настроили имя сжатого файла следа так, что оно (имя) основывалось на хосте. Помните, что вы можете прервать выполнение sysdig в любой момент нажав Ctrl + c.

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

15518254291_bbe71aa31e_o

Первая колонка выше выводит индикатор PID процесса, ассоциированного с заданной пользовательской активностью.

А что если вы хотите нацелиться на специфичного пользователя и мониторить только его пользовательскую активность? Вы можете отфильтровать результаты чизеля spy_users по юзернейму:

15498248556_bc9459534f_o

Пример Sysdig: Мониторинг файловых операций ввода/вывода

Мы можем настроить выводной формат следа sysdig с флагом «-p» и указать желаемые поля (например, имя пользователя, имя процесса и имя файла и сокета), закрытыми внутри двойных кавычек. В этом примере мы создадим файл следа, которые будет содержать только события записи в домашние директории (которые мы можем проинспектировать позднее с «sysdig -r writetrace.scap.gz»).

15498248586_c1b9c9c470_o

Пример Sysdig: Мониторинг сетевых операций ввода/вывода

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

Например, вы можете проверить данные (в ASCII), которые были обменены с определённым IP адресом, выполненным определённым процессом (например apache2):

Если вместо этого вы хотите мониторить обмен сырыми данными (в двоичном виде), замените «-A» на «-X»:

Ещё больше информации, примеров и практических примеров вы сможете найти на сайте проекта. Поверьте мне, возможности безграничны. Но не принимайте это только на слово. Устанавливайте sysdig и начинайте рыть уже сегодня!

Похожие темы

Как установить AMD APP SDK в Kali Linux?... Эта инструкция из серии о том, Как установить GLRX, AMD APP SDK, CAL++ и Pyrit в Kali Linux. Идея в том, чтобы установить корректные драйвера в Kali...
Как в интерактивном режиме анализировать и просмат... Работаете ли вы в бизнесе веб-хостинга, или самостоятельно запускаете несколько сайтов на VPS, скорее всего, вы хотите отобразить статистику посещен...
Как установить Double Commander (полный аналог Tot... Какой программой большинство из нас пользуется, когда работает за компьютером? Сейчас, пожалуй, на первое место выйдет браузер, но совсем недавно тако...
Как установить VeraCrypt на Linux Что такое VeraCrypt? VeraCrypt — это полный аналог TrueCrypt, но с ещё более сильной защитой. Некоторые подробности о проекте можно почита...
Как сделать так, чтобы при включении компьютера ср... Предположим, вы попробовали новую операционную систему в VirtualBox. Она вам понравилась, но вы ещё не решаетесь перейти на неё. Тем не менее, вам х...