topコマンドを定期的に実行し、実行結果を収集する方法

[概  要]

高負荷状態等の問題が発生した際、実行されていたプロセスを調査する為、現象発生時のtopや、psコマンドの実行結果が必要になることがあります。
本ドキュメントでは、cronlogroateを利用し定期的に実行したtopコマンド実行結果を収集する方法をご紹介します。

 

[注意事項]
本ドキュメントの内容は、予告なしに変更される場合があります。
 
本ドキュメントは、限られた評価環境における検証結果をもとに作成しており、全ての環境での動作を保証するものではありません。
本ドキュメントの内容に基づき、導入、設定、運用を行なったことにより損害が生じた場合でも、弊社はその損害についての責任を負いません。あくまでお客様のご判断にてご使用ください。

 

[確認環境]

Asianux Server 3

vixie-cron-4.1-70
logrotate-3.7.4-7.1AX

 

MIRACLE LINUX V4.0 SP2

vixie-cron-4.1-44.EL4
logrotate-3.7.1-5.RHEL4

 

[設定方法]
本ドキュメントでは、以下の条件での設定例を示します。
設定内容は調査の目的や、現象の発生状況により適宜変更して下さい。

 

・cronによりtopコマンドを10分毎に実行する

・logrotateにより1日1回ログファイルのローテーションを行い7日分をバックアップする

 

1.cronの設定

/etc/crond.dディレクトリ以下に、任意の名前のファイルを追加し、実行内容を記述します。

以下の例では、/etc/cron.d/toplog ファイルに記述しています。

サービスの再起動は必要ありません。

 

)

cronの実行間隔:10分毎

実行コマンド: dateコマンドを実行後、topコマンドを10秒毎に2回実行した結果を /var/log/toplogへ保存する。

 

*/10 * * * * root /bin/date >> /var/log/toplog; /usr/bin/top -b -n 2 -d 10 >> /var/log/toplog

 

2.logrotateの設定

/etc/logrotate.dディレクトリ以下に、任意の名前のファイルを追加し、logrotateの内容を記述します。

以下の例では、/etc/logrotate.d/toplog ファイルに記述しています。

 

)1日1回/var/log/toplogファイルのローテーションを行い、7日分をバックアップする場合

 

/var/log/toplog {

missingok

daily

rotate 7

}

 

<ファイルの書式>

ログファイル名 [ ログファイル名 …]

設定値

・・・

 

<設定値>

missingok : ログファイルが存在しなくてもエラーを出さない

daily : 毎日ログローテーションする

rotate 回数 : 指定した回数だけローテーションする

 

3.動作確認

logrotateコマンドをデバッグモード(-dオプション)で実行し、動作確認を行います。

-dオプションを付けた場合、実際にはログファイルは更新されません。

 

) /etc/logrotate.d/toplogファイルに記述したlogrotateの設定を確認する場合

# logrotate -dv /etc/logrotate.d/toplog

 

問題がある場合、エラーが出力されます。以下はその一例です。

error: /etc/logrotate.d/toplog:2 unknown option 'missingo' -- ignoring line

error: stat of /var/log/toplog failed: No such file or directory

 

デバッグモードでエラーが出力されなければ、実際にコマンドが実行されるのを待ち、ログファイルが出力されていることを確認します。

サービスの再起動は必要ありません。

 

ログファイル:

/var/log/toplog

/var/log/toplog.1

...

/var/log/toplog.7

 

 

なお、logroateの実行結果は下記のファイルで確認することができます。

 

ファイル:/var/lib/logrotate.status

"/var/log/toplog" 2008-2-27

 

[参考情報] 

cronの設定ファイル等については以下の資料をご参照ください。

 Linux技術トレーニング 基本管理コース II (第三章 5.ジョブスケジューラー)

 

[更新履歴]

  2008 4 8日 新規作成