New Relic の インフラストラクチャエージェント はお客様のホスト上で動作し、特に管理者権限で動作している場合には包括的なデータを提供します。以下では、インフラストラクチャエージェントのセキュリティの概要と推奨事項について説明します。
セキュアなエージェントコミュニケーション
お客様のホストと インフラストラクチャエージェント との間で交換される情報はすべて安全に配信されます。エージェントからのすべての通信は、 Transport Layer Security (TLS) を使用して HTTPS で行われます。安全な通信を確保するために、インフラストラクチャエージェントは以下の保護手段を用いて設計されています。
- すべての通信は、エージェントからサービスへ直接確立されます。
- エージェントは、受信ポートを開く必要がありません。
- エージェントは読み取り専用で、システムに変更を加えることはできません。
インフラストラクチャエージェントは、 ハイセキュリティモード をサポートしていません。
New Relicのセキュリティ対策の詳細については、セキュリティとプライバシーのドキュメントを参照、またはNew Relicのセキュリティウェブサイトを閲覧してください。
ランニングモード
ニューレリックはお客様のデータの安全性を重視しています。 インフラストラクチャエージェント の実行中に得られたすべてのデータは保護され、お客様のインフラストラクチャに関連する情報をお客様にお届けするためにのみ使用されます。
Linux
インフラストラクチャLinuxエージェントは、3つの異なるモードで実行できます。
エージェントがルートユーザーとして実行されると、すべてのシステムメトリクスとインベントリにアクセスできるようになります。
エージェントは、 nri-agent
という名前の非特権ユーザーを実行します。このユーザーは、インストールプロセス中に拡張カーネル機能を与えられます。そのため、特権を持つ nri-agent
ユーザーは、一部のメトリクスと大部分のインベントリを収集することができます。これらの権限は読み取り専用です。 。
特権モードのインストールスクリプトでは、システムに以下のような変更が加えられます。
nri-agent
ユーザーとグループを作成します。
nri-agent
ユーザーとグループを以下のディレクトリのオーナーに設定します。
/var/run/newrelic-infra
/var/db/newrelic-infra
/var/log/newrelic-infra
/etc/newrelic-infra
以下の カーネル機能 を /usr/bin/newrelic-infra
実行ファイルに追加します。
CAP_SYS_PTRACE
任意のプロセスの検査とトレースを可能にします。CAP_DAC_READ_SEARCH
、ファイルやディレクトリの読み取りと実行のパーミッションチェックをバイパスするためのものです。
このエージェントは、アップグレード/インストールプロセス中に自動的に作成される非特権ユーザー( nri-agent
)で実行され、すべてのシステムメトリクスに対する読み取りアクセス権は持ちません。これにより、非常に厳しいセキュリティポリシーや規制ポリシーを持つ環境でも、可視性を確保することができます。この実行モードでは、ユーザーに特別な権限やアクセス権は与えられません。
非特権モードでインストールスクリプトを実行すると、システムに以下のような変更が加えられます。
nri-agent
ユーザーとグループを作成します。
nri-agent
とグループを、以下のシステムファイルとフォルダのオーナーに設定します。
/var/run/newrelic-infra
/var/db/newrelic-infra
/var/log/newrelic-infra
/etc/newrelic-infra
異なる実行モードの詳細については、 Infrastructure のインストールドキュメント の比較を参照してください。
Windows
Windowsシステムでは、エージェントをAdministrator権限で実行する必要があります。
データ収集のソース
インフラストラクチャエージェントは、さまざまなOSソースからメトリクス、イベント、およびインベントリデータを収集します。これらのソースの中には、非特権アカウントから読めるものもありますが、昇格した特権が必要なものもあります。
現在のエージェントのバージョンでは、New Relic は root ユーザー (Linux の場合) または完全な管理者アクセス (Windows の場合) で実行する必要があります。ここでは、インフラストラクチャエージェントがデフォルトのディレクトリにアクセスする方法、使用するパッケージとコマンドの詳細について説明します。
特に断りのない限り、この情報はすべてのLinuxオペレーティングシステムに適用されます。
ディレクトリまたはファイル | 目的 | Linux OS |
---|
/etc/newrelic-infra.yml
| デフォルト設定ファイル | 任意の |
/usr/bin/newrelic-infra-service
| デフォルトのエージェント・サービス・ラッパー・バイナリのインストール先 | 任意の |
/usr/bin/newrelic-infra
| エージェントバイナリのデフォルトインストール先 | 任意の |
/usr/bin/newrelic-infra-ctl
| デフォルトのCLIエージェント・コントロール・バイナリの場所 | 任意の |
/var/db/newrelic-infra/
| デフォルトのインベントリキャッシュとプラグインのバイナリ | 任意の |
/var/run/newrelic-infra.pid
| デフォルトのpidファイル | 任意の |
stdout , stderr , logs
| 設定に応じて、エージェントはログを stdout に書き込みます。これは、システムのログ記録サービスに接続することができます。 | 任意の |
データソースの中には、特定のオペレーティング・システムに特化したものがあります。特に記載がない限り、New Relic は関連するソフトウェアが検出された場合、すべてのバリエーションのオペレーティング・システムでソースを使用します。ツールの多くは、エージェントがアクセスできるパスにあります。特に記載がない場合、インフラストラクチャエージェントは通常、 /usr/bin
、 /bin
、 /sbin
で検索します。
New Relic では、いくつかのツールやデータソースを使用して、複数のインフラ機能の情報を収集しています。ここでは、主な使用例を紹介します。特に断りのない限り、New Relic はこの情報を主に 在庫 ページ のために使用します。
プラグインまたはデータ | ツール、ディレクトリ、またはファイル | Linux OS |
---|
システムド
| initctlリスト
| 任意の |
アップスタート
| systemctl -l , systemctl show , modinfo , lsmod
| 任意の |
selinux
| sestatus -b, semodule -l
| 任意の |
dpkg
| dpkg-query -W -f
| Debian |
rpm
| rpm -qa
| レッドハット |
hostinfo
| /sys/devices/virtual/dmi/id/sys_vendor, /sys/devices/virtual/dmi/id/product_name
| 任意の |
hostinfo
| /proc/sys/kernel/osrelease
| 任意の |
hostinfo
| アップタイム -s
| 任意の |
hostinfo
| /etc/lsb_release | Debian |
hostinfo
| /etc/redhat-release
| レッドハット |
ファクター
| facter -p -j
| 任意の |
デーモンツール
| svstat
| 任意の |
kernel_modules
| /sbin/modinfo , /sbin/lsmod
| 任意の |
ユーザー
| /usr/bin/env who
| 任意の |
様々なプラグインがこのディレクトリを通じてシステム全体の詳細を収集します。インフラストラクチャ インベントリ やメトリクスに使用されます。 | /proc/
| 任意の |
様々なプラグインが sysctl の設定をこのディレクトリに集めます。インフラストラクチャー Inventory and metrics に使用されます。 | /sys/
| 任意の |
様々なプラグイン (sshd_config , hostinfo ) は、このディレクトリにある特定の設定を読み込みます。インフラストラクチャ インベントリ およびメトリクスに使用されます。 | /etc/
| 任意の |
プロキシ
New Relic には、エージェントがプロキシを介して通信するように設定できるオプション設定が含まれています。プロキシの設定を定義するには、インフラ監視のための 設定ドキュメント を参照してください。
外部エージェント接続
エージェントは、 コンピュートメトリクス 、 イベント 、お客様の インベントリ 設定を記述した JSON 形式のデータを、New Relic のインフラストラクチャ エンドポイントに定期的に送信します。これらの通信は、お客様のアカウント用に生成された ライセンスキー を使用してエージェントに関連付けられます。New Relic は、任意の外部エージェントからデータを受信すると、新しいメトリクス、イベント、または構成データをインフラストラクチャ監視 UI に表示します。
外部エージェントコマンド
エージェントは、 newrelic-infra-ctl
と command-API
という2つの異なるコマンドのソースを扱います。
newrelic-infra-ctl
で送信されたCLIコマンドは、LinuxやDockerのシグナリングや、Windowsのnamed-pipesを使ってエージェントに送信されます。- New Relic の platform
command-API
エンドポイントを使用して、エージェントは 60 秒ごとに platform が提供するコマンドをポーリングします。接続は、エージェントからNew Relicのプラットフォームのコマンド-APIエンドポイントに常に開いており、逆に開くことはありません。 コマンド-API
エンドポイントは、ダイナミックエンティティの登録を強制的に有効または無効にするためにのみ使用されます。これは、インフラストラクチャエージェントのバージョン1.9.0以降に付属するDocker統合にも適用されます。
成果物
インフラストラクチャエージェントと、その上で動作するすべてのオンホスト統合機能は、標準的なオペレーティングシステムのリポジトリとパッケージを使用して提供されます。New Relic はすべてのパッケージを暗号化して署名しており、検証手順はインストールスクリプトにデフォルトで用意されています。
すべてのコードは、標準的なセキュリティツール(Snyk、Dependabot、Trivy)を用いて依存関係の脆弱性をチェックしています。
New Relic の公式ダウンロードサイトは、S3 を通じて AWS にホストされており、信頼できる CDN プロバイダーである Fastly がフロントに置かれています。