سرور داریم ولی کسی در تیم با خط فرمان لینوکس راحت نیست
سرور بدون مدیر معمولاً تا اولین مشکل جدی کار میکند. آن روز معلوم میشود وصلهها نصب نشدهاند و کسی نمیداند هر سرویس برای چیست. در این خدمت نقش مدیر سرور را برای شما بر عهده میگیریم.
خدمت مدیریت سرور لینوکس در کانفیگ سرور برای کسبوکارهایی است که سرور Ubuntu، Debian، AlmaLinux یا Rocky Linux دارند و نیرویی برای نگهداری روزمره آن ندارند. راهاندازی و پیکربندی، بهروزرسانی، عیبیابی و بهینهسازی را انجام میدهیم و سرویسها، تنظیمات و دسترسیها را مکتوب تحویل میدهیم.
سرور بدون مدیر معمولاً تا اولین مشکل جدی کار میکند. آن روز معلوم میشود وصلهها نصب نشدهاند و کسی نمیداند هر سرویس برای چیست. در این خدمت نقش مدیر سرور را برای شما بر عهده میگیریم.
این علائم معمولاً از لاگهای کنترلنشده، کمبود حافظه و فعالشدن OOM Killer، تنظیم نادرست PHP-FPM یا کوئریهای سنگین دیتابیس میآیند. علت را از لاگها و مصرف منابع پیدا میکنیم تا مشکل با یک ریاستارت فقط برای مدتی پنهان نشود.
پشتیبانی رسمی CentOS 7 تمام شده و دیگر وصله امنیتی دریافت نمیکند. مسیر مهاجرت به AlmaLinux، Rocky Linux یا یک نسخه LTS را طراحی میکنیم و پیش از اجرا روی محیط آزمایشی امتحان میکنیم.
سرور را درست راهاندازی میکنیم و پشته وب و دیتابیس را با بار واقعی آن هماهنگ میکنیم. بهروزرسانی و نگهداری منظم هم بخشی از کار است و وقتی مشکلی پیش میآید، علت را از لاگها و مصرف منابع پیدا میکنیم.
بقیه کارهای سرور روی این تنظیمات بنا میشوند و اصلاحشان بعد از راهاندازی سایت دشوارتر است.
وبسرور و PHP بر اساس ترافیک و منابع سرور شما تنظیم میشوند.
بخش زیادی از کندی سایتها از دیتابیسی میآید که هیچوقت تنظیم نشده است.
کارهای تکراری که اگر فراموش شوند، دیر یا زود سرور را از کار میاندازند؛ مثل دیسکی که آرامآرام با لاگ پر میشود.
تشخیص بر پایه دادههای منابع و لاگها انجام میشود.
نسخهای که به پایان عمر رسیده، وصله امنیتی تازه نمیگیرد و هر آسیبپذیری جدید روی آن باز میماند.
مدیریت سرور لینوکس بیشتر از کارهای کوچک و تکراری ساخته میشود تا پروژههای بزرگ. وصله امنیتی باید در زمان مشخص نصب شود، لاگها نباید دیسک را پر کنند و کسی باید بداند هر سرویس و هر cron job برای چیست. سروری که سالها بدون این کارها مانده، معمولاً در ساعت کاری از کار میافتد و آن وقت هیچکس نمیداند از کجا باید شروع کند. نکتههای زیر به کار مدیری میآید که سرور Ubuntu، Debian، AlmaLinux یا Rocky Linux را نگهداری میکند یا میخواهد بداند از پیمانکار چه کاری بخواهد.
بخشی از کارها هر هفته و بخشی هر ماه تکرار میشوند و بهتر است از روز اول فهرست شوند. فهرست زیر نقطه شروع رایجی است و روی هر سرور بر اساس نقش آن کوتاهتر یا بلندتر میشود:
بیشتر این موارد پیش از تبدیل شدن به قطعی نشانهای میدهند. دیسکی که هفتهبههفته پرتر میشود، مدتها پیش از خطای 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 به پایان پشتیبانی رسیده و دیگر وصله امنیتی نمیگیرد. برای نرمافزارهایی که به خانواده RHEL وابستهاند، AlmaLinux و Rocky Linux نزدیکترین جایگزینها هستند و برای پروژه تازه، Ubuntu LTS یا Debian هم انتخاب رایجی است. ابزارهای تبدیل درجا وجود دارند، اما روی سروری که سالها بسته و مخزن غیررسمی رویش نصب شده، نتیجه آنها را نمیشود از قبل پیشبینی کرد.
در بیشتر موارد، نصب تمیز روی سرور جدید و انتقال سرویسها امنتر است، چون سرور قدیمی تا پایان آزمایش روشن میماند و راه بازگشت باز است. اگر کنترلپنل دارید، سازگاری آن با توزیع مقصد دامنه انتخاب را محدود میکند. جابهجایی سایتها، دیتابیس و ایمیل به سرور تازه در خدمت مهاجرت سرور و هاست انجام میشود.
تعداد سرورها و نقش هر کدام پایه برآورد است. سروری که فقط یک سایت وردپرسی دارد با سروری که وب، دیتابیس و چند اپلیکیشن کانتینری را یکجا اجرا میکند فرق دارد. وضعیت مستندات هم اثر زیادی دارد، چون روی سرور مستندنشده مرحله بررسی اولیه طولانیتر میشود. کارهای یکباره مثل ارتقای نسخه توزیع جدا از کارهای دورهای برآورد میشوند و پنجره زمانی مجاز برای بهروزرسانی و ریاستارت هم در برنامه اثر دارد.
برای برآورد، توزیع و نسخه سرور، سرویسهایی که روی آن اجرا میشوند، نوع دسترسی موجود و مشکل یا نیاز فعلی را بفرستید. قیمت پس از همین بررسی اولیه اعلام میشود. اگر نگهداری کل زیرساخت، از جمله ویندوز سرور و مجازیسازها را میخواهید، پشتیبانی و مدیریت سرور مناسبتر است.
رمز root یا کلید خصوصی SSH را در پیام اولیه نفرستید. روش امن دادن دسترسی پس از مشاوره هماهنگ میشود.
توزیع و نسخه، سرویسهای فعال، مصرف منابع، کاربران، cron jobها، پورتهای باز و مشکلات جاری را فهرست میکنیم. اگر سالها کسی سرور را مستند نکرده باشد، این فهرست از روی خود سرور ساخته میشود.
مشخص میکنیم کدام کارها یکبارهاند، مثل ارتقای نسخه، و کدام دورهای. زمان مجاز برای بهروزرسانی و ریاستارت و راه ارتباطی هنگام بروز مشکل هم از قبل تعیین میشود.
پیش از هر تغییر از فایلهای پیکربندی نسخه پشتیبان میگیریم و اگر بستر اجازه دهد، snapshot. تغییرها در ساعات کمترافیک و با برنامه بازگشت اجرا میشوند تا زمان قطعی کوتاه بماند.
فهرست سرویسها، مسیر فایلهای پیکربندی، دسترسیها و کارهای انجامشده را تحویل میدهیم. با این مستندات سرور به یک شخص خاص وابسته نمیماند و مدیر بعدی میتواند کار را ادامه دهد.
این خدمت بخشی از مجموعه زیرساخت سرور و وب کانفیگ سرور است و فقط سرورهای لینوکسی را پوشش میدهد. به همین دلیل جزئیات هر توزیع، از مدیر بسته تا ساختار فایلهای پیکربندی، در کار رعایت میشود.
سرور شما میتواند VPS، سرور اختصاصی یا ماشین مجازی روی Proxmox یا VMware باشد. برای دریافت خدمت لازم نیست ارائهدهنده را عوض کنید.
در خانواده Debian و Ubuntu با apt و Netplan و در خانواده RHEL، یعنی AlmaLinux و Rocky، با dnf و firewalld کار میکنیم.
هر تغییر ثبت میشود. اگر روزی بخواهید مدیریت سرور را به تیم داخلی بسپارید، از همین مستندات شروع میکنید.
راهنمای مدیریت سرور و لینوکس و آموزشهای لینوکسی دیگر روی همین سایت منتشر شدهاند تا پیش از همکاری سطح فنی تیم را بسنجید.
مدیریت سرور لینوکس شامل پیکربندی سیستمعامل و سرویسها، نصب و تنظیم وبسرور و دیتابیس، نصب بهروزرسانیها و وصلههای امنیتی، بررسی لاگ و منابع، عیبیابی و مستندسازی است. فهرست دقیق کارهای یکباره و دورهای را در ابتدای همکاری با هم مشخص میکنیم.
این خدمت فقط سرورهای لینوکسی را پوشش میدهد و روی جزئیات همین توزیعها تمرکز دارد. صفحه پشتیبانی و مدیریت سرور مدیریت کلی زیرساخت را پوشش میدهد، از جمله ویندوز سرور، مجازیسازها و کنترلپنلها.
بله، به شرط دسترسی root یا کاربر با sudo و ترجیحاً دسترسی به کنسول پنل ارائهدهنده برای شرایط اضطراری. محل میزبانی سرور در روش کار ما تغییری ایجاد نمیکند.
بیشتر بهروزرسانیها ریبوت سرور لازم ندارند و فقط سرویس مربوط ریاستارت میشود؛ ابزاری مثل needrestart این سرویسها را مشخص میکند. بهروزرسانی کرنل یا کتابخانههای پایه مثل glibc ریبوت لازم دارد و آن را در زمان هماهنگشده و کمترافیک انجام میدهیم.
برای نرمافزارهای وابسته به خانواده RHEL، AlmaLinux یا Rocky Linux نزدیکترین گزینهها هستند و برای پروژههای تازه Ubuntu LTS یا Debian هم رایجاند. اگر کنترلپنل دارید، سازگاری آن تعیینکننده است. در بسیاری از موارد نصب تمیز روی سرور جدید و انتقال سرویسها امنتر از ارتقای درجاست.
توزیع و نسخه سرور، سرویسهایی که روی آن اجرا میشوند و مشکل یا نیاز فعلی را در تلگرام بنویسید. کارشناس کانفیگ سرور بررسی اولیه رایگان انجام میدهد و محدوده کار را پیشنهاد میکند.