Sysdig — мощный инструмент для мониторинга системы и устранения неполадок для Linux
Sysdig — это кроссплатформенный, мощный и гибкий инструмент с открытым исходным кодом для мониторинга и устранения неполадок системы для Linux; он также работает в Windows и Mac OSX, но с ограниченной функциональностью и может использоваться для системного анализа, проверки и отладки.
Обычно для выполнения задач мониторинга и отладки Linux используется сочетание различных инструментов мониторинга производительности и устранения неполадок Linux, включая перечисленные ниже:
- strace – обнаруживает системные вызовы и сигналы процесса.
- tcpdump — мониторинг необработанного сетевого трафика.
- netstat – мониторинг сетевых подключений.
- htop – мониторинг процессов в реальном времени.
- iftop – мониторинг пропускной способности сети в реальном времени.
- 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:
- BCC — инструменты динамической трассировки для мониторинга производительности Linux, работы в сети и многого другого
- pyDash — веб-инструмент для мониторинга производительности Linux
- Perf — инструмент мониторинга и анализа производительности для Linux.
- Collectl: расширенный универсальный инструмент мониторинга производительности для Linux
- Netdata — инструмент мониторинга производительности в реальном времени для систем Linux
Заключение
Sysdig объединяет функциональные возможности многочисленных инструментов командной строки в один замечательный интерфейс, что позволяет вам глубоко копаться в системных событиях Linux для сбора данных, сохраняя их для последующего анализа, и предлагает невероятную поддержку контейнеров.
Чтобы задать любые вопросы или поделиться мыслями об этом инструменте, воспользуйтесь формой обратной связи ниже.