share facebook facebook facebook twitter twitter menu hatena pocket slack

2012.12.27 THU

tcpflowでELBの挙動を確認してみる

鈴木 宏康

WRITTEN BY 鈴木 宏康

これまでは、パケットのモニタリングはtcpdumpでPostfixとSESの間のSMTPをのぞいてみるの記事のようにtcpdumpを利用していましたが、HTTPに関してはtcpflow — TCP Flow Recorderの出力が見易そうなので、試してみました。

インストールはyumで行う事ができます。
(リポジトリはrpmforgeです)

# yum -y install tcpflow

そして下記コマンドで80番ポートのモニタリングが始まります。

# tcpflow -cs -i eth0 port 80
tcpflow[4004]: listening on eth0

尚、指定しているオプションは下記の通りです。

-c : ファイルに書き出さずコンソールのみに出力
-s : 表示できない文字を”.”として出力
-i : モニタリング対象ネットワークインターフェース(eth0など)を指定

ELB経由のリクエストは次のように出力されます。

010.000.000.113.50471-010.000.000.191.00080: GET /elb.php HTTP/1.1
host: test-419396984.ap-northeast-1.elb.amazonaws.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.3
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ja,en-US;q=0.8,en;q=0.6
Cache-Control: max-age=0
Cookie: SUZLAB=TEST; AWSELB=55FD...
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4
X-Forwarded-For: 219.117.233.241
X-Forwarded-Port: 80
X-Forwarded-Proto: http
Connection: keep-alive

そして、レスポンスは以下のように出力されます。

010.000.000.191.00080-010.000.000.113.50471: HTTP/1.1 200 OK
Date: Thu, 18 Oct 2012 12:30:49 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.3.17
Content-Length: 262
Connection: close
Content-Type: text/plain; charset=UTF-8

ELB_IPADDRESS : 10.0.0.113
COOKIE_AWSELB : 55FD...
COOKIE_SUZLAB : TEST
EC2_IPADDRESS : 10.0.0.191
X_FOWARDED_FOR: xxx.xxx.xxx.xxx

今回のテスト対象ファイル(PHP)はELBの挙動確認(Disable Stikiness)で利用していたものになります。

ELBのヘルスチェックも下記のように出力されます。

010.000.000.113.29775-010.000.000.191.00080: GET /healthcheck.txt HTTP/1.1
host: 10.0.0.191:80
User-Agent: ELB-HealthChecker/1.0
Accept: */*
Connection: keep-alive

010.000.000.191.00080-010.000.000.113.29775: HTTP/1.1 200 OK
Date: Fri, 19 Oct 2012 02:43:57 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Thu, 18 Oct 2012 12:25:37 GMT
ETag: "20593-c-4cc547c1590bb"
Accept-Ranges: bytes
Content-Length: 12
Connection: close
Content-Type: text/plain; charset=UTF-8

healthcheck

本モニタリングはHTTPのAPI通信時のデバッグなどでも、有用だと考えています。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。