GUIによる効率的なシステム管理、監視
GUIツールによる運用管理
LinuxやFreeBSDなどのシステムでは、コマンド・ラインによる監視、管理が多くみられます。一方、サーバーの性能履歴を把握する場合や、複数のサーバーを同時に監視しなければならない場合は、コマンド・ラインだけでは管理に限界があります。
特に、システムの状況を過去にさかのぼって調査する場合は、コマンド・ラインやログ・データだけを頼りに調査すると、膨大な時間を費やしてしまいかねません。
こうした問題を解決する1つの手段が、GUI管理ツールです。以下では、Linux環境における便利なGUIベースのシステム管理、監視ツールを紹介します。
kSarを使いこなす
システム障害の多くは、人為的操作のミス、ハードウエアの故障、ソフトウエアのバグなどによります。人為的ミスは、手順書の徹底や、簡素で単純なスクリプト、cronの導入などで、ある程度は防ぐことができます。
しかし、システム負荷が高くなることによるサービス障害は、管理者にとって悩ましい問題です。負荷によるサービス障害は、バグでもなければハードウエア故障でもないため、サービス低下の原因を追及する必要があます。
負荷が高くなっている原因追及の手法に、リソース利用率の履歴調査があります。「何時から何時の間に、どのハードウエア・コンポーネントに負荷が集中し、どのプロセスが高負荷を招いているのか」など、リソースの変遷が分かるため、対策を立てやすくなります。
ハードウエア・コンポーネントの負荷の履歴を調査するツールとして、sarコマンドがあります。一方、sarコマンドの結果を人間に分かりやすく閲覧できるようにするツールとして、kSarがあります。kSarは、sarで取得したシステムの負荷状況のデータを読み込みます。kSarは、Red Hat Enterprise Linux 6に含まれていないため、以下のサイトから入手する必要があります。
2010年12月時点での安定版は、バージョン5.0.6です。上記URLから「kSar-5.0.6.zip」を入手し、unzipコマンドでRed Hat Enterprise Linux 6に展開します。展開先は作業用ディレクトリ(/tmpや/rootなど)で構いません。
# unzip kSar-5.0.6.zip
ディレクトリが作られるので、/usr/local/などにパスを変更します。
# mv kSar-5.0.6 /usr/local/
kSarはJavaで動作しますので、javaコマンドが利用できるかどうかを確認しておきます。
# which java /usr/bin/java
kSarを起動させる前に、sarコマンドを用いてデータを取得しておきます。CPU、メモリー、I/Oのすべてのデータを取得する場合は、sarコマンドに-Aオプションを付加します。ここで注意すべき点は、kSarにデータをロードさせるには、sarコマンドの実行時にLC_ALLを適切に設定しておく必要がある点です。以下のように、sarコマンドを実行します。
# (LC_ALL=C sar -A 1 100 -o /var/log/sa/sar_A_1_100.bin)
ここでは、CPU、メモリー、I/Oすべてのデータを-Aオプションによって1秒ごと100回データ取得し、/var/log/sa/sar_A_1_100.binというバイナリ・データに出力しています。Linuxのbashシェルでは、コマンドを括弧でくくることにより、変数が及ぶ範囲を制限することができます。今回は、LC_ALLの値を括弧内のコマンドのみで有効にするため、コマンドを括弧でくくっています。
sarコマンドで得られたバイナリ・データを、リダイレクションによってテキスト・データに変換します。既存のバイナリ・データは、-fオプションで指定できます。
# (LC_ALL=C sar -A 1 -f /var/log/sa/sar_A_1_100.bin > /var/log/sa/sar_A_1_100.txt)
得られたテキスト・データをkSARにロードしてみましょう。kSarは、展開したkSar-5.0.6ディレクトリの下にあるrun.shスクリプトを実行すると起動できます。
# (LC_ALL=C sh /usr/local/kSar-5.0.6/run.sh)
|
図1: kSarをRed Hat Enterprise Linux 6上で起動させた様子。kSarはJavaで実装されているため、javaコマンドが利用できる環境が必要となる |
kSarのウインドウが起動したら、sarのテキスト・データをロードしてみます。kSarウインドウ内の「Data」をクリックし、「Load from text file」をクリックします。すると、ファイルを選択するウインドウが現れるので、sarコマンドで取得しておいたテキスト・データを選択します。ここでは、/var/log/sa/sar_A_1_100.txtファイルを指定します。
|
図2: kSarのメイン・ウインドウから「Load from text file」をクリックする。事前にsarコマンドにより用意しておいたテキスト・ファイルをロードできる |
|
図3: 事前にsarコマンドにより用意しておいたテキスト・ファイル「/var/log/sa/sar_A_1_100.txt」をロードする |
sarコマンドで取得したテキスト・データがうまくロードできた場合には、kSarのウインドウに、取得したデータの各リソースが表示されるはずです。ここでリソースが表示されない場合は、sarコマンドやkSarの実行時のLC_ALLの設定がうまくできていないか、取得したテキスト・データがkSarに対応していない形式である可能性があります。再度sarコマンドによるデータの取得方法を確認してください。
|
図4: sarコマンドの結果のテキスト・ファイル「/var/log/sa/sar_A_1_100.txt」のロードに成功すると、テキスト・データに含まれる項目が左側に表示される |
プロセスの履歴を見てみましょう。左側の「Processes」という項目をクリックすると、単位時間あたりのプロセスの数を見ることができます。横軸は時間なので、プロセス数が時間を追ってどのように増減しているかが分かります。
|
図5: kSarでプロセスの履歴を確認している様子。この例では20時00を過ぎたところからプロセスの数が増えていることが分かる |