Sysdig — инструмент системного администрирования для Linux, который перехватывает события на уровне ядра (tracepoints) и сохраняет их для анализа в удобном виде, как tcpdump. В комплекте есть набор скриптов для анализа логов.
Разработчики из компании Draios говорят, что вынуждены были создать такой инструмент. Им надоело мучиться с анализом системных ошибок, особенно на удаленных серверах или виртуальной машине в облачном окружении. Поэтому они сделали нечто похожее на WinPCap и Wireshark, но только для диагностики событий на уровне ядра Linux.
Sysdig со встроенными фильтрами и поддержкой скриптов — уникальный в своем роде инструмент, который сильно облегчает работу системного администратора. Изначально реализована поддержка виртуальных машин. Снифер работает очень эффективно и минимально использует системные ресурсы.
Особо следует отметить, как в Sysdig используются скрипты на языке программирования Lua (их здесь называют «стамески»: chisels). Сейчас коллекция насчитывает около 30 скриптов и постоянно пополняется.
Примеры использования Sysdig
Сохранение системной активности в файл для будущей обработки~$ sysdig -w trace.scap
Отображение названия процесса и информации обо всех входящих соединениях
~$ sysdig -p "%proc.name %fd.name" "evt.type=accept and proc.name!=httpd"
Просмотр файлов, с которыми дольше всего работает веб-сервер
~$ sysdig -c topfiles_time proc.name=httpd
Просмотр, какими сетевыми данными веб-сервер обменивается с 192.168.0.1
~$ sysdig -A -c echo_fds fd.sip=192.168.0.1 and proc.name=httpd
Отображение всех событий, когда открывается файл из /etc
~$ sysdig evt.type=open and fd.name contains /etc