第3回 Slackware でサイキョーの自宅サーバーを作ろう! 監視設定編

サーバーマシンというのは 24 時間稼動し続けます。急にプログラムが止まったとか、動作がおかしくなったとか、問題の原因を探るために、あるいは問題が起こる兆候をいち早く知るために、スタットやログを収集するのは必要不可欠といっていいでしょう。

ということで、まずは sysstat です。

第 1 回の とおりに Slackware をインストールしてあれば、 sar, sa1, sa2 といったマシンリソースの統計情報を収集するためのツールがすでに入っています。sa1 と sa2 を定期的に動かすと、sar でその結果を見ることができます。収集する情報には、ロードアベレージ (CPU、I/O 等 の負荷から算出される謎の値で、0 なら無負荷、 1 ならフル稼動、1 を超えるとアップアップ。ビジーなサーバーなら瞬間的に 200 とか行きます)、CPU 使用率、ネットワークフレームの転送量、等があります。

定期的に動かすといっても、まさかオペレータが手で動かすわけがありません。cron という便利なツールを使います。これは Windows でいうタスクマネージャスケジューラにあたるプログラムです。

以下の操作を行いましょう:

saikyo@slackware:~$ cat > sysstat
*/10 * * * * /usr/lib/sa/sa1 1 1
53 23 * * * /usr/lib/sa/sa2 -A
^D
saikyo@slackware:~$ sudo chown root:root sysstat
Password:
saikyo@slackware:~$ sudo mv sysstat /etc/cron.d
saikyo@slackware:~$ sudo pkill crond
saikyo@slackware:~$ sudo /usr/sbin/crond -l notice

^D は ‘コントロールキーを押しながら “D” のキーを押す’ という意味です。

まず ‘sysstat’ というテキストファイルを作って、それを ‘/etc/cron.d’ ディレクトリに移動する、ということをやってます。

‘*/10 * * * *’ は ‘毎月、毎日、毎時、10 分置きに’ という意味です。’/usr/lib/sa/sa1 1 1′ が実行されるファイルと引数です。詳しくは ‘man crontab’ を実行してマニュアルを読んでみよう。マニュアルを終了するには ‘q’ を押してね。

なお、この cron ファイルは CentOS 5 の sysstat パッケージからのパクりです。

‘pkill’ で crond を停止して、次の行で crond を起動しています。Slackware が採用している cron デーモンは dillon’s cron というバージョンのようで、1 時間に 1 回 crontab や cron.d ディレクトリの中を読み込むようです。1 時間も待てないので、デーモンを再起動させます。

これで数時間放っておけば ‘sar’ コマンドで統計を見ることができます。

以下は ‘sar -q’ の実行例です:

**********         07/10/12

00:00:01      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
(中略)
07:00:01            2       116      1.00      1.00      1.00
07:10:01            2       116      1.00      1.02      1.00
07:20:01            1       116      1.00      1.01      1.00
07:30:01            1       116      1.01      1.02      1.00
07:40:01            1       116      1.00      1.00      1.00
07:50:01            1       116      1.00      1.00      1.00
08:00:01            3       118      1.01      1.02      1.00
08:10:01            2       116      1.00      1.03      1.00
08:20:01            1       116      1.09      1.06      1.01
08:30:01            2       116      1.00      1.02      1.00
08:40:01            2       116      1.03      1.04      1.00
08:50:01            1       116      1.02      1.05      1.00
09:00:01            1       116      1.00      1.00      1.00
09:10:01            1       116      1.02      1.04      1.00
09:20:01            1       116      1.00      1.00      1.00
09:30:01            1       116      1.02      1.01      1.00
09:40:01            1       116      1.00      1.00      1.00
09:50:01            1       116      1.00      1.00      1.00
10:00:01            1       119      1.01      1.02      1.00
10:10:01            1       122      1.00      1.01      1.00
10:20:01            1       121      1.00      1.00      1.00
10:30:01            2       121      1.00      1.03      1.00
Average:            1       116      1.02      1.02      1.01

