رفتن به محتوا
مانیتور سرور / ماشین مجازی

مانیتور سرور / ماشین مجازی

مانیتور Server / VM یک ماشین را از راه عامل زیرساخت Status200 (oneuptime-infrastructure-agent) زیر نظر می‌گیرد؛ سرویس کوچکی که هر ۳۰ ثانیه CPU، حافظه، دیسک‌ها، بار، شبکه و فرایندهای در حال اجرا را به Status200 گزارش می‌دهد. این صفحه نشان می‌دهد چطور عامل را به یک مانیتور Server / VM وصل کنید، عامل چه چیزهایی گزارش می‌دهد، و چطور معیارهایی بنویسید که تعیین می‌کنند سرور کی آنلاین و کی آفلاین است.

مهم
ساخت مانیتور دیگر گزینه Server / VM را ارائه نمی‌دهد. مانیتورهای Server / VM که از قبل دارید همچنان کار می‌کنند و همه مطالب این صفحه درباره آن‌ها صدق می‌کند. برای پایش یک سرور تازه، به جای آن یک مانیتور میزبان بسازید: این مانیتور بر پایه متریک‌های میزبان که کالکتور OpenTelemetry روی میزبان می‌فرستد هشدار می‌دهد.

چگونه کار می‌کند

عامل به‌عنوان یک سرویس سیستمی اجرا می‌شود. هر ۳۰ ثانیه گزارشی جمع می‌کند و آن را، امضاشده با کلید محرمانه مانیتور، به نشانی Status200 شما می‌فرستد. Status200 اعداد را به‌عنوان متریک‌های مانیتور ذخیره می‌کند و گزارش را با معیارهای مانیتور می‌سنجد.

سکوت جداگانه بررسی می‌شود. Status200 هر دقیقه معیارهای Is Online هر مانیتور Server / VM را که ۳ دقیقه یا بیشتر گزارشی نفرستاده دوباره ارزیابی می‌کند، و سروری که بیش از مقدار مجاز معیارهایش (به‌طور پیش‌فرض ۳ دقیقه) ساکت بماند آفلاین به حساب می‌آید. مانیتوری که معیار Is Online ندارد، فقط به این دلیل که عامل ساکت شده، آفلاین علامت‌گذاری نمی‌شود. در این سکوت فقط زمانی شمرده می‌شود که Status200 در حال دریافت بوده است: زمانی که خود Status200 در حال راه‌اندازی دوباره، ارتقا یا جبران عقب‌ماندگی بوده شمرده نمی‌شود، همان‌طور که وقتی Status200 داده دریافت نمی‌کند توضیح می‌دهد.

flowchart TB agent["عامل زیرساخت"] -->|"گزارش هر ۳۰ ثانیه"| oneuptime["Status200"] oneuptime --> criteria{"معیارها برقرار است؟"} sweep["بررسی هر دقیقه"] -->|"۳ دقیقه بدون گزارش"| criteria criteria -->|"بله"| outcome["تغییر وضعیت، هشدار<br/>یا حادثه"]

مانیتور Server / VM چگونه داده‌اش را می‌گیرد

پیش از شروع

  • یک مانیتور Server / VM در پروژه شما.
  • مجوز ویرایش مانیتورها. کلید محرمانه، و فرمان‌های راه‌اندازی که آن را در خود دارند، فقط به کسانی نشان داده می‌شوند که می‌توانند مانیتورها را ویرایش کنند.
  • دسترسی root (Linux، macOS) یا Administrator (Windows) روی سرور. عامل خودش را به‌عنوان یک سرویس سیستمی نصب می‌کند.
  • اتصال HTTPS خروجی از سرور به نشانی Status200 شما، مستقیم یا از راه یک پراکسی HTTP.

اتصال عامل

