サーバー監視をする際に、どういう目的で行うかというのは、監視業務を行うエンジニアのスキルに委ねられます。
実際に監視業務を仕事として経験したことがある人と無い人とでは、視点が全く違うので、ここでの経験値は非常に重要なポイントであるとも言えます。
経験値のない人は、サーバーが落ちた状態を見つけようとしますが、実際にサーバー障害を経験した事のある人は、サーバーの正常値から値が変動した時の状態をウォッチして、危険な領域に入った事を認識するようにします。
要するに、落ちた後で障害を知るのか、落ちる前にダウンする予測ができる状態にするかで、品質が大きく変わります。
今回は、そんな事前予測でも、ありがちな、ディスク容量がいっぱいになる前に検知できるように、ストレージ監視を行ってみたいと思います。
ストレージ監視の方法
サーバーのストレージ監視は、そのサーバーのHDDやSSDのディスク容量を調べればいいので、システムコマンドの"df"を実行するだけで確認できます。
dfコマンドを熟知している人は、さほど説明はいらないのですが、知らない人の為に簡単に説明しておきますね。
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
overlay 65792556 13179848 49240932 22% /
tmpfs 65536 0 65536 0% /dev
tmpfs 1023516 0 1023516 0% /sys/fs/cgroup
/dev/sda1 65792556 13179848 49240932 22% /etc/hosts
shm 65536 0 65536 0% /dev/shm
osxfs 488245288 428032812 55304884 89% /var/www/html
tmpfs 1023516 0 1023516 0% /proc/acpi
tmpfs 1023516 0 1023516 0% /sys/firmware
単純に"df"を実行するだけで、システムで利用しているストレージ(マウントされているドライブ)が一覧で表示されます。
複数のドライブを別々に認識している場合は、一覧に複数含まれるので、それぞれのUse%の値を検知して、システム利用する時に、どのくらいで満タンになるのかを計算して運用することになります。
ストレージ運用の考え方
システム運用は、サービス内容によって大きく変わってくるのですが、よくある思考法として「1日のストレージ利用率」と「何日間運用できる」ということが条件になり、最低どのくらいの割合をfreeスペースとしてキープして置かなければいけないかを考えておきましょう。
例えば、20GBのストレージを持っているクラウドサーバーを運用する事を前提として、1日に1GBのデータを蓄積していくシステムの場合は、単純計算すると、20日後には、ストレージが100%に達してしまい、おそらくシステム障害になってしまうでしょう。
実際は、OSやサービスプログラムや、各種データが存在するので、20GB全てを使える状態ではないと思います。
仕事での運用であれば、1週間ごとにメンテナンスを行うようにすれば、うまく運用がまわるという視点で考えると、7GBの愛機容量がキープできていれば、よほど膨大にデータ消費が発生しなければ、ストレージ容量障害は発生しないでしょう。
ということで、7GBを下回った時にアラートを発生させれば、安定した運用が行えます。
遠隔サーバーの状態取得方法
sshでログインできるサーバーであれば以下のように簡単にコマンド実行結果を手元の環境で取得することができます。
$ ssh user@example.com "df"
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 20641372 13240760 6352092 68% /
tmpfs 251132 0 251132 0% /dev/shm
/dev/sdb1 9178 86 9092 1% /metadata
鍵がある場合は、-iオプションを追加するだけで、簡単に取得できますよ。
これをcronで5分速で行うと、簡単な5分検知システムが作れちゃいます。
filesystemの"/dev/sda1"だけで十分であれば、以下のようにします。
$ ssh user@example.com "df|grep /dev/sda1"
/dev/sda1 20641372 13240760 6352092 68% /
そうとうチョロいですね。
0 件のコメント:
コメントを投稿