2

Linux 本番サーバーの詳細をリモート アクセスから抽出するために systemtap を使用したいと考えています。私はこれに関していくつかの疑問を持っています:

  1. Linux 実稼働サーバーと Linux 開発サーバーの両方で同じカーネルを使用する必要があるかどうか。そうでない場合、そのサポートを追加するにはどうすればよいですか?
  2. 本番サーバーに存在するための最小要件は何ですか? debuginfo を使用して本番サーバーのカーネルをコンパイルする必要があるかどうか。
  3. 特定のグループのユーザーが stap スクリプトを実行できるようにするにはどうすればよいですか?
4

2 に答える 2

2

本番サーバーと Linux 開発サーバーで実行されているカーネルは同一である必要はありません。SystemTap ビギナーズ ガイドでは、現在別のカーネル バージョンを実行しているマシン上で 1 つのカーネル バージョンのインストルメンテーションを構築するクロスコンパイルについて説明しています。これについては、以下で説明されています。

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

于 2011-06-10T15:04:01.430 に答える
1

systemtap> 1.4のもう1つの機能は、リモート実行です。

development_host% stap --remote=user@deployment_host -e 'probe begin { exit() } '

クロスコンパイル、モジュール転送、トレースデータ転送はすべて、deployment_hostに対応するsystemtap-runtimeビットがインストールされている限り、sshトランスポートを介して自動的に実行されます。

于 2012-11-28T14:17:25.917 に答える