• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

問題を作成する

Pythonのエージェント管理スクリプト。高度な使い方

Python エージェント管理スクリプトは、インストール プロセス中に使用されます。 Python エージェント パッケージがインストールされると、 newrelic-adminスクリプトも Python インストレーションまたは仮想環境のbinディレクトリにインストールされます。

このドキュメントでは、これらのアドミン・スクリプトの使い方について、さらに詳しく説明しています。

  • エージェント初期設定ファイルの生成
  • 設定ファイルの検証
  • New Relicへの接続テスト
  • スタンドアロンPythonウェブアプリケーションのラッピング起動

サブコマンドの構造

サブコマンドを実行するには、サブコマンドの名前をnewrelic-adminスクリプトの最初の引数として指定します。次に、サブコマンドの名前の後にオプションを追加します。例えば:

bash
$
newrelic-admin help

help<コマンド>

引数を指定せずに実行すると、受け付けたすべてのサブコマンドのリストが表示されます。

bash
$
newrelic-admin help
Usage: newrelic-admin command [options]
Type 'newrelic-admin help <command>'for help on a specific command.
Available commands are:
generate-config
license-key
local-config
network-config
record-deploy
run-program
run-python
server-config
validate-config

サブコマンドに関する追加の詳細を表示するには、サブコマンドとそのオプションのいずれかを指定して help コマンドを実行します。例えば:

bash
$
newrelic-admin help generate-config
Usage: newrelic-admin generate-config license_key [output_file]
Generates a sample agent configuration file for <license_key>.

generate-config license_key [output_file] (ライセンスキーの生成)

サンプル エージェント構成ファイルを生成します。license_keyオプションはあなたのものです .

デフォルトでは、サンプル構成ファイルは標準出力に送られ、画面に表示されます。出力をキャプチャするには、代わりにoutput_fileオプションとしてファイルの名前を指定してファイルに保存できます。

サンプル エージェント構成ファイルが生成されると、ファイル内のライセンス キー オプションのみが更新されます。ファイルを編集し、必要に応じてapp_nameおよびlog_fileオプションを変更する必要があります。詳しくは、 Python エージェントのインストールを参照してください。

generate-configコマンドを実行して初期エージェント構成ファイルを生成できない場合は、download.newrelic.com/python_agent/release/newrelic.ini からサンプル構成ファイルをダウンロードできます

validate-config config_file [log_file]を参照してください。

config_fileオプションで指定されたエージェント構成ファイルの構文を検証します。

これは、 generate-configによって生成され、その後編集されたエージェント構成、またはダウンロード サイトからサンプル構成ファイルをダウンロードして作成されたエージェント構成ファイルである可能性があります。

構成ファイルの構文を検証するだけでなく、エージェント構成ファイルに含まれるlicense_keyを使用してアカウントを識別し、サーバーに接続できるかどうかもテストします。

このサブコマンドは、データコレクタホストのホスト名を解決するためのDNSが利用可能であること、ネットワーク接続が可能であること、ファイアウォールがアクセスをブロックしていないことを確認するために使用できます。

当社のサーバーに接続する際に、テストによりPython Agent Testというアカウントの下にアプリケーションが作成されます。このアプリケーションには、シミュレートされた少量の Web トランザクション データとエラーが報告されます。一定期間が経過すると、アカウント内のこのアプリケーションは、必要に応じてアプリケーションリストから削除できるようになります。

このテストが実行されると、その場所にログファイルが作成されます。

/tmp/python-agent-test.log

この場所をオーバーライドする必要がある場合は、 log_fileオプションを指定できます。ログ ファイルに書き込まれる内容を画面に表示するには、 log_fileオプションとして渡される値としてstdoutまたはstderrを使用できます。

Herokuのように、通常はエージェント設定ファイルを使用しないホスティングサービスを使用する場合でも、このサブコマンドを使用して当社への接続をテストすることができます。Heroku の場合、ライセンスキーの情報は、New Relic アドオンを Heroku インスタンスに追加した際に Heroku が自動的に設定する環境変数に定義されます。

環境変数を使用してライセンス キーを定義するこの場合、接続テストを実行するには、エージェント構成ファイルへのパスの代わりにconfig_fileオプションの値-を渡します。したがって、Heroku インスタンスでコマンドを実行するには、次を使用します。

bash
$
heroku run newrelic-admin validate-config - stdout

この場合、ログ ファイルにstdoutを指定したことに注意してください。それ以外の場合は、生成されたログ ファイルを個別に取得する必要があります。

初めてPythonエージェントをセットアップするとき、あるいは新しいホスト上で、データが問題なく報告されるかどうかをテストするために、このサブコマンドを使用することが推奨されます。詳細については、 Testing the Python agent を参照してください。

run-program ...

...として指定された Python Web アプリケーションのコマンド ラインを実行しますが、起動時にエージェントを自動的に初期化します。

