やぁみんな、元気かい?
オレは髪の毛の長さが限界に達したので、美容室に行ってきたところだよ。
ところで「サイトが見れないから調べて」って誰かに言われたことはないかい?
カンと経験則としか言いようがなかった
この前、会社の女の子に聞かれたんだ。
「お客さんにサイトの見れないって言われたら、どうやって調べればいいんですか?」
「それって私でもできますか?」
2秒考えた結果
「カンとか経験則的な話になるから、オレがやるよー」
正直、それ以外答えることができなかった。
実はこの手の質問は結構されるんだけど、殆どの場合その場でレクチャーすることはない。
理由としては、問題を解決するために必要な前提知識が多すぎるからだ。
上に出てきた会社の女の子はデザイナーさんなんだけど、これが同僚のプログラマーであっても同じ事だ。少なくとも、自分でサーバーを構築し、ドメインを振った経験くらいはないと会話が成立しない。
自分が逆の立場だったら、話を聞いて内容をメモすることはできるかもしれないが、自分で考えて調査することは非常に難しいだろう。
「じゃあオマエ、問題が起こった時にいつもどうやってるの?」って自分自身に聞いてみたところ、ちょっとだけ文章にできそうな事を思いついた。
先に言っておくが、かなり経験則やカン的な話が含まれる。
技術ネタというよりかは、問題を解決するためのラフプレイみたいな感じで見て欲しい。
調査にあたっての心構え
この手のトラブルは、「コレが悪い」と最初から分かっているケースが殆ど無い。原因がわかっているのなら、普通はそれの対応をしているはずだ。
また、原因があまりにも多すぎるため、「コレが悪い」と決めつけて調査をし始めると、ドハマりする時がある。
ドハマりしないためにも、広い目で一つづつ原因の切り分けをするような形で望むといい。
その1 マシンの不調を疑ってもらおう
失礼な言い方をするが、これは情報リテラシーが低い人によくあるやつだ。特にメールの設定を電話越しで聞いてくるようなお客さんとかによくある。
サイトが見れないどこか、なにか不思議な事を言っている時はこれを疑おう。
「隣の席の方はヤフーを見れますか?」と確認すれば、ほぼ解決する事が多い。
その2 社内のネットワークの状況を把握しよう
これは様々な要因があるが、ある環境下(社内)でのみサイトが見れないような時だ。
Yahoo!やGoogleが見れないのであれば、社内のネットワーク障害という事になるだろう。スマートフォン(社内のwifi以外)でサイトが確認できれば問題無いだろう。
ネットワーク障害の理由は様々だが、調査する時間や人手が無いのなら、素直にルーターやハブを再起動しよう。原因として特に多いのは無線LANの不調やフレッツの切断とかじゃないだろうか。
その3 pingを飛ばそう
社内からも社外からも誰もサイトを見ることができない。こうなると話が本格化してくる。
最初にやるべきことはpingを飛ばすことだ。
Windowsの場合、Windowsキー + R で cmd と入力すればコマンドプロンプトが開くので、ping [ドメイン名] を実行しよう。
例えばこのサイトだと、ping kitaism.com だ。
さてここから経験則的な話になるが、pingを飛ばした時にその結果と気配で状況を推測する事ができる。大きく分けて以下の4つだ。
- ping が届かない → サーバーダウンかネットワーク障害を疑う
- 名前解決出来ない → DNSを疑う
- 反応がやたら遅い or 失敗がまじる → 何らかの高負荷を疑う
- 普通に帰ってくる → さて困った
名前解決が出来ない場合は、近くの技術者を頼ろう。こんな記事を参考にして直せる状況ではないかもしれない。
その4 SSHでログインしよう
この手の調査を依頼される身分であれば、SSHのログイン情報を所持している場合が多いと思う。もしもそうじゃない場合はサーバー会社に電話しよう。また、ログインする事が出来なかった場合は、Apacheとsshd以外で、外から死活監視できるデーモンに問い合わえてみよう。例としては以下の様な感じだ。
- FTPサーバーにはログインできるか?(最近はFTPサーバーを建てないので無いかもしれない)
- メールサーバーは反応するか?(メールサーバーを立てていれば)
他にも外部に公開している何かがあれば、念のためそれらにも問い合わせてみて欲しい。
Apacheとsshdが死んでるのに、FTPサーバーにはログインできるとか、謎めいた状況になっていないかを確認するためだ。
確認したところで特に意味はないんだが…
状況も確認せずに再起動するのが嫌なだけだったりする。
何の反応も無いのなら、再起動だろう。
その5 TOPコマンドで様子を見よう
SSHにログインできたら最初にやるべきことはTOPコマンドを叩くことだ。サーバーに異常な高負荷がかかってサイトが見れない場合、Apacheのプロセスで異常なload averageを叩きだしてる事が多い。
何か他のデーモンに負荷がかかっている場合もここで確認できるだろう。
Apacheを再起動してもいい状況であれば、再起動して様子を見てみるのもいいだろう。
その6 落ち着いてログを見よう
サイトが見れないだなんて、担当者や現場の人の周りには不穏な空気が流れているかもしれない。直ぐにでもサーバーを再起動したい気持ちはわかるが、ここは落ち着いてサーバーのログを確認しよう。
平静を装い、怒り狂う担当者を華麗にスルーし、ログをじっと眺めるのだ。
そうしないと再発防止の手が打ちにくくなる可能性がある。
その7 sftpでファイル転送をしてみよう
TOPコマンドとログでで異常が発見出来ない場合、ネットワーク障害か帯域制限、帯域不足などの状況に陥ってい可能性がある。load averageが低いのに、TOPコマンドの画面更新が不安定な場合とかは特にそうだ。
sftpで何か重たいファイルを転送し、標準的な転送速度が出ているか確認しよう。
その後
ここまでが最低限いつもやってる事だ。
ここから先にはサーバー内部の話や細かいネットワークの話になる。
この7の項目で状況が分からない場合は、近くの技術者を呼びだそう。もしも詳しい人が居ないのなら再起動してしまうのが良いかもしれない。もちろん、何らかの原因で起動しなくなるような状況も想像しながら作業して欲しい。
あとがき
最後は丸投げのような形になってしまったが、正直なところそんな風にしか締めくくれない…
この手の対応は経験を積めば積むほど迅速に対応出来るようになと思うので、みんなも経験を積んでくれ。
以上。