The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск системы динамической отладки SystemTap 3.0

28.03.2016 23:46

Состоялся релиз системы динамической трассировки SystemTap 3.0, предоставляющий для платформы Linux средства похожие на технологию DTrace. SystemTap позволяет организовать доскональное наблюдение за работающей Linux системой, производить сбор статистики о работе приложений, профилирование и контроль системных вызовов. Управление производится через интерфейс командной строки и специальный Си-подобный язык сценариев. Система протестирована с ядрами Linux начиная с версии 2.6.18 и заканчивая 4.6.0-rc0.

В развитии проекта участвуют такие компании как Red Hat, IBM, Intel, Hitachi и Oracle. В каталоге примеров представлено более 150 скриптов на все случаи жизни, подходящие для слежения за распределением памяти, вводом/выводом, дисковыми операциями, сетевым трафиком (например, анализ работы NFS), работой планировщика задач, обработкой прерываний, использованием системных буферов, установкой блокировок, выполнением системных вызовов, обработкой сигналов и т.п.

В новой версии представлен экспериментальный интерактивный консольный интерфейс, вызываемый через "stap -i" и позволяющий собирать, запускать и редактировать скрипты. Также добавлен экспериментальный режим мониторинга ("--monitor") для наблюдения за текущей статистикой о запущенных модулях в стиле утилиты top. Число примеров скриптов доведено до 156, добавлены скрипты для отслеживания локальных источников отправки сетевых пакетов и скрипты с примерами проверки различных уязвимостей.

