newrelic.newrelic-infra

New Relic Community Plus ヘッダー

:warning: New Relicは、New Relicの可観測性の取り組みをスケールしやすくする新しいAnsibleソリューションを提供しています。今後はこのソリューションの使用を検討してください。

New Relic インフラストラクチャエージェントのAnsibleロール test_ansible release_ansible

New Relicインフラストラクチャエージェントをインストールおよび/または構成し、New RelicインフラストラクチャOHIをインストールするためのAnsibleロールです。

インストール

以下のコマンドを使用して、最新のNew Relicロールをダウンロードします。

ansible-galaxy install newrelic.newrelic-infra

はじめに

newrelic.newrelic-infraロールをプレイブックで直接使用するには、プレイブックにロールを追加します。例えば、

# myplaybook.yml
---
- hosts: webservers
  roles:
    - role: newrelic.newrelic-infra
      vars:
        nrinfragent_config:
          license_key: 12345

newrelic.newrelic-infraを他のロールの依存関係として使用するには、自分のロールのmeta/main.ymlに依存関係を追加します。例えば、

# roles/myapp/meta/main.yml
---
dependencies:
  - role: newrelic.newrelic-infra

使用法

このロールは、New Relicインフラストラクチャエージェントとの以下のインタラクションに使用できます。

  • OSパッケージマネージャからエージェントをインストール
  • tarballを使用してエージェントをインストール(Linuxのみ)
  • OSパッケージマネージャから統合をインストール
  • エージェントを構成
  • エージェントの初期サービスをセットアップ

デフォルトでは、ロールはOSパッケージマネージャを通じてエージェントをインストールし、統合をインストールし、エージェントを構成し、エージェントの初期サービスをセットアップします。さらに、他のインタラクションを実行するためのタグも利用可能です。

  • nria_install
  • nria_install_tarball
  • nria_install_integrations
  • nria_configure
  • nria_setup_service

基本的な使用法

以下のスニペットは、OSパッケージマネージャを介してエージェントをインストールし、指定された構成でエージェントを構成し、エージェントのOS初期サービスをセットアップします。

---
- hosts: ap_ne_1
  roles:
    - name: newrelic.newrelic-infra
      vars:
        log_file: /opt/logs/newrelic-infra.log
        verbose: 0
        nrinfragent_config:
          license_key: 12345
          custom_attributes:
            environment: dev

タールボールインストール(Linuxのみ)

tarballインストール方法を使用してインストールするには、nrinfragent_tarball_version変数を有効なtarballバージョン番号に設定する必要があります。 tarballインストール方法を使用する場合、nria_install_tarballタグが指定されない限り、構成とエージェントOS初期サービスタスクも実行されます。

- hosts: ap_ne_1
  roles:
    - name: newrelic.newrelic-infra
      vars:
        nrinfragent_tarball_version: 1.18.0
        nrinfragent_tarball_download_dir: /opt/newrelic/
        nrinfragent_config:
          log_file: /opt/logs/newrelic-infra.log
          verbose: 0
          license_key: 12345
          custom_attributes:
            environment: dev

タールボールインストール「オフライン」

ウェブからダウンロードするのではなく、ローカルのtarballを使用するには、nrinfragent_tarball_local_file_path変数をtarballのローカルパスに設定する必要があります。

- hosts: ap_ne_1
  roles:
    - name: newrelic.newrelic-infra
      vars:
        nrinfragent_tarball_version: 1.18.0
        nrinfragent_tarball_download_dir: /opt/newrelic/
        nrinfragent_tarball_from_local: yes
        nrinfragent_config:
          log_file: /opt/logs/newrelic-infra.log
          verbose: 0
          license_key: 12345
          custom_attributes:
            environment: dev

設定のみ

以下のスニペットは、既存のインストールのエージェント設定のみを構成します。プレイブックは--tags nria_configureオプションで実行する必要があります。この場合、include_roleを使用する必要があります。

