Webサイトにつながらない。
たまにはRuby以外についても投稿してみます。
仕事の話です。
よくある?HTTPサーバーの障害の話です。
環境はCentOS5のApacheです。
今日、出社して会社のホームページを見ようとしたところ、つながらない……。
原因はなんだ!と思い、サーバーにSSH接続して原因を探す。
よくあるのが、ストレージの容量が逼迫して動かなくなることだよなぁ…とも
思いながら、とりあえず「df」をたたいてみる。
察したとおり、/var/logのパーミッションが97%になり逼迫してた。
#でも97%ならまだ頑張れるよな……。
一応、/var/log以下を確認したところ、btmpファイルが中々容量を食べている。
btmpファイルとは何か!と調べたところ、不正アクセスがあったときに記録されるログファイルのようなものらしい。
いやそもそもそんな逼迫するくらいのbtmpファイルがあるってやばいんじゃないのって話は置いておいて。置いておいて。
btmpファイルを参照する場合は、「lastb」コマンドで確認できるようです。
ちなみに容量を食べている状態でlastbコマンドを実行したら、以下のお返事がありました
lastb: /var/log/btmp: File too large
容量いっぱいだから無理って意味かな…。なるほど。
...駄目じゃん!
これの見方としては別のパッケージインストールすると見れるらしい?
とりあえず、容量を食っているbtmpファイルを削除し、新しくtouchで作成しパーミッションを
600に設定。
httpdを再起動……。うん、予想通り駄目だね……。
他の原因はなんやー!と思いながらも、とりあえずサーバーを再起動。
とりあえずサーバーを再起動するあたりホントに私はエンジニアに向いてないと思う(´-`)
まぁ、サーバーを再起動しましたが結局直らず。
一度コマンドでhttpdをスタートさせたときに、alredy!! とかなんたら喋ってるなこの人…。
すでに起動してるってことかなーと思い、なんの気もなしに「ps aux | grep httpd」をたたく。
なんかhttpdのプロセスいるなー。よーしジェノサイドだー。ダダダダダッとか妄想しながら
httpdのプロセスをジェノサイド。
次にhttpdを死者蘇生(restart)してみる。
蘇生した!!!
起動時になにかしらの自動起動があってそれがこけてたのかな……。
ちょっと謎ですが、一応これで解決しました。
原因は別に調べようと思います(やる気があれば…)
以上!
---------------------------------------
付録。
sshのポート変更方法
Linux上より以下のコマンドを実行。
で、Portと書かれている行を追加する。私の場合だと、Port=69**1と設定。
sshdをrestartさせる。
別のターミナルから、変更したポートでssh接続してみる。
---------------------------------------
終了。以上メモ書きでした!