فرمان‌های زیر از https://status200.ru و YOUR_SECRET_KEY استفاده می‌کنند. در فرمان‌های راه‌اندازی خود مانیتور، نشانی Status200 شما و کلید محرمانه مانیتور از قبل پر شده‌اند، پس هر وقت می‌توانید آن‌ها را از مانیتور کپی کنید.

  1. فرمان‌های راه‌اندازی مانیتور را باز کنید

    به مانیتورها بروید، مانیتور Server / VM را باز کنید و مستندات را برگزینید. کارت‌های Set up your Server Monitor (Linux/Mac) و Set up your Server Monitor (Windows) فرمان‌های این مانیتور را دارند. تا وقتی عامل نخستین گزارشش را نفرستاده، نمای کلی مانیتور هم آن‌ها را نشان می‌دهد.

  2. عامل را نصب کنید

    Linux

    در Debian و Ubuntu مخزن apt مربوط به Status200 را اضافه کنید و عامل را از آن نصب کنید:

    Bash
    sudo install -m 0755 -d /etc/apt/keyrings
    sudo curl -fsSL https://packages.status200.ru/gpg.key -o /etc/apt/keyrings/status200.asc
    sudo chmod a+r /etc/apt/keyrings/status200.asc
    echo "deb [signed-by=/etc/apt/keyrings/status200.asc] https://packages.status200.ru/deb stable main" | sudo tee /etc/apt/sources.list.d/status200.list
    sudo apt-get update
    sudo apt-get install oneuptime-infrastructure-agent

    در RHEL، Rocky Linux، AlmaLinux، Fedora و Amazon Linux مخزن yum مربوط به Status200 را اضافه کنید و عامل را از آن نصب کنید. جایی که dnf نیست از yum استفاده کنید و وقتی از شما پرسیده شد، کلید امضای Status200 را بپذیرید.

    Bash
    sudo curl -fsSL https://packages.status200.ru/rpm/status200.repo -o /etc/yum.repos.d/status200.repo
    sudo dnf install oneuptime-infrastructure-agent

    در هر توزیع دیگری از اسکریپت نصب استفاده کنید:

    Bash
    curl -sSL https://status200.ru/docs/static/scripts/infrastructure-agent/install.sh | sudo bash

    macOS

    عامل را با Homebrew نصب کنید:

    Bash
    brew install oneuptime/tap/status200-infrastructure-agent

    یا از اسکریپت نصب استفاده کنید:

    Bash
    curl -sSL https://status200.ru/docs/static/scripts/infrastructure-agent/install.sh | sudo bash

    Windows

    در خط فرمان که به‌عنوان Administrator باز شده، عامل را با winget نصب کنید:

    Shell
    winget install --id OneUptime.InfrastructureAgent --exact --scope machine

    سپس خط فرمان را دوباره به‌عنوان Administrator باز کنید تا oneuptime-infrastructure-agent روی مسیر آن باشد.

    بدون winget، عامل را خودتان دانلود کنید:

    1. عامل را از آخرین انتشار GitHub دانلود کنید: oneuptime-infrastructure-agent_windows_amd64.zip برای x64، یا oneuptime-infrastructure-agent_windows_arm64.zip برای ARM64.
    2. فایل zip را از حالت فشرده خارج کنید. درون آن oneuptime-infrastructure-agent.exe است.
    3. در پوشه‌ای که فایل را در آن باز کرده‌اید، خط فرمان را به‌عنوان Administrator باز کنید.

    برای استقرار عامل با Intune، Configuration Manager یا Group Policy، از oneuptime-infrastructure-agent-amd64.msi (یا oneuptime-infrastructure-agent-arm64.msi) همان انتشار استفاده کنید. این بسته عامل را در C:\Program Files\OneUptimeInfrastructureAgent نصب می‌کند و یک MSI جدیدتر آن را در جای خود به‌روز می‌کند و دوباره راه‌اندازی می‌کند. MSI یک انتشار قدیمی‌تر به‌روز نمی‌شود: ابتدا یک بار آن را حذف کنید.

    هر یک از این راه‌ها آخرین انتشار را برای سیستم‌عامل و پردازنده شما (x86-64 یا ARM64) نصب می‌کند. مخزن‌های apt و yum همان بسته‌های .deb و .rpm پیوست‌شده به هر انتشار GitHub را نگه می‌دارند که با کلید https://packages.status200.ru/gpg.key امضا شده‌اند، و بسته‌ها فایل اجرایی را در /usr/bin قرار می‌دهند. اسکریپت نصب فایل اجرایی oneuptime-infrastructure-agent را در $HOME/bin قرار می‌دهد. در نصب خودمیزبان، اسکریپت از نشانی Status200 خود شما ارائه می‌شود.

  3. آن را به مانیتور وصل کنید

    Linux

    Bash
    sudo oneuptime-infrastructure-agent configure --secret-key=YOUR_SECRET_KEY --oneuptime-url=https://status200.ru

    macOS

    Bash
    sudo oneuptime-infrastructure-agent configure --secret-key=YOUR_SECRET_KEY --oneuptime-url=https://status200.ru

    Windows

    Shell
    oneuptime-infrastructure-agent configure --secret-key=YOUR_SECRET_KEY --oneuptime-url=https://status200.ru

    configure کلید محرمانه و نشانی را در فایل پیکربندی عامل ذخیره می‌کند و عامل را به‌عنوان یک سرویس سیستمی نصب می‌کند. هر دو پرچم الزامی‌اند. در نصب خودمیزبان، https://status200.ru را با نشانی خودتان جایگزین کنید.

    اگر سرور از راه یک پراکسی به اینترنت دسترسی دارد، --proxy-url را اضافه کنید:

    Bash
    sudo oneuptime-infrastructure-agent configure --proxy-url=http://proxy.example.com:8080 --secret-key=YOUR_SECRET_KEY --oneuptime-url=https://status200.ru
  4. عامل را اجرا کنید

    Linux

    Bash
    sudo oneuptime-infrastructure-agent start

    macOS

    Bash
    sudo oneuptime-infrastructure-agent start

    Windows

    Shell
    oneuptime-infrastructure-agent start

    عامل هنگام اجرا کلید محرمانه را با Status200 بررسی می‌کند و بی‌درنگ نخستین گزارشش را می‌فرستد.

  5. بررسی کنید که گزارش می‌دهد

    sudo oneuptime-infrastructure-agent status را اجرا کنید (در Windows بدون sudo): خروجی آن Service is running است. در Status200، به محض رسیدن نخستین گزارش، نمای کلی مانیتور دیگر فرمان‌های راه‌اندازی را نشان نمی‌دهد و زبانه متریک‌ها شروع به رسم نمودارهای سرور می‌کند.

