• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

Varnish Cacheのモニタリング統合

Varnish Cache on-host integration は、Varnish Cache 環境のインベントリとメトリクスを収集し、New Relic に送信することで、その健全性を監視することができます。メトリクスは、インスタンス、ロック、メモリプール、ストレージ、バックエンドの各レベルで収集します。

インテグレーションのインストールと、当社がどのようなデータを収集するかについてお読みください。

互換性および要件

Varnish Cache 1.0以上に対応しています。

インテグレーションをインストールする前に、以下の要件を満たしていることを確認してください。

クイックスタート

ガイド付きインストールで、Varnish Cache 環境をすばやくインスツルメンテーションし、テレメトリーデータを送信します。ガイド付きインストールでは、お客様の環境に合わせてカスタマイズされたCLIコマンドを作成し、New Relic CLIとインフラストラクチャ・エージェントをダウンロードしてインストールします。

始める準備はできていますか?ボタンの1つをクリックし、試行してください。

ガイド付きインストール

ガイド付きインストールでは、インフラストラクチャ・エージェントを使用して、Varnish Cacheの統合を設定します。それだけでなく、あなたの環境で稼働している他のアプリケーションやログソースを発見し、どのアプリケーションを導入すべきかを推奨してくれます。

このガイド付きインストールは、ほとんどのセットアップに対応しています。Varnish Cache環境の監視を開始するには、以下の方法がありますので、ご利用ください。

インストールと有効化

Varnish Cacheインテグレーションをインストールするには、以下の手順に従います。

追加の注:

インテグレーションの設定

インテグレーションのYAML形式設定では、必要なログインクレデンシャルやデータの収集方法を設定できます。どのオプションを変更するかは、設定とプリファレンスにより異なります。

設定ファイルには、 interval, timeout, inventory_source など、すべての統合に適用される共通の設定があります。これらの共通設定については、 Configuration Format のドキュメントを参照してください。

重要

従来の設定/定義ファイルを使用している場合は、こちらの ドキュメント を参照してください。

Varnishに関連する特定の設定は、設定ファイルの env セクションを使用して定義されます。これらの設定は、Varnishインスタンスへの接続や、その他のセキュリティ設定や機能を制御します。有効な設定のリストは次のセクションで説明します。

Varnish Cacheインスタンスの設定

Varnish Cacheの統合では、メトリクス( M )とインベントリ( I )の両方の情報を収集します。以下の Applies To カラムをチェックして、それぞれの収集に使用できる設定を確認してください。

' '

設定

説明

デフォルト

適用先

INSTANCE_NAME

New Relic でこのインスタンスのデータを識別するためのユーザー定義名。 必須.

該当なし

M/I

params_config_file

varnish.params 設定ファイルの場所です。この引数が省略された場合、以下の場所がチェックされます。

  • /etc/default/varnish/varnish.params

  • /etc/sysconfig/varnish/varnish.params

    注意:Varnishの設定ファイルの場所や名前が異なる場合があります。詳細については、 Different locations of the Varnish configuration file を参照してください。Varnishのバージョンが6以下の場合、このパラメータは必要ありませんので、統合はメトリクス収集のみに設定してください。 Varnish 6の例を参照してください.

該当なし

I

VARNISH_NAME

varnishd デーモンをカスタム -n フラグで実行するときに使用する名前 オプション.

該当なし

M

メトリクス

trueに設定すると、メトリクスのみの収集が有効になります。

false

インベントリ

trueに設定すると、インベントリのみの収集が有効になります。

false

varnish-config.yml コマンドは、以下の引数を受け付けます。

これらの設定値は、いくつかの方法で定義できます。

  • コンフィグファイルに直接値を追加する。これが最も一般的な方法です。
  • {{}} 表記を使用して環境変数から値を置き換えます。これには、インフラストラクチャエージェントv1.14.0+が必要です。詳しくはこちら .
  • シークレット管理の使用。これを使用して、設定ファイルのプレーンテキストで公開されないようにパスワードなどの重要な情報を保護してください。詳細については、シークレット管理を参照してください。

ラベル/カスタム属性

