miyabihitoの日記

個人的な技術メモ

ATS

概要

Apache Traffic Server

キャッシュ・プロキシサーバ ソフトウェア
Yahoo! が開発したプロダクトが、apache foundationに寄贈され、 OSSとして開発が進められている。

キャッシュの機能・設定についての調査は、必要性が発生した時にでも行う。

資料

設定

records.config

  • proxy.config.reverse_proxy.enabled

    リバースプロキシモードを有効・無効に設定

  • proxy.config.http.server_ports

    リクエストを受けるポート番号(その他オプション)

  • proxy.config.http.cache.http

    キャッシュの有効・無効

  • proxy.config.url_remap.filename

    「remap.config」のファイル名指定

  • proxy.config.alarm_email

    Email addressを指定すると、問題が発生した場合に、通知される。

  • proxy.config.log.logging_enabled

    イベントログやエラーログを作成するか指定

  • proxy.config.log.logfile_dir

    ロギング対象ディレクトリ

  • proxy.config.log.max_space_mb_for_logs

    ログディレクトリの最大容量

  • proxy.config.log.max_space_mb_headroom

    ログディレクトリの残容量の閾値

  • proxy.config.log.rolling_enabled

    ログのローテート方法の指定
    指定されたタイミングか、指定されたサイズに達したタイミングか、あるいは両方を条件とするかを選べる。

  • proxy.config.log.auto_delete_rolled_files

    ログディレクトリの残容量が、headroom以下になった時に、古いログファイルを削除するか否かの設定

remap.config

リバースプロキシとして動作させる場合の、URLのマッピングを行うための設定ファイル

  • map rule

    リクエストURLとオリジンサーバURLのマッピングを行う設定

  • reverse-map rule

    オリジンサーバからのリダイレクトレスポンスのリダイレクト先URLを、
    オリジンサーバからリバースプロキシのURLへ書き換えるためのマッピングルール
    (リバースプロキシを迂回させないための設定)

  • redirect, redirect_temporary

    オリジンサーバに問い合わせる事なく、リダイレクトをレスポンスする設定

コマンド

trafficserver

  • ATSの起動

    trafficserver start

  • ATSの終了

    trafficserver stop

traffic_line

統計情報の取得やATSの設定を行えるCLIツール
取得可能な情報は、下記参照
https://trafficserver.readthedocs.org/en/latest/reference/commands/traffic_line.en.html

  • -h

    ヘルプ

  • -x

    設定ファイルの再読み込み

  • -r Var

    統計情報または設定の表示

  • -s Var -v Value

    records.configに記載できる設定項目を設定する。
    反映には、実行後に-xでの再読み込みが必要。

    • Var:項目
    • Value:値

traffic_logcat

バイナリのログファイルを閲覧出来るコマンド。
フォーマットの変換も出来る。

  • 引数

    ログファイル

  • -o PATH

    ASCII形式の出力先ファイル指定

  • -f

    tailコマンドと同じ、ファイルの更新を表示し続ける。

traffic_logstats

ログファイルから統計情報を取得するコマンド。

ログ

エラーログ

発生したエラーのログ

イベントログ

アクセスログとも呼ばれる。
リクエスト毎にその処理の記録がなされる。

下記のフォーマットを選べる。
- Squid - Netscape Common - Netscape extended - Netscape Extended-2

また、バイナリかAsciiかを選べる。
バイナリの方がオーバヘッドやログサイズが少なく済む。

ローテートは、開始時刻・実施間隔の指定や、
指定サイズに達したタイミングで実施させる事ができる。

システムログ

syslogが使用され、システムの状態やerror・warningが記録される。

Web UI (Cache Inspector utility)

キャッシュの検索や削除をUIから行う事が出来る。
キャッシュを全て削除でき、強力な機能なので、有効にする際には、アクセス制限の設定には注意が必要。

Plugin

C APIを用いて、プラグインを開発する事が出来る。

その他

プロセス

以下の3つのプロセスが稼働する

  • traffic_server
    コネクションを受付、リクエストを処理し、レスポンスを返す役割。

  • traffic_manager
    traffic_serverの起動、監視、再設定を担う。
    クラスタ管理等の責任も担う。
    traffic_serverがダウンし、再起動を掛ける際に、リクエストをキューイングする。

  • traffic_cop
    traffic_serverとtraffic_managerのヘルスチェックを行う。