メールマガジン

問題箇所の特定

システム管理のつぼ(2015年12月号)

フロンティア開発部 米山 陽介

OSSは1つ1つが部品です。デージーネットでも、OSSを組み合わせてシステムを構築することが多く、お客様に合ったシステムを提供しています。しかし、複数のOSSを組み合わせることで、思わぬところで問題が起きる場合もあります。問題発生時には、すぐに原因や影響範囲の調査を行う必要があります。影響を最小限に留めるためにも、調査はスピードが勝負です。

では、どうすればスピーディーに対応ができるようになるのでしょうか?

問題切り分けの基本は、システムが出力するログ内容を確認することです。
しかし、すべての情報をログで出力していないため、ログのみによる調査にも限界があります。ここでは問題箇所を特定するために、ログ内容からとログ内容以外の双方から問題箇所特定のポイントについて説明します。

ログ内容から問題箇所を特定するためのポイント

  • ログ出力先の選定
    ログの出力先がわかりにくかったり、各アプリケーションのログが混在していると調査に時間がかかることがあります。ログ内容を確認しやすいように、アプリケーション毎にログの出力先を分けた方がよいでしょう。
  • ログ出力レベルの選定
    通常は、デバッグログまで出力する必要はなく、システムのエラーやユーザ操作が追える情報を出力するようにしています。必要な情報を適切にログへ出力させることが、問題箇所の特定への近道といえます。

    • ログ内容以外から問題箇所を特定するためのポイント

      • システムの状況を確認する
        Linuxではpsでメモリ使用率を定期的に取得したり、sarでシステム状況を確認します。またtcpdumpでネットワークの内容を確認できます。sarとtcpdumpは入れておくべきでしょう。
      • プログラム内部の調査
        straceにて、プログラム内部の動作を見ることができます。システムコールのレベルで問題箇所を特定するため、高度な調査を行う場合には、straceの使い方をマスターするとよいでしょう。
        • いかがでしたか?デージーネットでも、システムの調査をする事は多々あり、調査の際様々な視点から調査ができるように、事前に機能や設定を入れるようにしています。問題箇所の特定に時間が掛かっている事が多いのであれば、これらを一度参考にしてみてください。

デージーネットマガジン2015年12月号記事一覧

問題箇所の特定の先頭へ