WORDPRESSが落ちてた話
自宅にWEBサーバーを構築してこのブログをホストさせている。
いまどき電気代を払いつつ、自分でメンテする必要のある自宅鯖が流行らないのは重々承知している。
そういうデメリットよりも自分でメンテを実施することで少しはネットワークスキルをアップできるのではないかという淡い期待を込めてのことだ。
ブログは限りなく自己満足に近い内容ながらも見に来ていただけるユーザーの皆さんのために24時間365日稼働させているので定期的な死活確認が必要で、Crontabで定期的にIPアドレス、CPU状況、SSD残り容量などの情報がが1日に4回Lineに届くように設定してある。
サーバーがダウンするかネットがダウンした場合にメッセージが来なくなるので気がつくという具合だ。
念の為にもうひとつ、www.cman.jpが無料提供してくれているサーバー監視も利用している。
これを設定しておくと5分おきに各ポートを監視してくれて問題が発生すると即座にメールが送られてくる。
あまり歓迎できるメールではないが、今回こんな感じのメールを受信した。
httpに問題が発生しているよ~!という連絡。
ping、ftpについては監視中となっているのでサーバー自体は活きていてhttpだけが機能不全に陥っていることがわかる。
仮にping, http, ftpの全てが停止中となっていれば停電その他の理由でサーバーの電源が落ちている、ネットワークがダウンしている等の状況が想定できるわけだ。
cmanさんのサイトで監視ログを確認してみたらこんなことになっていた
試しに自分のブログにアクセスしてみると「このサイトにアクセスできません」と・・・💦💦
さて。どうしたものか?
無暗にいじくりまわして仕方ないのでまず直前に何か操作していないか記憶を辿ってみた。
ちょうど数時間前に1年以上触ってなかったログファイルの整理をしたことを思い出した。/var/logに生成されているログファイルを削除していたわけ。普段はフォルダはそのまま残していたのだが、/var/log/以下のログファイルとフォルダをまるっと削除したのを思い出した。
ログファイルは問題が発生したときの情報収集に非常に役立つ存在なのですが、頻繁に読み書きが繰り返されるとSSDの寿命を縮めてしまうという諸刃の剣でもあります。私の場合ログファイルを覗いて対処するという領域まで達しておらず、それなら完全に停めてしまってSSDの延命に繋げようというのがそもそもの考えでした。
以前記録しておいた/var/logの中身はこんな感じ。今回はそれを全て削除してしている。
tree /var/log
/var/log
├── apache2
│ ├── access.log
│ ├── error.log
│ └── other_vhosts_access.log
├── apt
│ ├── eipp.log.xz
│ ├── history.log
│ └── term.log
├── landscape
│ └── sysinfo.log
├── letsencrypt [error opening dir]
├── ubuntu-advantage-timer.log
├── ubuntu-advantage.log
└── unattended-upgrades
├── unattended-upgrades-dpkg.log
└── unattended-upgrades.log
/var/log以下には/var/log/apache2というフォルダもあってここにapacheのエラーログやらなにやらが格納されることになっているのでもしかしたらこのフォルダを削除したことが原因ではないかと考えた。
早速サーバーにssh接続し状況を確認してみた。
まずweb serverの肝にあたるapache2のstatusをチェックしてみると案の定apache2がコケている。
sudo systemctl status apache2
× apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2023-05-31 13:16:05 JST; 13s ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 648895 ExecStart=/usr/sbin/apachectl start (code=exited, status=1/FAILURE)
CPU: 25ms
5月 31 13:16:05 ****** systemd[1]: Starting The Apache HTTP Server...
5月 31 13:16:05 ****** apachectl[648898]: (2)No such file or directory: AH02291: Cannot access directory '/var/log/>
5月 31 13:16:05 ****** apachectl[648898]: (2)No such file or directory: AH02291: Cannot access directory '/var/log/>
5月 31 13:16:05 ****** apachectl[648898]: (2)No such file or directory: AH02291: Cannot access directory '/var/log/>
5月 31 13:16:05 ****** apachectl[648898]: AH00014: Configuration check failed
5月 31 13:16:05 ****** systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
5月 31 13:16:05 ****** systemd[1]: apache2.service: Failed with result 'exit-code'.
5月 31 13:16:05 ****** systemd[1]: Failed to start The Apache HTTP Server.
5月 31 13:16:05 xxxxxxxx apachectl[648898]: (2)No such file or directory: AH02291: Cannot access directory ‘/var/log/>
/var/log/にアクセスできないというエラーを吐いている。
なのでこのディレクトリの問題を解決してやれば復活するかも知れないなと目星をつけて以下のコマンドを実行。
sudo mkdir /var/log/apache2
そしてapache2を一旦停めてからrestart、そしてステータス確認
無事にactiveとなりワードプレスも通常通りに表示されるようになりました。
気持ち良し!
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-05-31 13:18:19 JST; 9min ago
Docs: https://httpd.apache.org/docs/2.4/
Process: 648936 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 648940 (apache2)
Tasks: 11 (limit: 37622)
Memory: 254.9M
CPU: 10.408s
CGroup: /system.slice/apache2.service
├─648940 /usr/sbin/apache2 -k start
├─648947 /usr/sbin/apache2 -k start
├─648948 /usr/sbin/apache2 -k start
├─648949 /usr/sbin/apache2 -k start
├─648950 /usr/sbin/apache2 -k start
├─648951 /usr/sbin/apache2 -k start
├─648952 /usr/sbin/apache2 -k start
├─648953 /usr/sbin/apache2 -k start
├─648954 /usr/sbin/apache2 -k start
├─648966 /usr/sbin/apache2 -k start
└─649010 /usr/sbin/apache2 -k start
5月 31 13:18:19 ****** systemd[1]: Starting The Apache HTTP Server...
5月 31 13:18:19 ****** systemd[1]: Started The Apache HTTP Server.
トラブったら焦りますよね。
焦りますが闇雲にいじくりまわす前に何かいつもと違うことをしなかったか?と振り返ってみることをお勧めします。
焦らず冷静に考えることによって必ずヒントが見つかるはずです。ヒントさえ見つかれば原因の絞り込みが可能になります。
原因を絞り込むことができればあとはあとはネットで検索しまくって同じような事例がないか探してみましょう。
かなりの確率で解決方法が見つかるはずです。