• ログイン今すぐ開始

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

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

問題を作成する

オンホストの統合標準的な設定フォーマット

2019年12月、 Infrastructure agent version 1.8.0 は、(2つの別々のファイルではなく)1つの設定ファイルを利用し、その他の改善を行うこの新しい設定形式のサポートを開始しました。このドキュメントでは、この新しいフォーマットの動作について説明します。

古い レガシー設定フォーマット も、現在のInfrastructureエージェントでサポートされています。

設定の概要については、 Config overview をご覧ください。

構成構造

ホスト上の統合の設定YAMLには、 integrations トップレベルのセクションがあり、各エントリが統合とその設定を表すYAML配列を含んでいなければなりません。

各統合エントリでは、 name プロパティのみが必須です。その他のプロパティはオプションです。

ここでは、2つの統合をフィーチャーした構成例をご紹介します。ビルトインの Docker統合 は設定が不要で、 MySQL統合 です。

integrations:
  # New Relic integration that does not require any configuration
  - name: nri-docker
  # New Relic integration that gets its configuration from the environment
  - name: nri-mysql
    env:
      PORT: 3306
      USERNAME: newrelic
      PASSWORD: 123456789 # to hide this field, read the secrets management documentation
  # Any free-form integration executed via a user-provided command
  - name: my-own-integration
    exec: python /opt/integrations/my-script.py --host=127.0.0.1

設定用のYAMLファイルは必要なだけ用意でき、統合インスタンスをグループ化することができます。

ヒント

フォーマットの問題を避けるために、使用前にYAML設定ファイルを linting することをお勧めします。

各設定用YAMLファイルには、 discovery and variables トップレベルのセクションも含めることができます。

重要

この設定形式では、エージェントの再起動は必要ありません。保存すると、変更はすぐに検出され、実行されます。つまり、途中の設定変更を保存すると、統合機能が停止する可能性があります。

設定プロパティの一覧

これは、統合を構成するために使用される一般的なプロパティのリストです。これらのプロパティの使用方法や値の例などの詳細については、表の後にあるドキュメントを参照してください。

コンフィグ

説明

name

統合の名前。これは、すべてのホスト上の統合に共通する唯一の必須設定プロパティです。 exec フィールドが設定されていない場合は、統合の実行ファイルの名前にもなります。

cli_args

名前 が統合実行ファイルを提供するために使用される場合のコマンドライン引数のオプションリスト エージェントバージョン以降で利用可能 1.13.0.

エグゼクティヴ

統合実行ファイルのフルパスと引数です。単一行の文字列または文字列の配列になります。指定しない場合、 exec フィールドのデフォルトは、 name フィールドになります。

envelope

インテグレーションに渡す環境変数を含むYAMLマップ。 キー は環境変数名、 は変数値です。

コンフィグ

外部ファイルとして書き込まれるコンフィグレーションと、 CONFIG_PATH 環境変数または ${config.path} でインテグレーションに渡されるパス。 変数のプレースホルダーです。

config_template_path

CONFIG_PATH 環境変数または ${config.path} でパスが統合に渡される任意の外部ファイル。 変数のプレースホルダーです。その使い方によって、ディスカバリーとシークレット・バインディングを任意の外部設定に適用することができます。

integration_user

統合を実行するユーザーの名前。

インターバル

統合を連続して実行する間の時間。数字の後に時間単位(s, m or h )を、スペースを入れずに入力する必要があります。

インベントリソース

インベントリソースのカテゴリーとタームをオーバーライドできます。

labels

統合によって報告されたデータ(メトリクス、イベント、インベントリ)を装飾するラベルを持つマップ。

タイムアウト

数字の後に時間単位(ms, s, m or h )を指定します。この時間内に反応しなかった統合は殺され、再起動されます。

作業用ディレクトリ

統合バイナリの作業ディレクトリ。

ときに

統合は、その節の評価が真である場合にのみ実行されます。

条件は 以下に定義されています

このドキュメントの残りの部分では、機能ごとにグループ化されたconfigプロパティについて説明します。

実行するインテグレーションの選択

どの統合が実行されるかを選択するために、 nameexec という2つのプロパティがあります。

すべてのホスト上の統合において唯一必須のプロパティは、 name です。このドキュメントで指定されている残りのプロパティはオプションです。

例:

