5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Podmanでプライベートロケーションを立てて外形監視してみた!

Last updated at Posted at 2025-01-20

New Relicで外形監視をする際に監視対象がプライベートネットワーク内にある場合、Synthetics Job Managerを使うことでプライベートネットワーク内でも簡単に外形監視を実施できます。最近のアップデートで、podman上でSynthetics Job Managerを動作できるようになったので試してみたいと思います。

ちなみに、Synthetics Job Managerはpodmanの他にDockerやKubernetesでも動作させることが可能です。

:one: 動作環境の要件確認

まずは下記のページでSynthetics Job Managerを動作させるpodmanの要件を確認してください。

:two: Podmanの事前設定

PodmanでSynthetics Job Mangerを動かす際に事前にサンドボックス技術使うようにしましょう。
詳細は下記の手順を参考にしてください。

1. Podmanのインストール

インストールされていない場合は下記を参考に5.0.0-ce以上をインストールしてください。

2. Rootless実行の設定

Podman設定ディレクトリの作成:

mkdir -p ~/.config/containers
touch ~/.config/containers/containers.conf

containers.confファイルの編集:

vi ~/.config/containers/containers.conf

以下の内容を追加:

[engine]
runtime = "crun"
cgroup_manager = "systemd"

3. cgroups v2の有効化(RHELのみ)

GRUBの編集:

sudo sed -i 's/GRUB_CMDLINE_LINUX="/&systemd.unified_cgroup_hierarchy=1 /' /etc/default/grub
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo reboot

4. システム全体のcgroups委譲の設定

sudo mkdir -p /etc/systemd/system/user@.service.d/
echo -e "[Service]\nDelegate=yes" | sudo tee /etc/systemd/system/user@.service.d/delegate.conf > /dev/null

5. ユーザーレベルのsystemdサービスの設定

mkdir -p ~/.config/systemd/user/podman.service.d
echo -e "[Service]\nDelegate=yes" > ~/.config/systemd/user/podman.service.d/override.conf

6. Podmanソケットの有効化と起動

systemctl --user enable podman.socket
systemctl --user start podman.socket
systemctl --user status podman.socket

7. Podman APIサービスの作成と設定

サービスファイルの作成:

mkdir -p ~/.config/systemd/user
touch ~/.config/systemd/user/podman-api.service
vi ~/.config/systemd/user/podman-api.service

以下の内容を追加:

[Unit]
Description=Podman API Service
After=default.target

[Service]
Type=simple
ExecStart=/usr/bin/podman system service -t 0 tcp:0.0.0.0:8000
Restart=on-failure

[Install]
WantedBy=default.target

8. Podman APIサービスの有効化と起動

systemctl --user daemon-reload
systemctl --user enable podman-api.service
systemctl --user start podman-api.service
systemctl --user status podman-api.service

これらの手順でNew Relic Synthetics Job ManagerをPodmanで実行するための環境が整います。

:three: Podman上でSynthetics Job Managerを起動

それでは、Podman上でSynthetics Job Managerを起動しましょう!
詳細は下記を参照ください。

1. プライベートロケーションのキーを取得

New Relicで one.newrelic.com > Synthetic monitoring > Private locations を開き、[Create private location]をクリックします。

image.png

プライベートロケーションの名称を入れて、[Generate key]をクリックして、

[View Private Location]をクリック。

さらに[Edit private location]をクリックすることで、Private location Keyを確認することができます。

image.png

image.png

2. Job Managerを起動

Podを起動:

それぞれ適切な値を入れてください。

  • YOUR_POD_NAMEにはPodの名前を設定
  • IP_ADDRESSはpodmanが動いているホストのIPアドレス
podman pod create --network slirp4netns --name YOUR_POD_NAME --add-host=podman.service:IP_ADDRESS

Job Mangerを起動:

それぞれ適切な値を入れてください。

  • YOUR_PRIVATE_LOCATION_KEYには先ほど取得したプライベートロケーションのキー
  • YOUR_CONTAINER_NAMEにはコンテナの名前を設定
  • YOUR_POD_NAMEは先程つけたPodの名前(2箇所あるので注意してください)
podman run \
--name YOUR_CONTAINER_NAME \
--pod YOUR_POD_NAME \
-e "PRIVATE_LOCATION_KEY=YOUR_PRIVATE_LOCATION_KEY" \
-e "CONTAINER_ENGINE=PODMAN" \
-e "PODMAN_API_SERVICE_PORT=YOUR_PODMAN_API_SERVICE_PORT" \
-e "PODMAN_POD_NAME=YOUR_POD_NAME" \
-d \
--restart unless-stopped \
newrelic/synthetics-job-manager:latest

ログで起動を確認:

podman logs --follow YOUR_CONTAINER_NAME

:four: Syntheticsの設定でプライベートロケーションを選択

それでは実際にpodmanで動いているJob Managerを使って外形監視をしてみます。
New Relicで one.newrelic.com > Synthetic monitoring > Monitors を開き、[Create monitor]をクリックします。

image.png

今回はPingを選択します。

image.png

このPing監視の名称と対象のURLをしていします。

image.png

Select locationのPrivate locationにpodmanで動かしているJob Managerが表示されるのでコチラを選択します。

image.png

最後に[save monitor]をクリックして設定完了です。

image.png

その他

New Relicでは、新しい機能やその活用方法について、QiitaやXで発信しています!
無料でアカウント作成も可能なのでぜひお試しください!

New Relic株式会社のX(旧Twitter)Qiita OrganizationOrganizationでは、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。

無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?