سرور و زیرساخت وب · لینوکس

مدیریت سرور لینوکس و پیکربندی سرورهای Ubuntu، Debian، AlmaLinux و Rocky

خدمت مدیریت سرور لینوکس در کانفیگ سرور برای کسب‌وکارهایی است که سرور Ubuntu، Debian، AlmaLinux یا Rocky Linux دارند و نیرویی برای نگهداری روزمره آن ندارند. راه‌اندازی و پیکربندی، به‌روزرسانی، عیب‌یابی و بهینه‌سازی را انجام می‌دهیم و سرویس‌ها، تنظیمات و دسترسی‌ها را مکتوب تحویل می‌دهیم.

Ubuntu · Debian AlmaLinux · Rocky Linux Nginx · Apache · LiteSpeed MySQL · MariaDB
چه زمانی به این خدمت نیاز دارید؟

وقتی سرور لینوکس دارید اما وقت یا تخصص نگهداری آن را ندارید

سرور داریم ولی کسی در تیم با خط فرمان لینوکس راحت نیست

سرور بدون مدیر معمولاً تا اولین مشکل جدی کار می‌کند. آن روز معلوم می‌شود وصله‌ها نصب نشده‌اند و کسی نمی‌داند هر سرویس برای چیست. در این خدمت نقش مدیر سرور را برای شما بر عهده می‌گیریم.

سرور کند شده، دیسک پر می‌شود یا سرویس‌ها خودبه‌خود متوقف می‌شوند

این علائم معمولاً از لاگ‌های کنترل‌نشده، کمبود حافظه و فعال‌شدن OOM Killer، تنظیم نادرست PHP-FPM یا کوئری‌های سنگین دیتابیس می‌آیند. علت را از لاگ‌ها و مصرف منابع پیدا می‌کنیم تا مشکل با یک ری‌استارت فقط برای مدتی پنهان نشود.

هنوز روی CentOS 7 یا یک نسخه قدیمی اوبونتو هستیم

پشتیبانی رسمی CentOS 7 تمام شده و دیگر وصله امنیتی دریافت نمی‌کند. مسیر مهاجرت به AlmaLinux، Rocky Linux یا یک نسخه LTS را طراحی می‌کنیم و پیش از اجرا روی محیط آزمایشی امتحان می‌کنیم.

خدمات مدیریت سرور لینوکس

در مدیریت سرور لینوکس چه کارهایی انجام می‌دهیم؟

سرور را درست راه‌اندازی می‌کنیم و پشته وب و دیتابیس را با بار واقعی آن هماهنگ می‌کنیم. به‌روزرسانی و نگهداری منظم هم بخشی از کار است و وقتی مشکلی پیش می‌آید، علت را از لاگ‌ها و مصرف منابع پیدا می‌کنیم.

راه‌اندازی و پیکربندی اولیه

بقیه کارهای سرور روی این تنظیمات بنا می‌شوند و اصلاحشان بعد از راه‌اندازی سایت دشوارتر است.

  • تنظیم hostname، منطقه زمانی و همگام‌سازی زمان
  • پیکربندی شبکه با Netplan یا NetworkManager
  • ساخت کاربران، دسترسی sudo و ورود با کلید SSH
  • پارتیشن‌بندی، LVM و swap متناسب با نقش سرور

پشته وب و اپلیکیشن

وب‌سرور و PHP بر اساس ترافیک و منابع سرور شما تنظیم می‌شوند.

  • نصب و تنظیم Nginx، Apache یا LiteSpeed همراه با PHP-FPM
  • پیکربندی virtual host، گواهی TLS و تمدید آن با Certbot
  • راه‌اندازی reverse proxy برای اپلیکیشن‌های Node.js، Python یا کانتینری

دیتابیس MySQL و MariaDB

بخش زیادی از کندی سایت‌ها از دیتابیسی می‌آید که هیچ‌وقت تنظیم نشده است.

  • تنظیم innodb_buffer_pool_size و max_connections بر اساس حافظه سرور
  • فعال‌سازی slow query log و گزارش کوئری‌های کند به تیم توسعه
  • کاربران دیتابیس با کمترین دسترسی لازم و محدودسازی دسترسی از بیرون

به‌روزرسانی و نگهداری منظم

کارهای تکراری که اگر فراموش شوند، دیر یا زود سرور را از کار می‌اندازند؛ مثل دیسکی که آرام‌آرام با لاگ پر می‌شود.

  • نصب وصله‌های امنیتی با apt یا dnf طبق سیاست توافق‌شده
  • مدیریت سرویس‌ها با systemd و بررسی تایمرها و cron jobها
  • چرخش لاگ با logrotate و کنترل فضای دیسک و inode

پایش و عیب‌یابی

