#linux-kernel #systemtap
#linux-ядро #systemtap
Вопрос:
Я хочу использовать systemtap для извлечения сведений о моем производственном сервере Linux из удаленного доступа. У меня есть некоторые сомнения относительно этого:
- Необходимо ли иметь одно и то же ядро как на производственном сервере Linux, так и на сервере разработки Linux.Если нет, то как добавить поддержку для этого?
- Каковы минимальные требования, которые должны присутствовать на производственном сервере? Необходимо ли компилировать ядро производственного сервера с debuginfo?
- Как разрешить пользователям в некоторой определенной группе запускать stap-скрипты?
Комментарии:
1. пожалуйста, кто-нибудь, помогите мне!!
Ответ №1:
Ядро, работающее на производственном сервере, и сервер разработки Linux не обязательно должны быть идентичными. Руководство для начинающих по SystemTap описывает выполнение кросс-компиляции, при которой инструментарий для одной версии ядра создается на компьютере, на котором в данный момент выполняется другая версия ядра. Это описано в:
http://sourceware.org/systemtap/SystemTap_Beginners_Guide/cross-compiling.html
Производственному серверу просто нужен пакет systemtap-runtime. Производственному серверу не требуется устанавливать kernel-devel или kernel-debuginfo при использовании метода перекрестной компиляции.
Существуют группы stapusr и stapdev, которые позволяют пользователям запускать скрипты. stapusr позволяет запускать существующий скрипт в каталоге /lib /modules /uname -r / systemtap (вероятно, то, что требуется в случае запуска скомпилированных скриптов systemtap). stapdev позволяет скомпилировать скрипт.
Группы stapusr и stapdev описаны в:
http://sourceware.org/systemtap/SystemTap_Beginners_Guide/using-usage.html
Ответ №2:
Другой возможностью systemtap > 1.4 является удаленное выполнение:
development_host% stap --remote=user@deployment_host -e 'probe begin { exit() } '
где перекрестная компиляция, передача модуля, передача данных трассировки автоматически выполняются через ssh-транспорт, при условии, что на deployment_host установлены соответствующие биты systemtap-runtime.