環境変数は、ライセンスキーなどのコンフィグ設定を制御するために使用することができ、その後、Infrastructureエージェントに引き継がれます。この機能の使用方法については、 インフラストラクチャエージェントの設定 を参照してください。メトリクスは、ラベルを使ってさらに装飾することができます。
デフォルトのサンプル・コンフィグ・ファイルにはラベルの例が含まれていますが、必須ではありませんので、お好みで削除、変更、または新しいものを追加することができます。

labels:
env: production
role: varnish

構成例

varnish-config.yml ファイルの設定。

オンホストインテグレーション設定の一般的な構成の詳細については、設定を参照してください。

データの検索と使用

インフラストラクチャーに統合データを見つけるには、 one.newrelic.com > インフラストラクチャー> サードパーティサービス にアクセスし、Varnish Cache統合リンクの1つを選択します。

New Relic では、Varnish Cache のデータは以下のイベントタイプに添付されます。

  • ヴァーニッシュ・サンプル
  • VarnishLockSample
  • VarnishStorageSample
  • VarnishMempoolSample
  • VarnishBackendSample

データの検索・使用方法の詳細については、 インテグレーションデータを理解するを参照してください。

メトリックデータ

Varnish Cacheインテグレーションでは、以下のメトリックデータ属性を収集します。各メトリック名の前には、 bans.main. のように、カテゴリー・インジケータとピリオドが付いています。

ヒント

いくつかのメトリクスは、メトリクス名から想像されるように、合計ではなくレート(1秒あたり)として計算されます。どのメトリクスがレートとして計算されるかの詳細については、 spec.csvファイルを参照してください。.

Varnishのサンプルメトリクス

これらの属性は、VarnishSampleのイベントタイプを照会することで見つけることができます。

メトリック

説明

backend.connectionBusy

最大接続数に達した回数。

backend.connectionFails

バックドへの接続に失敗した数。

backend.connectionRecycles

リサイクルされたバックエンドコネクションの数。

backend.connectionRetries

再試行されたバックエンド接続の数。

backend.connectionReuses

バックエンド接続の再利用数

backend.connectionSuccess

バックエンドとの接続に成功した数。

backend.connectionUnHealthy

バックエンドの状態が「不健全」であったために試行されなかったバックエンド接続の数。

backend.fetches

開始されたバックエンドのフェッチの合計数。

バックエンド・リクエスト

バックエンドへの接続リクエストの総数。

bans.追加

BANリストに追加されたBANのカウンター

bans.completed

完了」と表示された禁止事項の数

bans.cutoffLurkerKilled

カットオフ(ルーラー)の禁止によって殺されたオブジェクトの数。

bans.dead

BANリストから削除されたBANのカウンター

bans.dups

後の同一バンに置き換えられたバンの数。

bans.fragmentationInBytes

永続化された禁止リストが断片化されているため、余分なバイトが発生する。

bans.lookupKilled

オブジェクトの検索中に禁止令によって殺されたオブジェクトの数。

bans.lookupTestsTested

ルックアップ時にテストとオブジェクトが相互にテストされた数をカウントします。

BAN.LURKERCON

バンラーカーがルックアップを待たされた回数。

bans.lurkerKilled

バンラーカーに殺されたオブジェクトの数。

bans.lurkerTested

BAN-LURKERがどれだけBANとオブジェクトをテストしたかのカウント。

bans.lurkerTestsTested

BAN-LURKERが実施したテストやオブジェクトの数をカウントします。

bans.obj

obj.* 変数を使った禁止事項の数。これらの禁止事項は、禁止者が洗える可能性があります。

bans.persistedInBytes

永続化された禁止リストが使用するバイト数。

bans.req

req.* 変数を使用している禁止事項の数です。これらの禁止事項は、禁止者が洗うことはできません。

bans.test

ハッシュ検索の際に、いくつの禁止事項とオブジェクトが互いにテストされたかのカウント。

cache.graceHits

猶予付きキャッシュヒットの数。grace付きキャッシュヒットとは、オブジェクトの有効期限が切れたキャッシュヒットのことです。これらのヒットは、 cache_hit カウンターにも含まれます。

キャッシュ・ヒット数

