Varnish は、Webアプリケーションアクセラレータです。これは、HTTPキャッシュのように機能するリバースプロキシです。それはコンテンツのキャッシュを介してサービスをスピードアップすることができるので、高いトラフィック量を持つWebアプリケーションやサービスにおいて非常に便利なアプリです。 HTTPキャッシュで使用される代表的なアプリケーションアーキテクチャは、下図のようなものです。

esquema_varnish-01-01

すべてのHTTPトラフィックは、Varnish サーバーを経由します。バックエンドサーバに情報を要求する前に、その情報を取得するために Varnish Cache を使用します。

キャッシュサーバがすべての要求を処理するように、Varnish Cache が動作していることは重要なポイントになります。それは Varnish Cache が完全に期待通りに動作していることを監視することが不可欠である理由です。期待した動作をしていないと、全体のアプリを遅くするボトルネックになる可能性があります。Varnish の適切な性能を見るための方法としては、このサーバーの主なパフォーマンス変数を監視することです。

Varnish Cache パフォーマンスパラメータ

インストールが完了したら、サーバの状態を評価するための Varnish Cache のいくつかのアプリが利用できます。これらのアプリは下記のものです。

  • varnishtop: 異なるログから最も一般的なエントリをグループ化したリスト。
  • varnishhist: 要求の処理に要した時間を示したヒストグラム。
  • varnishsizes: “varnishhist”と同じですが、オブジェクトのサイズを示します。
  • varnishstat: キャッシュヒット、リソース消費などの多くの内容を示します。
  • varnishlog: Webのバックエンドサーバに対して行われたすべての要求を見ることができます。

