見出し画像

サーバ復旧物語:Webサーバ復活

↓の話の続き。

今回のサーバクラッシュでは、webサーバにいろいろさせていたので、この復元がキモの一つだった。
で、結果はあっぷあっぷしながらも、無事復旧できたので、上々といったところ。

コンテンツのバックアップ不良

コンテンツ自体は当然バックアップしていた。
バックアップは毎日自動で行うようにしていたが、2023年9月から始めていたのに、なぜか2023年11月で更新が止まっていた。
幸い、コンテンツの大きな修正は行っていなかったので、ほぼノーダメージで済んだのはラッキーだった。
今となっては原因不明だが、cron定義が消えたのか、何らかの理由でバックアップ用スクリプトがコケる(エラー終了する)ようになったのかはよくわからない。
バックアップが安定稼動後も、定期的にバックアップが成功していることを確認する仕組みを作らないとダメだなと感じた。
やっぱり、バックアップは難しいわ。

Webサーバ復元

上記の通り、コンテンツは復元できた。
次の課題はconfig回り。
自宅サーバはapacheを使っているのだが、できるだけhttpd.confには手を入れずに、conf.d以下にouchi-server.confを作り、その中に全ての定義を記述するようにしていた。
この方式は成功だった。
今回は、OSのバージョンアップも行ったので、標準提供されているconfファイルも変更されていたみたいだが、こちらの変更を1ヶ所に集中させていたので、リバースプロキシなどの定義も含めハマることなく、復旧できた。

というわけで、懸念だったredmineもroundcubemailもすんなり動いてくれてまずは、ホッとしたところ。

とはいえ、全く無傷とはいかなかった。
一つは、firewallの定義を手作業でやらなければいけなかった点、もう一つはSElinuxのフラグをいくつか設定しなければいけなかった点。
世間ではあまりウケの良くないSElinuxだが、侵入された時を考えるとenforcing(有効)にしておいた方が良いのは間違いないので、割とマジメに導入している。
ただ、手元で一時ファイルを作るようなスクリプトを動かしていることもあり、標準的なSELinuxの設定ではスクリプト動作中にブロックされてしまう。なので、SElinuxの設定変更がいるのだが、これがかなり手間がかかる。今回も多少の手間を取られてしまった。
こういった情報もバックアップするのもアリだが、SElinux側のポリシーアップデートなどでフラグ名やルールが変更される可能性も高い。
なので、この2つは、結局手作業で再設定をするのが一番確実かなぁ、というのが現状の結論。
属人性は排除したいが、何とかならんもんか。

自作スクリプトの更新

Webサーバ上で動くCGI(いまどきwww)を作っていたので、その更新も行った。これもバックアップから戻すだけでほぼいけたが、最近になって微修正していた内容がこれまた反映されていなかったので、手作業で対応した。まあ、大した作業は必要なかったのが幸い。

スクリプトについても、SElinuxの定義でひっかかったので、こちらもシコシコとブロックしているフラグ類を変更。
また、スクリプトで使うftpサーバのパスワードファイル(.netrc)が消失していた。(バックアップなし)
仕方ないので、パスワードの通知メールを探して回ることになった。
これも見つかったのでヨシとしよう。
最後にスクリプトを実行するcrontabの定義も消失。スクリプトを呼び出すだけなので、バックアップなくても何とかなる話ではあるが、ちょっとだけブルー。

コンソールの解像度変更

細かい話だが、コンソールの解像度が高すぎて(文字が小さすぎて)老眼の筆者にはかなりツラかったので、解像度を落とすための手順を踏んだ。
昔はコンソールといえば、VGAで80文字x24行の一択だった。日本語も出せなかったので、KON(Kanji Console)というパッケージがあった。今はVESAの標準化が進んだおかげか、解像度がめっちゃ上がってるのね。
で、古式ゆかしいVGAに切りかえた。
ちなみに、RockyLinux8.10では以下の手順で変更できた。

  1.  /etc/default/grub を編集
    GRUB_CMDLINE_LINUX の定義の最後にvideo=640x480を追加

  2. rootでgrub2-mkconfig を実行

  3. リブート

まずは月曜日に向けて最低限の復元はできた感じ。
上では書かなかった課題とかもそれなりにあって、結構得るものの多いサーバクラッシュだった。

が、まだおうち認証局の復元とかも残ってるので、気は抜けない。
週明けも継続してちまちまと進めていこう。





いいなと思ったら応援しよう!