경량 컨테이너 모니터링: Podman에서 Beszel 설정

발행: (2026년 3월 2일 오후 07:10 GMT+9)
5 분 소요
원문: Dev.to

I’m ready to translate the text, but I don’t see the content you’d like me to translate—only the source line is provided. Could you please share the full text you want translated? Once I have it, I’ll keep the source line unchanged and translate the rest into Korean while preserving the original formatting.

Next step: Open http://:8090 in a browser, create the admin user, and note the Public Key and Token shown on the hub UI.

When adding the local system in the hub UI, use:

  • Name: Your system name
  • Host / IP: /beszel_socket/beszel.sock

Beszel – Lightweight Monitoring for Podman Containers

Below is a step‑by‑step guide for deploying Beszel Hub and Beszel Agent (both local and remote) using Podman quadlet files. All commands are shown as they would appear on a Raspberry Pi (or any Linux host).

1. Beszel Hub Deployment

Create the required directories

mkdir -p /home/solifugo/pods/beszel/beszel_data
mkdir -p /home/solifugo/pods/beszel/beszel_socket

Quadlet file for the hub

~/.config/containers/systemd/beszel_hub.container

[Unit]
Description=beszel hub

[Container]
Image=docker.io/henrygd/beszel
ContainerName=beszel_hub
AutoUpdate=registry
Volume=/home/solifugo/pods/beszel/beszel_data:/beszel_data
Volume=/home/solifugo/pods/beszel/beszel_socket:/beszel_socket
PublishPort=8090:8090

[Service]
Restart=unless-stopped

[Install]
WantedBy=multi-user.target default.target

Start the hub

systemctl --user daemon-reload
systemctl --user start beszel_hub.service

Verify it’s running:

podman ps
# Example output
# CONTAINER ID  IMAGE                     COMMAND               CREATED          STATUS          PORTS                     NAMES
# 641ede03f72a  docker.io/henrygd/beszel  serve --http=0.0...  3 minutes ago    Up 3 minutes    0.0.0.0:8090->8090/tcp   beszel_hub

다음 단계: 브라우저에서 http://:8090을 열고 관리자 계정을 만든 뒤, 허브 UI에 표시되는 Public KeyToken을 기록합니다.

허브 UI에서 로컬 시스템을 추가할 때는 다음을 사용합니다:

  • Name: Your system name
  • Host / IP: /beszel_socket/beszel.sock

2. Beszel Agent Deployment – Local

Create the data directory

mkdir -p /home/solifugo/pods/beszel/beszel_agent_data

Quadlet file for the local agent

~/.config/containers/systemd/beszel_agent.container

[Unit]
Description=beszel agent

[Container]
Image=docker.io/henrygd/beszel-agent:latest
ContainerName=beszel_agent
AutoUpdate=registry
User=1001                         # UID that owns the podman socket
Volume=/run/user/1001/podman/podman.sock:/run/user/1001/podman/podman.sock:ro
Volume=/home/solifugo/pods/beszel/beszel_agent_data:/var/lib/beszel-agent
Volume=/home/solifugo/pods/beszel/beszel_socket:/beszel_socket
Environment=KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOgfG4iXqHmqcYT/LhNQvgNCRA0HIIxEHjnk79rg+ypF" \
            HUB_URL="http://localhost:8090" \
            TOKEN="5f2b-126b3d08f8-a8dd-e796537cf8" \
            LISTEN=/beszel_socket/beszel.sock
Network=host

[Service]
Restart=unless-stopped

[Install]
WantedBy=multi-user.target default.target

Start the local agent

systemctl --user daemon-reload
systemctl --user start beszel_agent.service

Check that it’s up:

podman ps
# Example output (last line is the agent)
# 5dd1a629b6bb  docker.io/henrygd/beszel-agent:latest  ...  Up 16 seconds  beszel_agent

Now go back to the hub UI → Add system → you should see the newly registered local system.

