New Relic Azure統合設定の基本概念と設定手順
Azure環境でNew Relicによる監視を始めたい方に向けて、基本概念から実際の設定手順までを分かりやすく解説します。AWSと異なるAzure特有の認証方式や管理方法を理解しながら、効果的な監視環境を構築していきましょう。
なぜAzure統合が必要なのか
Azure環境では、監視対象が複数のレイヤーに分散しており、それぞれ異なる管理ツールで監視されることが一般的です。
New RelicのAzure統合により、これらの分散した監視情報を統一ダッシュボードで一元管理できます。
Infrastructure AgentはAzure VM上で動作し、ホストレベルの詳細なメトリクスを収集します。一方、Azure統合はAzure Monitor APIを通じてAzureマネージドサービスのメトリクスを収集します.
1. Azure Monitor との統合
Infrastructure Agentによる監視
- Azure VMのCPU、メモリ、ディスク使用率
- 実行中のプロセスとサービスの状態
- ネットワークトラフィックの詳細
- カスタムメトリクスとログファイル
Azure統合による監視
- SQL Databaseのパフォーマンスメトリクス
- App Serviceのレスポンスタイムとエラー率
- Application Gatewayの接続数とレイテンシ
- Storage Accountのトランザクション数
- Key Vaultのアクセスパターン
2. サービスプリンシパルによる安全な認証
AzureはAWSとは異なり、サービスプリンシパルという仕組みで外部サービスからの安全なアクセスを管理します。これにより、きめ細かな権限制御が可能です。
3. リソースグループベースの管理
Azureのリソースグループ構造を活かした効率的な監視範囲の設定が可能になります。
基本的なセットアップの流れ
ステップ1: サービスプリンシパルの作成
なぜサービスプリンシパルが必要なのか
サービスプリンシパルは、Azureにおけるアプリケーション用のIDです。New RelicがAzureリソースに安全にアクセスするために必要な認証情報を提供します。
Azure Portalでの設定手順
Azure Active Directoryにアクセス
- Azure Portal → Azure Active Directory → アプリの登録
新規アプリケーションの登録
- 「新規登録」をクリック
- 名前:
NewRelic-Infrastructure-App
- サポートされているアカウントの種類: この組織ディレクトリのみ
クライアントシークレットの作成
- 登録したアプリ → 証明書とシークレット → 新しいクライアント シークレット
- 説明:
NewRelic Integration Secret
- 有効期限: 24か月(推奨)
必要な情報の記録
以下の情報を記録してください:
項目 | 確認場所 | 用途 |
---|---|---|
Application (Client) ID | アプリの概要ページ | New Relic統合設定で使用 |
Directory (Tenant) ID | アプリの概要ページ | テナント識別 |
Client Secret | 証明書とシークレット | 認証用秘密鍵 |
Subscription ID | サブスクリプションページ | 課金・管理単位 |
権限の付与
- サブスクリプションレベルでの権限設定
- Azure Portal → サブスクリプション → アクセス制御 (IAM)
- ロールの割り当てを追加
- ロール:
Reader
- アクセスの割り当て先: 作成したサービスプリンシパル
ステップ2: Azure VMでのInfrastructure Agent設定
基本的なインストール方法
AzureではVirtual MachineにVM拡張機能を使用してAgentをインストールする方法が効率的です。
Ubuntu/Debian系の場合
# New Relicリポジトリの追加
curl -fsSL https://download.newrelic.com/infrastructure_agent/gpg/newrelic-infra.gpg | sudo apt-key add -
echo "deb https://download.newrelic.com/infrastructure_agent/linux/apt $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/newrelic-infra.list
# パッケージ情報の更新とインストール
sudo apt-get update
sudo apt-get install newrelic-infra -y
基本設定ファイル
# /etc/newrelic-infra.yml
license_key: YOUR_LICENSE_KEY
display_name: "azure-production-vm-01"
# Azure環境固有の設定
custom_attributes:
environment: production
cloud_provider: azure
resource_group: production-rg
Azure VM Extension を使用した自動インストール
Azure VM拡張機能を使用してInfrastructure Agentを自動インストールします。
# Linux VM へのインストール
az vm extension set \
--resource-group "myResourceGroup" \
--vm-name "myVM" \
--name "CustomScript" \
--publisher "Microsoft.Azure.Extensions" \
--settings '{
"fileUris": ["https://raw.githubusercontent.com/your-repo/newrelic-install.sh"],
"commandToExecute": "bash newrelic-install.sh YOUR_LICENSE_KEY"
}'
カスタムスクリプトでのインストール
Azure VM起動時に実行するインストールスクリプトです。
#!/bin/bash
# newrelic-install.sh - Azure VM用インストールスクリプト
NEW_RELIC_LICENSE_KEY="$1"
if [ -z "$NEW_RELIC_LICENSE_KEY" ]; then
echo "Usage: $0 <NEW_RELIC_LICENSE_KEY>"
exit 1
fi
# Azure メタデータ取得
AZURE_METADATA_URL="http://169.254.169.254/metadata/instance?api-version=2021-02-01"
METADATA=$(curl -s -H "Metadata:true" "$AZURE_METADATA_URL")
VM_NAME=$(echo $METADATA | jq -r '.compute.name')
RESOURCE_GROUP=$(echo $METADATA | jq -r '.compute.resourceGroupName')
SUBSCRIPTION_ID=$(echo $METADATA | jq -r '.compute.subscriptionId')
LOCATION=$(echo $METADATA | jq -r '.compute.location')
VM_SIZE=$(echo $METADATA | jq -r '.compute.vmSize')
# OS判定とパッケージ管理
if [ -f /etc/redhat-release ]; then
# RHEL/CentOS
curl -o /etc/yum.repos.d/newrelic-infra.repo \
https://download.newrelic.com/infrastructure_agent/linux/yum/el/7/x86_64/newrelic-infra.repo
yum -q makecache -y --disablerepo='*' --enablerepo='newrelic-infra'
yum install newrelic-infra -y
elif [ -f /etc/debian_version ]; then
# Ubuntu/Debian
curl -fsSL https://download.newrelic.com/infrastructure_agent/gpg/newrelic-infra.gpg | apt-key add -
echo "deb https://download.newrelic.com/infrastructure_agent/linux/apt $(lsb_release -cs) main" | \
tee /etc/apt/sources.list.d/newrelic-infra.list
apt-get update
apt-get install newrelic-infra -y
fi
# 設定ファイル作成
cat > /etc/newrelic-infra.yml << EOF
license_key: ${NEW_RELIC_LICENSE_KEY}
display_name: ${VM_NAME}
verbose: 0
# カスタム属性(タグ)の設定
custom_attributes:
environment: production
azure_subscription_id: ${SUBSCRIPTION_ID}
azure_resource_group: ${RESOURCE_GROUP}
azure_location: ${LOCATION}
azure_vm_size: ${VM_SIZE}
deployment_method: vm_extension
# ログ設定
log:
level: info
file: /var/log/newrelic-infra/newrelic-infra.log
EOF
# サービス開始
systemctl enable newrelic-infra
systemctl start newrelic-infra
echo "New Relic Infrastructure Agent installation completed"
ARMテンプレートによる自動デプロイ(参考)
Azure VMにInfrastructure Agentを自動インストールする場合は、ARMテンプレートを使用できます。詳細なテンプレートは公式ドキュメントを参照してください。
基本的な構成要素:
- VMエクステンション(Custom Script Extension)
- ネットワークセキュリティグループ
- Agent自動インストールスクリプト
Azure統合の設定
Azure統合の仕組み
Azure統合は、New RelicがあなたのAzureサブスクリプションのサービスプリンシパルを使用して、Azure Monitor APIからメトリクスを定期的に収集する仕組みです。
New RelicでのAzure統合有効化
New Relicダッシュボードから簡単に設定できます:
New Relicダッシュボードでの設定
- Infrastructure > Azure > Add Azure accountをクリック
- 設定方法を選択(推奨: Automated)
サービスプリンシパルの作成(Azure Portal)
- Azure Active Directory > App registrations > New registration
- アプリケーション名: "NewRelic-Integration"
- Certificates & secrets > New client secret
- Client IDとSecretをメモする
ロールの割り当て
- Subscriptions > Access control (IAM) > Add role assignment
- Role: Reader
- 作成したサービスプリンシパルを指定
Infrastructure as Code(IaC)による自動化
TerraformやARMテンプレート、PowerShellを使用して、Azure統合の設定を自動化できます。詳細な実装例はGitHubリポジトリを参照してください。
主要な設定項目:
- Tenant IDとSubscription ID
- Application ID(Client ID)とClient Secret
- メトリクス収集間隔(デフォルト: 5分)
- リソースグループのフィルタリング
Azure Monitorとの高度な連携
Log Analytics Workspaceとの統合
Azure Monitor LogsをNew Relicに転送するには、Azure FunctionやLogic Appsを使用します:
Azure Functionの作成
- Functions > Create Function App
- Runtime: Node.jsまたはPython
- HTTP Triggerで関数を作成
Log Analyticsのエクスポート設定
- Log Analytics Workspace > Data Export
- エクスポート先としてAzure FunctionのHTTPエンドポイントを指定
データ変換処理
- Azure Monitorのログ形式をNew Relic形式に変換
- 必要なメタデータを付与
- New Relic Logs APIへ送信
Application Insights統合
Application InsightsのテレメトリデータをNew Relicに統合する方法:
Continuous Exportの設定
- Application Insights > Continuous Export
- Export先としてStorage Accountを指定
- エクスポートデータ: テレメトリ、イベント、メトリクス
データ処理パイプライン
- Azure FunctionでStorage Accountを監視
- 新しいファイルが追加されると自動実行
- JSONデータをNew Relic形式に変換して送信
直接API連携
- Application Insights REST APIからデータを取得
- 定期的にNew Relic Custom Events APIへ送信
運用とベストプラクティス
タグベースの監視設定
Azureリソースのタグを活用した効率的な監視設定:
Azureリソースのタグ設定
bash# Azure CLIでタグを設定 az resource tag --tags Environment=production Application=web-app Team=backend \ --id /subscriptions/{subscription-id}/resourceGroups/{rg-name}/providers/Microsoft.Compute/virtualMachines/{vm-name}
Infrastructure Agentの設定
- Azure VMのメタデータからタグが自動的に取得される
- 特別な設定は不要
- カスタム属性で追加情報を設定可能
New Relicでの活用
- NRQLクエリでタグフィルタリング
- アラートポリシーの条件指定
- ダッシュボードのグルーピング
Azureメタデータの活用
Azure VMでは、インスタンスメタデータサービスからVM固有の情報を自動取得できます:
取得可能な情報 | 用途 | 設定例 |
---|---|---|
VM名 | display_name | azure-web-01 |
リソースグループ | カスタム属性 | production-rg |
リージョン | カスタム属性 | japaneast |
VMサイズ | カスタム属性 | Standard_B2s |
ステップ3: Azure統合の有効化
New Relicコンソールでの設定
統合セクションにアクセス
- New Relic One → Infrastructure → Azure
Azureアカウントの接続
- 「Add Azure account」をクリック
- 前手順で取得した認証情報を入力:
- Application ID
- Client Secret
- Tenant ID
- Subscription ID
監視対象サービスの選択
初期設定で推奨されるサービス:
サービス | 監視内容 | 重要度 |
---|---|---|
Virtual Machines | CPU、メモリ、ディスク使用率 | 高 |
SQL Database | 接続数、DTU使用率 | 高 |
App Service | レスポンス時間、リクエスト数 | 中 |
Storage Account | トランザクション、可用性 | 中 |
Azure CLIでの自動設定
大量のリソースを管理する場合、Azure CLIでのスクリプト化が効果的です:
# サービスプリンシパルの作成
az ad sp create-for-rbac \
--name "NewRelic-Infrastructure-SP" \
--role "Reader" \
--scopes "/subscriptions/YOUR_SUBSCRIPTION_ID"
コスト最適化の設定
Azure統合のコストを最適化するための推奨設定:
メトリクス収集間隔の調整
- New Relicダッシュボードで各サービスの収集間隔を設定
- 重要度の低いサービスは10分または15分間隔に変更
リソースグループのフィルタリング
- Infrastructure > Azure > Configure
- 監視対象のリソースグループを特定
- テスト環境や一時的なリソースを除外
不要なサービスの無効化
- 使用していないAzureサービスの統合を無効化
- 本番環境のみを統合対象にする
ステップ4: 動作確認とダッシュボード活用
正常動作の確認方法
Infrastructure Agentの稼働確認
- New Relic One → Infrastructure → Hosts
- Azure VMが一覧に表示されることを確認
Azure統合の確認
- New Relic One → Infrastructure → Azure
- 接続済みサブスクリプションが表示されることを確認
- 各Azureサービスからデータが収集されていることを確認
データフローの確認
Azure特化ダッシュボードの構築
推奨ダッシュボード構成
Azure環境に特化したメトリクスを中心に構成します:
インフラストラクチャ監視:
- VM CPU使用率(Azure Monitor + Agent)
- SQL Database DTU使用率
- App Service応答時間
- Storage Account可用性
アプリケーション監視:
- Application Insights連携データ
- カスタムメトリクス
- ログ統合情報
トラブルシューティング
よくある問題と解決方法
問題 | 考えられる原因 | 解決方法 |
---|---|---|
VMが表示されない | サービスプリンシパルの権限不足 | Readerロールの付与確認 |
Azureサービスデータが取得できない | Client Secretの期限切れ | 新しいシークレットを生成 |
データ更新が遅い | リージョンの設定問題 | 正しいAzureリージョンを指定 |
運用時のベストプラクティス
リソースグループ戦略
Azureのリソースグループを活用した効率的な監視管理:
推奨リソースグループ構成
タグ付け戦略
Azureリソースのタグを活用した監視の効率化:
タグキー | 説明 | 設定例 |
---|---|---|
Environment | 環境分類 | Production, Staging, Development |
Application | アプリケーション名 | WebApp, API, Database |
CostCenter | コストセンター | Engineering, Marketing |
Owner | 担当者・チーム | [email protected] |
セキュリティ考慮事項
サービスプリンシパルの管理
Client Secretのローテーション
- 定期的な更新(推奨:6か月ごと)
- 複数のシークレットを並行運用して無停止更新
最小権限の原則
- 必要なリソースグループのみに権限を限定
- カスタムロール定義の活用
ネットワークセキュリティ
{
"securityRules": [
{
"name": "Allow-HTTPS-NewRelic",
"properties": {
"protocol": "TCP",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"destinationPortRange": "443",
"access": "Allow",
"priority": 1000,
"direction": "Outbound"
}
}
]
}
高度な活用方法
Application Insights との連携
Azure Application Insightsのテレメトリデータと Infrastructure データを組み合わせた高度な分析:
連携のメリット
- エンドツーエンドの可視性: ユーザーリクエストからインフラまでの全体像
- 根本原因分析: アプリケーションエラーとインフラ問題の相関関係
- 予防的監視: パフォーマンス劣化の早期発見
Azure Functions との自動化
New Relic APIとAzure Functionsを組み合わせた監視自動化:
コスト最適化
Azure統合のコスト効率を向上させるための設定:
最適化のポイント
- ポーリング間隔の調整: 5分 → 15分(本番環境以外)
- 不要なメトリクスの無効化: 使用しないAzureサービスの監視停止
- リージョン限定: アクティブリージョンのみを監視対象に
段階的な導入戦略
フェーズ1: 基盤構築(1週間)
フェーズ2: 運用最適化
- カスタムダッシュボード: ビジネスKPIと技術メトリクスの統合
- アラートポリシー: 環境別・重要度別の通知設定
- チーム連携: Teamsや Slackとの統合
フェーズ3: 高度な活用
- 予測分析: Machine Learning Insightsの活用
- 自動化: Azure Automation runbookとの連携
- コンプライアンス: セキュリティ監査ログとの統合
よくある質問とトラブルシューティング
Q1: サービスプリンシパルが認証エラーになります
考えられる原因と対処法:
Client Secretの期限切れ
- Azure Portal → アプリの登録 → 証明書とシークレット で有効期限を確認
- 必要に応じて新しいシークレットを生成
権限不足
- サブスクリプション → アクセス制御(IAM)でReaderロールが付与されているか確認
Q2: 特定のAzureサービスのメトリクスが表示されません
チェックポイント:
サービス固有の権限
- SQL Databaseの場合:
SQL DB Contributor
ロールが必要な場合あり - App Serviceの場合:App Service プランのレベル確認
- SQL Databaseの場合:
リージョンの確認
- 監視対象のAzureサービスとNew Relic設定のリージョンが一致しているか確認
Q3: Infrastructure Agentが Azure メタデータを取得できません
対処法:
# Azureメタデータサービスの接続確認
curl -H "Metadata:true" "http://169.254.169.254/metadata/instance?api-version=2021-02-01"
# ネットワーク設定の確認
sudo netstat -rn | grep 169.254.169.254
プライベートネットワークからの通信
プライベートサブネットのAzure VMでInfrastructure Agentを使用する場合:
NAT GatewayまたはLoad Balancer
- アウトバウンドインターネット接続を許可
- New Relicのエンドポイントへの接続を可能にする
プロキシサーバー経由
- HTTP/HTTPSプロキシを設定
- Infrastructure Agent設定でプロキシを指定:
yamlproxy: http://your-proxy-server:3128
ネットワークセキュリティグループ設定
- アウトバウンド: HTTPS (443) を許可
- インバウンド: 不要(Agentはアウトバウンド接続のみ)
まとめ
New RelicのAzure統合により、複数のツールに分散していたAzure監視を統一できます。特に重要なポイント:
導入の効果
- サービスプリンシパル認証によるセキュアなアクセス管理
- リソースグループベースの効率的な監視範囲設定
- Application Insights連携による包括的なアプリケーション監視
成功のための重要ポイント
- 段階的な導入: 小さく始めて徐々に拡張
- 適切な権限設計: 最小権限の原則に基づいた設定
- 運用チームとの連携: 既存の運用フローとの統合
次のステップ
基本設定完了後
- Application Insightsとの連携設定
- チーム用カスタムダッシュボードの作成
運用成熟化
- 自動化スクリプトの導入
- 予測的アラートの設定
- コスト最適化の継続的な見直し
関連記事
Azureの特性を活かしたNew Relic統合で、より効率的で安全なクラウド監視を実現しましょう。