نصب سنسور روی لینوکس

در این آموزش
  1. پیش‌نیازها
  2. گام ۱: گرفتن دستور نصب
  3. گام ۲: اجرا و آنچه اتفاق می‌افتد
  4. گام ۳: بررسی
  5. مسیرها روی لینوکس
  6. آنچه روی لینوکس متفاوت است
  7. ماشین‌های کلون‌شده
  8. عیب‌یابی

روی لینوکس، سنسور ServerMug یک فایل اجرایی ایستا است که در /usr/local/bin/servermug-agent قرار می‌گیرد و به‌صورت سرویس systemd با نام servermug-agent و با دسترسی root اجرا می‌شود. به هیچ بستهٔ اضافه‌ای نیاز ندارد؛ نصب با یک دستور curl … | sudo sh انجام می‌شود.

پیش‌نیازها

مورد شرط
معماری x86_64 (amd64) یا aarch64 (arm64)
توزیع هر توزیع با systemd؛ آزموده روی Ubuntu، Debian و خانوادهٔ RHEL (Rocky، Alma)
ابزارها curl یا wget، و sha256sum (یا shasum یا openssl)
دسترسی root یا کاربری با sudo
شبکه HTTPS خروجی به نشانی ingest و به https://app.servermug.ir؛ هیچ پورت ورودی لازم نیست

گام ۱: گرفتن دستور نصب

  1. در داشبورد «+ افزودن سرور» را بزنید، توکن را بسازید و زبانهٔ «لینوکس» را باز کنید.
  2. دستور را کپی کنید. شکل آن این است:
curl -fsSL 'https://app.servermug.ir/dl/install.sh' | sudo sh -s -- --server 'https://INGEST_HOST' --token 'sm_enroll_TOKEN' --pin 'sha256:FINGERPRINT' --dl 'https://app.servermug.ir/dl'

اگر توکن را با اجازهٔ اسکریپت ساخته باشید، --allow-scripts هم در انتهای دستور هست. معنای بقیهٔ پارامترها همان است که در نصب روی ویندوز آمده است.

اگر ترجیح می‌دهید اسکریپت را پیش از اجرا بخوانید، که کار درستی است، اول دانلودش کنید:

curl -fsSL -o install.sh 'https://app.servermug.ir/dl/install.sh'
less install.sh
sudo sh install.sh --server 'https://INGEST_HOST' --token 'sm_enroll_TOKEN' --pin 'sha256:FINGERPRINT' --dl 'https://app.servermug.ir/dl'

گام ۲: اجرا و آنچه اتفاق می‌افتد

  1. اسکریپت معماری را با uname -m تشخیص می‌دهد و فایل servermug-agent-linux-amd64 یا servermug-agent-linux-arm64 را دانلود می‌کند.
  2. SHA-256 فایل را با manifest.json مقایسه می‌کند؛ اگر یکی نباشد، متوقف می‌شود.
  3. سنسور با توکن ثبت می‌شود، خودش را در /usr/local/bin/servermug-agent کپی می‌کند، تنظیمات را در /etc/servermug/agent.json (فقط قابل خواندن برای root) می‌نویسد و یونیت servermug-agent.service را با Restart=always فعال و اجرا می‌کند.

در پایان باید ببینید:

✓ ServerMug agent 0.1.0 installed and running (service servermug-agent).
✓ سنسور سرورماگ نصب شد و در حال اجراست.

گام ۳: بررسی

sudo servermug-agent status
systemctl status servermug-agent
journalctl -u servermug-agent -n 50
sudo tail -n 50 /var/log/servermug-agent.log

در خروجی status، خط last report زمان آخرین گزارش موفق را نشان می‌دهد و خط spool تعداد گزارش‌هایی را که به‌خاطر قطعی شبکه منتظر ارسال‌اند.

مسیرها روی لینوکس

