هوش مصنوعی برای دواپس: اسکریپت، لاگ و تحلیل خطا

ساعت دو بامداد و چهل هزار خط لاگ. اینجا جایی است که ابزار هوشمند بیشترین سود را می‌رساند و بیشترین خطر را دارد؛ مرزش کجاست.

🍊 تیم نارنگی ⏱ 5 دقیقه مطالعه
تحلیل لاگ سرور و نوشتن اسکریپت زیرساخت با کمک ابزار هوشمند

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

و همان‌جا خطرناک‌ترین هم هستند. یک تابع اشتباه در کد اپلیکیشن با یک کامیت برمی‌گردد؛ یک دستور اشتباه روی دیسک سرور تولید برنمی‌گردد. تفاوت کار دواپس با برنامه‌نویسی معمولی همین است: برگشت‌ناپذیری.

کجا واقعاً کار می‌کند

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

ترجمه‌ی خطا به زبان آدم. پیام‌های خطای کوبرنتیز، nginx و systemd معروف‌اند به اینکه هیچ‌چیز نمی‌گویند. چسباندن متن دقیق خطا و پرسیدن «این یعنی چه و کجا را باید نگاه کنم» معمولاً در چند ثانیه شما را به مسیر درست می‌اندازد.

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

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

تحلیل لاگ: روش درست

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

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

۱) الگوهای غیرعادی را فهرست کن، با شماره‌ی خط
۲) سه فرضیه برای علت بنویس، از محتمل‌ترین
۳) برای هر فرضیه بگو با چه دستوری تأییدش کنم
۴) چیزی را که در لاگ نیست حدس نزن؛ بنویس «داده ندارم»

--- لاگ:
[متن]

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

⚠️ لاگ را تمیز کنید

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

اسکریپت و پیکربندی

برای اسکریپت‌نویسی، محیط را دقیق بگویید: توزیع لینوکس، نسخه‌ی shell، اینکه دسترسی root دارید یا نه. بدون این‌ها، خروجی معمولاً دستوری دارد که روی توزیع شما نصب نیست.

یک قاعده‌ی عملی که واقعاً جواب می‌دهد: از مدل بخواهید اول نسخه‌ی «فقط گزارش‌بده» را بنویسد. اسکریپت را اجرا می‌کنید، خروجی را می‌بینید، و بعد اجازه‌ی حذف یا تغییر می‌دهید.

یک اسکریپت bash برای اوبونتو ۲۲.۰۴ بنویس که ...
دو حالت داشته باشد: با پرچم --dry-run فقط گزارش بدهد
چه کاری قرار است بکند، و بدون آن اجرا کند.
هر عملیات حذف را قبلش لاگ کن. با set -euo pipefail شروع کن.

کدام کار، چه کیفیتی

کارکیفیتنکته
توضیح پیام خطاخوبسریع‌ترین برد؛ متن دقیق خطا را بچسبانید
اسکریپت shell کوتاهخوبنسخه‌ی توزیع را حتماً بنویسید
Dockerfile و فایل CIخوبلایه‌بندی بهینه را جداگانه بخواهید
مانیفست کوبرنتیزمتوسطنام فیلدها گاهی از نسخه‌ی قدیمی می‌آید
ترافورم چندماژولهمتوسطوابستگی بین ماژول‌ها را نمی‌بیند
ریشه‌یابی قطعی واقعیکمکیفرضیه می‌سازد، تأیید با شماست
تنظیم قواعد فایروالضعیفخطای اینجا مستقیم امنیتی است

سه کاری که نباید بسپارید

  1. اجرای مستقیم روی تولید. هر اتصالی که به مدل اجازه‌ی اجرای دستور روی سرور زنده بدهد، یک حادثه‌ی منتظر است. اگر ایجنت به‌کار می‌برید، دسترسی فقط‌خواندنی بدهید. تفاوت این دو حالت در ایجنت‌های هوش مصنوعی باز شده.
  2. تصمیم درباره‌ی داده. مهاجرت دیتابیس، پاک‌سازی، تغییر شِما. پیش‌نویس بگیرید، ولی خودتان بخوانید و روی نسخه‌ی پشتیبان امتحان کنید.
  3. سیاست دسترسی و رمز. قواعد IAM و فایروال را مدل با «چیزی که معمولاً کار می‌کند» پر می‌کند، و آن چیز معمولاً بازتر از لازم است.

