0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CloudWatch LogsをNewRelicへログ連携する(大阪リージョン)

Last updated at Posted at 2024-11-30

はじめに

NewRelicはITシステムのモニタリングツールで、ログの監視や分析で使用する用途がありました。クラウドサービスとログ連携も当然サポートしています。
今回AWSの大阪リージョンのCloudWatch Logsのログを連携する時に、少し苦労したのでメモを残しておきます。

ハマったこと

大阪リージョンでは、Serverless Application Repositoryに対応していないため、ログ連携するためのアプリケーションを、AWSのコンソールからウィザードで導入できませんでした。東京リージョンでは、下記のようにサーバーレスアプリケーションから選択することでウィザード画面へ遷移できます。

image.png

大阪リージョンでは、アプリケーションの作成ボタンがありません。
image.png

これは、Serverless Application Repositoryが大阪リージョンをサポートしていないためです。マイナーなリージョンを利用した場合によくあることなのかなと思いました。

行ったこと

Githubに記載されていたインストラクションに従って、マニュアルでインストールを行いました。

Manual DeploymentのSAMの手順を参考にしました。

SAMをビルドするための、EC2インスタンスをたてる

Gitのソースから、自分でアプリケーションをビルドし、Serverless Applicatonとして登録することになります。その操作用のEC2を用意します。

EC2にアタッチする下表のロールを作成します。今回は一時的なので、大雑把に権限設定します。

ロール 目的
AmazonSSMManagedInstanceCore マネジメントコンソールからEC2に接続するため
AmazonS3FullAccess ビルドされたコードを格納するS3バケットを作成するため
AWSCloudFormationFullAccess CFn操作のため
AWSLambda_FullAccess Lambdaアプリケーションをデプロイするため
IAMFullAccess Lambda用のロール作成のため

image.png

sh-5.2$ bash
[ssm-user@ip-172-31-35-168 bin]$ cd ~
[ssm-user@ip-172-31-35-168 ~]$

SAM Cli、Docker、gitをインストール

EC2にSAM Cliをインストールします。

curl -LO https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip
unzip aws-sam-cli-linux-x86_64.zip -d sam-installation
sudo ./sam-installation/install
[ssm-user@ip-172-31-35-168 ~]$ sam --version
SAM CLI, version 1.131.0

DockerはSAMのビルド時に必要となるため、こちらの記事を参考にインストールしました。

$USERのところは、ssm-userにしました。

sudo usermod -aG docker ssm-user

続いて、Gitをインストールします。

sudo yum install -y git

ようやく、SAMの手順を実行できる準備が整いました。

SAMのビルドとデプロイ

手順にしたがってコマンドを入力していきます。

git clone https://github.com/newrelic/aws-log-ingestion.git
cd aws-log-ingestion/
sam build -u --parameter-overrides 'ParameterKey=NRLicenseKey,ParameterValue=your-license-key-here'

ビルドが成功したことを確認します。
image.png

つづいて、デプロイをガイドありモードで実行します。

sam deploy --guided

デプロイのガイドでは、Stack名やリージョンを聞かれますので、入力していきます。
NRLicenseKeyには、NewRelicのログ取り込み用のAPIキーの値を入力します。
ほとんどはデフォルトでOKでした。

        Stack Name [sam-app]: newrelic-log-ingestion
        AWS Region [us-east-1]: ap-northeast-3
        Parameter NRLicenseKey:
        Parameter NRLoggingEnabled [True]:
        Parameter NRInfraLogging [True]:
        Parameter MemorySize [128]:
        Parameter Timeout [30]:
        Parameter FunctionRole []:
        Parameter LogIngestionFunctionArnExportName [LogIngestionFunctionArn]:
        Parameter PermissionsBoundary []:
        Parameter DebugLoggingEnabled [false]:
        #Shows you resources changes to be deployed and require a 'Y' to initiate deploy
        Confirm changes before deploy [y/N]:
        #SAM needs permission to be able to create roles to connect to the resources in your template
        Allow SAM CLI IAM role creation [Y/n]:
        #Preserves the state of previously provisioned resources when an operation fails
        Disable rollback [y/N]:
        Save arguments to configuration file [Y/n]:
        SAM configuration file [samconfig.toml]:
        SAM configuration environment [default]: test

デプロイ処理が成功したことを確認します。

Successfully created/updated stack - newrelic-log-ingestion in ap-northeast-3

大阪リージョンに、ログ連携用のアプリケーションが登録されました。

image.png

あとは、NewRelicの公式のドキュメントにしたがって、Lambda関数のトリガーに、ログ転送したいCloudWatch Logsのロググループを指定するだけでログ連携が開始されます。

ビルドに使用したEC2は削除可能です。削除後も登録されたアプリケーションは利用できます。

まとめ

SAMを使用してアプリケーションを直接登録することで、大阪リージョンでもCloudWatch LogsとNewRelicをログ連携するためのアプリケーションを利用できました。SAMについては、まだよくわかっていないことが多いので、あとで調べてみたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?