Apache Solr

Apache Solr 統合は、コア指標とキャッシュ指標を収集します。コア指標は、リクエスト、ドキュメント数、インデックスのサイズを表します。キャッシュ指標はキャッシュ使用率を表します。この統合では、Solr ログも収集され、JSON ペイロードが生成されます。結果には、shard、replica、core、level、message のフィールドが含まれます。

Solr の詳細については、solr.apache.org/ をご覧ください。

前提条件

Solr のログと指標を収集して取り込むには、Ops Agent バージョン 2.10.0 以降をインストールする必要があります。

このレシーバは、Apache Solr バージョン 7.7 および 8.x をサポートしています。

Solr インスタンスを構成する

JMX エンドポイントを公開するには、JVM の起動時に com.sun.management.jmxremote.port システム プロパティを設定する必要があります。また、com.sun.management.jmxremote.rmi.port システム プロパティも同じポートに設定することをおすすめします。JMX エンドポイントをリモートで公開するには、java.rmi.server.hostname システム プロパティも設定する必要があります。

デフォルトでは、これらのプロパティは Solr デプロイの solr-env.sh ファイルで設定されています。

コマンドライン引数を使用してシステム プロパティを設定するには、JVM の起動時にプロパティ名の前に -D を付けます。たとえば、com.sun.management.jmxremote.port をポート 18983 に設定するには、JVM の起動時に次のように指定します。

-Dcom.sun.management.jmxremote.port=18983

Solr 用に Ops エージェントを構成する

Ops エージェントの構成のガイドに従って、Solr インスタンスからログと指標を収集するために必要な要素を追加して、エージェントを再起動します。

構成の例

次のコマンドは、Solr のログと指標を収集して取り込み、Linux で Ops エージェントを再起動するための構成ファイルを作成します。

sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
  receivers:
    solr_system:
      type: solr_system
  service:
    pipelines:
      solr:
        receivers:
          - solr_system
metrics:
  receivers:
    solr:
      type: solr
  service:
    pipelines:
      solr:
        receivers:
          - solr
EOF
sudo service google-cloud-ops-agent restart

ログの収集を構成する

Solr からログを取り込むには、Solr が生成するログのレシーバを作成し、新しいレシーバのパイプラインを作成する必要があります。solr_system ログのレシーバを構成するには、次のフィールドを指定します。

フィールド デフォルト 説明
type 値は solr_system を指定してください。
include_paths [/var/solr/logs/solr.log] 読み込むログファイル。
exclude_paths 除外するログファイル(include_paths に glob またはディレクトリが含まれている場合)。
wildcard_refresh_interval 60s include_paths のワイルドカード ファイルのパスの更新間隔。時間を指定します(例: 30s2m)。このプロパティは、ログファイルのローテーションがデフォルトの間隔よりも速く、ロギングのスループットが高い場合に有用です。

ログの内容

solr_system ログの logName は、構成で指定されたレシーバ ID から取得されます。LogEntry 内の詳細なフィールドは、次のとおりです。

フィールド タイプ 説明
timestamp 文字列(Timestamp リクエストを受信した時刻。
jsonPayload.collection 文字列 ログに関連する Solr のコレクション。
jsonPayload.shard 文字列 ログに関連する Solr シャード。
jsonPayload.replica 文字列 ログに関連する Solr レプリカ。
jsonPayload.core 文字列 ログに関連する Solr コア。
jsonPayload.source 文字列 ログの取得元。
jsonPayload.thread 文字列 ログの作成元であるスレッド。
jsonPayload.message 文字列 ログ メッセージ。
jsonPayload.exception 文字列 ログに関連する例外(提供されている場合は詳細なスタック トレースを含む)。
severity 文字列(LogSeverity ログエントリ レベル(変換済み)。

指標の収集を構成する

Solr から指標を収集するには、Solr 指標を表示するレシーバを作成し、新しいレシーバ用のパイプラインを作成する必要があります。Solr 指標のレシーバを構成するには、次のフィールドを指定します。

フィールド デフォルト 説明
type 値は solr を指定してください。
endpoint localhost:18983 Service URL の作成に使用される JMX Service URL またはホストとポート。host:port の形式にする必要があります。host:port フォームの値は、service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi の Service URL を作成するために使用されます。
username JMX が認証を要求するように構成されている場合、構成されたユーザー名。
password JMX が認証を要求するように構成されている場合、構成されたパスワード。
collection_interval 60s time.Duration 値(例: 30s5m)。

モニタリング対象

次の表に、Ops エージェントが Solr インスタンスから収集する指標の一覧を示します。

指標タイプ
種類、タイプ
モニタリング対象リソース
ラベル
workload.googleapis.com/solr.cache.eviction.count
CUMULATIVEINT64
gce_instance
cache
core
workload.googleapis.com/solr.cache.hit.count
CUMULATIVEINT64
gce_instance
cache
core
workload.googleapis.com/solr.cache.insert.count
CUMULATIVEINT64
gce_instance
cache
core
workload.googleapis.com/solr.cache.lookup.count
CUMULATIVEINT64
gce_instance
cache
core
workload.googleapis.com/solr.cache.size
GAUGEINT64
gce_instance
cache
core
workload.googleapis.com/solr.document.count
GAUGEINT64
gce_instance
core
workload.googleapis.com/solr.index.size
GAUGEINT64
gce_instance
core
workload.googleapis.com/solr.request.count
CUMULATIVEINT64
gce_instance
handler
core
type
workload.googleapis.com/solr.request.error.count
CUMULATIVEINT64
gce_instance
handler
core
type
workload.googleapis.com/solr.request.time.average
GAUGEDOUBLE
gce_instance
handler
core
type
workload.googleapis.com/solr.request.timeout.count
CUMULATIVEINT64
gce_instance
handler
core
type

構成を確認する

ログ エクスプローラと Metrics Explorer を使用して、Solr レシーバが正しく構成されていることを確認できます。Ops エージェントがログと指標の収集を開始するまでに 1~2 分かかる場合があります。

ログが取り込まれていることを確認するには、ログ エクスプローラに移動し、次のクエリを実行して Solr のログを表示します。

resource.type="gce_instance"
logName=("projects/PROJECT_ID/logs/solr_system")


指標が取り込まれていることを確認するには、Metrics Explorer に移動し、[MQL] タブで次のクエリを実行します。

fetch gce_instance
| metric 'workload.googleapis.com/solr.request.count'
| align rate(1m)
| every 1m

次のステップ

Ansible を使用して Ops エージェントをインストールし、サードパーティ アプリケーションを構成してサンプル ダッシュボードをインストールする方法については、Ops エージェントをインストールして、サードパーティ アプリケーションのトラブルシューティングを行うの動画をご覧ください。