- hosts: ap_ne_1
  tasks:
  - name: New Relicインフラストラクチャエージェントを構成する
    include_role:
      name: newrelic.newrelic-infra
    vars:
      nrinfragent_config:
        license_key: 12345
        log_file: /opt/logs/newrelic-infra.log
        verbose: 0
        custom_attributes:
          environment: dev
    tags:
    - nria_configure

参考

ロール設定

変数

ロール設定の変数は、インラインで文書化されています。下記にも示しています。

nrinfragent_state(オプション)

パッケージをインストールまたはアンインストールします(パッケージマネージャによるインストール)。パッケージマネージャによるインストールは、Ansibleパッケージモジュールを使用して実行されます。

  • 'latest' - [デフォルト] エージェントの最新バージョンをインストールします。またはpresent
  • 'absent' - エージェントをアンインストールします。
nrinfragent_service_state(オプション)

インストール後のnewrelic-infraサービスの状態を指定します。デフォルトはstartedで、サービスが実行中であることを保証します。stoppedに変更すると、すぐには起動されません。

nrinfragent_service_enabled(オプション)

サービスがブート時に開始されるかどうかを指定します。デフォルトはyesです。ブート時に自動的にサービスを開始しないようにnoに変更します。

nrinfragent_config_file(オプション)

ターゲットホスト上のNew Relicインフラストラクチャエージェント設定ファイルへのカスタムパスを指定します。デフォルトはLinuxで/etc/newrelic-infra.yml、Windowsで%ProgramFiles%\New Relic\newrelic-infra\newrelic-infra.ymlです。

nrinfragent_config(必須)

エージェントの設定を入力するために使用されます。少なくともlicense_keyを提供する必要があります。現在の構成オプションについては、New Relicのドキュメントを参照してください。

custom_attributes:
  business_unit: sales
  team: newrelic
license_key: D000000000000000000000000000000000000000
log_file: /tmp/logs.log
verbose: 1
nrinfragent_integrations(オプション)

OSパッケージマネージャを介してインストールされるオンホスト統合を指定します。利用可能な統合のリストはこちらで確認できます。

各パッケージはnamestateを提供する必要があります。統合パッケージ名は、個々の統合ドキュメントの「インストールとアクティブ化」セクションにあります。原則として、パッケージ名はサービス名にnri-プレフィックスが付けられたものです(nri-apachenri-redisなど)。

デフォルトでは状態はabsentで、パッケージはインストールされません。これをlatestまたはpresentに変更できます。例えば:

nrinfragent_integrations:
  - name: nri-nginx
    state: latest
  - name: nri-mysql
    state: absent

各統合のソースコードは、newrelicのGitHub組織で入手できます。

license_key(非推奨)

互換性のために、トップレベルのlicense_keyを指定することができますが、代わりにnrinfragent_config内のlicense_keyを使用することをお勧めします。両方が指定されている場合は、nrinfragent_config内のものが優先されます。

nrinfragent_tarball_version(タールボールインストール専用:必須)

ダウンロードするNew Relicインフラストラクチャエージェントのタールボールバージョンを指定します。Linuxのみ

nrinfragent_tarball_download_dir(タールボールインストール専用:必須)

対象ホストに対して、タールボールをダウンロードおよび解凍するディレクトリを指定します。

nrinfragent_tarball_agent_dir(オプション、タールボールインストール専用)

対象ホスト上でエージェントを配置するホームディレクトリのパスを指定します。NRIA_AGENT_DIRパラメータと同じです。デフォルトは/var/db/newrelic-infra/です。

nrinfragent_tarball_bin_dir(オプション、タールボールインストール専用)

対象ホスト上でエージェントのバイナリディレクトリのパスを指定します。NRIA_BIN_DIRパラメータと同じです。デフォルトは/usr/local/bin/です。

nrinfragent_tarball_log_file(オプション、タールボールインストール専用)

対象ホスト上でエージェントのログファイルのパスを指定します。NRIA_LOG_FILEパラメータと同じです。デフォルトは/var/run/newrelic-infra/newrelic-infra.logです。

