پیامک، تلگرام یا بله؟ انتخاب کانال هشدار بدون خستگی از هشدار
کدوم هشدارهای قطعی با پیامک برن و کدوم با تلگرام یا بله، چطور بر اساس فوریت مسیریابی کنیم و چطور هشدارهای مهم زیر هشدارهای بیمورد گم نشن.
روی بیشتر سرورهای لینوکسی امروزی، سرویسها توی ژورنال systemd لاگ مینویسن. journalctl ابزار خوندن اونه و چند گزینهی ساده هزاران خط رو به همون چند خطی که لازم دارید تبدیل میکنه.
journalctl -u nginx یه سرویس رو نشون میده؛ -f خطهای جدید رو زنده دنبال میکنه.--since و --until بازهی زمانی رو محدود میکنن؛ -p err فقط خطاها و بدتر رو نشون میده.-b خروجی رو به بوت فعلی و -b -1 به بوت قبلی محدود میکنه.--vacuum-size یا SystemMaxUse نذارید ژورنال دیسک رو پر کنه.noc724 سایت، سرور و APIهای شما رو شبانهروز چک میکنه و همون لحظهای که چیزی خراب شد با پیامک، تلگرام یا بله خبرتون میکنه.
journalctl # everything, oldest first, in a pager
journalctl -r # newest first
journalctl -n 100 # last 100 lines
journalctl -f # follow new entries live (like tail -f)خوندن کل ژورنال معمولاً دسترسی root یا عضویت در گروه systemd-journal لازم داره.
journalctl -u nginx
journalctl -u nginx -u php-fpm # several units together
journalctl -u myapp -f # follow one serviceاگه اسم یه unit با چیزی که فکر میکنید فرق داره، با systemctl list-units --type=service فهرستشون رو ببینید.
journalctl --since "2026-10-18 02:00" --until "2026-10-18 03:30"
journalctl --since "1 hour ago"
journalctl --since today
journalctl --since yesterday --until todayبا یه unit ترکیبش کنید تا به سؤال «برنامه دور و بر قطعی چی لاگ کرده؟» جواب بده:
journalctl -u myapp --since "02:50" --until "03:10"اولویتهای ژورنال از سطحهای syslog پیروی میکنن:
| عدد | اسم | معنی |
|---|---|---|
| 0 | emerg | سیستم غیرقابل استفاده است |
| 1 | alert | اقدام فوری لازمه |
| 2 | crit | بحرانی |
| 3 | err | خطا |
| 4 | warning | هشدار |
| 5 | notice | عادی ولی مهم |
| 6 | info | اطلاعاتی |
| 7 | debug | عیبیابی |
journalctl -p err -b # errors and worse since boot
journalctl -p warning..err # a rangejournalctl --list-boots
journalctl -b # current boot
journalctl -b -1 # previous boot - useful after an unexpected restart
journalctl -k -b -1 # kernel messages from the previous boot (out-of-memory, disk errors)journalctl _PID=4211
journalctl _COMM=sshd
journalctl -g "timeout|refused" # grep the message text (newer systemd)
journalctl -u myapp -o json-pretty # every field, structured
journalctl -u myapp -o cat # message text onlyروی بعضی توزیعها ژورنال توی /run نگه داشته میشه و با ریاستارت پاک میشه؛ دقیقاً وقتی که بیشتر از همیشه لازمش دارید. دائمیش کنید:
sudo mkdir -p /var/log/journal
sudo systemd-tmpfiles --create --prefix /var/log/journal
sudo systemctl restart systemd-journaldیا در /etc/systemd/journald.conf مقدار Storage=persistent رو بذارید.
journalctl --disk-usage
sudo journalctl --vacuum-size=1G # shrink to 1 GB
sudo journalctl --vacuum-time=14d # drop entries older than 14 daysبرای یه سقف دائمی، در journald.conf مقدار SystemMaxUse=1G رو تنظیم کنید.
ژورنال میگه روی یه سرور چه اتفاقی افتاده. برای رخدادها اون رو با اینها همراه کنید:
یا ژورنال دائمی نیست (لاگها با ریاستارت پاک شدن) یا بر اساس سقف حجم یا زمان چرخیده. journalctl --list-boots و journalctl --disk-usage رو چک کنید.
journalctl -u name -n 200 --no-pager آخرین خطها رو در طول ریاستارتها نشون میده. systemctl status name هم کد خروج و آخرین خطها رو نشون میده.
روی خیلی از سیستمها هر دو وجود دارن: ممکنه rsyslog هنوز فایلهای متنی مثل /var/log/syslog رو از ژورنال بنویسه. هر دو کار میکنن؛ ژورنال فیلترهای کاملتری داره.
نویسنده
تیم noc724
تیم فنی مانیتورینگ آپتایم
ما noc724 رو میسازیم و اداره میکنیم؛ سرویس مانیتورینگ آپتایمی که سایت، سرور و API رو از چند شهر ایران چک میکنه. این راهنماها از مشکلهایی میان که خودمون و کاربرهامون موقع آنلاین نگه داشتن سرویسها باهاشون روبهرو میشیم.
تماس با تیمتخصص:لاگها
کدوم هشدارهای قطعی با پیامک برن و کدوم با تلگرام یا بله، چطور بر اساس فوریت مسیریابی کنیم و چطور هشدارهای مهم زیر هشدارهای بیمورد گم نشن.
چرا مانیتورهای آپتایم هشدار اشتباه میدن (اختلال شبکه، timeout، محدودیت نرخ، تغییر محتوا) و تنظیماتی که اینها رو حذف میکنه و هشدار واقعی رو سریع نگه میداره.
چطور یه چرخهی آنکال ساده و سیاست ارجاع هشدار بچینیم که هر هشدار حیاتی جواب داده بشه، بدون اینکه یه تیم کوچیک فرسوده بشه.