Masahiko Kitamura

FastDNSのトラフィックモニタ・ログ機能

Blog Post created by Masahiko Kitamura Employee on Dec 20, 2016

今回はシステムの安定運用に欠かすことのできないFastDNSのトラフィックモニタ・ログ機能を紹介します.

 

 

トラフィックモニタ・ログ機能の概要

 

DNSはあらゆるWebサービスにアクセスする場合に最初に参照されるポイントであるため,システムの安定性を担保するために,ステータスのモニタリングやログ管理を通常の運用プロセスに組み込むことが求められます.例えば,どのDNSレコードへのアクセスがどこからどの程度あるのか,不正や疑わしいクエリのリクエストがないか,また,問題があった場合にログ解析が迅速に実行できるのか等の要件が常に求められます.これらの観点から,FastDNSではトラフィックモニタ機能およびログ機能を提供しており,次のような特徴を持っています.

 

  • Zoneへのアクセス全体を俯瞰するためのトラフィックモニタ機能
    • 直近3ヶ月間のトラフィックデータを保持 
    • Zone毎のアクセス数の時間推移(グラフ表示)
    • 登録していないレコードへの問い合わせ(NXDOMAIN)の時間推移(グラフ表示)
    • 指定期間内のアクセス数,NXDOMAIN回答数,アクセス全体に占めるNXDOMAIN回答率の集計値
    • 定期的なレポートメールの自動送付
    • CSV形式によるエクスポート機能

 

  • 詳細なアクセス・クエリ結果を見るためのログ機能(FastDNSのLog Delivery Service )
    • DNSクエリ毎のログ記録
      • アクセス日時,アクセス元IPアドレス,クエリ内容,返した結果の内容のログ記録
    • メールによるログデータ送付機能
    • FTPサーバへのログ配置機能
    • NetStorageとの連携

 

これにより,例えば,普段は定期的にEmailでトラフィックモニタレポート受け取りつつ,何か問題があった場合にはLog Delivery Service(以下,LDS)で指定したFTPサーバにアクセスして,発生時前後のログレコードを調べて原因特定を行う,といった運用ができるようになります.また,NXDOMAINの処理結果数の時間推移(トレンド)を調べることで,アタック攻撃やwebサイトシステム内のエラーなどの異常検知を見つけやすくなります.

 

以下では,それぞれの機能の設定方法,および,使い方を解説していきます. なお,本記事ではLUNAの表示する言語をEnglishとしております.日本語の場合には表示されるメニュー名が翻訳されていることがあります.

 

 

トラフィックモニタ機能

 

トラフィックモニタは,前述した通り,Zoneへのアクセス全体を俯瞰する機能を提供します. ここでは,前回までに設定したZoneである"myexample.com"についてアクセス数の時間推移を確認するとともに, 週間のレポート(html形式)をメールで送付する設定を説明します.

 

まず,Luna Control Centerにアクセスし,メニュー上部の"Monitor > FastDNS Traffic"からZoneリストページを開きます.

 

Zoneリストのページにおいて,今回の対象Zoneである"myexample.com"を見つけ"View Report"をクリックしてトラフィックモニタページに進みます. なお,管理するZoneが複数ある場合には検索機能がありますので,対象のZone名の一部を入力するとマッチしたZoneのみリストに表示されます.

 

トラフィックモニタは下図のようなページ構成になっています.

上から見ていくと,次の4種類のトラフィック情報が表示されています.

  1. モニタ対象のZone名とモニタ対象期間の情報
  2. 登録されているレコードへのリクエスト数の時間推移と期間中のピーク値
  3. 登録していないレコード(NXDOMAIN)へのリクエスト数の時間推移とそのピーク値
  4. 上記の統計値

 

トラフィックモニタページを開いたときに表示されるトラフィックのモニタ対象期間は1日(デフォルト)になっています. 例えば,このトラフィックモニタ結果を見てみると,

  • 登録されているレコードへのアクセス数は秒間3-4回の範囲で約2時間ごとの周期がある
  • NXDOMAINへのアクセスは0.4%程度のごく少数で,周期性は特に認められない

ということが大まかにわかるかと思います.

 

また,グラフの右側には今後推定される時間推移が表示されています.これはログ収集過程にある一部の時系列データから推定したもので,ひとつの参考値として用いることができます.

 

