hajichan.net technical version
トップページ >> サーバ管理Tips >> サーバ管理極意

サーバ管理

サーバ管理極意

サーバ管理について日頃自分が心掛けて行っているごく基本的なことです。サーバ管理極意なんて大それたこと言ってすいません。何のことは無いです。 しかし、大規模な環境ともなると、ちょっとしたミスで何万ユーザにも影響が出てしまいます。単純なヒューマンエラーを無くすため、いつの間にかスタイルとして確立されていました。 おかげさまで10年くらいサーバ管理しておりますが、痛いミスは一つも有りません。

以下に自分が気を付けている項目を記載します。ご参考になれば是非・・・

ミスった時の逃げ道を考えておく

作業してミスしてしまった、不具合が起こってしまった時のことを考えて、逃げ道(対応策)をいくつか考えておきます。一言では言えませんが、例えばバックアップを定期的に取っておく、予備機をセットアップして現用機の近くに置いておく、とかとりあえず逃げ道が有れば気分的にもだいぶ楽です。

ルートでの作業は最小限にする

これは特に説明することもないのですが、ルートになって作業をするのは極力最小限に留めるということです。そしてルートでの作業が終わったらすぐさま一般ユーザに戻ります。ルートで間違えてrm -rf * なんてやった日にはもはや立ち直ることが出来ません。よくずっとルートで作業をやっている人を見かけますが、ある意味凄いと思います。僕にはそんなこと出来ませんので・・・

シェルのプロンプトにホスト名を付けておく

管理者ともなるとターミナルを複数立ち上げて、複数のサーバにログインして作業するなんてこともざらだと思います。ケアレスミスで本当はAサーバで実行するはずのコマンドをBサーバで実行してしまった経験は無いでしょうか。僕は幸いにも無いのですが、よくよく考えてみるとそれはシェルのプロンプトにホスト名を表示しているからだと思います。

使っているシェルがcsh, tcshであればこんな感じで設定できます。

% vi ~/.cshrc
---
set prompt="`whoami`@%m[%c]% "

設定ファイルを変更するときは、バックアップを必ず取る

サーバの設定ファイルにどんなに簡単な設定変更を加える場合でも、必ずバックアップを取って作業を行うようにしています。設定ファイルをゴリゴリ変更して最悪動かなくなっても、変更前までには戻せますからね。

バックアップファイルには日付プレフィックス(yyyymmdd)を付加するようにしています。

% cp -p httpd.conf httpd.conf.20041020

デーモンを再起動する前は、設定ファイルの差分を取る

設定ファイルを変更するときは、バックアップを必ず取るとワンセットなんですが、設定ファイル変更後デーモンを再起動し設定ファイルを読み込ませる前に、作業前に取ったバックアップファイルとの差分を取って、変更した以外の箇所を間違って変更していないか確認します。ここまでやっておけば安全です。

% diff httpd.conf httpd.conf.20041020

やらないでミスるよりも、ちょっとした意識でミスが減らせればそれにこしたことはありません。サーバ管理とはミスらないことが大前提なんです・・・

デーモンを再起動するときは、ログを tail -f

設定ファイル変更後デーモンを再起動し設定ファイルを読み込ませる際には、同時にログファイルをtail -f でリアルタイムにモニタリングしておきます。よくあるパターンとしては、設定ファイルの記述が間違っていて、デーモンが正常に起動してくれないケースです^^;) ログを見ておけば、どうなっているか直感的に分かります。

自分は、基本的に3つターミナルを立ち上げて作業してます。

  • デーモン再起動用(kill -HUP <server pid>)
  • ログモニタリング用(tail -f /var/log/<log>)
  • 自由に使用できるシェル用(プロセス確認とか、設定ファイルを間違えたときなど)

最後に

サーバ管理という職種はどうしてもマイナス評価になりがちのしがない職種です。その管理者が水面下でどんなに頑張っていても、たった一回のくだらないミスで、サービスが落ちたら即マイナスといった割に合わない商売です^^;

ですので、くだらないところでケアレスミスしないようにヒューマンエラーだけには注意しましょう。せっかく体張って頑張ってても報われません。

ヒューマンエラー防止が最大の目的ですので、それが達成出来ればどんなやり方でも良いと思います。人それぞれやり方はあると思いますので、自分のプレースタイルを確立すればいいと思います。

ページのトップへ戻る