مرجع عامل

فرمان‌ها

فرمانچه می‌کند
configure --secret-key=<key> --oneuptime-url=<url>تنظیمات را ذخیره می‌کند و عامل را به‌عنوان یک سرویس سیستمی نصب می‌کند. برای فرستادن گزارش‌ها از راه پراکسی، --proxy-url=<url> را اضافه کنید.
startسرویس را اجرا می‌کند. تا configure اجرا نشده باشد، از اجرا خودداری می‌کند.
stopسرویس را متوقف می‌کند.
restartسرویس را دوباره راه‌اندازی می‌کند.
statusنشان می‌دهد سرویس در حال اجراست یا متوقف شده است.
logs۱۰۰ خط آخر لاگ عامل را نشان می‌دهد. -n <lines> تعداد دیگری از خطوط را نشان می‌دهد و -f خطوط تازه را دنبال می‌کند.
uninstallسرویس را حذف می‌کند و فایل پیکربندی عامل را پاک می‌کند.
helpفهرست فرمان‌ها را نشان می‌دهد.

آن‌ها را در Linux و macOS با sudo و در Windows از یک خط فرمان با دسترسی Administrator اجرا کنید. برای تغییر کلید محرمانه، نشانی یا پراکسی یک عامل پیکربندی‌شده، stop و uninstall را اجرا کنید و سپس دوباره configure و start را اجرا کنید.

فایل‌ها

فایلLinux و macOSWindows
پیکربندی/etc/status200-infrastructure-agent/config.json%PROGRAMDATA%\oneuptime-infrastructure-agent\config.json
لاگ/var/log/status200-infrastructure-agent/status200-infrastructure-agent.log%PROGRAMDATA%\oneuptime-infrastructure-agent\oneuptime-infrastructure-agent.log