もし直近1日ではなくもっと長期の時間推移を確認したい場合や,さらに過去の日時の状況を確認したい場合には,右上部の"Show Last:"からモニタの対象期間を変更することができます.また,任意の期間に設定する場合や,後述するEメールのレポート機能を設定する場合には"More Option"で設定可能になります.ここでは週間レポートをメールで送付する設定を行いますので,"More Option"をクリックして設定ページに進みます(上図参照).

 

 

"More Option"の設定ページでは,以下の3つの機能に応じたにタブ構成になっています.

  • Edit this Report: このトラフィックモニタページで表示する期間の変更
  • Create Email Report: Eメールレポートの作成
  • Download this Report: 時系列データ(CSV形式)のダウンロード

今回はEメールレポートを設定するので,"Create Email Report"タブを開いて,図にあるように必要項目を記入していきます. 最下部にある"Date Range"の項目は,"Reccurence"の項目で繰返し送付の設定("Send Now"以外)を選択した場合は設定は不要です. 設定項目の入力が終わったらページ下部にある"Send Email Report"ボタンをクリックして,設定が完了します.

 

以上で,トラフィックモニタページで確認した内容がHTML形式で毎週配信されるように設定ができました.

 

なお,今回は毎週繰り返し送付する設定にしましたが,期間を指定したレポートを一度だけ受け取る指定も可能です.その場合は,

  • Reccurence: Send Now
  • Date Range: 取得したいモニタ対象期間

を指定します."Send Email Report"ボタンをクリックしたのち,まもなくレポートが指定したEmailアドレス宛に送付されます.

 

 

ログ機能(FastDNSのLog Delivery Service)

 

ログ配信の設定

 

ログ機能であるLog Delivery Service(LDS)では,アクセスがあったDNSクエリ毎にログを記録していきます. そのため,いつ,誰が(送信元IP),どのレコードを参照し,どんな結果を返したかなどを詳細に調べることができます. 前節で詳細したトラフィックモニタ機能では,最大3ヶ月の期間でしたが,LDSではFTPもしくはEmailによって配信するので, 運用次第でトラック可能な期限を自由に設定することができます.FTPサーバはユーザーが用意した一般的なFTPサーバの他に,アカマイが提供するロバストなストレージサービスであるNetStorageを使用することも可能です.なお,LDSをメールで受け取る場合に,メーラーや社内のメールサーバーの受け付けられるファイルサイズに注意いただく必要があります.

 

ここでは,具体的に,1日(24時間)毎にログデータをEmailで配信する設定を見ていきたいと思います.

 

はじめに,Luna Control Centerの上部メニューの"Configure > Log Delivery"からLDS設定ページに進みます.

 

次に,LDS設定ページ内の右の"View By"から"Zone"を選択します(デフォルトでは"CP Code"が選択されおり,ここを"Zone"に変更しないとFastDNSのZoneがリストされませんので注意が必要です).この中からログ配信を設定するZoneである"myexample.com"を見つけます.ここから,図にあるように該当するリスト行の右端にある"Action"上の歯車から"Begin Log Delivery > New"を選択します.設定のポップアップウィンドウが立ち上がります.

 

ポップアップウィンドウは3つのパートに分かれています.最初のパートではログデータの開始日,データファイル名のプレフィックス,およびログ収集の時間周期等を設定します.下図のように必要項目を記入します.

"Aggregation"の項目では,分散的に記録されたログをどう集約して配信するかを設定します.FastDNSは,アカマイの他のプロダクト同様に分散サーバシステムとして構成されるため,それぞれのサーバにログが分散しています.それらをLDSサービスが収集し,指定した宛先(FTPサーバもしくはEmail)に配信することになります.この収集時にそれぞれのサーバから届くログデータをどう集約するかの方式として,アカマイのプラットフォームでは下記の2種類を規定しています.

  • Aggregate by arrival time: 各分散サーバ(FastDNSサーバ)から届いた順に集約する
  • Aggregate by hit time: DNSクエリのログレコード時間順に並べて(ソート)して集約する

前者はログが届いた順に集約されるため,ログの時間系列はソートされていない状態で配信される一方で,後者よりも即時的にログ配信することが可能です.

 