nrinfragent_tarball_mode(オプション、タールボールインストール専用)

エージェントの権限レベルを指定します。NRIA_MODEパラメータと同じです。デフォルトはROOTです。

nrinfragent_tarball_pid_file(オプション、タールボールインストール専用)

対象ホスト上でエージェントPIDファイルのパスを指定します。NRIA_PID_FILEパラメータと同じです。デフォルトは/var/run/newrelic-infra/newrelic-infra.pidです。

nrinfragent_tarball_plugin_dir(オプション、タールボールインストール専用)

対象ホスト上でエージェントプラグインディレクトリのパスを指定します。NRIA_PLUGIN_DIRパラメータと同じです。デフォルトは/etc/newrelic-infra/integrations.d/です。

nrinfragent_tarball_user(オプション、タールボールインストール専用)

対象ホスト上でエージェントバイナリを実行するユーザーを指定します。NRIA_USERパラメータと同じです。デフォルトはrootです。

nrinfragent_os_name(オプション)

インフラストラクチャエージェントがインストールされる対象OSを指定します。デフォルトはansible_os_familyです。サポートされるオペレーティングシステムのリストは、meta/main.ymlファイルを参照してください。

nrinfragent_os_version(オプション)

このマシンに必要なインストーラパッケージのOSバージョンを指定します。デフォルトはansible_lsb.major_releaseです。主にRedHatファミリーのOSで使用されます。サポートされるオペレーティングシステムのリストは、meta/main.ymlファイルを参照してください。

nrinfragent_os_codename(オプション)

このマシンに必要なインストーラパッケージのOSコードネームを指定します。デフォルトはansible_lsb.codenameです。これはDebianファミリーのOSで使用されます。サポートされるオペレーティングシステムのリストは、meta/main.ymlファイルを参照してください。

nrinfragent_choco_version(オプション、Windowsのみ)

Windowsでnewrelic-infraをインストールするためのChocolateyパッケージのバージョンを指定します。バージョンを固定するか、エージェントをアップグレードするために使用できます。

nrinfragent_yum_lock_timeout(オプション)

ansible yumモジュールのlock_timeoutの値を設定します。設定しない場合、この値はデフォルトで30になります。ansibleバージョン>= 2.8.0のみに対応しています。

nrinfragent_logging(オプション)

ログファイルを生成するために使用されます。現在の構成オプションについては、New Relicのドキュメントを参照してください。複数のログブロックを作成するには、追加の名前リストを入力します。例えば:

