Лучший трассировщик для системных вызовов с полным и анализируемым выводом
Я пытаюсь прикрепить трассировщик к своим приложениям во время их работы и создать точные профили поведения. Позже я сгенерирую политики для таких инструментов, как AppArmor и Seccomp, используя наблюдаемое поведение. Для этого мне нужен очень точный трейсер, т.е. не отбрасывающий никаких событий. Поскольку все это будет автоматизировано, мне нужен трассировщик с точной семантикой вывода, которую я могу автоматически анализировать.
Я осмотрелся, и вот мои выводы:
-
strace
- Зрелый инструмент использовал именно то, что мне нужно. Проблема в том, что я вижу несогласованные выходные данные, которые я не могу проанализировать автоматически. Например, отслеживая MySql, я получил1613406198.763531 io_getevents(0x7f7064218000, 1, 256, 1613406167.750630 set_robust_list(0x7f705e52c9e0, 24) = 0
. -
sysdig
- Новый инструмент трассировки блока, который выглядит многообещающим. Он имеет точную семантику вывода, которая кажется простой для анализа. Однако, поскольку в нем есть буфер для полученных трасс, в редких случаях он теоретически может отбрасывать события ( источник ).
Есть ли у вас какие-либо предложения, как это сделать? Спасибо!