これらのコマンドまたは、その他詳細情報が必要な場合は、Varnish Cache のドキュメントを確認してください! (https://www.varnish-cache.org/docs/3.0/index.html).

vanishstat は、パフォーマンスを確認するために有用なコマンドです。その他のコマンドは、要求とログに関する詳細情報を提供します。これらは、キャッシュサーバの設定おおよびデバッグ(パフォーマンスチューニング)を行う際にとても便利です。

 

“varnishstat -1” コマンドを Varnish キャッシュと同じサーバで実行すると、メトリックのログリストを取得できます。

blackscreen

パフォーマンスレベルをチェックする基本メトリックは次の通りです。

  • client_conn : 受け入れクライアント接続
  • client_req : 受信したクライアント要求
  • backend_fail : バックエンドとの接続の失敗
  • cache_miss : キャッシュミス
  • n_object : インスタンス化されたオブジェクトの数
  • n_wrk : ワーカースレッドの数
  • n_wrk_create : 作成したワーカースレッドの数
  • n_wrk_failed : ワーカースレッドの作成に失敗した数
  • n_wrk_max : ワーカースレッドの最大数
  • n_wrk_drop : 放棄されたリクエストの数
  • n_lru_nuked : LRUオブジェクト数
  • esi_errors : ESIの解析エラー
  • n_expired: 期限切れオブジェクトの数

このコマンドを使用すると、パフォーマンス統計のスナップショットを取得することができます。単一のスナップショットは、トレンドをチェックするのには十分ではありません。トレンドのチェックのためには、例えば、時間による推移を比較するために、前週や前月からのデータといった過去のデータが必要です。

この情報を取得するには、一定期間の最も重要な変数を監視する必要があります。Varnish 設定で行った変更によりパフォーマンスが向上している場合、この情報を確認すると、簡単に変化を見ることができます。Pandora FMS で Varnish Cache を監視するためのプラグイン(ライブラリに登録されています)を利用します。Pandora は、パフォーマンスの問題が発生した場合にそれを通知し、メトリックの変化レポートを送信するように設定することができます。この機能により、自社のサーバーで問題が発生していることを確認できます。

Pandora FMS で Varnish を監視する方法

最初に行うことは、Pandora FMS をダウンロードしてインストールすることです。  http://pandorafms.com/Community/download/jp より、VMware 向けのインストール済の仮想マシンイメージおよび、OSイメージを見つけることができます。

Pandora FMS をインストールしたら、Varnish Cache サーバが稼働しているマシンに Pandora FMS エージェントをインストールする必要があります。エージェントは、  http://sourceforge.net/projects/pandora/files/Pandora%20FMS%204.0.3/ からダウンロードします。

すべてのコンポーネントをインストールする方法の詳細については、Pandora FMS 公式ドキュメントを確認してください。: http://www.openideas.info/wiki/index.php?title=Pandora:Documentation_ja

さて、次は Varnish pluging をインストールする段階です。 プラグインを   http://pandorafms.com/index.php? sec=Library&sec2=repository&lng=en&action=view_PUI&id_PUI=537 よりダウンロードします。

3

プラグインをインストールするために、unzip で展開します。そして、”varnish-plugin.pl” と “varnish-plugin.conf” を Varnish サーバにインストールしたエージェントの plugin フォルダにコピーします。次のように実行します。

# unzip varnish-plugin.zip

# cp varnish-plugin.* /etc/pandora/plugins

プラグインを正しくインストールしたら、それを設定します。それには、設定ファイルを編集する必要があります。デフォルトのファイルは “varnish-plugin.conf” で、次のような構造になっています。

METRIC

hit_ratio
connect_accept_ratio
backend_success_ratio
work_thread_ratio

STATS

client_conn
client_req
backend_fail
cache_miss
n_object
n_wrk
n_wrk_create
n_wrk_failed
n_wrk_max
n_wrk_drop
n_lru_nuked
esi_errors
n_expired

このファイルでは、統計と比率の 2つのメトリックを設定することができます。統計は、STATS トークンによって定義します。このカテゴリには、”varnishstats -1″ コマンドを実行して表示される任意の値を設定することができます。パラメータとしては、コマンドの出力の最初のカラムに表示される名前を選択します。比率は、METRIC トークンよって定義します。比率はパーセンテージで正規化された情報を出力するので、Varnish の性能値を把握するのに役立ちます。利用できる比率は以下の通りです。

  • hit_ratio: キャッシュヒット率。
  • connect_accept_ratio: 受け付けた接続数/受信した要求の比率。
  • backend_success_ratio: 成功したバックエンドサーバ接続率。
  • work_thread_ratio: ワーキングスレッド/作成されたスレッドの比率。

自社のシステムに合うように、監視するいくつかの変数やメトリックを追加または削除したい場合は、設定ファイルを変更します。

Pandora FMS のプラグインを定期的に実行するエージェントの場合、プラグインの設定ファイルに新規モジュールを追加する必要があります。まずは、エージェントの設定ファイル (デフォルトでは /etc/pandora/pandora_agent.conf) を編集して、次の設定を加えます。

module_plugin /etc/pandora/plugins/varnish-plugin.pl /etc/pandora/plugins/varnish-plugin.conf

エージェントが Pandora サーバーにデータを送信すると、モジュールとその値が表示されます。

 

この例では、同様に Varnish proxy (backend_fail、backend_success_ratio、cache_missなど) に関連する変数を監視します。マシンのパフォーマンスに関連するいくつかの値 (ユーザーCPU、ロードアベレージ、メモリ使用量とプロセス数) を追加したいとします。この設定では、パフォーマンスの概要とキャッシュサーバが消費するリソースを取得します。

4

この設定を終えると、Pandora FMS が、パフォーマンスを評価するためのレポート生成の元となるデータを収集していることを確認できます。

また、Pandora FMS のアラート機能を使用したい場合、いくつかの追加のモジュール設定をする必要があります。次のステップは、モジュールの状態を定義する値を設定することです。比率を表すモジュールに対しては、0~100の間の値を使用します。モジュールデータは、評価するために十分な情報で、最初のインスタンスは Varnish のパフォーマンスです。しきい値の設定は次のようになります:

モジュール

警告の最小値

警告の最大値

障害の最小値

障害の最大値

backend_success_ratio

51

70

0

50

connect_accept_ratio

0

5

20

100

hit_ratio

51

70

0

50

work_thread_ratio

51

70

0

50

Mem Usage

80

90

91

100

CPU User

85

90

91

100

 この設定で、例えばキャッシュヒット数が0%と50%の間のとき、hit_ratioモジュールが自動的に障害状態になります。キャッシュヒットの数が51%と70%の間のときは、警告状態になります。加えて、CPUとメモリ使用量のモジュールにもしきい値を定義しています。これで、モジュールが状況を示すようになり、何らかの問題が発生した場合の Pandora のアラートを定義できます。

また、障害の重要度に応じた異なる通知方法を定義しています。重要な障害ではないときには、Pandora はシステム管理者のリストにメールを送信します。しかし、非常に重要な場合は、ウェブサイトのITアーキテクチャのリーダーやマネージャに SMS を送信します。

これで、Varnish キャッシュサーバの監視設定ができました。問題が発生したら通知され、解決策を見つけるために迅速に反応することができます。これができたとしても、プロアクティブな監視のために、トレンドを見て設定は修正していく必要があります。

Pandora ではまた、情報をグループ化して簡単にトレンド表示するためのレポートを作成することができます。この例では、システムと Varnish のパフォーマンスパラメータに関するレポートを作成しています。

5

jk

 

また、Pandora FMS では、レポートを送信設定することもできます。レポートのメール受信頻度を、毎週、毎月、二週間ごとなどで設定できます。Pandora FMS コンソールを見なくても、メールで自動的に Varnish のトレンドを把握できます。

po            

まとめ

この設定で、Varnish Cache サーバーの障害が通知されます。アラート機能のおかげで、Webアプリケーションキャッシュで発生する可能性のある問題が通知されます。さらに、レポートにより傾向を見て、将来の障害を防止するために、サーバー上の予防保守を行うことができます。Varnish は、すべてのWebトラフィックが通るポイントであるため、この方法で監視することにより、あなたのシステムが遅くなるボトルネックを解消できるようになります。

Shares