ldavg-1, ldavg-5, ldavg-15 はそれぞれ 1 分毎のロードアベレージ、5分毎、15分毎、です。1 くらいなので、いい感じにこき使ってますね。

以下は ‘sar’ の実行例です:

**********         07/10/12

00:00:01          CPU     %user     %nice   %system   %iowait    %steal     %idle
(中略)
07:00:01          all     24.97      0.00     25.88      0.00      0.00     49.15
07:10:01          all     25.51      0.00     25.69      0.02      0.00     48.78
07:20:01          all     25.79      0.00     25.48      0.01      0.00     48.72
07:30:01          all     25.01      0.00     25.50      0.02      0.00     49.47
07:40:01          all     25.08      0.00     25.76      0.09      0.00     49.08
07:50:01          all     25.39      0.00     25.87      0.22      0.00     48.52
08:00:01          all     25.39      0.00     25.81      0.04      0.00     48.77
08:10:01          all     26.07      0.00     25.31      0.03      0.00     48.59
08:20:01          all     25.24      0.00     25.51      0.03      0.00     49.22
08:30:01          all     25.52      0.00     25.41      0.01      0.00     49.07
08:40:01          all     25.51      0.00     25.68      0.02      0.00     48.80
08:50:01          all     25.06      0.00     25.84      0.01      0.00     49.09
09:00:01          all     24.91      0.00     25.79      0.00      0.00     49.30
09:10:01          all     25.55      0.00     25.53      0.00      0.00     48.92
09:20:01          all     25.68      0.00     25.48      0.00      0.00     48.84
09:30:01          all     25.43      0.00     25.52      0.00      0.00     49.04
09:40:01          all     24.96      0.00     25.83      0.00      0.00     49.21
09:50:01          all     25.31      0.00     25.55      0.00      0.00     49.14
10:00:01          all     25.70      0.00     25.63      0.04      0.00     48.63
10:10:01          all     25.74      0.00     25.43      0.02      0.00     48.80
10:20:01          all     25.43      0.00     25.33      0.01      0.00     49.24
10:30:01          all     25.64      0.00     25.38      0.03      0.00     48.95
Average:          all     25.18      0.00     25.75      0.11      0.00     48.96

今度は CPU の使用率です。%idle が 50 % くらいです。まだ余裕がありますね。

次はログのローテートの設定を変えてみましょう。Linux システムは色々なログを /var/log ディレクトリに書き出しますが、デフォルトでは 4 週間分のログしか残しません。サーバーマシンなんですから、1 年分くらいは残しておいてもいいでしょう。あと、古いログは圧縮してくれるとうれしいですね。

以下の操作を行います:

saikyo@slackware:~$ sudo vim /etc/logrotate.conf
(ファイルを編集します)

以下のようにファイルを編集します。 ‘+’ で始まる行を追加して、 ‘-‘ で始まる行を削除してください:

--- /etc/logrotate.conf.orig    2012-07-10 10:43:12.277000001 +0900
+++ /etc/logrotate.conf 2012-07-10 10:43:51.542003876 +0900
@@ -13,7 +13,8 @@
 weekly

 # keep 4 weeks worth of backlogs:
-rotate 4
+#rotate 4
+rotate 52

 # create new (empty) log files after rotating old ones:
 create
@@ -22,7 +23,10 @@
 #dateext

 # uncomment this if you want your log files compressed:
-#compress
+compress
+compresscmd /usr/bin/xz
+compressext .xz
+uncompresscmd /usr/bin/unxz

 # some packages install log rotation information in this directory:
 include /etc/logrotate.d

これで 1 週間毎にログファイルを作り直して、古いのは ‘xz’ コマンドで圧縮し、52 週間分保存する、という設定に変更されます。

次回はもっと高度なリソース監視を行います!

(コウヅ)

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中