integrations:
- name: nri-docker
- name: my-integration
exec: /usr/local/bin/my-integration --metrics --inventory

統合実行ファイルに設定を渡す

多くの場合、統合実行ファイルは、適切に動作するために設定を受け取る必要があります(例えば、監視対象システムのホスト名とポート、ユーザー認証情報など)。

Infrastructureエージェントでは、3つの方法で統合コマンドを設定することができます(組み合わせることも可能です)。

  • 環境変数、 env property.(推奨)
  • で渡されるコマンドライン引数 exec property.
  • 環境変数やコマンドライン引数でパスを渡す必要のある設定ファイル( config )プロパティを参照してください。

例:

integrations:
- name: my-integration
exec: /opt/path/bin/script --host 127.0.0.1 --port 8081
- name: nri-mysql
env:
STATUS_URL: http://10.0.0.3/server-status?auto
REMOTE_MONITORING: true

エージェントが統合を実行する方法を設定する

このセクションのプロパティは、Infrastructureエージェントが統合を実行して対話する方法、またはエージェントが統合のデータを装飾する方法を変更します。

古い統合設定の更新

2019年12月、 Infrastructure agent version 1.8.0 は、異なる設定フォーマットの使用を開始しました。詳しくは、 Config format differences をご覧ください。

これらのフォーマットの主な違いは、古い設定フォーマットでは2つの独立した設定ファイル( INTEGRATION_NAME-definition.yml ファイルと INTEGRATION_NAME-config.yml ファイル)を使用し、新しいバージョンでは1つの設定ファイルを使用することです。

ここでは、新しい設定機能によって追加された機能をご紹介します。

  • コマンドライン引数、環境変数、外部ファイルによる柔軟な設定が可能です。
  • 異なる統合機能を同じファイルにまとめることができる。
  • ホットリロード:新しい統合を追加したり、その構成を変更したりする際に、エージェントを再起動する必要がありません。
  • タイムアウト:ユーザーが指定した時間までに統合が応答しなかった場合、統合プロセスは強制終了して再起動されます。

すべてのオンホスト統合に新しい設定形式が用意されているわけではありませんが、すべてのオンホスト統合の設定を新しい形式に更新することで、新機能を利用することができます。

以下のYAMLは、古い設定形式を使用したApache統合 の設定例を示しています。なお、この設定は新しいエージェントでも動作しますが、機能を最大限に活用するために統合を更新することをお勧めします。

integration_name: com.newrelic.apache
instances:
- name: apache-server-metrics
command: metrics
arguments:
status_url: http://127.0.0.1/server-status?auto
remote_monitoring: true
labels:
env: production
role: load_balancer
- name: apache-server-inventory
command: inventory
arguments:
remote_monitoring: true
labels:
env: production
role: load_balancer

古い統合設定を新しいフォーマットに更新するには、次のいずれかの方法を使用します。

アシスト方式

New Relic CLI を使って、以下のコマンドを実行すると、古い定義・設定ファイルが新しい設定形式に自動的に変換されます。

bash
$
newrelic agent config migrateV3toV4 -d /path/definitionFile -c /path/configFile -o /path/outputFile

例:

マニュアル方式

統合ファイルを手動で変換する場合

  1. インスタンス トップレベルのセクションの名前を インテグレーション に変更。
  2. integration_name トップレベルのセクションを削除して、各統合エントリに追加します。統合の種類ごとに個別のファイルを用意する必要がなくなり、レガシー統合のエントリを他の統合と同じファイルにまとめることができます。

ここでは、新バージョンのApache統合設定の例を紹介します。

integrations:
- name: nri-apache
env:
METRICS: "true"
STATUS_URL: http://127.0.0.1/server-status?auto
REMOTE_MONITORING: true
interval: 15s
labels:
env: production
role: load_balancer
- name: nri-apache
env:
INVENTORY: "true"
STATUS_URL: http://127.0.0.1/server-status?auto
REMOTE_MONITORING: true
interval: 60s
labels:
env: production
role: load_balancer
inventory_source: config/apache

重要

古い構成形式はホットリロードをサポートしていないことに注意してください。そのため、古い統合構成を削除するには、Infrastructureエージェントを再起動する必要があります。そうしないと、古いインスタンスが新しいインスタンスと共存してしまいます。

Copyright © 2022 New Relic株式会社。

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