最初に
この記事は、New Relic 使ってみた情報をシェアしよう! by New Relic Advent Calendar 2024 のシリーズ2、23日目の記事です。
目的
オンプレサーバーやAmazon EC2で動いている特定のプロセスをNew Relicで監視したいと思いませんか?
バックグラウンド(nohup)やSupervisorで動かしているスクリプトやプロセス、ちゃんと正常に動いているか、つい気になりませんか?
特に、Supervisorで再起動するはずのプロセスが、なぜか再起動されずに放置され、気づかないうちに障害が発生してしまう...なんてことがあると困りますよね。こんな状況では、安心して夜も眠れません。
今回は最もフィジカルで、最もプリミティブで、そして最もフェティッシュなやり方?でいかせていただきます。
infrastructureエージェントの導入
Linuxにinfrastructureエージェントの導入は必須です。
ご利用のディストリビューションを確認して導入していきましょう。
# 設定ファイルを作成し、ライセンスキーを追加
echo "license_key: xxxx" | sudo tee -a /etc/newrelic-infra.yml
# バージョン確認
cat /etc/os-release
# Amazon Linux2(x86)を利用した場合
sudo curl -o /etc/yum.repos.d/newrelic-infra.repo https://download.newrelic.com/infrastructure_agent/linux/yum/amazonlinux/2/x86_64/newrelic-infra.repo
# リポジトリを更新
sudo yum -q makecache -y --disablerepo='*' --enablerepo='newrelic-infra'
# インストール
sudo yum install newrelic-infra -y
# サービスの状況確認
sudo systemctl status newrelic-infra
/etc/newrelic-infra.ymlの設定
インストール直後、ライセンスキーが記載されているだけになっています。
$ cat /etc/newrelic-infra.yml
license_key: xxxxxx
上記の設定でNew Relic UIを確認してみると、プロセスが確認できていない状態です。
特定のプロセスが監視できるようにnewrelic-infra.ymlを変更します。
license_key: xxxxxx
enable_process_metrics: true
include_matching_metrics:
process.name:
- efs_mount_alert
必ずinfrastructureエージェントの再起動を実施しておきましょう。
sudo systemctl restart newrelic-infr
New Relic UIにて確認
[備考]今回、監視したプロセスについて
動作状況を確認するための簡易ヘルスチェックです。(CloudWatchログなどを使わず簡易的に行なっています)
・サーバーにマウントしたEFSが外れたか、マウントが外れたことによる再マウントを試みたことを特定のログに出力
・各アベイラビリティゾーンのEFSマウントターゲットへtelnetコマンドで接続確認を行い結果を特定のログに出力
上記のログにて問題が発生した文字列を検知して、Slackにアラートを送る簡易的なシェルスクリプトをSupervisorでバックグラウンド実行しています。
最後に
特定のプロセスの状態が確認できるようになりました。
あとはNRQLを駆使しNew Relicダッシュボードで確認できる状態にして観測性を高め、New Relicアラートを用いてプロセスの異常時(高負荷、停止、メモリリークなど)を即座に検知してSlackなどに通知を行うことにより、問題が発生しても即時対応できる状態になります。
また、インフラエージェントで出力されたログをNew Relicに送信して監視する方法もあります。
プロセス監視かログ監視どちらが良いか、それとも両方監視して運用すべきなのか検討して知見をためてきます。
では、最後までお付き合いいただき、ありがとうございます。
あくまで一例ではありますが、New Relicをご活用いただく際のヒントになれば幸いです。
来年も何卒よろしくお願いいたします。
参考
を元に記事を書いています。
上記の記事は、プロセスに関する情報を取得して、New Relicへの転送データ量を最適化する方法やnewrelic-infra.ymlの設定について記載されており、より深くプロセス監視の設定方法について理解することができます。
.
.
.
無印良品ギフトカードが欲しい