今回は前者の集約方式を24時間単位で行い,ログを配信する設定をすることにします.各項目を入力したら"Next"をクリックして次のステップに進みます.

 

続いて,ログデータの配信手段(Type),ログデータの配信サイズ(Approx. Message Size),およびデータ形式(Encoding)の設定になります.

ここではEmailで受信するので,そのEmailアドレスを記入します.ログデータの配信サイズはログデータが大きい場合に分割するサイズを指定します.gzip圧縮形式が適用されて配信されるため実質ログデータの1/6サイズになります.ここでは5MB(展開後のログファイルサイズは約30MB程度)に設定します.最後にファイル形式は,GZIP+UNENCODED,GZIP+BASE64, GPG(暗号化)に対応しています.ここではもっとも単純なGZIP+UNENCODEDを選択することにします.最後に”Next”をクリックして次のステップに進みます.

 

最後に,連絡先の電話番号およびEmailアドレスを記入します."Finish"をクリックしてLDSの設定が完了します.

 

ここで設定したログ配信設定は下図のようにLDS設定ページのリスト上で確認することができます.FastDNSの"myexample.com"のログ配信がEmail経由で機能している(Active)ことがわかります.

 

以上で,FastDNSのログ配信(LDS)を設定することができました.

 

 

ログデータの確認

 

続いて,上記で設定したログ配信設定によって届いたログファイルの中身を簡単に見ていきたいと思います. データ自体はCSV形式になっており,FastDNSログには下記の項目が一つのログレコードに含まれています.

 

  • 日時
  • リクエスト元IP
  • リクエスト元ポート番号
  • リクエスト名
  • クラス (IN) 
  • レコードタイプ
  • EDNS0 フラグ (Eもしくは空白) 
  • EDNS0 サイズ (もし利用可能でれば)
  • DNSSEC flag (Dもしくは空白)
  • TCPフラグ (Tもしくは空白)
  • DNS回答結果

 

下記が実際のLDSで届いたログになります(一部抜粋).

350560 - 1481599443 13/12/2016 03:24:03,110.4.181.242,38806,mail.myexample.com,IN,ANY,,,,,3600:0 10.20.30.43.myexample.com 3600:"v=spf1 +ip4:192.168.100.0/24 +ip4:10.0.0.0/24 ~all" 
350560 - 1481599444 13/12/2016 03:24:04,110.4.181.242,49263,file.myexample.com,IN,A,,,,,3600:util.myexample.com
350560 - 1481599244 13/12/2016 03:20:44,110.4.181.242,48188,www2.myexample.com,IN,A,,,,,3600:10.20.30.41
350560 - 1481599312 13/12/2016 03:21:52,110.4.181.242,39251,myexample.com,IN,SOA,,,,,3600:a12-65.akam.net hostmaster.akamai.com 2016111701 10800 3600 604800 86400
350560 - 1481599408 13/12/2016 03:23:28,110.4.181.242,39181,myexample.com,IN,NS,,,,,3600:a1-76.akam.net 3600:a9-67.akam.net 3600:a20-65.akam.net 3600:a12-65.akam.net 3600:a13-65.akam.net 3600:a4-65.akam.net

 

これを見ることによって,どのDNSレコードがどのDNSリゾルバからアクセスされているかを詳細に調べることができます.また,LDSの配信設定で"Aggregate by arrival time"を選択したため,ログレコードの順序が日時順に並んでいないこともわかります.さらに,NXDOMAINクエリに対しても,リクエストされたレコードを調べることができます.これによって,何か問題が起こった場合にもログを詳細に見ることで原因追求に大きく役立てることができます.

 

むすび

 

今回は,FastDNSのトラフィックモニタ・ログ機能について紹介しました.DNSは,ほぼすべてのwebシステムの基本サービスとして機能するため,その安定運用のためには動作状況をモニタし,ログを管理することが強く求められます.こうした要求に応えるべく,FastDNSではアクセス全体の状況を俯瞰するための「トラフィックモニタ機能」,および,詳細なアクセス状況を見るための「ログ機能(LDS)」を提供します.これらの機能を使うことによりDNS運用をシンプルに保ち,ひいてはwebサービス全体をよりロバストにすることができるのではないでしょうか.

 

次回はFastDNSのセキュリティ機能について解説したいと思います.

Outcomes