مسیر محتوا
/usr/local/bin/servermug-agent فایل اجرایی
/etc/servermug/agent.json نشانی سرور، پین، کلید سنسور (فقط root)
/var/lib/servermug وضعیت سنسور، تنظیمات دریافتی و spool (حداکثر ۵۰ مگابایت)
/var/log/servermug-agent.log لاگ سنسور

آنچه روی لینوکس متفاوت است

  • به‌روزرسانی‌ها: چک آپدیت از apt-get -s dist-upgrade یا dnf/yum -C check-update استفاده می‌کند، یعنی فقط از کش محلی مخزن می‌خواند و خودش به اینترنت وصل نمی‌شود. اگر روی سرور هیچ‌وقت apt update اجرا نشود، کش کهنه می‌ماند و آپدیت تازه دیده نمی‌شود. روی Debian و Ubuntu، سن فهرست مخزن (lists_age_days) در جزئیات چک نمایش داده می‌شود. بستهٔ unattended-upgrades یا یک cron که روزانه apt update بزند، این مشکل را حل می‌کند.
  • آنتی‌ویروس: اگر هیچ ClamAV یا EDR شناخته‌شده‌ای پیدا نشود، چک «هشدار» می‌شود نه «بحرانی»، چون بیشتر سرورهای لینوکس آنتی‌ویروس ندارند.
  • ورود ناموفق: از لاگ sshd در journald خوانده می‌شود و اگر journald نباشد از /var/log/auth.log یا /var/log/secure.
  • سلامت دیسک: فقط اگر smartctl (بستهٔ smartmontools) نصب باشد؛ وگرنه وضعیت «نامشخص» است. روی ماشین مجازی معمولاً اطلاعات SMART در دسترس نیست.
  • سرویس‌ها: یونیت‌های failed در systemd چک جداگانه دارند و به‌محض خرابی، بحرانی می‌شوند.
  • inode و load average: فقط روی لینوکس جمع می‌شوند.
  • فایل طعمه: در /srv، /home، /var/www و /opt/share (هر کدام که وجود داشته باشد) و پوشه‌های اشتراکی Samba از /etc/samba/smb.conf.

ماشین‌های کلون‌شده

سنسور هر سرور را با /etc/machine-id می‌شناسد. اگر چند ماشین مجازی از یک قالب ساخته شده باشند و این فایل یکسان باشد، همه در داشبورد یک سرور دیده می‌شوند و مدام جای هم را می‌گیرند. پیش از نصب، شناسهٔ تکراری را عوض کنید:

cat /etc/machine-id
sudo rm -f /etc/machine-id
sudo systemd-machine-id-setup

بعد از تغییر machine-id، سرور را یک بار ریبوت کنید تا سرویس‌های دیگر هم شناسهٔ تازه را بخوانند.

عیب‌یابی

پیام راه حل
servermug: must run as root (use sudo) دستور را با sudo اجرا کنید؛ دقت کنید sudo بعد از | بیاید
servermug: unsupported architecture فقط amd64 و arm64 پشتیبانی می‌شوند
servermug: cannot download .../manifest.json دسترسی خروجی به app.servermug.ir را با curl -I https://app.servermug.ir بررسی کنید
توکن ثبت نامعتبر، منقضی یا تمام‌شده است از داشبورد توکن تازه بسازید
certificate pin mismatch یک پراکسی TLS بین سرور و ingest است؛ نشانی ingest را از آن مستثنا کنید

اجرای دوبارهٔ دستور نصب بی‌خطر است: اگر همان نسخه در حال اجرا باشد پیام already installed and running می‌گیرید و اگر نسخهٔ قدیمی‌تر باشد فقط فایل به‌روز می‌شود.

دستور نصب را از کجا بیاورید؟

در داشبورد، صفحهٔ «افزودن سرور» دستور آماده با توکن خودتان را می‌دهد. هنوز حساب ندارید؟ درخواست دمو بدهید.

ورود به داشبورد درخواست دمو