New Relic Infrastructure Agent 設定の基礎と最適化指針
New Relic Infrastructure Agentの 効果的な設定方法 を、初心者にも分かりやすく解説します。膨大な設定オプションに圧倒される前に、まずは「なぜその設定が必要なのか」「どんな場面で使うべきか」を理解しましょう。
初心者向けクイックスタート
最小限の設定で始める
まずはこの3ステップで十分です。詳細な設定は後から追加できます。
設定の基本的な考え方
Infrastructure Agentの設定は、監視の精度 と システムへの負荷 のバランスを取ることが重要です。すべての機能を有効にすれば良いというわけではありません。
設定の優先度マトリクス
設定レベル別アプローチ
レベル1: 最小限の必須設定
目的: まずは監視を開始する
設定項目 | 必要性 | 説明 |
---|---|---|
ライセンスキー | 必須 | New Relicへの接続に必要 |
表示名 | 推奨 | ダッシュボードでの識別用 |
基本監視間隔 | 推奨 | データ収集頻度の調整 |
最小設定の完全な例
yaml
# /etc/newrelic-infra.yml - 最小限の設定例
# 必須設定(これだけで動きます)
license_key: YOUR_LICENSE_KEY # 取得方法: New Relic UI > API Keys > Ingest - License
# 推奨設定(識別を簡単にするため)
display_name: "web-server-01" # ダッシュボードで表示される名前
この設定で何ができるか:
- CPU、メモリ、ディスク使用率の基本監視
- ネットワーク統計の収集
- New Relicダッシュボードでの表示
レベル2: 運用環境向け設定
目的: 実用的な監視環境を構築
設定カテゴリ | 効果 | 適用場面 |
---|---|---|
カスタム属性 | 環境・チーム別の分類 | 複数環境の管理 |
ログ統合 | 一元的なログ管理 | トラブルシューティング |
統合機能 | アプリケーション別監視 | 本格運用環境 |
運用設定の設計指針
レベル3: 高度な最適化設定
目的: 大規模環境での効率的な運用
最適化項目 | 効果 | 注意点 |
---|---|---|
データ送信頻度調整 | ネットワーク負荷軽減 | 遅延の増加 |
メトリクス選択 | 必要なデータのみ収集 | 設定の複雑化 |
バッファリング | ネットワーク断続時の対応 | メモリ使用量増加 |
環境別設定戦略
開発環境
特徴: 実験・検証重視
項目 | 設定方針 | 理由 |
---|---|---|
ログレベル | 詳細(verbose: 3) | 問題調査のため |
監視間隔 | 標準(15秒) | リアルタイム性重視 |
統合機能 | 積極的に有効化 | 機能検証のため |
本番環境
特徴: 安定性・効率性重視
項目 | 設定方針 | 理由 |
---|---|---|
ログレベル | 最小限(verbose: 0) | パフォーマンス重視 |
監視間隔 | 最適化済み(30-60秒) | システム負荷軽減 |
統合機能 | 必要最小限 | 安定性確保 |
大規模環境
特徴: スケーラビリティ重視
項目 | 設定方針 | 理由 |
---|---|---|
バッチ送信 | 有効化 | ネットワーク効率向上 |
メトリクス絞り込み | 厳選して収集 | データ量削減 |
地域別設定 | リージョン最適化 | レイテンシ最適化 |
重要な設定項目の詳細リファレンス
ライセンスキー管理(最重要)
セキュリティベストプラクティス
bash
# ⚠️ 推奨: 環境変数を使用(キーをファイルに直接書かない)
export NEW_RELIC_LICENSE_KEY="your-license-key-here"
# 環境変数を参照する設定ファイル作成
cat > /etc/newrelic-infra.yml << EOF
license_key: \${NEW_RELIC_LICENSE_KEY}
display_name: \$(hostname)
EOF
Linuxでの安全なキー管理
bash
# systemd サービスファイルで環境変数を設定
sudo tee /etc/systemd/system/newrelic-infra.service.d/override.conf << EOF
[Service]
EnvironmentFile=/etc/newrelic-infra/license.env
EOF
# 環境変数ファイルを作成(権限を制限)
echo "NEW_RELIC_LICENSE_KEY=your-license-key" | sudo tee /etc/newrelic-infra/license.env
sudo chmod 600 /etc/newrelic-infra/license.env
sudo chown root:root /etc/newrelic-infra/license.env
セキュリティ関連設定
設定項目 | 推奨レベル | 設定例 |
---|---|---|
ライセンスキー管理 | 最高 | 環境変数 or シークレット管理ツール |
HTTPSプロキシ | 高 | proxy: "http://proxy:8080" |
ローカル設定保護 | 中 | chmod 600 /etc/newrelic-infra.yml |
パフォーマンス関連設定
設定項目 | 影響度 | 調整指針 |
---|---|---|
メトリクス収集間隔 | 高 | 用途に応じて15-300秒で調整 |
バッファサイズ | 中 | メモリとネットワークのバランス |
同時接続数 | 低 | 通常はデフォルトで十分 |
完全な設定ファイルリファレンス
プロダクション用設定ファイルの完全例
yaml
# /etc/newrelic-infra.yml - プロダクション用完全設定
# ==================== 基本設定 ====================
license_key: ${NEW_RELIC_LICENSE_KEY} # 環境変数から取得
display_name: ${HOSTNAME} # 環境変数から取得。省略するとホスト名が自動設定されます
verbose: 0 # 本番環境では通常レベル(0=normal, 1=verbose, 2=debug, 3=trace)
# ==================== ネットワーク設定 ====================
# プロキシ設定(企業環境で必要な場合)
proxy: ${HTTPS_PROXY} # 例: http://proxy.company.com:8080
# SSL/TLS証明書設定(企業環境で必要な場合)
# ca_bundle_file: /etc/pki/ca-trust/source/anchors/company-ca.crt
# ca_bundle_dir: /etc/ssl/certs
# プロキシ認証が必要な場合
# proxy: http://username:[email protected]:8080
# コレクターURL(リージョン別設定)
# fedramp: true # FedRAMP対応の場合
# collector_url: https://infra-api.eu01.nr-data.net # EUリージョンの場合
# ==================== パフォーマンス設定 ====================
# サンプリングレート(秒単位)
metrics_network_sample_rate: 10 # ネットワークメトリクス
metrics_process_sample_rate: 20 # プロセスメトリクス
metrics_storage_sample_rate: 20 # ストレージメトリクス
metrics_system_sample_rate: 20 # システムメトリクス
# ==================== プロセス監視設定 ====================
# コマンドライン引数の除外(セキュリティ)
strip_command_line: true
# 特定プロセスの除外
exclude_matching_processes:
- "sshd" # SSH接続を除外
- "systemd-*" # systemd関連プロセスを除外
# ==================== ログ設定 ====================
log:
file: /var/log/newrelic-infra/newrelic-infra.log
to_stdout: false # 標準出力への出力(コンテナ環境では true に設定)
# ==================== カスタム属性 ====================
custom_attributes:
environment: ${ENVIRONMENT:-production}
service: ${SERVICE_NAME:-web}
team: ${TEAM:-infrastructure}
region: ${AWS_REGION:-ap-northeast-1}
datacenter: ${DATACENTER:-tokyo}
deployment_method: ansible
monitoring_tier: premium
# ==================== インベントリ収集設定 ====================
# インベントリ情報は自動的に1時間ごとに収集されます
# 無効化する場合のみ以下を追加:
# disable_inventory: true
# ==================== フィルタリング設定 ====================
# ネットワークインターフェースのフィルタリング
network_interface_filters:
exclude:
- "lo" # ループバック
- "docker.*" # Dockerネットワーク
- "veth.*" # 仮想ネットワーク
# ファイルシステムのフィルタリング
file_devices_blacklist:
- "tmpfs" # 一時ファイルシステム
- "devtmpfs" # デバイスファイルシステム
# ==================== ホストエイリアス設定 ====================
# クラウド環境での動的ホスト名対応
host_aliases:
- "${INSTANCE_ID}"
- "${PRIVATE_IP}"
# ==================== 統合機能の設定 ====================
# 統合機能(On-Host Integrations)の設定は /etc/newrelic-infra/integrations.d/ に配置
# 例: /etc/newrelic-infra/integrations.d/nginx-config.yml
# 統合機能の一括無効化(必要に応じて):
# disable_all_plugins: true
カスタム属性の活用戦略
効果的な属性設計
実際の使用例
yaml
# カスタム属性の実用例
custom_attributes:
# 環境識別
env: production
env_tier: gold # gold, silver, bronze
# サービス情報
service: payment-api
service_version: 2.1.0
# チームと責任
team: platform-engineering
owner: [email protected]
cost_center: CC-1234
# 地理情報
region: asia-pacific
datacenter: tokyo-01
rack: A-12
# コンプライアンス
pci_compliant: true
gdpr_scope: true
# SLAレベル
sla_tier: 99.99
backup_policy: daily
属性設計のベストプラクティス
属性タイプ | 例 | 活用場面 |
---|---|---|
環境識別 | env: production | 環境別アラート設定 |
責任チーム | team: backend | インシデント時の通知先 |
サービス種別 | service: web-server | サービス別パフォーマンス分析 |
地理的情報 | region: asia-pacific | 地域別監視ダッシュボード |
統合機能の選択指針
アプリケーション統合の優先順位
統合対象 | 優先度 | 導入タイミング |
---|---|---|
Webサーバー(Apache/Nginx) | 高 | 初期導入時 |
データベース(MySQL/PostgreSQL) | 高 | 初期導入時 |
キャッシュ(Redis/Memcached) | 中 | 安定稼働後 |
メッセージキュー(RabbitMQ) | 中 | 必要に応じて |
コンテナ(Docker/Kubernetes) | 高 | コンテナ環境の場合 |
統合機能の段階的導入
トラブルシューティング指針
よくある設定問題と対策
問題 | 原因 | 対策 |
---|---|---|
データが表示されない | ライセンスキー・ネットワーク問題 | 接続確認・認証情報確認 |
高いシステム負荷 | 監視間隔が短すぎる | 間隔調整・メトリクス選択 |
統合機能が動作しない | 権限・設定ファイルの問題 | 権限確認・設定検証 |
ログレベルの使い分け
レベル | 用途 | 出力内容 |
---|---|---|
0(通常) | 本番運用 | 必要最小限の情報 |
1(詳細) | 設定調整時 | 動作状況の詳細 |
2(デバッグ) | 問題調査時 | デバッグ情報 |
3(トレース) | 開発・調査時 | 全ての処理詳細 |
パフォーマンス最適化のポイント
システムリソース使用量の最適化
監視品質とリソース使用量のバランス
監視頻度 | CPU負荷 | データ精度 | 推奨環境 |
---|---|---|---|
15秒 | 高 | 最高 | 開発・検証環境 |
30秒 | 中 | 高 | 本番環境(高負荷) |
60秒 | 低 | 中 | 本番環境(標準) |
300秒 | 最低 | 最低 | バックグラウンド監視 |
まとめ
New Relic Infrastructure Agentの設定は、段階的かつ目的に応じたアプローチ が成功の鍵です。
成功のポイント
- 必要最小限から開始: 基本機能で安定稼働を確認
- 環境に応じた最適化: 開発・本番・大規模環境の特性に合わせた調整
- 継続的な見直し: 運用経験に基づく設定の改善
- セキュリティ重視: 認証情報の適切な管理
次のステップ
基本設定が安定稼働したら、チームのワークフローに応じたカスタム属性や統合機能を段階的に追加していきましょう。一度にすべてを設定しようとせず、運用しながら最適化することが重要です。
関連記事: New Relic Infrastructure 基本機能関連記事: New Relic APM監視設定