3. Beszel Agent Deployment – Remote

If the agent runs on a different host, you only need to point the hub to the host’s IP/port (instead of a Unix socket).

One‑liner podman run for a remote agent

podman run -d --name beszel-agent \
  --user 1000 \
  --network host \
  --restart unless-stopped \
  -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro \
  -e KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOgfG4iXqHmqcYT/LhNQvgNCRA0HIIxEHjnk79rg+ypF" \
  -e HUB_URL="http://192.168.0.130:8090" \
  -e TOKEN="5be-0f813ae513-27d9-83664c253c" \
  -e LISTEN=45876 \
  docker.io/henrygd/beszel-agent:latest

Replace 192.168.0.130 with the IP address of your hub.

After the container starts, add the remote system in the hub UI using the host’s IP and the port you supplied (LISTEN=45876).

4. Additional Details

Ensure the Podman socket is active

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

> **Source:** ...

```bash
n.socket
systemctl --user status podman.socket

다음과 같은 출력이 나타납니다:

 podman.socket - Podman API Socket
   Loaded: loaded (/usr/lib/systemd/user/podman.socket; enabled; preset: enabled)
   Active: active (listening) since ...
   Listen: /run/user/1001/podman/podman.sock (Stream)

Raspberry Pi에서 흔히 발생하는 문제

컨테이너(예: systemd-wordpress)를 모니터링할 때 다음과 같은 오류가 발생할 수 있습니다:

Error getting container stats err="systemd-wordpress - bad memory stats - see https://github.com/henrygd/beszel/"

이는 일부 ARM 커널에서 알려진 제한 사항입니다. 해결 방법이나 업데이트는 링크된 이슈를 확인하십시오.

TL;DR 빠른 명령

# Hub
mkdir -p ~/pods/beszel/beszel_data ~/pods/beszel/beszel_socket
# (create beszel_hub.container as shown above)
systemctl --user daemon-reload && systemctl --user start beszel_hub.service

# Local Agent
mkdir -p ~/pods/beszel/beszel_agent_data
# (create beszel_agent.container as shown above)
systemctl --user daemon-reload && systemctl --user start beszel_agent.service

# Remote Agent (example)
podman run -d --name beszel-agent \
  --user 1000 --network host --restart unless-stopped \
  -v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock:ro \
  -e KEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOgfG4iXqHmqcYT/LhNQvgNCRA0HIIxEHjnk79rg+ypF" \
  -e HUB_URL="http://:8090" \
  -e TOKEN="" -e LISTEN=45876 \
  docker.io/henrygd/beszel-agent:latest

이제 로컬 및 원격 호스트에서 Podman 컨테이너를 위한 완전한 Beszel 모니터링 스택을 사용할 수 있습니다. 즐거운 모니터링 되세요!

문제

issues/144
Error getting container stats err="mariadb - bad memory stats - see https://github.com/henrygd/beszel/issues/144"

Solution

아래 가이드에 설명된 대로 **/boot/cmdline.txt**에 필요한 구성 요소를 추가합니다:

Updated cmdline.txt

[|=| raspi in ~ ]$ sudo cat /boot/cmdline.txt
console=tty1 root=PARTUUID=dc0d2f94-02 rootfstype=ext4 fsck.repair=yes rootwait cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1
[|=| raspi in ~ ]$

Running Podman on Crostini (Chromebook Linux Subsystem)

Crostini(또는 Chrome OS Flex) 내부에서 Podman을 실행해야 하는 경우, 설정 안내 및 문제 해결 단계에 대한 다음 리소스를 확인하십시오:

  • Setup Podman on Chrome OS Flex and CrostiniSetup Podman on Chrome OS Flex and Crostini.md (문서에 제공된 추가 문제 해결 명령을 실행해야 할 수도 있습니다).
0 조회
Back to Blog

관련 글

더 보기 »

일이 정신 건강 위험이 될 때

markdown !Ravi Mishrahttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fu...