サーバ

webサーバのメンテナンス対応(さくらインターネットVPS)

状況

この記事は、2017年8月のある日の記録です。
"本日"って書いてる個所がありますがこの記事の公開日(8/31)のことではありません。

当サイトはさくらインターネットでVPSをレンタルしているのですが、先日「メンテナンスのため深夜に停止する」との連絡がありました。

それで本日深夜(今朝)サーバ監視システムから「webサイトが停止してるよ」ってメール通知がありました。

弊社で管理しているwebサーバでは正常に稼働しているか監視するシステムを組んでおりまして、何か異常が発生するとメールで通知されるようにしています。
サーバ自身が止まってると通知も止まる可能性があるので監視専用のサーバとwebサーバは物理的にもネットワーク的にも異なる場所にあります。

メンテナンス状況の確認

で、改めてメンテナンスの予定を確認してみました。
・午前2時~午前5時 予定
・メンテナンス後は時刻合わせが必要かも

予定では5時終了になっていましたが、少し早く終わったようです。
時間は控えてなかったのですが、たまたまブラウザからアクセスしてみると復活していました。
※後で公式サイトのメンテナンス情報を見てみると午前4:30に完了したと告げられていました。
http://support.sakura.ad.jp/mainte/

メンテナンス終了後の確認

メンテナンスが終了したっぽいので、異常が発生していないか念のため確認しておきます。

このまま放置しておいても問題ないと思います。
問題なく正常に動いているように見えると思います。
なので、何もせずに「異常なし」って判断するかもしれません。

静的なwebサイトだけで構成されていたらそれでいいかもしれません。
webサイトの内容によっては異常が気が付いたときの対処で良いかもしれません。
けど、気が付きにくいところで異常が発生していて、じわじわとやられてるかもしれません。

今回はメンテナンスの案内の中で「ntpd止まるかも、メンテ後は確認して起動してね」って案内がありました。
で、案内どおり、メンテナンス後にはntpdが止まってたので時刻合わせをして起動が必要になりました。

ntpdとは、コンピュータの時計を自動で時刻合わせしてくれるものです。
腕時計とか壁掛け時計とか目覚まし時計とか、家の中にはたくさんの時計があると思います。で、いつの間にか時計が5分早く進んでたとか遅れてたとかあると思います。そのたびに時刻合わせをしますよね。
サーバの中にも時計が入っていて、自動的に時刻合わせをしてくれるのがntpdっていう機能です。

時刻合わせができなくなっているので、サーバ内の時刻は狂います。
するとどうなるか。
ブログを書いているなら、投稿した日時が自動でセットされると思いますが、実際の時間とずれた時間になります。
ショップサイトを運営しているなら、お客様がカートに入れて購入した時間が実際の時間とずれて登録されます。
正確な時刻を前提にしたシステムがあれば、正常に動作できずに異常終了してしまうかもしれません。
webサーバの中で行っていること次第で、無視できるレベルの被害から無視できないレベルの被害まで色々出てきます。

時刻の確認

メンテナンスの補足事項で「NTPサーバが・・・」ってあったので、サーバにSSHでログインしてサーバ時刻を確認してみました。

# date

実際の時刻と3時間くらいずれていました。
停止している間は、VPSの中の時は止まっているみたいです。

# /sbin/service ntpd restart

で時刻合わせを再起動してみると「終了 > 失敗、起動 > OK」です。
NTPサーバ自体が停止してたみたいです。このまま放っておくと自動での時刻合わせを行ってくれずにずれたままになります。

手動で時刻合わせ

# ntpdate ntp1.sakura.ad.jp
手動で時刻合わせをしてみます。

ntpdate[3663]: the NTP socket is in use, exiting
このようなメッセージが出てきたときは、ntpdが起動してるかもしれません。

# /sbin/service ntpd stop
停止します。

# ntpdate ntp1.sakura.ad.jp

ntpdate[3631]: adjust time server IPアドレス offset 数字 sec
成功するとこんな感じのメッセージが出ます。

ntpdの自動起動設定

# /sbin/service ntpd stop
さきほど自動時刻合わせを停止させたので、起動しておきます。

時刻の確認

# date
現在の時刻を確認してみます。
正しい時刻になっています。

これで対応は完了です。

その他の確認

この後、念のためwebサイトが表示されているかとか他の個所も一通り確認しておきました。

ちなみに、今回のメンテナンスの時間帯にはCRONにて自動実行するプログラムがありました。
それ自体は、バックアップのためのプログラムなので動いてなくても問題ありません。
バックアップ終了後は結果がメールで届くようにしていますので、成功・失敗はスグに気が付ける体制です。
今回はメンテナンスのためバックアップできていないことは分かっているので、手動でバックアップ処理を実行しておきました。

そのほかで確認する個所は、対象のサーバ内で何をやっているかにもよりますので、この記事内での紹介はこのあたりにしておこうと思います。