Docs: app logs archived nightly and kept forever on the backup server
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -569,6 +569,9 @@ anyone who can read this repo can forge a token for any user.**
|
|||||||
- **دفترِ خرید** (`payment.PaymentEvent`، از ۲۰۲۶-۱۰-۱۳، `44ad2ea`): هر قدمِ خرید یک ردیف؛ با WAL به ۲۴۷ میرود و هر ۶ ساعت
|
- **دفترِ خرید** (`payment.PaymentEvent`، از ۲۰۲۶-۱۰-۱۳، `44ad2ea`): هر قدمِ خرید یک ردیف؛ با WAL به ۲۴۷ میرود و هر ۶ ساعت
|
||||||
`zareian-pg-export-events` آن را (با سفارش/تراکنش) CSV در `~/zareian-pgbackup/payment-log/` میکند. سنجیده: کالبکِ جعلی روی ۲۴۹ → ردیف → CSVِ ۲۴۷.
|
`zareian-pg-export-events` آن را (با سفارش/تراکنش) CSV در `~/zareian-pgbackup/payment-log/` میکند. سنجیده: کالبکِ جعلی روی ۲۴۹ → ردیف → CSVِ ۲۴۷.
|
||||||
نسنجیده: یک خریدِ واقعی تا آخر. شرح: `docs/operations.md` «دفترِ خرید».
|
نسنجیده: یک خریدِ واقعی تا آخر. شرح: `docs/operations.md` «دفترِ خرید».
|
||||||
|
- **لاگِ برنامه برای همیشه** (از ۲۰۲۶-۱۰-۱۳، `3559c43`): `LOG_FILE_ROTATION=external` در `.env`ِ ۲۴۹ (بکاپ:
|
||||||
|
`.deploy-backups/env-before-log-rotation-20261013-175453`)؛ آرشیوِ فشردهی شبانه روی ۲۴۹ (۳۰ روز) و کشیدنِ ساعتی به
|
||||||
|
`~/zareian-pgbackup/app-logs/`ِ ۲۴۷ (هرگز پاک نمیشود) با کلیدِ forced-command. شرح: `docs/operations.md` «لاگِ برنامه».
|
||||||
- **سنجیده (۲۰۲۶-۱۰-۱۰):** کلید شِل نمیگیرد و تونل به پورتِ دیگر رد میشود؛ `restore-check.sh` روی ۲۴۷ شمارش و آخرین
|
- **سنجیده (۲۰۲۶-۱۰-۱۰):** کلید شِل نمیگیرد و تونل به پورتِ دیگر رد میشود؛ `restore-check.sh` روی ۲۴۷ شمارش و آخرین
|
||||||
زمانِ کاربر/ورود/سفارش/تراکنش/تغییرِ وضعیت را برابرِ ۲۴۹ داد؛ یک ردیفِ آزمایشی که بعد از نسخهی کامل روی ۲۴۹ نوشته شد
|
زمانِ کاربر/ورود/سفارش/تراکنش/تغییرِ وضعیت را برابرِ ۲۴۹ داد؛ یک ردیفِ آزمایشی که بعد از نسخهی کامل روی ۲۴۹ نوشته شد
|
||||||
۲ ثانیه بعد در بازیابیِ ۲۴۷ بود (جدولش پاک شد). **نسنجیده:** ریبوتِ ۲۴۷، قطعیِ طولانی تا `lost`، اجرای خودکارِ timer
|
۲ ثانیه بعد در بازیابیِ ۲۴۷ بود (جدولش پاک شد). **نسنجیده:** ریبوتِ ۲۴۷، قطعیِ طولانی تا `lost`، اجرای خودکارِ timer
|
||||||
|
|||||||
@@ -95,6 +95,22 @@ curl -i https://mathapi.tadrisino2.ir/api/health
|
|||||||
`payment-events-*`، `orders-*`، `transactions-*`؛ ۱۴ تای آخرِ هر نوع میماند. شکستش در
|
`payment-events-*`، `orders-*`، `transactions-*`؛ ۱۴ تای آخرِ هر نوع میماند. شکستش در
|
||||||
`journalctl -u zareian-pg-export-events`ِ ۲۴۷. زیرِ ۳ گیگ فضای آزاد اجرا نمیشود.
|
`journalctl -u zareian-pg-export-events`ِ ۲۴۷. زیرِ ۳ گیگ فضای آزاد اجرا نمیشود.
|
||||||
|
|
||||||
|
### لاگِ برنامه (`app.log`): برای همیشه روی ۲۴۷
|
||||||
|
|
||||||
|
با `LOG_FILE_ROTATION=external` در `.env`ِ ۲۴۹ برنامه لاگ را پاک نمیکند (`WatchedFileHandler`). هر شب ۰۰:۰۵
|
||||||
|
`zareian-applog-archive.timer` (۲۴۹) با `ops/applogs/archive-app-log.sh` فایل را به `logs/archive/app-<UTC>.log.gz`
|
||||||
|
میبرد و فشرده میکند؛ هر ساعت `zareian-applog-pull.timer` (۲۴۷) با `bin/pull-app-logs.sh` فایلهای تازه را به
|
||||||
|
`~/zareian-pgbackup/app-logs/` میآورد (`gzip -t` پیش از نگهداشتن) و **هرگز پاک نمیکند** (تصمیمِ مالک ۲۰۲۶-۱۰-۱۳).
|
||||||
|
روی ۲۴۹ فقط ۳۰ روز میماند و فقط فایلی پاک میشود که ۲۴۷ گرفتنش را تأیید کرده (`.shipped`).
|
||||||
|
|
||||||
|
دسترسی: کلیدِ `~/.ssh/zareian_applogs`ِ ۲۴۷ در `authorized_keys`ِ ۲۴۹ با
|
||||||
|
`restrict,command="…/ops/applogs/serve-archive.sh"` است: فقط `list`، `get NAME`، `ack NAME`؛ شِل و پورت ندارد
|
||||||
|
(سنجیده: `id` و `cat /etc/passwd` → `bad request`). بکاپِ `authorized_keys` پیش از افزودن کنارش است.
|
||||||
|
|
||||||
|
حجم (برآورد، نه سنجش): لاگِ JSON حدودِ ۱۵ برابر فشرده میشود (۷۰۰ک → ۴۰ک در اولین اجرا)؛ با ۶۰۰ کاربرِ فعال
|
||||||
|
حدودِ ۳۰ مگِ خام و ۲ تا ۳ مگِ فشرده در روز، یعنی حدودِ ۱ گیگ در سال روی ۲۴۷. اگر آرشیوِ شبانه بخوابد و
|
||||||
|
`app.log` از ۲۵۶ مگ بگذرد، `/api/health` هشدار میدهد. خواندن: `zcat app-*.log.gz | grep user_id=26`.
|
||||||
|
|
||||||
### کپیِ زنده چطور کار میکند
|
### کپیِ زنده چطور کار میکند
|
||||||
|
|
||||||
Postgres هر تغییر را اول در یک دفترِ پیوسته (WAL) مینویسد. سرورِ ۲۴۷ این دفتر را با ابزارِ خودِ Postgres
|
Postgres هر تغییر را اول در یک دفترِ پیوسته (WAL) مینویسد. سرورِ ۲۴۷ این دفتر را با ابزارِ خودِ Postgres
|
||||||
|
|||||||
Reference in New Issue
Block a user