GUIによる効率的なシステム管理、監視

2010年12月8日(水)
古賀 政純

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を過ぎたところからプロセスの数が増えていることが分かる

日本ヒューレット・パッカード株式会社 プリセールス統括本部 ソリューションセンター OSS・Linux担当 シニアITスペシャリスト

兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師を担当。科学技術計算サーバーのSI経験も持つ。2005年、大手製造業向けLinuxサーバー提案で日本HP社長賞受賞。2006年、米国HPからLinux技術の伝道師に与えられる「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。日本HPプリセールスMVPを4度受賞。現在は、Linux、FreeBSD、Hadoop等のOSSを駆使したスケールアウト型サーバー基盤のプリセールスSE、技術検証、技術文書執筆を担当。日本HPのオープンソース・Linuxテクノロジーエバンジェリストとして講演活動も行っている。Red Hat Certified Engineer、Red Hat Certified Virtualization Administrator、Novell Certified Linux Professional、EXIN Cloud Computing Foundation Certificate、HP Accredited Systems Engineer Cloud Architect、Red Hat Certified System Administrator in Red Hat OpenStack、Cloudera Certified Administrator for Apache Hadoop認定技術者。HP公式ブログ執筆者。趣味はレーシングカートとビリヤード

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています