Hamdar server metricsبرای آشنایی با روش خواندن پنلها، معماری سامانه و اصطلاحات این راهنما، به راهنمای پنل مانیتورینگ مراجعه کنید. جزئیات هشدارها و اقدامات پیشنهادی نیز در بخش هشدارها آمده است.
این داشبورد نمای کلی و تفصیلی از وضعیت سرور همدار ارائه میدهد. با استفاده از آن میتوانید مصرف CPU و حافظه، فضای ذخیرهسازی، ترافیک شبکه و وضعیت فرایندها را بررسی کنید.
بیشتر هشدارهای مرتبط با سرور، مستقیماً به پنل متناظر در این داشبورد لینک شدهاند.
Quick CPU / Mem / Diskاین ردیف مهمترین شاخصهای سلامت سرور را در یک نگاه نشان میدهد: CPU Busy و Sys Load برای فشار پردازشی، RAM Used و SWAP Used برای فشار حافظه، Root FS Used برای ظرفیت فایلسیستم، Uptime برای تشخیص Restart و Pressure برای زمان انتظار CPU، حافظه و I/O. مصرف پایدار CPU بالاتر از ۸۰٪، RAM یا Root FS بالاتر از ۸۵٪ و Swap بالاتر از ۵۰٪ نیازمند بررسی است.
Basic CPU / Mem / Net / Diskاین ردیف نمودارهای خلاصه CPU Usage، Memory Basic، Network Traffic Basic و Disk Space Used Basic را برای بررسی سریع روند منابع نمایش میدهد. جهش یا افت غیرعادی را با رویدادهای همان بازه زمانی تطبیق دهید.
CPU / Memory / Net / Diskاین ردیف جزئیات CPU، توزیع حافظه، ترافیک شبکه، فضای دیسک، IOPS، زمان خواندن و نوشتن و Utilization ذخیرهسازی را نشان میدهد. iowait یا Utilization پایدار بالا میتواند نشانه گلوگاه I/O باشد و رشد حافظه غیرقابلبازیابی میتواند به Leak اشاره کند.
Memory Meminfoاین ردیف Active و Inactive، Committed، Writeback و Dirty، Slab، Vmalloc، HugePages و DirectMap را نمایش میدهد. رشد پیوسته Slab، Vmalloc یا Committed که پس از کاهش بار به حالت عادی بازنمیگردد میتواند نشانه نشت حافظه در Kernel، Driver یا workload باشد.
Memory Vmstatاین ردیف Page In/Out، Swap In/Out، Page Fault و OOM Killer را نشان میدهد. هر مقدار مثبت OOM را بلافاصله بررسی کنید؛ افزایش پایدار Major page fault، بهویژه همراه با Swap I/O، میتواند نشانه فشار حافظه باشد.
System Timesyncپنلهای Drift، Status، PLL Adjust و Time Misc وضعیت همگامسازی ساعت را نشان میدهند. node_timex_sync_status=0 یا Drift بالا میتواند نشانه مشکل NTP یا Chrony باشد.
System Processesاین ردیف وضعیت فرایندها، نرخ Fork، PID، Thread و File Descriptor را نسبت به Limit سیستم نمایش میدهد. فرایندهای blocked، جهش Fork یا نزدیکشدن مصرف به Limit نیازمند بررسی است.
System Miscپنلهای System Load، Context switch، Interrupt و شاخصهای عمومی Kernel را برای شناسایی فشار یا رفتار غیرعادی سیستم نمایش میدهند.
Hardware Miscاین ردیف فرکانس CPU، دما، Cooling throttle و وضعیت منبع تغذیه را نشان میدهد. کاهش فرکانس هنگام بار بالا، دمای نزدیک حد بحرانی یا آفلاینشدن منبع تغذیه نیازمند بررسی سختافزاری است.
Systemdپنلهای Systemd Units State و Systemd Sockets وضعیت Unitها و Socketها را نمایش میدهند. Unitهای failed را با systemctl و لاگهای Journald بررسی کنید.
Storage Diskپنلهای IOPS، داده خواندن و نوشتن، Average wait، Queue size و زمان صرفشده برای I/O وضعیت عملکرد دیسک را نشان میدهند. زمان انتظار و طول صف پایدار همراه با Utilization بالا معمولاً نشانه گلوگاه ذخیرهسازی است.
Storage Filesystemاین ردیف فضای آزاد، Inodeها و وضعیت ReadOnly یا Error فایلسیستم را نمایش میدهد. تمامشدن Inode حتی با وجود فضای آزاد مانع ایجاد فایل میشود؛ هر مقدار غیرصفر در Filesystem in ReadOnly / Error را بحرانی در نظر بگیرید.
Network Trafficاین ردیف ترافیک رابطها، وضعیت عملیاتی و خطاهای Drop، FIFO، Frame، Carrier و Collision را نشان میدهد. نرخ مطلوب خطاها صفر است؛ مقدار غیرصفر پایدار میتواند به رابط، Driver، کابل، Switch یا ازدحام مسیر مربوط باشد.
Network Sockstatپنلهای Sockstat مصرف Socketها و وضعیت حافظه شبکه را نمایش میدهند و برای تشخیص فشار روی Network stack یا رشد غیرعادی تعداد Socketها مناسباند.
Network Netstatاین ردیف ICMP، UDP و TCP ورودی و خروجی، خطاهای پروتکلی، Connectionها، SynCookie، Conntrack و Softnet را نمایش میدهد. Drop یا Squeezed غیرصفر و نزدیکشدن Conntrack به Limit نیازمند بررسی است.
Node Exporterپنلهای Node Exporter Scrape Time و Node Exporter Scrape مدتزمان و نتیجه جمعآوری متریکها از Collectorها را نشان میدهند. افزایش Duration یا Scrape ناموفق میتواند ناشی از Collector کند یا ناموفق باشد و لزوماً به معنی اختلال خود سرور نیست.
هشدارهای زیر مستقیماً به پنلهای این داشبورد لینک شدهاند:
| Alert | پنل لینکشده | شرط | Severity |
|---|---|---|---|
NodeStoppedReportingHamdar |
Uptime (id 15) |
اخیرا node_uname_info > ۱۸۰s؛ for: 3m |
critical |
UnexpectedRebootHamdar |
Uptime (id 15) |
تغییر Boot time در ۱۵ دقیقه؛ for: 0s |
warning |
HighCPUHamdar / …Critical |
CPU Busy (id 20) |
CPU > ۸۰٪ / ۹۵٪؛ for: 10m |
warning / critical |
HighMemoryHamdar / …Critical |
RAM Used (id 16) |
RAM > ۸۵٪ / ۹۵٪؛ for: 10m |
warning / critical |
HighLoadHamdar / …Critical |
Sys Load (id 155) |
Load > ۱۵۰٪ / ۳۰۰٪؛ for: 15m |
warning / critical |
DiskSpaceLowHamdar / …Critical |
Root FS Used (id 154) |
/ > ۸۵٪ / ۹۵٪؛ for: 15m |
warning / critical |
DiskWillFillSoonHamdar |
Root FS Used (id 154) |
پیشبینی پرشدن ظرف ۷ روز؛ for: 30m |
warning |
SwapHighHamdar |
SWAP Used (id 21) |
Swap > ۵۰٪؛ for: 15m |
warning |
پس از فعالشدن هر Alert، از لینک پنل برای بازکردن همین داشبورد در بازه زمانی رخداد استفاده کنید. شرح هشدار و اقدامات پیشنهادی برای هر مورد در بخش هشدارها آمده است.
این بخش برای نگهداری و Provisioning داشبورد است و در بررسیهای روزمره کاربردی ندارد.
| ویژگی | مقدار |
|---|---|
| پوشه Provisioning | hamdar (dashboards/hamdar/hamdar-server-metrics.json) |
| UID | fectkhd6s3ny8e |
| Datasource | VictoriaMetrics (monitoring-prometheus) |
| فیلتر محصول | product="hamdar" |
| شناسه Node | instance و job |
Queryهای کلیدی داشبورد:
| هدف | Query نمونه |
|---|---|
| بالا بودن Node | اخیرا node_uname_info{product="hamdar"} (سری up استاندارد وجود ندارد) |
| Uptime | node_time_seconds{product="hamdar"} - node_boot_time_seconds{product="hamdar"} |
| CPU Busy | 100 * (1 - avg(rate(node_cpu_seconds_total{product="hamdar",mode="idle"}[$__rate_interval]))) |
| Load نرمالشده | node_load1{product="hamdar"} * 100 / count(count(node_cpu_seconds_total{product="hamdar"}) by (cpu)) |
| RAM Used % | (1 - node_memory_MemAvailable_bytes{product="hamdar"} / node_memory_MemTotal_bytes{product="hamdar"}) * 100 |
| Root FS Used % | 100 - node_filesystem_avail_bytes{product="hamdar",mountpoint="/"}*100 / node_filesystem_size_bytes{product="hamdar",mountpoint="/"} |
| Swap Used % | بر پایه node_memory_SwapTotal_bytes{product="hamdar"} و node_memory_SwapFree_bytes{product="hamdar"} |
| OOM | irate(node_vmstat_oom_kill{product="hamdar"}[$__rate_interval]) |