تشخیص بر پایه داده‌های منابع و لاگ‌ها انجام می‌شود.

  • بررسی بار CPU، حافظه و I/O با top، vmstat و iostat و تحلیل journalctl و لاگ‌های وب‌سرور برای یافتن علت خطا
  • راه‌اندازی هشدار منابع با ابزارهایی مانند Zabbix یا Prometheus

ارتقای نسخه و جایگزینی توزیع

نسخه‌ای که به پایان عمر رسیده، وصله امنیتی تازه نمی‌گیرد و هر آسیب‌پذیری جدید روی آن باز می‌ماند.

  • ارتقای Ubuntu LTS و Debian به نسخه پشتیبانی‌شده
  • مهاجرت از CentOS به AlmaLinux یا Rocky Linux
  • آزمایش روی snapshot یا سرور آزمایشی پیش از اجرا روی محیط اصلی
راهنمای کامل

راهنمای مدیریت سرور لینوکس: نگهداری، به‌روزرسانی و عیب‌یابی

مدیریت سرور لینوکس بیشتر از کارهای کوچک و تکراری ساخته می‌شود تا پروژه‌های بزرگ. وصله امنیتی باید در زمان مشخص نصب شود، لاگ‌ها نباید دیسک را پر کنند و کسی باید بداند هر سرویس و هر cron job برای چیست. سروری که سال‌ها بدون این کارها مانده، معمولاً در ساعت کاری از کار می‌افتد و آن وقت هیچ‌کس نمی‌داند از کجا باید شروع کند. نکته‌های زیر به کار مدیری می‌آید که سرور Ubuntu، Debian، AlmaLinux یا Rocky Linux را نگهداری می‌کند یا می‌خواهد بداند از پیمانکار چه کاری بخواهد.

کارهای دوره‌ای در نگهداری سرور لینوکس

بخشی از کارها هر هفته و بخشی هر ماه تکرار می‌شوند و بهتر است از روز اول فهرست شوند. فهرست زیر نقطه شروع رایجی است و روی هر سرور بر اساس نقش آن کوتاه‌تر یا بلندتر می‌شود:

  • نصب وصله‌های امنیتی با apt یا dnf و بررسی سرویس‌هایی که بعد از آن باید ری‌استارت شوند
  • کنترل فضای دیسک و inode و بازبینی تنظیمات logrotate
  • مرور خروجی systemctl –failed، تایمرهای systemd و cron jobها
  • بررسی تمدید گواهی‌های TLS که Certbot صادر کرده است
  • مرور کاربران، دسترسی‌های sudo و کلیدهای SSH

بیشتر این موارد پیش از تبدیل شدن به قطعی نشانه‌ای می‌دهند. دیسکی که هفته‌به‌هفته پرتر می‌شود، مدت‌ها پیش از خطای No space left on device دیده می‌شود، به شرط آنکه کسی به آن نگاه کند؛ گواهی‌ای که تمدیدش شکست خورده هم تا روز انقضا خطایی نشان نمی‌دهد. برای اینکه این کارها به حافظه یک نفر وابسته نماند، هشدار منابع را با ابزاری مثل Zabbix یا Prometheus راه بیندازید و نتیجه هر بازبینی را در مستندات سرور ثبت کنید.

سیاست به‌روزرسانی و ری‌استارت سرور

بیشتر به‌روزرسانی‌ها فقط ری‌استارت همان سرویسی را لازم دارند که کتابخانه‌اش عوض شده و ابزار needrestart فهرست این سرویس‌ها را نشان می‌دهد. کرنل جدید و کتابخانه‌های پایه مثل glibc تا ری‌بوت اثر نمی‌کنند، پس سیاست به‌روزرسانی باید پنجره زمانی ری‌بوت را هم مشخص کند. در Ubuntu و Debian ابزار unattended-upgrades و در AlmaLinux و Rocky ابزار dnf-automatic را می‌توان طوری تنظیم کرد که فقط وصله‌های امنیتی را خودکار نصب کنند. ارتقای نسخه اصلی PHP، MySQL یا وب‌سرور را خودکار نکنید، چون ممکن است با کد سایت ناسازگار باشد و باید اول روی snapshot یا سرور آزمایشی امتحان شود.

پیش از هر به‌روزرسانی بزرگ از فایل‌های پیکربندی نسخه پشتیبان بگیرید و اگر سرور روی بستر مجازی است، snapshot هم بگیرید. snapshot جای بکاپ را نمی‌گیرد، ولی برگرداندن یک به‌روزرسانی ناموفق را ساده می‌کند. سخت‌سازی دسترسی‌ها، فایروال و تنظیمات امنیتی کرنل کار جداگانه‌ای است که در خدمت امن‌سازی سرور انجام می‌شود.