وقتی عامل نتواند در این پوشه‌ها بنویسد، به جای آن از ~/.oneuptime-infrastructure-agent/ استفاده می‌کند. متغیرهای محیطی STATUS200_AGENT_CONFIG_PATH و STATUS200_AGENT_LOG_PATH هر یک از این مسیرها را صریحاً تعیین می‌کنند.

به‌روزرسانی و حذف

عامل را به همان روشی که نصب کرده‌اید به‌روز کنید:

نصب‌شده بابه‌روزرسانی
aptsudo apt-get update && sudo apt-get install --only-upgrade oneuptime-infrastructure-agent
dnf یا yumsudo dnf upgrade oneuptime-infrastructure-agent
Homebrewbrew upgrade oneuptime-infrastructure-agent
wingetwinget upgrade --id OneUptime.InfrastructureAgent --exact
MSIMSI جدیدتر را نصب کنید.
اسکریپت نصباسکریپت نصب را دوباره اجرا کنید.

به‌روزرسانی، عاملِ در حال اجرا را دوباره راه‌اندازی نمی‌کند، پس پس از آن restart را اجرا کنید. در Windows پیش از winget upgrade فرمان stop و پس از آن start را اجرا کنید: winget نمی‌تواند برنامه را تا وقتی سرویس آن را اجرا می‌کند جایگزین کند.

برای حذف عامل، ابتدا uninstall را اجرا کنید و سپس بسته را با همان ابزاری که با آن نصب کرده‌اید حذف کنید، برای نمونه sudo apt-get remove oneuptime-infrastructure-agent.

آنچه عامل گزارش می‌دهد

هر گزارش نام میزبان سرور را به همراه این موارد دارد:

حوزهآنچه گزارش می‌شود
CPUدرصد استفاده، تعداد هسته‌ها، استفاده به ازای هر هسته، و زمان صرف‌شده در user، system، idle، انتظار I/O، steal، nice، IRQ و soft IRQ
حافظهحافظه کل، مصرف‌شده، آزاد و در دسترس، بافرها و کش، درصد استفاده، و swap کل، مصرف‌شده، آزاد و درصد استفاده
دیسک‌هابرای هر دیسک سوارشده: مسیر سوارکردن، دستگاه، سامانه فایل، فضای کل، مصرف‌شده و آزاد، درصد استفاده، بایت‌ها و عملیات خوانده و نوشته‌شده، و زمان I/O
بارمیانگین بار ۱، ۵ و ۱۵ دقیقه‌ای
شبکهبرای هر رابط: بایت‌ها و بسته‌های ارسالی و دریافتی، خطاها و بسته‌های دورریخته در ورود و خروج؛ به همراه اتصال‌های برقرار و در حال گوش‌دادن
میزبانسیستم‌عامل، سکو و نسخه، نسخه و معماری هسته، مدت روشن‌بودن، زمان راه‌اندازی، مجازی‌سازی و تعداد فرایندها
فرایندهاهر فرایند در حال اجرا: نام، PID، فرمان، درصد CPU، حافظه، وضعیت، رشته‌ها، کاربر و زمان شروع

مقدارهایی که سیستم‌عامل فراهم نمی‌کند حذف می‌شوند. زبانه متریک‌ها مانیتور نمودار در دسترس بودن، CPU، حافظه، مصرف و I/O دیسک، میانگین‌های بار، swap، ترافیک و خطاهای شبکه، اتصال‌ها، مدت روشن‌بودن و تعداد فرایندها را رسم می‌کند.

معیارهای مانیتورینگ

معیارها تعیین می‌کنند مانیتور کی آنلاین، دچار افت یا آفلاین است و کی هشدار یا حادثه باز می‌کند. هر فیلتر در یک معیار یک نوع فیلتر، یک شرط فیلتر و در بیشتر انواع یک مقدار دارد.