バックエンドサーバーからオブジェクトを取得せずに、クライアントに配信した回数。

キャッシュ・ミス

クライアントに配信する前に、バックエンドからオブジェクトをフェッチした回数。

cache.missHits

ミス・レスポンスに対してヒット・オブジェクトが返された回数。

キャッシュ・パスヒット

パス・レスポンスでヒット・オブジェクトが返された回数。

esi.エラーズ

ESI(Edge Side Includes)の解析エラー(ロック解除)。

esi.wannings

Edge Side Includes(ESI)のパース警告(ロック解除)を行います。

fetch.bad

beresp.body length/fetch が決定できませんでした。

フェッチ.チャンク

beresp.body chunked.

fetch.contentLength

beresp.body のcontent-lengthである。

fetch.eof

beresp.body with EOF.

fetch.failed

beresp は失敗しました。

fetch.head

beresp は、リクエストがHEADなのでボディがありません。

fetch.noBody

体のない beresp

fetch.noBody1xx

beresp は、1XX応答のため、ボディがありません。

fetch.noBody204

beresp は 204 レスポンスのためボディがありません。

fetch.noBody304

beresp は、304 レスポンスのためボディがありません。

fetch.noThreadFail

beresp fetch failed, no thread available.

hcb.inserts

クリティカル・ビット・ツリー・ベースド・ハッシュ(HCB)の挿入数。

hcb.lock

ロック付きHCBルックアップの数

hcb.noLock

ロックのないHCBルックアップの数

lru.limited

より多くのストレージスペースが必要だったが、制限に達した回数。

lru.movie

LRUリストで行われた移動操作の数。

lru.nuked

新しいオブジェクトのためのスペースを確保するために、ストレージから強制的に退避させられたLRU(Lest Recently Used)オブジェクトの数。

main.backends

バックエンドの数

main.bans

禁止事項の数

main.busyKilled

ビジー状態のobjhdrでスリープ後にキルされたリクエストの数。

main.busySleep

忙しいobjhdrのスリープに送られたリクエストの数。

main.busyWakeup

ビジー状態のobjhdrでスリープ後に起こされたリクエストの数。

main.expired

期限切れのオブジェクトの数。

main.expiredMailed

期限切れのスレッドにメールされたオブジェクトの数。

main.expiredReceived

expiryスレッドが受信したオブジェクトの数。

メイン.ガンジップ

gunzipの操作回数。

メイン.ガンジップテスト

テスト用 gunzip 操作の回数。

メイン.gzip

gzip操作の回数。

main.objectcores

作られたobjectcore構造体の数。

main.objectheads

オブジェクト化された構造体の作成数

main.objects

作られたオブジェクト構造体の数

main.passedRequests

見られたパス・レッド・リクエストの総数

main.pipeSessions

見られたパイプセッションの総数

main.pools

スレッドプールの数。

main.purgeObjects

パージされたオブジェクトの数。

main.purgeOperations

実行されたパージ操作の数。

main.reqDropped

ドロップしたリクエストの数

main.sessions

見たセッションの総数

main.sessQueueLength

スレッドを待つセッションキューの長さ。

main.summs

スレッドごとの統計値がグローバルカウンタに合計された回数。

メイン.合成レスポンズ

行われたシンセティックな回答の合計。

メイン.スレッド

スレッドの総数です。

main.threadsCreated

すべてのプールで作成されたスレッドの合計数。

main.threadsDestroyed

全プールで破壊されたスレッドの合計数。

main.threadsFailed

スレッドの作成に失敗した回数。

main.threadsLimited

より多くのスレッドが必要だったが、スレッドプールの制限に達した回数。

main.unresurrectedObjects

復活していないオブジェクトの数

main.uptimeInMilliseconds

子プロセスの稼働時間をミリ秒単位で表します。

main.vclAvailable

利用可能なVarnish Configuration Languages (VCL)の数。

main.vclDiscarded

廃棄されたVCLの数。

main.vclFails

VCLの故障数。

main.vclLoaded

ロードされたVCLの合計数

main.vmodsLoaded

ロードされたVarnishモジュールの数(VMOD)。

