5
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?

New Relic 使ってみた情報をシェアしよう! by New RelicAdvent Calendar 2024

Day 23

【New Relic】 特定のプロセスを監視して、夜しか眠れない状態にしたい

Last updated at Posted at 2024-12-23

最初に

この記事は、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-process01-1.png

特定のプロセスが監視できるように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にて確認

newrelic-process02.png
監視したいプロセスが確認できていますね。

[備考]今回、監視したプロセスについて

動作状況を確認するための簡易ヘルスチェックです。(CloudWatchログなどを使わず簡易的に行なっています)
・サーバーにマウントしたEFSが外れたか、マウントが外れたことによる再マウントを試みたことを特定のログに出力
・各アベイラビリティゾーンのEFSマウントターゲットへtelnetコマンドで接続確認を行い結果を特定のログに出力

上記のログにて問題が発生した文字列を検知して、Slackにアラートを送る簡易的なシェルスクリプトをSupervisorでバックグラウンド実行しています。

最後に

特定のプロセスの状態が確認できるようになりました。
あとはNRQLを駆使しNew Relicダッシュボードで確認できる状態にして観測性を高め、New Relicアラートを用いてプロセスの異常時(高負荷、停止、メモリリークなど)を即座に検知してSlackなどに通知を行うことにより、問題が発生しても即時対応できる状態になります。

また、インフラエージェントで出力されたログをNew Relicに送信して監視する方法もあります。
プロセス監視かログ監視どちらが良いか、それとも両方監視して運用すべきなのか検討して知見をためてきます。

では、最後までお付き合いいただき、ありがとうございます。
あくまで一例ではありますが、New Relicをご活用いただく際のヒントになれば幸いです。
来年も何卒よろしくお願いいたします。

参考

New Relic Organizationの記事にある

を元に記事を書いています。
上記の記事は、プロセスに関する情報を取得して、New Relicへの転送データ量を最適化する方法やnewrelic-infra.ymlの設定について記載されており、より深くプロセス監視の設定方法について理解することができます。

.
.
.

無印良品ギフトカードが欲しい

5
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
5
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?