یک روال ساده که جواب می‌دهد

در تیم‌های کوچک ایرانی که یک نفر هم‌زمان توسعه و زیرساخت را می‌چرخاند، این ترتیب عملی است: خطا را بفهم، فرضیه بگیر، فرمان تأیید را دستی بزن، اسکریپت اصلاح را بگیر، روی استیجینگ اجرا کن، بعد تولید. هیچ مرحله‌ای را نپرید — به‌خصوص وقتی خسته‌اید و ابزار جواب مطمئنی داده است.

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

جمع‌بندی

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

مرز را هم روشن نگه دارید: هر چیزی که برگشت‌پذیر نیست، دست انسان می‌ماند. برای امتحان کردن روال بالا روی یک لاگ واقعیِ ناشناس‌شده، نارنگی نقطه‌ی شروع ساده‌ای است.

مطالب مرتبط:

پرسش‌های پرتکرار

می‌شود اسکریپتی را که مدل نوشته مستقیم روی سرور تولید اجرا کرد؟ +
نه. هر اسکریپتی اول روی محیط آزمایشی و ترجیحاً در حالت خشک (dry-run) اجرا شود. خطاهای دواپس معمولاً برگشت‌پذیر نیستند؛ یک دستور حذف اشتباه، یک نسخه‌ی پشتیبان لازم دارد که شاید نداشته باشید.
برای تحلیل لاگ چقدر از آن را باید بدهم؟ +
کل فایل را ندهید. بازه‌ی زمانی حادثه به‌علاوه‌ی چند دقیقه قبلش کافی است، و بهتر است اول با grep خطوط تکراری بی‌ربط را حذف کنید. لاگ فشرده‌ی مرتبط، نتیجه‌ی به‌مراتب دقیق‌تری می‌دهد تا هزاران خط خام.
لاگ سرور اطلاعات حساس دارد؛ فرستادنش امن است؟ +
لاگ‌ها معمولاً پر از توکن، آی‌پی داخلی، ایمیل کاربر و رشته‌ی اتصال دیتابیس‌اند. قبل از ارسال، این‌ها را با یک اسکریپت جایگزین کنید. قاعده‌ی ساده: چیزی که نمی‌خواهید در یک تیکت عمومی ثبت شود، در پرامپت هم نگذارید.
برای نوشتن فایل کوبرنتیز یا ترافورم چقدر قابل اعتماد است؟ +
ساختار کلی را درست می‌سازد، ولی مقدارها و نام فیلدها را گاهی از نسخه‌های قدیمی می‌آورد. همیشه خروجی را با ابزار اعتبارسنجی خود آن ابزار چک کنید؛ خطای نحوی سریع پیدا می‌شود، خطای معنایی نه.
آیا هوش مصنوعی می‌تواند علت اصلی یک قطعی را پیدا کند؟ +
می‌تواند فهرست فرضیه‌ها را سریع بسازد و همبستگی‌های زمانی را نشان دهد، که در فشار شب کار بزرگی است. ولی تأیید نهایی با شماست: مدل تاریخچه‌ی دیپلوی، تغییرات شبکه و رفتار خاص زیرساخت شما را نمی‌داند.
#دواپس #تحلیل لاگ #اسکریپت شل #داکر و کوبرنتیز #ریشه‌یابی خطا
به‌دردِ کسی می‌خورد؟ تلگرام واتساپ
🍊

خواندنش خوب بود — حالا امتحانش کن

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

بدونِ نصب هم کار می‌کند — ولی در اپ سریع‌تر است