(パブリックベータ)New Relic Infrastructure Agentからログ送信ができるようになったのでやってみるよ

2020.04.01

New Relic Infrastructure Agentがログファイル送信に対応する新機能が発表されました。

https://blog.newrelic.co.jp/product-update/new-relic-infrastructure-agent-logging-beta/

これはアツイと思ったので早速試していきます。

※ この機能は現在パブリックベータなので、今後設定方法や動作が変更される可能性があります。

今までサーバーからLogを送るには

試す前に今までサーバーからNew Relic Logsにログを送る時はどうしなければいけなかったか確認します。

ドキュメント

ドキュメントに書かれている方法としては、

  • Fluentdプラグイン(推奨)
  • AWS CloudWatchプラグイン
  • AWS FireLensプラグイン
  • Fluent Bitプラグイン
  • Kubernetesプラグイン
  • Logstashプラグイン
  • ベクタープラグイン

上記のものがあります。推奨されているFluentdプラグインを利用している方が多いのではないでしょうか。

サーバーから直接Fluentdをかまして送ったり、

aggregatorを用意して集約後送ったりすることをしているかと思います。

その他、ログAPIを使用して送ることも可能です。

New Relic Infrastructure Agentから送るには

前提

やってみる

今回はAmazon Linux 2の環境でやってみます。

エージェントをインストールする

1.構成ファイルの作成とライセンスキー

echo "license_key:YOUR_LICENSE_KEY " | sudo tee -a /etc/newrelic-infra.yml

2.エージェントのyumリポジトリを作成する

sudo curl -o /etc/yum.repos.d/newrelic-infra.repo https://download.newrelic.com/infrastructure_agent/linux/yum/el/7/x86_64/newrelic-infra.repo

3.yum キャッシュを更新する

sudo yum -q makecache -y --disablerepo='*' --enablerepo='newrelic-infra'

4.インストール

sudo yum install newrelic-infra -y

バージョンの確認

$ newrelic-infra -version
New Relic Infrastructure Agent version: 1.11.4

以下のコマンドで実行されているか確認できます

$ ps ax | grep newrelic
 5418 ?        Ssl    0:00 /usr/bin/newrelic-infra-service
 5445 ?        Sl     0:00 /usr/bin/newrelic-infra

ログ転送機能の新しい構成ファイルを追加

1.Logging Forwarder構成フォルダーに移動

/etc/newrelic-infra/logging.d/ディレクトリが自動的に作成されています。

$ cd /etc/newrelic-infra/logging.d/

2.ログファイルを指定するYAMLファイルを作成

$ sudo vi logs.yml

以下の内容を追記してみます。

logs:
- name: "test_log"
  file: /var/log/test.log

なお、エージェントを再起動する必要はありません。 YAMLファイルを特定のディレクトリに配置するだけでログの収集が可能になります.

YAMLファイルの構成ですが、

構成パラメーター に書かれているパラメーターをサポートしていますのでご確認ください。

ログファイルに書き込んでみる

追加した/var/log/test.logに手動で何か書き込んでみます。

sudo echo "2020-04-01 14:30:31 1 send new relic logs" >> /var/log/test.log

上記を追加して保存します。

設定が正しければログが送信されるはずです。

New Relic ONEで確認

New Relic ONEのダッシュボードにいき、Logsをクリックします。

New Relic Logsの画面を確認してみると

ログが送信されていました!

送信するログの追加

今後は別のログも送信してみます。

/etc/newrelic-infra/logging.d/logs.yml に以下を追記します

- name: "messages"
  file: /var/log/messages

ダッシュボードで確認してみると

messagesの内容が送られていました。

最後に

簡単な紹介でしたが、Infrastructure Agentからログ送信を行なってみました。

Fluentdプラグインのインストール、Log Aggregatorサーバーの用意、運用などを行わずYAMLファイルをちょっと書くだけでログの送信が可能となるので手間がかなり省かれるのではないでしょうか。

開発環境等でトライアルを行い、フィードバックして正式リリースまで待ちたいと思います。