mgt.childDied

子プロセスがシグナルにより死亡した回数。

mgt.childDump

子プロセスがコア・ダンプを生成した回数。

mgt.childExit

子プロセスがクリーンに停止した回数。

mgt.childPanic

管理プロセスが子供のパニックを捉えた回数。

mgt.childStart

子プロセスが開始された回数。

mgt.childStop

子プロセスがクリーンに停止した回数。

mgt.uptimeInMilliseconds

管理プロセスの稼働時間(単位:ミリ秒)。

net.400エラー

受信したクライアントのリクエスト数(400エラーを含む)。

net.417エラー

受信したクライアント・リクエストの数(417件のエラーを含む

net.httpOverflow

HTTPヘッダーのオーバーフローの数。

net.pipe.inInBytes

パイプセッションでクライアントから転送された総バイト数。

net.pipe.outInBytes

パイプセッションでクライアントに転送された総バイト数。

net.pipereq.headerInBytes

パイピングされたセッションで受信したリクエストの総バイト数

net.request.bodyInBytes

送信されたリクエスト・ボディの総量(単位:バイト)。

net.request.headerInBytes

送信されたリクエストヘッダーの合計(バイト)。

net.requests

受信したグッド・クライアント・リクエストの数

net.response.bodyInBytes

送信されたレスポンスボディの合計(単位:バイト)。

net.response.headerInBytes

送信されたレスポンスヘッダーの合計(バイト)。

sess.backendClose

エラーでセッションを閉じた数 RESP_CLOSE, (Backend/VCL requested close).

sess.badClose

エラーでセッションが終了した数 エラー RX_BAD 、(Received bad req/resp.)

sess.bodyFailClose

エラーでセッションが終了した数 エラー RX_BODY, (Failure receiving req.body).

sess.clientClose

エラーでセッションを閉じた数 REM_CLOSE, (Client closed)。

sess.clientReqClose

エラー REQ_CLOSE 、(クライアントがクローズを要求した)セッションクローズの数。

sess.closed

閉鎖されたセッションの総数

sess.closedError

エラーで終了したセッションの合計数

sess.dropped

スレッドでドロップされたセッションの数

sess.eofTxnClose

エラーでセッションが終了した数 TX_EOF 、(EOF送信)。

sess.errorTxnClose

エラーでセッションを閉じた数 TX_ERROR, (Error transaction).

sess.herd

timeout_linger がトリガーした回数。

sess.junkClose

エラーでセッションが終了した数 RX_JUNK, (Received junk data)。

sess.overflowClose

エラーでセッションが終了した数 RX_OVERFLOW, (Received buffer overflow)。

sess.overloadClose

エラー OVERLOAD 、(Out of some resource)でセッションが終了した数。

sess.pipeOverflowClose

エラーが発生したセッションクローズの数 PIPE_OVERFLOW, (Session pipe overflow)。

sess.pipeTxnClose

エラー TX_PIPE, (Piped transaction) を伴うセッションクローズの数。

sess.queue

スレッドにキューイングされているセッションの数。

sess.readAhead

Session Read Ahead。

sess.requestHTTP10Close

エラーでセッションが閉じられた数 REQ_HTTP10, (Proto< HTTP/1.1)。

sess.requestHTTP20Close

エラーでセッションが終了した数 REQ_HTTP20, (HTTP2 not accepted)。

sess.shortRangeClose

エラー RANGE_SHORT 、(Insufficient data for range)でセッションが終了した数。

sess.timeoutClose

Number of session closes with error RX_TIMEOUT, (Receive timeout)と表示される。

sess.vclFailClose

エラー VCL_FAILURE 、(VCLの失敗)でセッションが閉じられた数。

セッション・コネクション

受け付けに成功したセッションの数

セッション・ドロップス

ワーカースレッドが不足しているために静かにドロップしたセッションの数。

session.fail

TCP接続の受け入れに失敗した回数。

shm.contentions

共有メモリ(SHM)のMTXのコンテンションの数。

shm.series

バッファを通過したSHMサイクルの数

shm.flushs

オーバーフローによるSHMフラッシュの回数。

shm.records

SHMレコードの数

shm.writes

SHMの書込み回数

ワークスペース.バックエンドオーバーフロー

workspace_backend のスペースが足りなくなった回数。

ワークスペース.クライアントオーバーフロー

workspace_client のスペースが足りなくなった回数。

workspace.deliveryFail

ワークスペースが不足しているため、配信に失敗しました。

workspace.sessionOverflow

workspace_session のスペースが足りなくなった回数。

ワークスペース.スレッドオーバーフロー

workspace_thread のスペースが足りなくなった回数。

Varnishロックのサンプルメトリクス

これらの属性は、 VarnishLockSample のイベントタイプを照会することで見つけることができます。

メトリック

説明

Lock.Created

作成されたロックの数。

ロック・破壊

破壊されたロックの数

lock.locks

ロック操作の回数。

Varnishストレージのサンプルメトリクス

これらの属性は、 VarnishStorageSample イベントタイプを照会することで見つけることができます。

メトリック

説明

storage.allocFails

ストレージがストレージセグメントの提供に失敗した回数。

storage.allocInBytes

このストレージで割り当てられた総バイト数。

storage.allocOustanding

ストレージ割り当ての未処理数。

storage.allocReqs

ストレージが、ストレージセグメントの提供を求められた回数。

storage.availableInBytes

ストレージに残っているバイト数。

ストレージ.freeInBytes

このストレージに戻ってきた総バイト数

storage.extractedInBytes

ストレージから割り当てられたバイト数。

Varnish mempool サンプルメトリクス

これらの属性は、 VarnishMempoolSample イベントタイプを照会することで見つけることができます。

メトリック

説明

mempool.alcalledSizeInBytes

メモリプールの割り当てサイズ(単位:バイト)。

mempool.allocs

メモリプールの割り当てを行います。

mempool.frees

メモリプールの空き数。

mempool.live

使用中のメモリプールの数。

mempool.pool

メモリプールのカウント

mempool.ranDry

プールが干上がった。

mempool.recycles

プールからの再利用

mempool.requestSizeInBytes

メモリプールの要求サイズ(単位:バイト)。

mempool.splus

プールには多すぎます。

mempool.timeouts

プールからタイムアウト。

メモリプールが小さすぎる

リサイクルするには小さすぎる。

Varnishバックエンドのサンプルメトリクス

これらの属性は、 VarnishBackendSample のイベントタイプを照会することで確認できます。

メトリック

説明

backend.busyFetches

バックエンドがビジー状態のため、取り込みができませんでした。

バックエンド・コネクションズ

バックエンドへの同時接続数。

backend.connectionsFailed

失敗したバックエンド接続の数

backend.cohnsionsNotAttempted

試されなかったバックエンド接続オープンの数。

backend.happy

幸せな健康診断

backend.unhealtyFetches

バックエンドが健全でないため、取り込みが行われない

net.backend.pipeHeaderInBytes

パイピングされたセッションで送信された総リクエストバイト数です。

net.backend.pipeInInBytes

パイプセッションでバックエンドから転送された総バイト数。

net.backend.pipeOutInBytes

パイプセッションでバックエンドに転送された総バイト数。

net.backend.requestBodyInBytes

送信されたバックエンドのリクエストボディの総バイト数。

net.backend.requestHeaderInBytes

送信されたバックエンドリクエストヘッダの総バイト数。

net.backend.requests

送信されたバックエンドリクエストの数。

net.backend.responseBodyInBytes

受信したバックエンドのレスポンスボディの総バイト数。

net.backend.responseHeaderInBytes

受信したバックエンドのレスポンスヘッダの総バイト数。

インベントリデータ

Varnish Cacheの統合では、設定パラメータを取得します。 varnish.params 設定ファイルを解析して、有効なパラメータをすべて取得します。

このデータは、 インベントリページconfig/varnish ソースの下で利用できます。インベントリデータの詳細については、 Understand integration data を参照してください。

ソースコードのチェック

このインテグレーションは、オープンソース・ソフトウェアです。つまり、 そのソースコードを閲覧して 改良を送ったり、独自のフォークを作成して構築することができます。

Copyright © 2022 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.