vars:
  nrinfragent_logging:
    - name: example-log
      file: /var/log/example.log # 単一のログファイルへのパス

    - name: docker-logs
      file: /var/lib/docker/containers/*/*.log # 複数のフォルダーおよびファイルへのパス

    - name: systemd-example
      systemd: cupsd

    # TCPネットワークソケット
    - name: syslog-tcp-test
      syslog:
        uri: tcp://0.0.0.0:5140 # tcp://LISTEN_ADDRESS:PORT形式を使用
        parser: rfc5424 # デフォルトのsyslogパーサーはrfc3164

    # Unix TCPドメインソケット
    - name: syslog-unix-tcp-test
      syslog:
        uri: unix_tcp:///var/unix-tcp-socket-test
        unix_permissions: 0666 # デフォルトは0644。リスクを考慮して変更してください。

    # Unix UDPドメインソケット
    - name: syslog-unix-udp-test
      syslog:
        uri: unix_udp:///var/unix-udp-socket-test
        parser: rfc5424

    - name: tcp-simple-test
      tcp:
        uri: tcp://0.0.0.0:1234 # tcp://LISTEN_ADDRESS:PORT形式を使用
        format: none # 生のテキスト - これはデフォルトです。
        separator: \t # 生のテキストエントリーを区切るための文字列
      max_line_kb: 32

    - name: tcp-json-test
      tcp:
        uri: tcp://0.0.0.0:2345 # tcp://LISTEN_ADDRESS:PORT形式を使用
        format: json

newrelic-infra-integrationsパッケージとそれに含まれる統合の削除

これはnewrelic-infra-integrationsパッケージがインストールされている場合のみに適用されます。

newrelic-infra-integrationsパッケージやbundled統合(nri-redis、nri-cassandra、nri-apache、nri-nginx、nri-mysql)を削除したい場合は、nrinfragent_integrationsの最初の項目としてnewrelic-infra-integrationsabsentとして追加します。

nrinfragent_integrations:
  - name: newrelic-infra-integrations
    state: "absent"

テスト

infrastructure-agent-ansibleロールは、moleculeを使用してテストを行います。3つのシナリオが提供されています。

  1. デフォルトシナリオは、エージェントのインストールと構成、OS初期サービスの設定をOSパッケージマネージャを使用してテストします。
  2. configureシナリオは、nria_configureタグを使用してエージェントの設定のみをテストします。このテストを実行するには、defaultシナリオのcreateおよびconvergeメソッドを最初に実行する必要があります。
  3. targzシナリオは、tarballインストール方法を使用してエージェントのインストールと構成、OS初期サービスの設定をテストします。

defaultおよびtargzシナリオは完全にmolecule testを使用して実行できます。testコマンドはテスト後にコンテナを破棄するため、configureシナリオを実行する最良の方法は、molecule converge && molecule test -s configure && molecule destroyを使用することです。

Ansible Galaxyへのリリース

新しいバージョンをAnsible Galaxyにリリースするには、以下の手順に従います:

互換性

プラットフォーム

  • RHEL/CentOS
    • RHEL/CentOS 8
    • RHEL/CentOS 7
    • RHEL/CentOS 6
    • RHEL/CentOS 5
  • Ubuntu
    • 18 Bionic
    • 16 Xenial
    • 14 Trusty
    • 12 Precise
  • Debian
    • 10 Buster
    • 9 Stretch
    • 8 Jessie
    • 7 Wheezy
  • SUSE Linux Enterprise
    • 12
  • Windows
    • すべて
    • 免責事項: Windowsのサポートは、第三者によって維持されているNew Relic-infra Chocolateyパッケージに依存しています。New Relicからの保証やサポートはありません。

サポート

New Relicは、お客様がNew Relicの従業員や他のお客様と交流するためのオンラインフォーラムをホストおよび管理しています。すべての公式なNew Relicオープンソースプロジェクトには、New Relic Explorers Hubに関連するコミュニティトピックがあります。このプロジェクトのトピック/スレッドは次のとおりです:

貢献

[プロジェクト名]の改善に対する貢献を歓迎します! プルリクエストを提出するときに、CLA-Assistantを介してCLAにサインする必要があります。プロジェクトにつき、CLAにサインするのは一度だけです。

質問がある場合や、企業名義の貢献を行う場合(これは企業名義の貢献に必要です)、usにメールを送信してください。opensource@newrelic.com

脆弱性に関する注意

私たちのセキュリティポリシーで述べたように、New Relicは私たちのお客様と彼らのデータのプライバシーとセキュリティにコミットしています。私たちは、セキュリティ研究者による協調的な開示を提供し、セキュリティコミュニティと関わることが、私たちのセキュリティ目標を達成するための重要な手段であると信じています。

このプロジェクトまたはNew Relicの製品やウェブサイトにセキュリティの脆弱性があると考える場合は、HackerOneを通じてNew Relicに報告していただければ幸いです。

このプロジェクトに貢献したい場合は、これらのガイドラインを確認してください。

すべての貢献者に感謝します! あなたの貢献がなければ、このプロジェクトは今の姿にはなっていなかったでしょう。

ライセンス

infrastructure-agent-ansibleは、Apache 2.0ライセンスの下でライセンスされています。

プロジェクトについて

Role to install New Relic Infrastructure agent

インストール
ansible-galaxy install newrelic.newrelic-infra
ライセンス
apache-2.0
ダウンロード
1.4M
所有者