DS-LOGPIPE.PY(1) General Commands Manual DS-LOGPIPE.PY(1)

ds-logpipe.py - ایجاد و خواندن از یک لوله نام‌گذاری‌شده به‌جای فایل گزارش

ds-logpipe.py /full/path/to/namedpipe
[-m maxlinestobuffer] [-u userid] [-s serverpidfile] [-t servertimeout] [--plugin=/path/to/pluginfile.py] [pluginfile.arg=value]

اسکریپت Named Pipe Log به شما امکان می‌دهد یک فایل گزارش را با یک لوله نام‌گذاری‌شده (named pipe) متصل به یک اسکریپت جایگزین کنید. سپس سرور می‌تواند خروجی لاگ را به‌جای یک فایل گزارش، به یک اسکریپت بفرستد. این کار امکان انجام کارهای متنوعی را فراهم می‌کند؛ از جمله:


* ثبت فقط وقایع خاص، مانند اتصالات ناموفق bind، اتصالات از نشانی‌های IP مشخص و غیره.
* ثبت فقط خطوطی که با الگوی خاصی مطابقت دارند.
* ثبت فقط N خط آخر - مفید برای فعال‌سازی سطوح خطایابی (debug) کامل error log در محیط‌های عملیاتی.
* ارسال یک ایمیل یا اعلان دیگر در زمان تشخیص رویدادی مشخص.

این اسکریپت با python نوشته شده است و از افزونه‌ها پشتیبانی می‌کند. به‌طور پیش‌فرض، اسکریپت N خط آخر را ثبت می‌کند (پیش‌فرض ۱۰۰۰ خط است). دو افزونه به‌همراه آن ارائه شده است - یکی برای ثبت فقط تلاش‌های ناموفق bind، و دیگری برای ثبت تنها خطوطی که با عبارات باقاعده داده‌شده همخوانی دارند.

خلاصه‌ای از گزینه‌ها در زیر آمده است.

/full/path/to/namedpipe
الزامی - مسیر کامل و نام فایل لوله نام‌گذاری‌شده. اگر وجود نداشته باشد، ایجاد خواهد شد. اگر وجود داشته باشد و یک لوله نام‌گذاری‌شده باشد، اسکریپت از آن استفاده خواهد کرد. اگر وجود داشته باشد و لوله نباشد، اسکریپت لغو خواهد شد. مالکیت آن مشابه کاربری خواهد بود که اسکریپت را اجرا می‌کند (یا گزینه -u در زیر را ببینید).
تعداد خطوط برای نگهداری در بافر - مقدار پیش‌فرض ۱۰۰۰ است.
مالکیت pipe و هر فایل دیگری که توسط این اسکریپت ایجاد شود، با ()chown به این userid تغییر خواهد یافت. این مقدار می‌تواند یک رشته حاوی نام userid یا یک مقدار عددی userid باشد.
اگر می‌خواهید اسکریپت هنگام خروج یک سرور دایرکتوری خاص خارج شود، مسیر کامل فایل حاوی pid سرور را مشخص کنید. مقدار پیش‌فرض معمولاً چیزی شبیه به /var/run/dirsrv/slapd-<instancename>.pid است که در آن <instancename> معمولاً نام میزبان (hostname) است.
از آنجا که ممکن است هنگام اجرای اسکریپت هنوز serverpidfile وجود نداشته باشد، اسکریپت به‌طور پیش‌فرض ۶۰ ثانیه منتظر ایجاد فایل pid و راه‌اندازی سرور می‌ماند. از این گزینه برای مشخص کردن زمان انقضای (timeout) متفاوت استفاده کنید. گزینه -t فقط هنگام استفاده از -s یا --serverpid اعمال می‌شود؛ در غیر این صورت هیچ کاری انجام نمی‌دهد.
اگر سروری که می‌خواهید دنبال کنید از قبل در حال اجرا است، می‌توانید آن را با استفاده از این آرگومان مشخص کنید. اگر pid مشخص‌شده معتبر نباشد، اسکریپت لغو خواهد شد.
مشخص کردن یک افزونه برای استفاده. این افزونه باید یک فایل python باشد و نام آن به .py ختم شود. باید تابعی با نام plugin در آن تعریف شده باشد و می‌تواند توابعی به نام‌های pre و post را نیز تعریف کند.
می‌توانید آرگومان‌های افزونه‌ها را در خط فرمان مشخص کنید. اگر افزونه‌ای به‌صورت --plugin=/full/path/to/pluginname.py مشخص شده باشد، آرگومان‌های آن افزونه به‌صورت pluginname.argname=value تعیین می‌شوند. اسکریپت این آرگومان‌ها را تجزیه کرده و آن‌ها را به‌صورت یک dict پایتون به تابع pre افزونه ارسال می‌کند. اگر بیش از یک آرگومان با نام pluginname.argname وجود داشته باشد، مقادیر به‌صورت یک list پایتون ارسال می‌شوند.

معمولاً سرور دایرکتوری باید طوری پیکربندی شود که به‌جای فایل گزارش معمولی، در یک named pipe گزارش‌گیری کند. برای نمونه، از LDIF زیر استفاده کنید تا به سرور بگویید برای گزارش دسترسی از فایل access.pipe استفاده کند:
dn: cn=config
changetype: modify
replace: nsslapd-accesslog-maxlogsperdir
nsslapd-accesslog-maxlogsperdir: 1
-
replace: nsslapd-accesslog-logexpirationtime
nsslapd-accesslog-logexpirationtime: -1
-
replace: nsslapd-accesslog-logrotationtime
nsslapd-accesslog-logrotationtime: -1
-
replace: nsslapd-accesslog
nsslapd-accesslog: /var/log/dirsrv/slapd-localhost/access.pipe
-
replace: nsslapd-accesslog-logbuffering
nsslapd-accesslog-logbuffering: off

نکته: پیش از انجام این کار، باید پیکربندی فعلی خود را ذخیره کنید تا بتوانید بعداً آن را بازیابی نمایید.
ldapsearch ... -s base -b "cn=config" nsslapd-accesslog-maxlogsperdir nsslapd-accesslog-logexpirationtime nsslapd-accesslog-logrotationtime nsslapd-accesslog > savedaccesslog.ldif

گزارش‌های خطا (error log) و حسابرسی (audit log) ویژگی‌های پیکربندی با نام مشابه دارند؛ برای نمونه nsslapd-errorlog و nsslapd-auditlog. توجه داشته باشید که audit log به‌طور پیش‌فرض غیرفعال است - برای فعال‌سازی آن از nsslapd-auditlog-logging-enabled: on استفاده کنید.

ds-logpipe.py توسط 389 Project نوشته شده است.

گزارش باگ‌ها به https://github.com/389ds/389-ds-base/issues/new

Copyright © 2018 Red Hat, Inc.
این یک نرم‌افزار آزاد است. شما می‌توانید نسخه‌های آن را تحت شرایط مجوز Directory Server موجود در فایل LICENSE این بسته نرم‌افزاری بازتوزیع کنید. این مجوز اساساً همان GNU General Public License نسخه ۲ به‌همراه یک استثنا برای توزیع افزونه‌ها (plug-in) است.

March 31, 2017