« OpenSSL で SSL サーバ証明書の作成 | トップページ | SSH プロトコル »

Squid Proxy サーバの設定とログ解析ツール

Squid Proxy サーバの設定とログ解析ツール

アクセス制御に関する設定

acl <ACL名> <ACLタイプ> <ターゲットのリスト>

  クライアントのIPアドレスやSquidが受け付けるポートに
  対してアクセス制御リストを対応づける。

  HTTP のアクセス制御については http_access で行なう。

  ACLタイプ

  src,dst,srcdomain,dstdomain,url_pattern,
  urlpath_pattern,time,port,proto,method,
  browser,ident

http_access allow/deny [!]<ACL名>

ipc_access allow/deny [!]<ACL名>

  IPC により近隣の squid サーバからのリクエストを
  許可する設定を行なう

miss_access allow/deny [!]<ACL名>

  近隣の squid サーバから Parent として勝手に利用
  されないためのアクセス制御。
  デフォルトでは、Parent サーバのキャッシュにヒット
  しなかった場合、http_access で許可された近隣
  サーバはすべて代理でキャッシュを取得してもらうこと
  (MISSES)が認められている。
  miss_access deny という設定により、ヒットしたキャッシュ
  (HITS)の取得しか許可しないサーバを指定できる。

forwarded_for on/off

  Squid がHTTPリクエストを送る時に、クライアントのホスト名
  またはIPアドレスに含めるかどうかを指定する。
  デフォルト on。クライアントの情報が、X-Forwarderd-For:
  ヘッダでおくられる。

cachemgr_passwd [パスワード] [アクション]

  cachemgr.cgi 統計解析CGI プログラムの実行パスワードを設定。

近隣サーバとの連携

Sibling 型

  水平方向に配置する形式。
  アクセス負荷分散とディスクキャッシュの分散データベース化。

  cache_peer squid-b sibling 8080 3130 proxy-only

  ・自ホストでキャッシュしていないデータが他のSquidの
    キャッシュにもヒットしなかったときは自身で実データを
    取得する
  ・近隣サーバから取得したデータはローカルディスクには
    キャッシュしない(proxy-only)
  ・クライアントがアクセスできる squid をランダムに
    選択できれば負荷分散が可能。(DNS ラウンドロビン)

Parent 型

  垂直方向に配置する形式。
  ファイアウォール内部にあるインターネットに直接アクセスきない
  Squid と外部の Squid との連携

  cache_peer squid-ext parent 8080 3130 no-query

  hierarchy_stoplist cgi-bin ?
  URL 中に cgi-bin や ? が含まれると squid が直接データを
  取得しようとする。

  never_direct allow all
  cgi-bin や ? が含まれていても、すべてのリクエストを
  強制的に上位 squid 経由で行なわせる。

  no-query
  IPC リクエストを無効にする。

キャッシュマネージャの導入

  cachemgr.cgi を cgi-bin にコピーして実行権限を与える

  cachemgr_passwd の <action>名
  5min,delay,io,redirector,60min,digest_status, ipcache
  refresh,asndb,dns,mem,server_list,authenticator,events,
  menu,shutdown,cbdata,filedescriptors,netdb,store_digest,
  client_list,fqdncache,non_peers,storedir,comm_incoming,
  histograms,objects,utilization,conifg,http_headers,
  pconn via_headers,counters,info,peer_select,vm_objects

  <action>名に all を設定するとすべて
  <passwd> に disable を設定するとそのアクションは無効
  <passwd> に none を指定するとそのアクションはパスワードなしとなる

  キャッシュマネージャへのアクセス許可
  acl www src 192.168.3.30/32
  http_access allow manager www

Squid のログファイル

  time duration client_address result_code/HTTP_code bytes
  request_method URL rfc931 hierarcy_code/hierarchy_host
  content_type

  hierarchy_code/hierarchy_host
  サーバからのオブジェクト取得方法/要求先ホスト名

  TCP_HIT    有効期限内のキャッシュにヒット
  TCP_MEM_HIT 有効期限内のメモリキャッシュにヒット
  TCP_MIS     キャッシュにヒットしなかった
  TCP_REFRESH_HIT
              データ元サーバへ If-Modified-Since ヘッダ
              つきのHTTPリクエストを実行し 304 Not-Modified
              (データは最新)という返答を受けたためキャッシュで応答

  TCP_REFRESH_MIS
              If-Modified-Since ヘッダつきのリクエストを実行し
              最新データを取得
  TCP_REF_FAIL_HIT
              If-Modified-Since ヘッダ付きのリクエストを失敗し
              古いキャッシュオブジェクトを返した
  TCP_IMS_HIT クライアントの If_Modified-Since つきの
              リクエストに対し、キャッシュが最新だったので
              304 Not-Modified を返した
  TCP_CLIENT_REFRESH_MIS
              クライアントが no-cache 要求を送ってきたため
              データ元のサーバから最新データを取得した
  TCP_NEGATIVE_HIT
              404 not found などのエラーキャッシュにヒット
  TCP_SWAPFAIL_MISS
              キャッシュにヒットしたがアクセスできなかった
  TCP_DENIED  ACL によりアクセスは拒否された

 

  DIRECT      データ元サーバから直接取得
  FIREST_PARENT_MISS
              往復時間が最短の Parent のキャッシュから取得
  FIREST_UP_PARENT
              Parentリストの最初のParentキャッシュから取得
  SIBLING_HIT UDPでヒットしたSibling のキャッシュから取得
  PARENT_HIT  UDPでヒットしたParentのキャッシュに要求
  NO_DIRECT_FAIL
              never_direct などが関係するファイアウォール設定の
              影響でリクエストが要求できなかった
  SOURCE_FASTEST
              source_ping がもっとも早く到達したため、オブジェクト
              をデータ元サーバに要求した
  DEFAULT_PARENT
              IPCリクエストがおくれられず、設定ファイルのデフォルトに
              指定されていたため、このPerentに要求した
  ROUNDROBIN_PARENT
              どの Parent からも IPC による問い合わせを受けず、
              設定でランドロビンが指定されており、最も利用が少なかった
              ため、このParentが選択された

ログ解析ツール
  Calamaris
http://cord.de/tools/squidcalamaris/Welcome.html.en
  cat logfile | calamaris -a > report

  Cache-stats
  ftp://squid.nlanr.net/pub/contrib/cache-stats/

  suidstats.sh
  HOSTS
  TOPN
  LOGDiR
  BINDIR
  WWWDIR
  PIDFILE
  GZIP
  FIND
  RM

  access-summary.pl
  $PortNum = 8080;
  $ImgDir = '/cache-stats/img';

  ./squidstats.sh


 

« OpenSSL で SSL サーバ証明書の作成 | トップページ | SSH プロトコル »

Linux」カテゴリの記事

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/503138/59343992

この記事へのトラックバック一覧です: Squid Proxy サーバの設定とログ解析ツール:

« OpenSSL で SSL サーバ証明書の作成 | トップページ | SSH プロトコル »

記事一覧

スポンサードリンク


Twitter


無料ブログはココログ

ブログ検索