پایش منابع و سرویسها
دیسک، حافظه، سرویسها، کانتینرهای Docker، دیتابیس، ترافیک وب و بکاپها؛ با آستانهی هر هشدار.
دیسک، حافظه، سرویسها، کانتینرهای Docker، دیتابیس، ترافیک وب و بکاپها؛ با آستانهی هر هشدار.
ایجنت هر ۳۰ ثانیه مصرف منابع را اندازه میگیرد و هر دقیقه یک گزارش میفرستد. wardex این گزارشها را با آستانههای زیر میسنجد. هر هشدار وقتی مشکل برطرف شود خودش بسته میشود و پیام «برطرف شد» هم میفرستد.
| هشدار | چه وقت | شدت | برطرف وقتی |
|---|---|---|---|
| دیسک پر شده | یک پارتیشن ۹۰٪ یا بیشتر پر باشد | زیاد؛ از ۹۷٪ بحرانی | زیر ۸۵٪ برسد |
| دیسک بهزودی پر میشود | با سرعت پر شدن ۶ ساعت اخیر، کمتر از ۳ روز وقت مانده باشد (پارتیشن بین ۶۰ تا ۹۰٪) | متوسط | بیشتر از ۷ روز وقت باشد |
| حافظه تقریباً پر | حافظه ۹۵٪ یا بیشتر، سه دقیقه پشتسرهم | متوسط | زیر ۸۵٪ برسد |
| پردازنده کاملاً درگیر | پردازنده ۹۵٪ یا بیشتر، پنج دقیقه پشتسرهم | متوسط | زیر ۸۰٪ برسد |
| سرور از دسترس خارج شد | سه دقیقه هیچ گزارشی نرسد | زیاد | ایجنت دوباره گزارش بفرستد |
پیشبینی پر شدن دیسک هر ۳۰ دقیقه حساب میشود. معمولاً علتش لاگ یا بکاپی است که بیمحدودیت بزرگ میشود، و چند روز وقت دارید پیش از اینکه سایت از کار بیفتد.
مصرف لحظهای در کارت وضعیت بالای صفحهی سرور است. نمودار پردازنده، حافظه، دیسک و شبکه برای یک ساعت، ۲۴ ساعت و ۷ روز گذشته با دکمهی نمودار منابع در طول زمان زیر همان کارت باز میشود.
ایجنت سرویسهایی را که روی سرور وب معمولاند پیدا میکند: nginx، Apache، LiteSpeed، Caddy، PHP-FPM، MySQL و MariaDB، PostgreSQL، MongoDB، Redis، Memcached، Docker، Elasticsearch و چند سرویس دیگر. هر سرویسی هم که systemd «خطا» گزارش کند، حتی اگر در این فهرست نباشد، نمایش داده میشود.
| هشدار | چه وقت | شدت |
|---|---|---|
| سرویس از کار افتاد | سرویس با خطا متوقف شود، یا سرویسی که در حال اجرا بود متوقف شود | زیاد |
اگر ریاستارت خودکار را روشن کرده باشید، ایجنت سرویسِ خراب را خودش دوباره راه میاندازد و فقط خبرتان میکند که این اتفاق افتاده.
اگر Docker روی سرور نصب باشد، بخش کانتینرها وضعیت، سلامت (health check)، تعداد ریاستارت و مصرف پردازنده و حافظهی هر کانتینر را نشان میدهد.
| هشدار | چه وقت | شدت |
|---|---|---|
| کانتینر از کار افتاد | کانتینری که در حال اجرا بود با کد خطا متوقف شود، یا حافظهاش تمام شود و Docker آن را ببندد | زیاد |
| کانتینر مدام ریاستارت میشود | سه بار یا بیشتر در ۱۵ دقیقه | زیاد |
| کانتینر ناسالم است | health check کانتینر شکست بخورد | متوسط |
کانتینری که با کد صفر تمام شود (مثل یک کار یکباره که کارش را انجام داده) خطا حساب نمیشود.
ایجنت لاگ خطا و لاگ کوئریهای کند MySQL/MariaDB، PostgreSQL، MongoDB و Redis را از جای معمولشان میخواند. MariaDB و MySQL روی Ubuntu و Debian بهطور پیشفرض در journald مینویسند؛ آن هم خوانده میشود. بخش دیتابیس تعداد خطاها، هشدارها، کوئریهای کند و ورودهای ناموفق ۲۴ ساعت گذشته و کندترین کوئریها را نشان میدهد.
| هشدار | چه وقت | شدت |
|---|---|---|
| حدس رمز دیتابیس | ۲۰ ورود ناموفق یا بیشتر در ۱۰ دقیقه | زیاد |
| دیسک دیتابیس پر شده | دیتابیس نتواند روی دیسک بنویسد | بحرانی |
| خرابی داده | دیتابیس خرابی در فایلهای داده گزارش کند | بحرانی |
| دیتابیس از کار افتاد | خطای جدی یا شروع بازیابی بعد از خرابی | بحرانی |
| حافظهی دیتابیس تمام شد | دیتابیس نتواند حافظه بگیرد | زیاد |
| اتصالها به سقف رسید | «Too many connections» و مشابه آن | زیاد |
| دیتابیس ریاستارت شد | دیتابیس دوباره راهاندازی شود | متوسط |
از کوئریهای کند فقط شکل کوئری ارسال میشود: همهی مقدارها، مثل ایمیل، شناسه یا متن، با ? جایگزین میشوند. متن پیامهای خطا هم ارسال نمیشود، چون ممکن است همان دادهای را داشته باشد که خطا ساخته است.
ایجنت لاگ دسترسی nginx و Apache را میخواند (فرمت پیشفرض combined) و نمودار درخواستهای وب و خطای سرور و ورود ناموفق را میسازد.
| هشدار | چه وقت | شدت |
|---|---|---|
| خطای سرور در سایتها | دستکم ۱۰ خطای 5xx که ۵٪ یا بیشتر از درخواستها باشد، دو دقیقه پشتسرهم | زیاد |
متن هشدار نشان میدهد بیشتر خطاها در کدام آدرسها بودهاند. هشدار وقتی بسته میشود که خطاها زیر ۱٪ برسند. تلاشهای حمله و حملهی ورود با رمزهای لو رفته در رویدادهای امنیتی آمدهاند.
اگر لاگ وبسرور جای معمول نیست، مسیرش را در accessLogs بنویسید؛ تنظیمات را ببینید.
بکاپها معمولاً بیصدا از کار میافتند و کسی تا روز نیاز متوجه نمیشود. این خط را به انتهای اسکریپت بکاپ یا کرونجاب اضافه کنید:
wardex-agent heartbeat db-backup --every 24h
| هشدار | چه وقت | شدت |
|---|---|---|
| کار اجرا نشده | از آخرین اجرا بیش از یکونیم برابر بازهی تعیینشده (بهعلاوهی ۱۰ دقیقه) گذشته باشد | زیاد |
برای هر کار نام جدا انتخاب کنید، مثل site-backup، db-backup یا cleanup. دستور را فقط بعد از موفقیت کار اجرا کنید، مثلاً pg_dump … && wardex-agent heartbeat db-backup --every 24h، تا بکاپ ناموفق «اجرا شده» حساب نشود.
هر بخش، مثل لاگ وبسرور یا Docker، در صفحهی تنظیمات سرور یک کلید دارد. تغییر در گزارش بعدی ایجنت، یعنی حداکثر یک دقیقه بعد، اعمال میشود. بخشی که روی خود سرور خاموش شود، از داشبورد روشن نمیشود؛ تنظیمات را ببینید.