REHL(Red Hat Enterprise Linux)や、CentOSサーバを前提とします。
Linuxサーバはほとんどこれしか経験ないので (てへっ
調査の際は、ターミナルのログ取っとこう
障害発生時まっただ中でしか取得できない値などがあります。
調査前にターミナルのログ取得をしているか確認しましょう。
できれば普段から自動で取るようにしましょう。
Teratermの場合は、
設定(S)メニュー > その他の設定(D) > 「ログ」タブ > 自動的にログ採取を開始する(U)にチェック
システムのログにエラーが無いか
同じようなトラブルが発生しがちなシステムだったりすると、意外とこういう基本的な確認を忘れてたりします。WindowsだったらEvent Logを見るのを忘れるみたいに。
# grep -i error /var/log/messages
これ、基本です。(でも忘れがち。。。)
パフォーマンスに異常が無いか
CPU
$ top
メモリ
$ free
ロードアベレージ
$ w
ネットワークに異常が無いか
リモートで該当サーバを調査している場合、その時点でSSHなどが繋がっているので割りと大丈夫だったりしますが、繋がる際に動作がいつもより重くないかなど確認しましょう。
Webサーバの場合、エラーログにエラーが無いか
# less /var/log/httpd/error-log
環境によってログファイルの場所が違ったしますが。。。
DISKの使用率
# df -h
連携しているサーバのDISK使用率
連携しているサーバにログインしてから
# df -h
SYSLOGサーバと連携している場合
ApacheのアクセスログをSYSLOGサーバに吐くようにしていた場合にSYSLOGサーバ側で受け取れない状態にあった場合、Apacheのプロセスが開放されず新しいアクセスを受け入れられず、MaxClients値に達してWebページが見れない状況になった事があった。
SYSLOGサーバがログを受け取れない具体的な原因として、以下があった。
- SYSLOGサーバのDISK容量が一杯
- SYSLOGサーバの設定に不備があってSYSLOGを受信できない
上記が起こるのは、syslogの通信プロトコルがTCPである場合のみ。UDPであれば問題ない。
主要なプロセスは動いているか
# ps aux
psコマンドのオプションについてはこちらさまに分かりやすくて実践に使いたい記事が載ってた。
コメント