姉さん、大変です。New Relicを使ったことがないと言えなくなりました。
1.はじめに
今日は、2021年11月27日。気づいたら、アドベントカレンダー投稿まで今日を入れて残り5日しかないという状況になりました。
Qiitaさんからも、もうすぐだよっと、親切なメッセージをいただいている状態。AWSのことしか投稿していない私が、今回なぜ、New Relicで投稿しようと思ったのか、、、、きっかけは、元同僚であり、現在は、New Relic でご活躍されている清水毅氏に、ふとしたことで質問したときに、「もう、これ以上、、New Relic を使っていないなんて言えない」と私自身が思ったことがきっかけでした。でも、それから、1か月以上が経過した今、この時点でも、New Relicのコンソールにログインしたことも、アカウントさえも持っていません(実は持ってたみたいだけど)。ログインもしてません(実はログインしていたみたいだけど記憶もなく、パスワードも失念)。本も読めてません。
が、この状況から今回、アドベントカレンダーに挑戦し、「New Relic 完全に理解した」と言えるようになりたいと思い2時間限定でブログを書きながらまず挑戦してみました。すいません。初心者のしょぼしょぼブログです。
2.まとめ
- アカウントは3分程度で作れる(実際には、持ってたみたいだけど)
- EC2(Cloud9)環境には、2分程度で導入完了。あっさりと連携。
- Tomcatもコーディングの変更なく、Dockerfileの修正、build/deployであっさり連携
3.目的
とはいえ、何を目的にするかが重要かなと思います。
そこで、まずは、目的を考えてみましたが、まずは 次に清水さんと会話する機会に
- 「核心を突く良い質問ですね~」
- 「そうなんです。そこが大事なんです~」
と言ってもらえるようになること。全然技術的じゃない。では、そうなるためには、まず何をすればよいか、、、
- アカウントを作る
- ログインする
- EC2やFargateと連携させる
え?こんなんで「核心を突く良い質問ですね~」とか「そうなんです。そこが大事なんです~」とか言ってもらえると思ってるの?と思うかもしれないですが、清水さんは大人なので、きっと言ってくれるはず。
ということで、今日は、いまだ、アカウントも持っていない、New Relic 実践入門も読んだことが無い、Amazon CloudWatch しかかじったことのない私が、New Relicに入門したいと思います。
4.New Relic のアカウントづくり。
さて、アカウントを作ればよいと思うものの、どこから作るのかも今時点ではわかってません。現在時刻はこちら。
何分で作れるのかな。よーいドン。
画面キャプチャーしながらなので、時間はかかるけど、まずは、以下で検索。え?そこはマニュアルでしょ?と思うかもしれませんが、「何も知らない人が思い付きでどれくらい簡単にできるか?」ということを考えると、やっぱ、Googleでしょ。
すると、幾つか該当リンクが表示された中で、私がおおお!っておもったのが、こちら
無料ユーザーアカウント月間100GBまでのデータ容量
100GBだと!!ログ送りたい放題じゃないか!って思ったわけです。ということで、リンク先に行ってみます。ブログ書きながら、ここまで、7分ですね、まあ、検索&リンククリックで10秒で終わると思います。
はい、仮登録を行います。
1分程度で入力を終え仮登録をしたらお礼をいただく。それがこちら。
そして、本登録へ進むと、こんな感じで、英語の画面に切り替わったけど、内容は簡単。名前と先ほど仮登録で入れたメアドを入力
Start Now を押したら、3秒程度で以下の画面が表示されたのでメールを確認しました。
5. 衝撃の事実。
メール、1分後には、届きました。
でも、タイトルがおかしい。
むむむ。どうやら、私がアカウントを持っていないっていうのは、嘘っぽい。
むしろ既にNew Relicのアカウントを持って居たっぽい?
まあ、いいか、とりあえず、記憶からは完全に消えてしまってるので、アカウントを持っていない感じは継続して、このまま進めてみます。
Create New Organizationをクリック
すると・・・パスワードリセット画面に行く。まあ、そうだよね、パスワードなんて覚えてるわけないしね。
リセットが完了すると、今度は、データの保存先を選択することができるらしい。
とりあえず、何も知らない私は、よし、じゃあ、シンガポール当たりを選んでみよう!って思ったらどうやら、アメリカとヨーロッパの二択。アメリカにしておきました。
困った、思い付きで始めたから、アプリも何もない。最近は、EC2も極力Terminateしてるし・・・。
6. どこに入れようか
ここまで、ブログを書きながら30分が経過。
ここまでドキュメントを読まずに来たけど、いよいよ、これは何を入れる気だ?んん?と思い、画面右側のSee our docsをクリック。
If you haven't already, sign up for a free New Relic account so you can instrument your systems and send telemetry data to New Relic. Our guided install creates a customized CLI command for your environment that downloads and installs the New Relic CLI and the infrastructure agent.
なるほど。New Relic CLIの導入ね。ふむふむ。じゃあ、とおもって、ドキュメントにあった。ボタンを押すとさっきと同じ画面に遷移。Installation plan画面。
どこに入れようかなとおもたけど、「取り合えず Cloud9が入っている、Amazon Linux 2の環境に入れてみるか」と試してみた。
ということで、Linux用のダウンロード&インストールコマンドを実行。引数には、API KeyとアカウントIDが含まれてる。うっかりBlogに掲載するところだった。。。
curl -Ls https://download.newrelic.com/install/newrelic-cli/scripts/install.sh | bash && sudo NEW_RELIC_API_KEY=NNNN-ABCDEFGHIJKLMN NEW_RELIC_ACCOUNT_ID=0000000 /usr/local/bin/newrelic install
Log integrationとGolden Signal Alertsを両方がデフォルトで選ばれてるな~と思いつつ、念のため、検索すると、清水さんの記事もある。
まあ、じゃあ、デフォルトで、という感じで進める。
お、とりあえず、あっという間に導入で来たな。じゃあ、見せてもらおうか、New RelicのUIとやらを。。。ということで、インフラデータとログデータを覗き見。
おおお、ちゃんと計測されている。ログも、連携されている。楽ちんだね。とはいえ、こんな1台のEC2にAgentを入れただけで完全に理解したとは言わない。
7. 二台目を動かす。。そして、Tomcatへ
まあ、同じことの繰り返し。追加先は、別のリージョンにしてみようということで、シンガポール。すぐ、二台目も追加された。
ここまで、特に困ることもなく進んだので、TomcatをFargateで起動して試してみることに。
これも、なんとなく、UIを見ながらやってみた。
画面上部にある検索バーにtomcatを入れたが出てこなかったのでJavaを入れて選択。
Begin Installationをクリック。
すると、こんな画面が出るも、。これ、JavaのAgentを環境に導入する感じだよね。このコマンドは違うよね~って思い画面下部にある。[Other Java installation options]をクリック。
すると、私のアカウント用に設定された設定ファイルをダウンロード可能な画面に遷移し親切にもtomcatのディレクトリに配置する指示や環境変数に追加する指示があるので、Dockerfileにそれらを書き、ビルド
ちなみにDocker Fileはこちら。こちらのImageをベースに作るとWebappsは空っぽなので、アプリは空状態で今回はしのぎました。
FROM public.ecr.aws/docker/library/tomcat:latest
WORKDIR /usr/local/tomcat/
RUN curl -O "http://download.newrelic.com/newrelic/java-agent/newrelic-agent/current/newrelic-java.zip"
RUN ["apt-get", "install", "unzip"]
RUN ["unzip", "newrelic-java.zip", "-d", "/usr/local/tomcat"]
ENV JAVA_OPTS="$JAVA_OPTS -javaagent:/usr/local/tomcat/newrelic/newrelic.jar"
COPY newrelic.yml /usr/local/tomcat/newrelic/
# run the Tomcat Server
CMD ["/usr/local/tomcat/bin/startup.sh", "run"]
Docker Imageをビルド後にECRにPush後起動したら・・・・なんか連携されたっポイ。完全に理解した!!
姉さん、、、
大変です。Lambdaと連携したいです。Lambda-SNS-SQS-Lambdaがどう可視化されるかみてみたいとです。