dtrace-community
opensolaris.orgでは、いろいろなCommunityがあり、盛んに情報交換が行われています。
dtrace-communityではdtraceの技術情報や便利なスクリプト、ツール等が紹介されています。
今回は、その中からいくつかのスクリプトを紹介してみたいと思います。
iosnoop iosnoopは、diskのI/Oを動的に監視するスクリプトです。
Solarisに標準で提供されているiostatとは違い、どのプロセスからI/Oが発生しているのかをリアルタイムで追跡する事ができます。
スクリプトの起動時にオプションを与えることによって、タイムスタンプやI/Oの発生しているディスクを表示することができます。
このスクリプトを使って、1日のDisk I/Oの推移や、I/Oを頻繁に発生させてシステムに負荷をかけているプロセスの発見などに使用できそうです。
iosnoopの実行例:http://users.tpg.com.au/adsln4yb/DTrace/iosnoop_example.html
shellsnoop.d shellsnoop.dは、システム上で動作しているshellでどのようなコマンドが実行されて、どのような出力がでているのかをリアルタイムで監視するスクリプトです。
オプションをつけることによって、タイムスタンプや特定のユーザが使用しているshellの状態を表示することができます。
このスクリプトを使って、特定ユーザーの操作履歴を取得したりできそうです。
shellsnoop.dの実行例:http://users.tpg.com.au/adsln4yb/DTrace/shellsnoop_example.txt
connections connectionsは、生成されたTCPコネクションをリアルタイムに表示するスクリプトです。
Solarisに標準で提供されているsnoopとは違い、システム上でどのようなTCPコネクションが生成されているのかをリアルタイムで表示することができます。
(snoopだと情報が詳細すぎて、追いきれない場合があります)
このスクリプトを使って、不正なTCPコネクションを監視したり、アクセス履歴を作成したりできそうです。
connectionsの実行例:http://users.tpg.com.au/adsln4yb/DTrace/connections_example.txt
このように、DTraceを使うと、システムのいろいろな情報をリアルタイムに収集することができます。
みなさんもこれらのスクリプトを参考にして、いろいろ試してみてください。
また、有用なツールが作成できたら、ぜひこのCommunityに公開して全世界の人に自慢してください!
参考リンク
OpenSolaris DTrace community
Solaris 動的トレース(DTrace)ガイド