عیب‌یابی کندی و توقف سرویس‌ها از روی لاگ و منابع

وقتی سرور کند می‌شود، اول معلوم کنید کمبود در کدام منبع است. top و vmstat نشان می‌دهند CPU مشغول است یا فرایندها منتظر دیسک‌اند و iostat زمان پاسخ دیسک را اندازه می‌گیرد. اگر سرویسی بی‌دلیل متوقف شده، journalctl و خروجی dmesg را برای پیام OOM Killer بگردید؛ روی سرورهای وب، این پیام اغلب یعنی MySQL یا فرایندهای PHP-FPM بیشتر از رم موجود حافظه خواسته‌اند.

در همین مرحله دو خطا زیاد دیده می‌شود. اولی بالا بردن pm.max_children در PHP-FPM بدون حساب کردن رم هر فرایند است که سرور را به swap می‌کشاند و کندی را بدتر می‌کند. دومی پاک کردن دستی لاگ‌ها برای آزاد کردن دیسک است: فایلی که هنوز یک فرایند بازش نگه داشته با rm فضایی آزاد نمی‌کند و سرنخ علت مشکل هم از بین می‌رود. کوئری‌های کند را هم با slow query log پیدا کنید و فهرستشان را به تیم توسعه بدهید. اگر سرور همین حالا از دسترس خارج شده، مسیر سریع‌تر پشتیبانی فوری سرور و شبکه است.

CentOS 7 و ارتقای نسخه توزیع

CentOS 7 به پایان پشتیبانی رسیده و دیگر وصله امنیتی نمی‌گیرد. برای نرم‌افزارهایی که به خانواده RHEL وابسته‌اند، AlmaLinux و Rocky Linux نزدیک‌ترین جایگزین‌ها هستند و برای پروژه تازه، Ubuntu LTS یا Debian هم انتخاب رایجی است. ابزارهای تبدیل درجا وجود دارند، اما روی سروری که سال‌ها بسته و مخزن غیررسمی رویش نصب شده، نتیجه آن‌ها را نمی‌شود از قبل پیش‌بینی کرد.

در بیشتر موارد، نصب تمیز روی سرور جدید و انتقال سرویس‌ها امن‌تر است، چون سرور قدیمی تا پایان آزمایش روشن می‌ماند و راه بازگشت باز است. اگر کنترل‌پنل دارید، سازگاری آن با توزیع مقصد دامنه انتخاب را محدود می‌کند. جابه‌جایی سایت‌ها، دیتابیس و ایمیل به سرور تازه در خدمت مهاجرت سرور و هاست انجام می‌شود.

زمان و هزینه مدیریت سرور لینوکس به چه بستگی دارد؟

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

برای برآورد، توزیع و نسخه سرور، سرویس‌هایی که روی آن اجرا می‌شوند، نوع دسترسی موجود و مشکل یا نیاز فعلی را بفرستید. قیمت پس از همین بررسی اولیه اعلام می‌شود. اگر نگهداری کل زیرساخت، از جمله ویندوز سرور و مجازی‌سازها را می‌خواهید، پشتیبانی و مدیریت سرور مناسب‌تر است.

رمز root یا کلید خصوصی SSH را در پیام اولیه نفرستید. روش امن دادن دسترسی پس از مشاوره هماهنگ می‌شود.

فرآیند اجرای کار

مدیریت سرور لینوکس در چهار گام

بررسی و مستندسازی وضعیت فعلی

توزیع و نسخه، سرویس‌های فعال، مصرف منابع، کاربران، cron jobها، پورت‌های باز و مشکلات جاری را فهرست می‌کنیم. اگر سال‌ها کسی سرور را مستند نکرده باشد، این فهرست از روی خود سرور ساخته می‌شود.

توافق روی محدوده و سیاست‌ها

مشخص می‌کنیم کدام کارها یک‌باره‌اند، مثل ارتقای نسخه، و کدام دوره‌ای. زمان مجاز برای به‌روزرسانی و ری‌استارت و راه ارتباطی هنگام بروز مشکل هم از قبل تعیین می‌شود.

اجرا با کنترل تغییرات

پیش از هر تغییر از فایل‌های پیکربندی نسخه پشتیبان می‌گیریم و اگر بستر اجازه دهد، snapshot. تغییرها در ساعات کم‌ترافیک و با برنامه بازگشت اجرا می‌شوند تا زمان قطعی کوتاه بماند.

تحویل مستندات و نگهداری

فهرست سرویس‌ها، مسیر فایل‌های پیکربندی، دسترسی‌ها و کارهای انجام‌شده را تحویل می‌دهیم. با این مستندات سرور به یک شخص خاص وابسته نمی‌ماند و مدیر بعدی می‌تواند کار را ادامه دهد.

محدوده خدمت مدیریت سرور لینوکس

شامل این خدمت

  • پیکربندی و نگهداری Ubuntu، Debian، AlmaLinux و Rocky Linux
  • نصب و تنظیم وب‌سرور، PHP-FPM و MySQL یا MariaDB
  • به‌روزرسانی، وصله امنیتی و ارتقای نسخه توزیع
  • عیب‌یابی کندی، توقف سرویس‌ها و پرشدن دیسک
  • تنظیمات شبکه، DNS resolver و فایروال پایه سرور
  • مستندسازی سرور، سرویس‌ها و دسترسی‌ها

خارج از این خدمت

چرا کانفیگ سرور؟

مدیریت سرور لینوکس با تغییرات مستند، روی سرور خودتان

این خدمت بخشی از مجموعه زیرساخت سرور و وب کانفیگ سرور است و فقط سرورهای لینوکسی را پوشش می‌دهد. به همین دلیل جزئیات هر توزیع، از مدیر بسته تا ساختار فایل‌های پیکربندی، در کار رعایت می‌شود.

01

کار روی سرور خودتان

سرور شما می‌تواند VPS، سرور اختصاصی یا ماشین مجازی روی Proxmox یا VMware باشد. برای دریافت خدمت لازم نیست ارائه‌دهنده را عوض کنید.

02

توزیع‌های رایج سرور لینوکس

در خانواده Debian و Ubuntu با apt و Netplan و در خانواده RHEL، یعنی AlmaLinux و Rocky، با dnf و firewalld کار می‌کنیم.

03

مستندات قابل تحویل

هر تغییر ثبت می‌شود. اگر روزی بخواهید مدیریت سرور را به تیم داخلی بسپارید، از همین مستندات شروع می‌کنید.

04

دانش منتشرشده

راهنمای مدیریت سرور و لینوکس و آموزش‌های لینوکسی دیگر روی همین سایت منتشر شده‌اند تا پیش از همکاری سطح فنی تیم را بسنجید.

سوالات متداول

پرسش‌های رایج درباره مدیریت سرور لینوکس

مدیریت سرور لینوکس دقیقاً شامل چه کارهایی می‌شود؟

مدیریت سرور لینوکس شامل پیکربندی سیستم‌عامل و سرویس‌ها، نصب و تنظیم وب‌سرور و دیتابیس، نصب به‌روزرسانی‌ها و وصله‌های امنیتی، بررسی لاگ و منابع، عیب‌یابی و مستندسازی است. فهرست دقیق کارهای یک‌باره و دوره‌ای را در ابتدای همکاری با هم مشخص می‌کنیم.

تفاوت این خدمت با پشتیبانی و مدیریت سرور چیست؟

این خدمت فقط سرورهای لینوکسی را پوشش می‌دهد و روی جزئیات همین توزیع‌ها تمرکز دارد. صفحه پشتیبانی و مدیریت سرور مدیریت کلی زیرساخت را پوشش می‌دهد، از جمله ویندوز سرور، مجازی‌سازها و کنترل‌پنل‌ها.

سرورم را از شرکت دیگری خریده‌ام؛ امکان مدیریت آن هست؟

بله، به شرط دسترسی root یا کاربر با sudo و ترجیحاً دسترسی به کنسول پنل ارائه‌دهنده برای شرایط اضطراری. محل میزبانی سرور در روش کار ما تغییری ایجاد نمی‌کند.

آیا برای به‌روزرسانی، سرور ری‌استارت می‌شود؟

بیشتر به‌روزرسانی‌ها ری‌بوت سرور لازم ندارند و فقط سرویس مربوط ری‌استارت می‌شود؛ ابزاری مثل needrestart این سرویس‌ها را مشخص می‌کند. به‌روزرسانی کرنل یا کتابخانه‌های پایه مثل glibc ری‌بوت لازم دارد و آن را در زمان هماهنگ‌شده و کم‌ترافیک انجام می‌دهیم.

از CentOS 7 به کدام توزیع مهاجرت کنیم؟

برای نرم‌افزارهای وابسته به خانواده RHEL، AlmaLinux یا Rocky Linux نزدیک‌ترین گزینه‌ها هستند و برای پروژه‌های تازه Ubuntu LTS یا Debian هم رایج‌اند. اگر کنترل‌پنل دارید، سازگاری آن تعیین‌کننده است. در بسیاری از موارد نصب تمیز روی سرور جدید و انتقال سرویس‌ها امن‌تر از ارتقای درجاست.

برای مدیریت سرور لینوکس، بررسی اولیه رایگان را در تلگرام درخواست کنید

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