نوع فیلترچه چیزی را بررسی می‌کندشرط‌های فیلتر
Is Onlineاینکه عامل اخیراً گزارش داده است یا نه (به‌طور پیش‌فرض در ۳ دقیقه گذشته)درست، نادرست
CPU Usage (in %)مصرف کلی CPUبزرگ‌تر از، کوچک‌تر از، بزرگ‌تر یا برابر با، کوچک‌تر یا برابر با
Memory Usage (in %)حافظه در حال استفادهمانند CPU
Disk Usage (in %)مصرف دیسکی که در مسیر دیسک آمده استمانند CPU
Swap Usage (in %)swap در حال استفادهمانند CPU
CPU IO Wait (in %)سهمی از زمان CPU که در انتظار I/O گذشته استمانند CPU
Load Average (1 minute)میانگین بار در دقیقه گذشتهمانند CPU
Load Average (5 minute)میانگین بار در ۵ دقیقه گذشتهمانند CPU
Load Average (15 minute)میانگین بار در ۱۵ دقیقه گذشتهمانند CPU
Server Process Nameاینکه فرایندی با این نام در حال اجراست یا نه (بدون حساسیت به حروف بزرگ و کوچک)Is Executing, Is Not Executing
Server Process Commandاینکه فرایندی دقیقاً با این خط فرمان در حال اجراست یا نه (بدون حساسیت به حروف بزرگ و کوچک)Is Executing, Is Not Executing
Server Process PIDاینکه فرایندی با این PID در حال اجراست یا نهIs Executing, Is Not Executing

مسیر دیسک یک نقطه سوارکردن یا دستگاه می‌گیرد، مانند /، /mnt/data، C:\ یا /dev/sda1؛ اگر خالی بماند / است. برای بررسی همه دیسک‌هایی که عامل گزارش می‌دهد * را وارد کنید: هر دیسکی که از آستانه بگذرد هشدار جداگانه خودش را می‌گیرد، پس پرشدن دیسک دوم پشت هشدار باز دیسک اول پنهان نمی‌ماند.

ارزیابی در یک بازه زمانی

این معیار را در یک بازه زمانی ارزیابی کن یک کادر انتخاب جداگانه در فرم معیار است، نه یک شرط فیلتر. این گزینه برای Is Online و هر نوع فیلتر عددی در دسترس است. با روشن کردنش، به جای مقدار آخرین بررسی، یک مقدار تجمیعی مقایسه می‌شود که در ارزیابی انتخاب می‌شود (میانگین، جمع، Maximum Value، Minimum Value، All Values، Any Value) و روی پنجره‌ای که در (دقیقه) گذشته تعیین می‌کند اعمال می‌شود. در فیلتر Is Online، این پنجره مدتی است که عامل می‌تواند ساکت بماند پیش از آنکه سرور آفلاین به حساب بیاید.

All Values فقط وقتی برقرار می‌شود که پنجره واقعاً با داده پوشانده شده باشد. مانیتوری که تازه ساخته شده، یا مانیتوری که بررسی‌هایش دیگر ثبت نمی‌شوند، سابقه کافی برای گفتن چیزی درباره N دقیقه گذشته ندارد، پس معیار به جای برقرار شدن بر پایه تنها خوانشی که دارد، صبر می‌کند. Any Value تنظیمی برای «به محض اینکه یک بررسی از حد گذشت خبرم کن» است و همچنان بی‌درنگ فعال می‌شود.

اگر داده‌ای نبود تعیین می‌کند وقتی پنجره نمی‌تواند پشتوانه معیار باشد چه اتفاقی بیفتد:

اگر داده‌ای نبودرفتارکاربرد
Ignore (پیش‌فرض)معیار برقرار نمی‌شود.هشدارهای معمولی آستانه‌ای.
تریگرنبودِ داده خودش مشکل به حساب می‌آید.بررسی‌های شبیه ضربان قلب، که سکوت خودش یک خرابی است.
Treat As Zeroپنجره به‌صورت یک صفر تنها مقایسه می‌شود.شمارنده‌هایی که در آن‌ها «هیچ رویدادی» واقعاً یعنی صفر.
نکته کاربردی