В языке создания скриптов оптимизирована работа с ассоциативными массивами и добавлена поддержка перегрузки функций. Во встраиваемых функциях и блоках на языке СИ добавлена возможность доступа к глобальны переменным скриптов. Добавлена поддержка приватных переменных и функций, ограниченных текущим tapset-файлом.

  1. Главная ссылка к новости (https://sourceware.org/ml/syst...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/44123-systemtap
Ключевые слова: systemtap, trace, debug
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (22) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 00:57, 29/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чем оно отличается от strace ?
     
     
  • 2.3, Аноним (-), 02:32, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Принципом работы. Strace просто показывает перехваченные через ptrace сисколлы. Stap же позволяет писать скрипты, которые транслируются в си, загружаются в виде модулей в ядро и смотреть, что происходит в системе, изнутри с произвольным уровнем подробностей.
     
     
  • 3.4, Аноним (-), 03:19, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    круто)
     
  • 3.17, Аноим (?), 13:49, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В теории. На практике че-то у меня дальше того же самого, что умеет stace не пошло.
    Хотя, к неосиляторам я себя не отношу ))
     

  • 1.2, kachsheev (ok), 01:26, 29/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –8 +/
    > SystemTrap

    Fix

     
  • 1.5, Андрей (??), 05:03, 29/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Лучше бы они выбрали какой-нибудь определённый язык для скриптов из существующих, а не велосипедный. Или вообще сделали бы хороший C-API.
     
     
  • 2.8, anonymous (??), 08:21, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зачем, у них весьма простенький DSL.
     

  • 1.9, DmA (??), 10:13, 29/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а что можно использовать для отладки в windows?
     
     
  • 2.13, Аноним (-), 10:24, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это зависит от того что вы собрались отлаживать. Можно обычный дебаггер использовать (если есть исходники), можно какой-нить Dr. Memory (это аналог valgrind), системные сообщения окнам можно смотреть через древнющие (но вполне рабочие) winsight и аналоги, сетевой трафик можно анализировать с помощью wireshark и т.д. Даже ProcessExplorer вполне помогает с отладкой. Про всякие драйверы и отладку на уровне ядра не в курсе... но тут всегда можно по старинке через логи.

    Определитесь с задачей.

     
     
  • 3.14, DmA (??), 11:06, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    задача такая - В виндовс включён брандмауэр в расширенной безопасности - все входящие и все исходящие подключения запрещены. Затем разрешается выйти в Интернет DNS клиенту и какому-нибудь браузеру. То есть, выходить в Интернет всем остальным приложениям запрещено. Но эти приложениям всё равно разрешено дёргать DNS клиент своими дурацкими запросами. И непонятно от каких программ эти запросы поступают.Хотелось бы знать даже какие службы или задачи Виндовс делают днс запросы, чтобы потом или покопаться в настройках этой службы или прописать в hosts файл эти дурацкие запросы. Периодические опросы dns службы мне кажется дают информацию владельцам тех же зон Микрософт много информации  о том что установлено на компьютере за ОС и возможно другие программы Микрософт тоже через днс запросы.
    Или как вариант программу журналирования, которая позволяла бы видеть какая программа делает днс запросы к днс клиенту.Есть куча программ, которая в онлайн видит сетевые коннекты тех или иных программ, но интересно видеть всё- через журналирование от каких программ поступили те или иные запросы к днс. Сейчас у меня две семёрки стоят рядом -одна windows 7 64 бит , а на второй Centos 7 с wireshark. Через wireshark я вижу эти запросы днс, но от какой они точно программы вышли не знаю. То есть, нужен отладчик уровня системных вызовов к сетевым сервисам windows
     
     
  • 4.15, Аноним (-), 11:52, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Через wireshark
    > я вижу эти запросы днс, но от какой они точно программы
    > вышли не знаю. То есть, нужен отладчик уровня системных вызовов к
    > сетевым сервисам windows

    Может помочь мониторинг системных вызовов к Ws2_32.dll. Но для этого нужно запустить под трейсером/профайлером (допустим под Dr.Memory) конкретный exe-шник.

    Виндовый netstat наверное ничего не успеет (он тормоз, а тут короткоживущие UDP запросы). А вот tcpvcon.exe/tcpview.exe из SysInternals может помочь (не пробовал, но наверное наиболее подходящее).


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

     
     
  • 5.16, DmA (??), 12:15, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +/

    > Может помочь мониторинг системных вызовов к Ws2_32.dll. Но для этого нужно запустить
    > под трейсером/профайлером (допустим под Dr.Memory) конкретный exe-шник.
    > Виндовый netstat наверное ничего не успеет (он тормоз, а тут короткоживущие UDP
    > запросы). А вот tcpvcon.exe/tcpview.exe из SysInternals может помочь (не пробовал, но
    > наверное наиболее подходящее).
    > P.S. Вообще в винде предусмотрено много таких средств мониторинга (и даже ограничения
    > активности), ими активно пользуются антивирусы и файерволлы. Может какой-то из навороченных
    > файерволлов сможет помониторить DNS-запросы.

    Спасибо за обстоятельные ответы, буду искать подходящее решение!

     
  • 5.22, nonymous (?), 17:39, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> Через wireshark
    >> я вижу эти запросы днс, но от какой они точно программы
    >> вышли не знаю. То есть, нужен отладчик уровня системных вызовов к
    >> сетевым сервисам windows
    > Может помочь мониторинг системных вызовов к Ws2_32.dll. Но для этого нужно запустить
    > под трейсером/профайлером (допустим под Dr.Memory) конкретный exe-шник.
    > Виндовый netstat наверное ничего не успеет (он тормоз, а тут короткоживущие UDP
    > запросы). А вот tcpvcon.exe/tcpview.exe из SysInternals может помочь (не пробовал, но
    > наверное наиболее подходящее).

    procmon + фильтры.

     
     
  • 6.24, DmA (??), 09:21, 30/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > procmon + фильтры.

    procmon интересная штука, странно, что я ей раньше не пользовался, беру в арсенал.Спасибо. На виндовс 7 работает, а вот почему -то на виндовс 10 не стартует, но ничего и не сообщает.Прочитать лицензию дала. и тишина


     
  • 4.23, azcore (?), 23:52, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    можно попробовать messsage analyzer

    https://blogs.technet.microsoft.com/messageanalyzer/2015/06/08/process-trackin

     

  • 1.10, Аноним (-), 10:15, 29/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    мм интересно, надо попробовать, мне ещё 'perf' нравится, тоже на dtrace похож, только с блекджеком и вот этим вот всем
     
  • 1.11, Аноним (-), 10:18, 29/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я так понимаю, что с помощью этой штуки получится отследить какие процессы что-то записывали в определенные каталоги ФС (или хотя бы открывали файлы на запись)? Ну например, процессы, которые записывали данные в /home/user/* и далее по иерархии.
     
     
  • 2.12, Аноним (-), 10:24, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    кстати auditd вроде тоже это все должен уметь
     
     
  • 3.21, freehck (ok), 17:22, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ну тут придётся иметь в виду, что тут потребуется отлавливать всех, кто открывает файлы на запись, иначе никак. Для файлового хранилища может немного увеличить время выполнения соответствующих системных вызовов. В принципе, всё, что нужно сделать - это выбрать нужный системный вызов. Первое, что приходит на ум по постановке задачи - это sys_open (2). Но может, автор найдёт для себя что-нибудь более подходящее. Может, ему хватит stat для какого-то начального анализа ситуации. Более подробно со списком системных вызовов можно ознакомиться например так:
    % less ~/linux/linux-4.3.5/arch/x86/entry/syscalls/syscall_64.tbl
    (предполагая, что в ~/linux/linux-4.3.5 лежат сырцы актуального в системе ядра)
     
  • 2.18, Аноим (?), 13:51, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Я так понимаю, что с помощью этой штуки получится отследить какие процессы
    > что-то записывали в определенные каталоги ФС (или хотя бы открывали файлы
    > на запись)? Ну например, процессы, которые записывали данные в /home/user/* и
    > далее по иерархии.

    Легко. Но для этого проще заюзать auditd

     
     
  • 3.19, Аноним (-), 14:44, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    inotifywait -rm <каталог или файл>
     
     
  • 4.20, Аноним (-), 14:50, 29/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    хотя, нет, там имён процессов нет, только доступ
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру