| VNSTATD(8) | User Manuals | VNSTATD(8) |
نام (NAME)
vnstatd - دیمون بهروزرسانی پایگاهداده برای vnStat
خلاصه دستور (SYNOPSIS)
vnstatd [-Ddnpstv?] [--alwaysadd [mode]] [--config file] [--daemon] [--debug] [-g group] [--group group] [--help] [--initdb] [--noadd] [--nodaemon] [--noremove] [--pidfile file] [--startempty] [--sync] [--timestamp] [--u user] [--user user] [--version]
توضیحات (DESCRIPTION)
هدف از vnstatd فراهم کردن روشی انعطافپذیر و پایدار برای جمعآوری دادهها در پایگاهدادهای است که توسط vnstat(1) استفاده میشود. در دسترس بودن هر رابط شبکه به طور خودکار ردیابی میشود که نیاز به پیادهسازی و فراخوانی اسکریپتهای اضافی را هنگام برخط یا آفلاین شدن یک رابط از بین میبرد.
دستور vnstatd برای راهاندازی دیمون به کار میرود. دیمون میتواند برای اجرا به عنوان یک فرایند پسزمینه فورک (انشعاب) پیدا کند یا متصل به ترمینال باقی بماند. این دیمون از ثبت وقایع به صورت مستقیم در ترمینال، در یک فایل انتخابی توسط کاربر یا با استفاده از syslog پشتیبانی میکند.
پس از راهاندازی، دیمون در صورت در دسترس بودن، فایل vnstat.conf(5) را میخواند و سپس بررسی میکند که آیا پایگاهدادهای در دایرکتوری پایگاهداده مشخصشده در فایل پیکربندی وجود دارد یا خیر. به طور پیشفرض، اگر پایگاهدادهای یافت نشود، در حین راهاندازی یک پایگاهداده با ورودیهایی برای تمام رابطهای موجود، به جز رابطهای شبه (pseudo) مانند lo ،lo0 و sit0 ایجاد میشود. این رفتارِ ایجاد خودکار ورودی در پایگاهداده را میتوان با استفاده از گزینهٔ --noadd غیرفعال کرد. همچنین، میتوان از گزینهٔ --alwaysadd استفاده کرد تا به دیمون دستور داده شود هر زمان رابطهایی که در حال حاضر در پایگاهداده نیستند نمایان شدند، ورودیهای جدیدی برای آنها ایجاد کند. به طور پیشفرض، مگر اینکه از گزینهٔ --startempty استفاده شود، اگر در حین راهاندازی هیچ رابطی شناسایی نشود و پایگاهداده نیز شامل هیچ رابطی نباشد، دیمون در حال اجرا باقی نخواهد ماند.
دیمون به ردیابی در دسترس بودن رابطهای تحت نظارت ادامه داده، آمار ترافیک رابطها را پردازش میکند و مقادیر جدید را در بازههای زمانی پیکربندیشده در پایگاهداده مینویسد. در نتیجه، دیمون بخش عمدهای از زمان بین بهروزرسانیها را در حالت خواب (sleep) سپری میکند. رابطهای جدیدی که به پایگاهداده اضافه شوند، به طور خودکار و بدون نیاز به اطلاعرسانی به دیمون، برای نظارت انتخاب خواهند شد.
هنگامی که گزینهٔ پیکربندی UseUTC فعال نباشد، دادهها با استفاده از زمان محلی بر اساس محیط اجرای دیمون در پایگاهداده ذخیره میشوند. هرگونه تغییر در ساعت سیستم یا پیکربندی منطقهٔ زمانی سیستم منجر به درج دادهها طبق زمان محلی جدید خواهد شد، بدون اینکه هیچگونه محاسبهٔ مجددی برای دادههای از قبل ذخیرهشده انجام گیرد. دیمون و پایگاهداده در اصل از منطقهٔ زمانی استفادهشده یا ساعت تابستانی احتمالی آگاه نیستند و نمیتوان آنها را طوری پیکربندی کرد که برچسبهای زمانی را به هر سمتی جبران (آفست) کنند. اگر تغییر ساعت سیستم یا منطقهٔ زمانی سیستم یا پایان ساعت تابستانی منجر به تکرار یک بازهٔ زمانیِ از قبل دیدهشده شود، مقادیر موجود در پایگاهداده با دادههای جدید افزایش مییابند.
گزینهها (OPTIONS)
- --alwaysadd [mode]
- فعالسازی ایجاد خودکار ورودیهای جدید در پایگاهداده برای رابطهایی که در حال حاضر در پایگاهداده نیستند، حتی اگر فایل پایگاهداده هنگام راهاندازی دیمون از قبل وجود داشته باشد. همچنین برای رابطهای جدیدی که هنگام اجرای دیمون دیده میشوند، ورودیهای جدیدی در پایگاهداده ایجاد خواهد شد. رابطهای شبه مانند lo ،lo0 و sit0 همیشه از اضافه شدن مستثنی هستند. استفاده از این گزینه بدون تعریف mode یا با تنظیم mode روی 1 این ویژگی را فعال میکند. تنظیم mode روی 0 این ویژگی را غیرفعال میسازد. این گزینهٔ خط فرمان در صورت استفاده، بر گزینهٔ پیکربندی AlwaysAddNewInterfaces ارجحیت دارد.
- --config file
- استفاده از file به عنوان فایل پیکربندی به جای استفاده از قابلیت جستجوی خودکار فایل پیکربندی.
- -d, --daemon
- انشعاب (fork) فرایند به پسزمینه و اجرا به عنوان یک دیمون.
- -D, --debug
- ارائهٔ خروجی اضافی برای اهداف اشکالزدایی. فرایند برای نمایش خروجی متصل به ترمینال باقی خواهد ماند.
- -g, --group group
- تنظیم گروه فرایند دیمون به group در حین راهاندازی. group میتواند نام گروه یا شناسهٔ عددی گروه باشد. از این گزینه تنها زمانی میتوان استفاده کرد که فرایند با کاربر ریشه (root) راهاندازی شده باشد.
- --initdb
- ایجاد یک پایگاهدادهٔ جدید، درونریزی دادهها از پایگاههای دادهٔ قدیمی در صورت عدم استفاده از گزینهٔ --noadd و خروج بدون ایجاد ورودیهای پایگاهداده برای رابطهای موجود در صورتی که دادهٔ قدیمی درونریزی نشده باشد. اگر پایگاهداده از قبل وجود داشته باشد، تنها دسترسی به آن بررسی میشود. هنگام استفاده از این گزینه، دیمون در حال اجرا باقی نخواهد ماند. این گزینه را نمیتوان همراه با گزینههای -d, --daemon، -n, --nodaemon یا --startempty به کار برد.
- --noadd
- هنگام استفاده همراه با گزینهٔ -d, --daemon یا -n, --nodaemon، ایجاد خودکار ورودیهای جدید پایگاهداده برای تمام رابطهای در حال حاضر موجود را در زمانی که دیمون بدون پایگاهدادهٔ موجود یا با پایگاهدادهای حاوی صفر رابط راهاندازی میشود، غیرفعال میکند. دیمون در صورتی که پایگاهدادهای از قبل وجود نداشته باشد، همچنان یک پایگاهدادهٔ خالی ایجاد خواهد کرد. رابطهای شبه مانند lo ،lo0 و sit0 صرفنظر از این گزینه همیشه از افزوده شدن مستثنی هستند.
- هنگام استفاده همراه با --initdb، در صورتی که پایگاهدادهای از قبل وجود نداشته باشد، تنها یک پایگاهدادهٔ خالی بدون درونریزی دادهها از پایگاههای دادهٔ قدیمیِ احتمالی ایجاد کرده و خارج میشود.
- -n, --nodaemon
- ماندن در پیشزمینه به صورت متصل به ترمینال جاری و آغاز فرایند بهروزرسانی.
- --noremove
- غیرفعالسازی حذف خودکار رابطهایی از پایگاهداده که در حال حاضر قابل مشاهده نیستند و هیچ ترافیکی نداشتهاند.
- -p, --pidfile file
- نوشتن شناسهٔ فرایند (PID) در file و استفاده از آن برای قفلگذاری به گونهای که اگر همان file مشخص شده باشد، نمونهٔ دیگری از دیمون نتواند راهاندازی شود. این گزینه در صورت استفاده همراه با گزینهٔ -n, --nodaemon هیچ اثری ندارد.
- --startempty
- راهاندازی حتی زمانی که هیچ رابطی شناسایی نشده و پایگاهداده خالی است. این امر موجب میشود دیمون در حال اجرا باقی بماند و منتظر اضافه شدن رابطها به پایگاهداده یا پیدا شدن آنها در صورت استفاده از گزینهٔ --alwaysadd باشد. این گزینه را نمیتوان همراه با گزینهٔ --initdb استفاده کرد.
- -s, --sync
- همگامسازی شمارندههای داخلی در پایگاهداده با شمارندههای رابط برای تمامی رابطهای موجود، پیش از آغاز نظارت بر ترافیک. در صورتی که ترافیکِ بین خاموش شدن قبلی و راهاندازی فعلی دیمون باید نادیده گرفته شود، از این گزینه استفاده کنید. این گزینه در استفادهٔ معمول مورد نیاز نیست، زیرا دیمون پس از راهاندازی مجدد سیستم (reboot)، در صورت گذشت زمان کافی از اجرای قبلی دیمون، یا در صورتی که شمارندههای داخلی به وضوح ناهماهنگ باشند، به طور خودکار شمارندههای داخلی را همگام میکند.
- -t, --timestamp
- افزودن برچسب زمانی به ابتدای هر خروجی چاپشده از دیمون، زمانی که فرایند پس از راهاندازی با گزینهٔ -n, --nodaemon در پیشزمینه و متصل به یک ترمینال در حال اجرا است.
- -u, --user user
- تنظیم کاربر فرایند دیمون به user در حین راهاندازی. user میتواند نام کاربری یا شناسهٔ عددی کاربر باشد. از این گزینه تنها زمانی میتوان استفاده کرد که فرایند با کاربر ریشه (root) راهاندازی شده باشد.
- -v, --version
- نمایش نسخهٔ فعلی فایل اجرایی دیمون.
- -?, --help
- نمایش خلاصهٔ گزینههای دستور.
پیکربندی (CONFIGURATION)
رفتار دیمون عمدتاً با استفاده از کلیدواژههای پیکربندی UpdateInterval, PollInterval و SaveInterval در فایل پیکربندی تنظیم میشود.
کلیدواژهٔ UpdateInterval بر حسب ثانیه مشخص میکند که دادههای رابط هر چند وقت یکبار واکشی و بهروزرسانی شوند. این مشابه بازهٔ زمانی اجرا در روش جایگزینِ بهروزرسانی مبتنی بر cron است. با این حال، تفاوت در این است که در هنگام بهروزرسانیها، دادهها مستقیماً بر روی دیسک نوشته نمیشوند.
کلیدواژهٔ PollInterval بر حسب ثانیه مشخص میکند که فهرست رابطهای موجود برای تغییرات احتمالی هر چند وقت یکبار بررسی شود. حداقل مقدار ۲ ثانیه و حداکثر ۶۰ ثانیه است. همچنین PollInterval وضوح (دقت زمانی) را برای سایر بازهها مشخص میکند.
کلیدواژهٔ SaveInterval بر حسب دقیقه مشخص میکند که دادههای حافظهٔ موقت (کش) رابط هر چند وقت یکبار روی دیسک نوشته شوند. عملیات نوشتن تنها میتواند در حین بهروزرسانی دادههای رابط رخ دهد. بنابراین، این مقدار باید مضربی از UpdateInterval با حداکثر مقدار ۶۰ دقیقه باشد.
مقادیر پیشفرض UpdateInterval برابر ۳۰، SaveInterval برابر ۵ و PollInterval برابر ۵ معمولاً برای اکثر سیستمها مناسب هستند و رفتاری مشابه بهروزرسانی مبتنی بر cron را با وضوح بهتر برای تغییرات رابط و رابطهای پرسرعت فراهم میکنند.
برای سیستمهای تعبیهشده (embedded) یا کممصرف، پیکربندیهای تنظیمشدهتری امکانپذیر است. در چنین مواردی، اگر رابطها عمدتاً ایستا باشند، مقدار PollInterval را میتوان تا حدود ۱۰ تا ۳۰ ثانیه افزایش داد و UpdateInterval را روی ۶۰ ثانیه تنظیم کرد. مقادیر بالاتر تا ۳۰۰ ثانیه در صورتی که سرعت رابط ۱۰ مگابیت یا کمتر باشد امکانپذیر است. مقدار SaveInterval را نیز میتوان بسته به اینکه دادهها هر چند وقت یکبار نیاز به مشاهده دارند، به عنوان مثال به ۱۵، ۳۰ یا حتی ۶۰ دقیقه افزایش داد.
سیگنالها (SIGNALS)
دیمون به سیگنالهای SIGHUP, SIGINT و SIGTERM گوش میدهد. ارسال سیگنال SIGHUP به دیمون باعث میشود دادههای موجود در حافظهٔ موقت بر روی دیسک نوشته شوند، دایرکتوری پایگاهداده مجدداً اسکن شده و تنظیمات از فایل پیکربندی بازخوانی شوند. با این حال، حتی اگر تنظیمات پیکربندی مربوط به مکان فایل pid تغییر کرده باشد، مکان آن تغییر نخواهد کرد.
سیگنالهای SIGTERM و SIGINT باعث میشوند دیمون تمامی دادههای موجود در حافظهٔ موقت را روی دیسک نوشته و سپس خارج شود.
فایلها (FILES)
- /var/lib/vnstat/
- دایرکتوری پیشفرض پایگاهداده.
- /etc/vnstat.conf
- فایل پیکربندی که استفاده خواهد شد مگر اینکه $HOME/.vnstatrc وجود داشته باشد. برای اطلاعات بیشتر به بخش پیکربندی و vnstat.conf(5) مراجعه کنید.
- /var/log/vnstat/vnstat.log
- فایل ثبت وقایع (لاگ) که در صورت فعال بودن ثبت وقایع در فایل و عدم تعیین فایل دیگری در فایل پیکربندی، استفاده خواهد شد.
- /var/run/vnstat/vnstat.pid
- فایلی که برای ذخیرهٔ شناسهٔ فرایند (PID) در هنگام اجرا به عنوان فرایند پسزمینه و در صورتی که فایل دیگری در فایل پیکربندی یا پارامتر خط فرمان مشخص نشده باشد، استفاده میشود.
محدودیتها (RESTRICTIONS)
بهروزرسانیها باید حداقل به همان اندازهای که ممکن است رابط ترافیک کافی برای سرریز کردن شمارندهٔ ترافیک رابط هسته تولید کند، اجرا شوند. در غیر این صورت، این احتمال وجود دارد که بخشی از ترافیک دیده نشود. با شمارندههای ۳۲ بیتی ترافیک رابط، حداکثر زمان بین دو بهروزرسانی بستگی به این دارد که رابط با چه سرعتی میتواند ۴ گیبیبایت (4 GiB) را منتقل کند. توجه داشته باشید که هیچ تضمینی وجود ندارد که یک هستهٔ ۶۴ بیتی دارای شمارندههای ۶۴ بیتی ترافیک رابط برای تمام رابطها باشد. زمانهای نظری محاسبهشده عبارتند از:
| 10 Mbit: | 54 minutes |
| 100 Mbit: | 5 minutes |
| 1000 Mbit: | 30 seconds |
رابطهای مجازی و نام مستعار (aliased) قابل نظارت نیستند زیرا هسته اطلاعات ترافیک را برای این نوع رابطها ارائه نمیدهد. چنین رابطهایی معمولاً eth0:0 ،eth0:1 ،eth0:2 و غیره نامیده میشوند که در آنها eth0 همان رابط اصلی است که نام مستعار دریافت کرده است.
نویسنده (AUTHOR)
Teemu Toivola <tst at iki dot fi>
همچنین ببینید (SEE ALSO)
| FEBRUARY 2025 | version 2.13 |