CPU و بار همیشه جهش‌های کوتاه دارند. به جای هشدار بر پایه یک گزارش تنها، آن‌ها را در چند دقیقه با میانگین یا All Values ارزیابی کنید.

نمونه معیارها

هدفنوع فیلترشرط فیلترمقدار
وقتی عامل گزارش‌دادن را متوقف می‌کند، سرور را آفلاین علامت بزنیدIs Onlineنادرست—
وقتی مصرف CPU از ۹۰٪ بیشتر است هشدار دهیدCPU Usage (in %)بزرگ‌تر از90
وقتی دیسک ریشه بیش از ۸۵٪ پر است هشدار دهیدDisk Usage (in %)، مسیر دیسک /بزرگ‌تر از85
برای هر دیسکی که بیش از ۸۵٪ پر است هشدار دهید، یک هشدار به ازای هر دیسکDisk Usage (in %)، مسیر دیسک *بزرگ‌تر از85
وقتی مصرف حافظه از ۸۰٪ بیشتر است هشدار دهیدMemory Usage (in %)بزرگ‌تر از80
وقتی nginx از کار می‌افتد هشدار دهیدServer Process NameIs Not Executingnginx

رفع اشکال

عامل گزارش نمی‌دهد
  • بررسی کنید سرویس در حال اجرا باشد: sudo oneuptime-infrastructure-agent status.
  • لاگ آن را بخوانید: sudo oneuptime-infrastructure-agent logs -n 50. خطی با Metrics successfully pushed to Status200 server یعنی گزارش‌ها می‌رسند.
  • عامل هنگام اجرا کلید محرمانه را بررسی می‌کند و اگر Status200 آن را رد کند، با ثبت Secret key is invalid در لاگ خارج می‌شود. کلید را با کلیدی مقایسه کنید که در صفحه تنظیمات مانیتور، زیر بازنشانی کلید محرمانه مانیتور سرور آمده است.
  • مطمئن شوید سرور می‌تواند از راه HTTPS به نشانی Status200 شما برسد و هیچ دیواره آتشی اتصال‌های خروجی را مسدود نمی‌کند.
sudo می‌گوید فرمان پیدا نشد

بسته‌ها عامل را روی مسیر سیستم قرار می‌دهند، پس این مشکل فقط با اسکریپت نصب پیش می‌آید. اسکریپت نصب فایل اجرایی را در $HOME/bin کاربری که اسکریپت با آن اجرا شده قرار می‌دهد و پوشه‌ای را که استفاده کرده نشان می‌دهد. عامل را با مسیر کاملش اجرا کنید، برای نمونه sudo /root/bin/status200-infrastructure-agent configure .... برای اینکه به جای آن در پوشه‌ای روی مسیر سیستم نصب شود، -b را به اسکریپت بدهید:

Bash
curl -sSL https://status200.ru/docs/static/scripts/infrastructure-agent/install.sh | sudo bash -s -- -b /usr/local/bin
start می‌گوید پیکربندی سرویس پیدا نشد

configure اجرا نشده است، یا uninstall پیکربندی آن را حذف کرده است. configure را با کلید محرمانه و نشانی اجرا کنید، سپس start را.

وقتی سرور از کار افتاده، مانیتور هرگز آفلاین نمی‌شود

فقط یک معیار Is Online سرور ساکت را آفلاین علامت می‌زند. معیاری اضافه کنید که شرط فیلتر آن روی نادرست باشد، و وضعیت مانیتوری را که به آن تغییر می‌کند تعیین کنید.

گزارش‌ها از پراکسی عبور نمی‌کنند
  • نشانی و درگاه پراکسی‌ای را که به --proxy-url داده‌اید بررسی کنید.
  • مطمئن شوید پراکسی اجازه اتصال به نشانی Status200 شما را می‌دهد.
  • برای تغییر پراکسی، stop و uninstall را اجرا کنید، سپس configure را با --proxy-url تازه و بعد start را اجرا کنید.

گام‌های بعدی