これは、Pythonエージェントを初期化するコードを追加するためにWebアプリケーションを手動で変更することなく、Python Webアプリケーションを起動するためのショートカット方法です。この方法は、PythonウェブフレームワークやWSGIサーバーを使用し、WSGIアプリケーションのエントリーポイントをラップするために自動的にインスツルメンテーションが追加されるような状況であれば、どのような場合でも使用することができます。言い換えれば、エージェントの初期化コードのみを追加する必要がある状況です。

この方法を使用する場合のエージェント構成は、2 つの異なる方法で提供できます。完全なエージェント構成ファイルを使用する場合、その構成の場所はNEW_RELIC_CONFIG_FILE環境変数によって提供されます。

例えばgunicornを使っていたとしたら、次のようになります。

NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program gunicorn wsgi:application

また

bash
$
NEW_RELIC_CONFIG_FILE=newrelic.ini
$
export NEW_RELIC_CONFIG_FILE
$
$
newrelic-admin run-program gunicorn wsgi:application

NEW_RELIC_CONFIG_FILE環境変数を使用して構成ファイルの場所を指定する場合、次の追加の環境変数を設定して、構成ファイルの処理方法をカスタマイズできます。

NEW_RELIC_ENVIRONMENT: 特定のデプロイメント環境の名前。指定すると、構成ファイル内の別の展開セクションから追加のオーバーライド構成が読み取られます。特定のデプロイメント環境の構成ファイルのセクションは、 newrelic:environmentという名前にする必要があります。ここで、 environmentは、この環境変数によって指定されている名前に置き換えられます

完全なエージェント設定ファイルの代わりに、主要なエージェント設定情報のみを提供する環境変数を設定することもできます。この場合に設定可能な環境変数は以下の通りです。

  • NEW_RELIC_LICENSE_KEY - あなたの新しいレリック

    .

  • NEW_RELIC_APP_NAME - UI でデータをレポートするアプリケーションの名前。定義されていない場合、これはデフォルトでPython Applicationになります。

  • NEW_RELIC_LOG - エージェント ログに使用されるファイルへのパス。定義されていない場合、ログは記録されません。stdoutまたはstderrに設定して、ロギングを標準出力または標準エラーに出力して処理することもできます。

  • NEW_RELIC_LOG_LEVEL - エージェントによってログが出力されるレベル。定義されていない場合、デフォルトはinfoです。可能な値は、詳細の昇順で次のとおりです: criticalerrorwarninginfoおよびdebug

Heroku でアプリケーションをホストする場合、個々の環境変数が使用されます。環境変数は、New Relic アドオンを追加すると、Heroku 環境によって適切に自動的に設定されます。したがって、Heroku を使用して上記の環境変数を設定する必要はありません。これは、 Procfileからこのオプションを指定してnewrelic-adminコマンドを使用する場合です。

ラップされたプログラムは、Python エージェント パッケージとnewrelic-adminスクリプトがインストールされたものと同じ Python インストールまたは仮想環境を使用している必要があることに注意してください。そうでない場合、ラッパー スクリプトは影響を与えず、 newrelic Python パッケージが見つからないため、Python インタープリターの起動時にエラーが発生することさえあります。

sudoを使用して別のユーザーとして WSGI アプリケーションを起動する場合、通常、デフォルトのsudo構成では、 sudoが実行されるシェルからのユーザー環境変数が無視されることに注意してください。この場合、 sudoers構成を変更して、特定の環境変数を渡すことができるようにする必要があります。または、環境変数を設定し、 newrelic-adminの下で WSGI アプリケーションを実行するシェル スクリプトを作成します。WSGI アプリケーションを別のユーザーとして起動するには、WSGI アプリケーションで直接ではなく、そのスクリプトでsudoを実行します。

また、 supervisord構成内の環境変数設定が正しく渡されないという問題が発生した場合、 supervisordの使用時に環境変数を設定し、 newrelic-adminの下で WSGI アプリケーションを実行するための追加のラッパー スクリプトの使用が必要になる場合があります。

run-python ...

...として指定された引数を使用して、 newrelic-adminがインストールされている Python インストールまたは仮想環境からpython実行可能ファイルを実行しますが、起動時にエージェントを自動的に初期化します。

これは、Pythonエージェントを初期化するコードを追加するためにWebアプリケーションを手動で変更することなく、Python Webアプリケーションを起動するためのショートカット方法です。この方法は、PythonウェブフレームワークやWSGIサーバーを使用し、WSGIアプリケーションのエントリーポイントをラップするために自動的にインスツルメンテーションが追加されるような状況であれば、どのような場合でも使用することができます。言い換えれば、エージェントの初期化コードのみを追加する必要がある状況です。

上記のrun-programサブコマンドと同様に、環境変数を使用して Python エージェントを構成します。たとえば、 python実行可能ファイルを直接使用している場合は、次のように言えます。

NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-python wsgi.py

また

bash
$
NEW_RELIC_CONFIG_FILE=newrelic.ini
$
export NEW_RELIC_CONFIG_FILE
$
$
newrelic-admin run-python wsgi.py

license-key config_file [log_file].

使用される予定のライセンスキーを出力します。これは、実際のWSGIアプリケーションが起動する前のスタートアップスクリプトで使用することができ、正しい値が使用されているかどうかを検証する目的でライセンスキーを記録します。

エージェント設定ファイルと一緒に使用することができます。

bash
$
newrelic-admin license-key newrelic.ini

また

環境変数を使用してライセンス キーを設定する場合は、構成ファイルの名前として-を使用します。

bash
$
NEW_RELIC_LICENSE_KEY='YOUR-LICENSE-KEY'
$
export NEW_RELIC_LICENSE_KEY
$
$
newrelic-admin license-key -

という形で出力されます。

license_key = 'YOUR-LICENSE-KEY'

エージェントの設定ファイルにライセンスキーが見つからない場合や、ユーザーの環境変数からライセンスキーが検出されない場合は、次のように出力されます。

license_key = None

network-config config_file [log_file]を参照してください。

使用されるネットワーク構成を出力します。これは、実際のWSGIアプリケーションが起動する前のスタートアップスクリプトで、正しい値が使用されているかどうかを検証する目的で、ネットワーク構成をログに記録するために使用することができます。

エージェント設定ファイルと一緒に使用することができます。

bash
$
newrelic-admin network-config newrelic.ini

また

環境変数を使用してプロキシ情報を設定する場合は、構成ファイルの名前として-を使用します。

bash
$
NEW_RELIC_PROXY_HOST=proxy.example.com
$
export NEW_RELIC_PROXY_HOST
$
$
NEW_RELIC_PROXY_PORT=8888
$
export NEW_RELIC_PROXY_PORT
$
$
newrelic-admin network-config -

という形で出力されます。

host = 'collector.newrelic.com'
port = 0
proxy_host = 'proxy.example.com'
proxy_port = 8888
proxy_user = None
proxy_pass = None
ssl = True

ポートの値0は、データ コレクターとの通信に SSL 接続が使用されているかどうかに基づいて、ポート番号80または443が自動的に選択されることを示します。

local-config config_file [log_file].

ビルトインのデフォルト、環境変数、および任意のエージェント設定ファイルに基づいて、ローカルのエージェント設定を出力します。この情報は、エージェント起動時の問題をデバッグする際に、テクニカルサポートから要求されることがあります。これは、エージェント設定ファイルと一緒に使用することができます。

bash
$
newrelic-admin local-config newrelic.ini

また

環境変数を使用して設定を行う場合は、構成ファイルの名前として-を使用できます。

bash
$
newrelic-admin local-config -

server-config config_file [log_file]を指定します。

特定のアプリケーションの完全な設定を出力します。これは、特定のアプリケーションのための サーバー側の設定 によって上書きされる、ローカルエージェントの設定になります。この情報は、エージェント起動時の問題をデバッグする際に、テクニカルサポートから要求されることがあります。

エージェント設定ファイルと一緒に使用することができます。

bash
$
newrelic-admin server-config newrelic.ini

また

環境変数を使用して設定を変更する場合は、構成ファイルの名前として-を使用できます。

bash
$
newrelic-admin server-config -

サーバー側の設定を取得するために、このスクリプトは、設定によって定義された特定のアプリケーションのためのエージェント登録を強制します。そのアプリケーションがAPMのユーザーインターフェイスにまだ表示されていない場合、そのためのエントリが作成されますが、そのアプリケーションに対するメトリックデータは報告されません。

record-deploy config_file description

これは、アプリケーションのデプロイメントを記録するための New Relic REST API のラッパーです。また、REST API を通じて直接 デプロイメントを記録することもできます

コマンドを使用するには

  1. セクションに次のような行を追加して エージェント構成ファイnewrelic.ini( ) に API キ[newrelic]ー を追加します。

    api_key=substitute-your-api-key-here
  2. コマンド ラインからnewrelic-adminコマンドを呼び出します。(構成ファイルに追加しないでください。) 次のサブコマンド構造を使用します。

    bash
    $
    newrelic-admin record-deploy config_file description [revision changelog user]

このサブコマンドには2つの必須引数があります。

  • config_file: 構成ファイル名へのパス
  • description: デプロイメントを説明または識別するテキスト。たとえば、Git コミット コメント

また、3つのオプションの引数があります。

  • revision: デプロイされている特定のリビジョンを識別します
  • changelog: 変更内容の詳細なログを提供します
  • user: 展開の責任者を特定します

その他の高度なヒント

以下に示すのは、Adminスクリプトを実行するにあたっての詳細手順です。

Copyright © 2024 New Relic株式会社。

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