Monitoring
Panel yang di-monitor = masalah kelihatan sebelum user complain.
Log utama
| Komponen | Lokasi |
|---|---|
| Panel (Laravel) | /var/www/pterodactyl/storage/logs/laravel-YYYY-MM-DD.log |
| Nginx access | /var/log/nginx/access.log |
| Nginx error | /var/log/nginx/error.log |
| PHP-FPM | /var/log/php8.3-fpm.log |
| Wings | journalctl -u wings |
| MySQL | /var/log/mysql/error.log |
| Redis | /var/log/redis/redis-server.log |
Live tail
bash
# Semua log panel
tail -f /var/www/pterodactyl/storage/logs/laravel-*.log
# Wings
journalctl -u wings -f
# Nginx error
tail -f /var/log/nginx/error.logMetric dasar
CPU / memory / disk:
bash
htop
df -h
free -hDocker container di node:
bash
docker statsPrometheus + Grafana
Setup rekomendasi untuk multi-node.
1. Install node exporter di semua node
bash
useradd --no-create-home --shell /bin/false node_exporter
curl -L https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-*.linux-amd64.tar.gz | tar -xzv
mv node_exporter-*/node_exporter /usr/local/bin/Systemd service:
ini
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target2. Install Prometheus di panel server
Config prometheus.yml:
yaml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'panel'
static_configs:
- targets: ['localhost:9100']
- job_name: 'nodes'
static_configs:
- targets:
- 'node1.aryapanel.xyz:9100'
- 'node2.aryapanel.xyz:9100'3. Grafana dashboard
Import dashboard 1860 (Node Exporter Full) di grafana.com/dashboards.
Alert yang wajib
| Metric | Threshold | Action |
|---|---|---|
| CPU > 90% selama 5 menit | Alert | Cek server mana yang overload |
| Memory > 90% | Alert | Cek OOM risk |
| Disk > 85% | Alert | Cleanup / expand |
| Wings heartbeat down > 2 menit | Critical | Node offline, urgent |
| Nginx 5xx > 10/menit | Warning | Cek panel error log |
| SSL cert expire < 7 hari | Warning | Renew certbot |
Uptime monitoring
Untuk external check, pakai:
- UptimeRobot — gratis, 5 menit interval
- BetterStack — status page bawaan
- StatusCake — banyak region
Monitor URL:
https://panel.aryapanel.xyz(200 OK)https://panel.aryapanel.xyz/api/client(401 Unauthorized = healthy, tidak crash)- Per node: game server port (contoh
node1.aryapanel.xyz:25565)
Log aggregation
Kalau punya banyak node, kirim log ke sentral:
- Loki + Promtail (rekomendasi, lightweight)
- ELK stack (Elasticsearch + Logstash + Kibana)
- Grafana Cloud (managed, ada free tier)
Sentry untuk error panel
Panel bisa integrate dengan Sentry untuk error tracking. Edit .env:
SENTRY_LARAVEL_DSN=https://xxx@sentry.io/yyyInstall package:
bash
composer require sentry/sentry-laravelSetiap error 500 akan terkirim ke Sentry dengan stack trace lengkap.