Linux環境でNRDOTコレクターを使用してMicrosoft SQL Server監視を設定し、AWS RDS for SQL Serverインスタンスをモニターします。
前提条件
ご使用の環境がNew Relicの互換性および前提条件を満たしていることを確認してください。
NRDOT Collectorのセットアップ
RDS SQL Serverインスタンスに接続できるLinux EC2インスタンスまたはローカルのLinuxマシンにNRDOT Collectorをインストールします。
重要
RDS SQL Serverインスタンスへのネットワーク接続があるEC2インスタンスまたはローカルマシンにNRDOT Collectorをインストールします。セキュリティグループがポート1433(またはカスタムポート)でのインバウンド接続を許可していることを確認してください。
Debian/Ubuntu
AMD64(x86_64)アーキテクチャーの場合:
bash$NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_amd64.deb" --output nrdot-collector.deb && sudo dpkg -i nrdot-collector.debARM64アーキテクチャーの場合:
bash$NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_arm64.deb" --output nrdot-collector.deb && sudo dpkg -i nrdot-collector.debRHEL/CentOS
AMD64(x86_64)アーキテクチャーの場合:
bash$NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_x86_64.rpm" --output nrdot-collector.rpm && sudo rpm -ivh nrdot-collector.rpmARM64アーキテクチャーの場合:
bash$NRDOT_VERSION=$(curl -s https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest | grep '"tag_name":' | awk -F'"' '{print $4}') && curl -L "https://github.com/newrelic/nrdot-collector-releases/releases/download/${NRDOT_VERSION}/nrdot-collector_${NRDOT_VERSION}_linux_arm64.rpm" --output nrdot-collector.rpm && sudo rpm -ivh nrdot-collector.rpm
データベースユーザーを構成する
RDS SQL Serverインスタンスに接続し、適切な権限を持つnewrelic監視ユーザーを作成します。
Linuxインスタンス上に以下の内容で
nr-grant-permission-rds.sqlという名前のファイルを作成します:USE [master];GOCREATE LOGIN [newrelic] WITH PASSWORD = '<PASSWORD>';GO-- Instance-level permissionsGRANT VIEW SERVER STATE TO [newrelic];GRANT VIEW ANY DEFINITION TO [newrelic];GRANT VIEW ANY DATABASE TO [newrelic];GO-- Grant read access privileges to all user databasesDECLARE @name SYSNAME;DECLARE db_cursor CURSOR READ_ONLY FORWARD_ONLY FORSELECT [name]FROM [master].[sys].[databases]WHERE [name] NOT IN ('master', 'msdb', 'model', 'rdsadmin', 'distribution')AND [state] = 0; -- Only online databasesOPEN db_cursor;FETCH NEXT FROM db_cursor INTO @name;WHILE @@FETCH_STATUS = 0BEGINBEGIN TRYEXEC('USE [' + @name + '];IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''newrelic'')CREATE USER [newrelic] FOR LOGIN [newrelic];');END TRYBEGIN CATCHPRINT 'Error on ' + @name + ': ' + ERROR_MESSAGE();END CATCHFETCH NEXT FROM db_cursor INTO @name;ENDCLOSE db_cursor;DEALLOCATE db_cursor;GORDSマスターユーザーの認証情報を使用してスクリプトを実行します。
<YOUR-RDS-ENDPOINT>を実際のRDSエンドポイントに、<Your_Master_Password>をマスターパスワードに置き換えます:bash$sqlcmd -S <YOUR-RDS-ENDPOINT> -U <YOUR_MASTER_USER> -P '<Your_Master_Password>' -C -i nr-grant-permission-rds.sql(オプション)ユーザーが正常に作成されたことを確認します:
bash$sqlcmd -S <YOUR-RDS-ENDPOINT> -U <YOUR_MASTER_USER> -P '<Your_Master_Password>' -C -Q "SELECT sp.name AS [User], p.permission_name AS [Permission_Granted] FROM sys.server_permissions p JOIN sys.server_principals sp ON p.grantee_principal_id = sp.principal_id WHERE sp.name = 'newrelic';"ヒント
RDSの場合:RDSマスターユーザー名とパスワードを使用して、これらのコマンドを実行します。スクリプトは、AWSによって予約されている
rdsadminデータベースを自動的に除外します。
NRDOT Collectorを構成する
監視ニーズに基づいて設定タイプを選択してください:
設定パラメーター
以下の表は、nrsqlserverレシーバーの主要な設定パラメーターについて説明しています:
| パラメータ | 説明 |
|---|---|
<YOUR_USERNAME> | 認証用のデータベースユーザー名を入力してください |
<YOUR_NEWRELIC_PASSWORD> | The password you set for the newrelic user |
<YOUR-RDS-ENDPOINT> | Your RDS SQL Server endpoint (e.g., mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com) |
port | SQL Serverのポート番号を入力します。デフォルト値は1433です。 |
<YOUR_OTLP_ENDPOINT> | New Relic OTLP エンドポイントを入力します。詳細については、 New Relic OTLP エンドポイントのドキュメントを参照してください。 |
<YOUR_LICENSE_KEY> | New Relicのライセンスキーを入力してください。 |
ヒント
注意:max_concurrent_queriesオプションは、各スクレイプサイクル中にレシーバーがSQL Serverに対して並列に実行するメトリクスクエリの数を制御します。
receivers: nrsqlserver: max_concurrent_queries: 4 # default is 4 if omitted or set to 0ヒント
注:利用可能なすべてのメトリクスを有効にする場合は、メモリリミッターによるデータのドロップを防ぐために、limit_mibの値を増やしてください(例:1000)。
コレクターの設定ファイルを更新する
次のコマンドを実行して、サービスの設定を編集します:
bash$sudo nano /etc/nrdot-collector/nrdot-collector.conf新しいmssql-config.yamlファイルを指すように設定パスを更新します:
bash$OTELCOL_CONFIG="/etc/nrdot-collector/mssql-config.yaml"
NRDOT Collectorの設定の検証
NRDOT Collectorの設定を検証して、正しくフォーマットされ、適切に機能することを確認します。
$sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/mssql-config.yamlNRDOTコレクターを再起動します
設定を更新した後、NRDOT Collectorサービスを再起動します:
$sudo systemctl restart nrdot-collectorヒント
新しい設定を確実に有効にするために、構成の変更後は必ず NRDOT コレクター サービスを再起動してください。
次のステップ
Linux RDS監視を設定した後: