Systemtap для производственного сервера

#linux-kernel #systemtap

#linux-ядро #systemtap

Вопрос:

Я хочу использовать systemtap для извлечения сведений о моем производственном сервере Linux из удаленного доступа. У меня есть некоторые сомнения относительно этого:

  1. Необходимо ли иметь одно и то же ядро как на производственном сервере Linux, так и на сервере разработки Linux.Если нет, то как добавить поддержку для этого?
  2. Каковы минимальные требования, которые должны присутствовать на производственном сервере? Необходимо ли компилировать ядро производственного сервера с debuginfo?
  3. Как разрешить пользователям в некоторой определенной группе запускать 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.