pdbtool(1) راهنمای pdbtool pdbtool(1)

pdbtool - برنامه‌ای برای آزمایش و تبدیل قواعد پایگاه‌داده الگوی {{ site.product.short_name }}

pdbtool [command] [options]

این صفحه راهنما صرفاً یک چکیده است.

برنامه syslog-ng OSE می‌تواند محتوای پیام‌های لاگ را با یک پایگاه‌داده از الگوهای از پیش تعریف‌شده پیام (که patterndb نیز نامیده می‌شود) تطبیق دهد. با مقایسه پیام‌ها با الگوهای شناخته‌شده، syslog-ng OSE قادر است نوع دقیق پیام‌ها را شناسایی کرده، به آن‌ها برچسب بزند و آن‌ها را در دسته‌های پیام مرتب کند. دسته‌های پیام را می‌توان برای رده‌بندی نوع رویداد شرح‌داده‌شده در پیام لاگ به کار برد. عملکرد پایگاه‌داده الگو مشابه پروژه logcheck است، اما رویکرد syslog-ng OSE سریع‌تر است، مقیاس‌پذیری بهتری دارد و نگهداری آن در مقایسه با عبارات منظم (regular expressions) در logcheck بسیار آسان‌تر است.

برنامه pdbtool ابزاری است که می‌تواند برای موارد زیر استفاده شود:

  • آزمایش پیام‌ها، یا قواعد خاص
  • تبدیل یک پایگاه‌داده الگوی قدیمی‌تر به جدیدترین قالب پایگاه‌داده
  • ادغام پایگاه‌های داده الگو در یک فایل واحد
  • ایجاد خودکار پایگاه‌های داده الگو از حجم زیادی از پیام‌های لاگ
  • تخلیه (dump) درخت RADIX ساخته‌شده از پایگاه‌داده الگو (یا بخشی از آن) جهت بررسی نحوه عملکرد تطبیق الگو.

dictionary [options]

تمام جفت‌های نام-مقدار را که می‌توانند توسط قواعد پایگاه‌داده الگو تنظیم شوند، فهرست می‌کند.

--dump-tag یا -T

فهرست کردن برچسب‌ها به جای نام‌های جفت‌های نام-مقدار.

--pdb <path-to-file> یا -p <path-to-file>

نام فایل پایگاه‌داده الگوی مورد استفاده.

--program <programname> یا -P <programname>

تنها جفت‌های نام-مقداری را فهرست می‌کند که می‌توانند برای پیام‌های برنامه مشخص‌شده ${PROGRAM} تنظیم شوند.

dump [options]

درخت RADIX ساخته‌شده از الگوها را نمایش می‌دهد. این خروجی نشان می‌دهد که الگوها چگونه در syslog-ng OSE نمایش داده می‌شوند و همچنین می‌تواند به ردیابی مشکلات تطبیق الگو کمک کند. ابزار dump می‌تواند درختی را که برای تطبیق بخش‌های PROGRAM یا MSG استفاده شده است، تخلیه کند.

--debug یا -d

فعال‌سازی پیام‌های اشکال‌زدایی/تشخیصی روی stderr.

--pdb یا -p

نام فایل پایگاه‌داده الگوی مورد استفاده.

--program یا -P

درخت RADIX ساخته‌شده از الگوهای متعلق به برنامه ${PROGRAM} را نمایش می‌دهد.

--program-tree یا -T

درخت ${PROGRAM} را نمایش می‌دهد.

--verbose یا -v

فعال‌سازی پیام‌های پرگو (verbose) روی stderr.

pdbtool dump -p patterndb.xml  -P 'sshd'
'p'
    'assword for'
    @QSTRING:@
        'from'
        @QSTRING:@
            'port '
            @NUMBER:@ rule_id='fc49054e-75fd-11dd-9bba-001e6806451b'
                ' ssh' rule_id='fc55cf86-75fd-11dd-9bba-001e6806451b'
                    '2' rule_id='fc4b7982-75fd-11dd-9bba-001e6806451b'
    'ublickey for'
    @QSTRING:@
        'from'
        @QSTRING:@
            'port '
            @NUMBER:@ rule_id='fc4d377c-75fd-11dd-9bba-001e6806451b'
                ' ssh' rule_id='fc5441ac-75fd-11dd-9bba-001e6806451b'
                    '2' rule_id='fc44a9fe-75fd-11dd-9bba-001e6806451b'

match [گزینه‌ها]

از دستور match برای آزمایش قوانین در یک پایگاه‌داده الگو استفاده کنید. این دستور تلاش می‌کند پیام مشخص‌شده را با الگوهای پایگاه‌داده تطبیق دهد، تجزیه‌کننده‌های الگو را ارزیابی کند، و همچنین نمایش دهد که کدام بخش از پیام با موفقیت تجزیه شده است. این دستور با کد بازگشتی 0 (موفقیت) یا 1 (عدم تطابق) به پایان می‌رسد و اطلاعات زیر را نمایش می‌دهد:

  • کلاس اختصاص‌یافته به پیام (یعنی system، violation و غیره)،
  • شناسه (ID) قاعده‌ای که با پیام تطبیق یافته است، و
  • مقادیر تجزیه‌کننده‌ها (اگر در الگوی منطبق، تجزیه‌کننده‌ای وجود داشته باشد).

دستور match دارای گزینه‌های زیر است:

--color-out یا -c

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

--debug یا -d

فعال‌سازی پیام‌های اشکال‌زدایی/تشخیصی در stderr.

--debug-csv یا -C

چاپ اطلاعات اشکال‌زدایی بازگردانده‌شده توسط گزینه `--debug-pattern`
به صورت مقادیر جداشده با کاما (CSV).

--debug-pattern یا -D

چاپ اطلاعات اشکال‌زدایی درباره تطبیق الگو. همچنین گزینه
`--debug-csv` را ببینید.

--file=<filename-with-path> یا -f

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

--filter=<filter-expression> یا -F

چاپ تنها پیام‌هایی که با عبارت فیلتر syslog-ng OSE مشخص‌شده
تطابق دارند.

--message یا -M

متن پیام لاگ برای تطبیق (تنها بخش `MESSAGE` بدون سرایندهای
syslog).

--pdb یا -p

نام فایل پایگاه‌داده الگوی مورد استفاده.

--program یا -P

نام برنامه مورد استفاده، همان‌طور که در بخش `PROGRAM` از پیام
syslog قرار دارد.

--template=<template-expression> یا -T

یک عبارت الگوی syslog-ng OSE که برای قالب‌بندی پیام‌های خروجی
به کار می‌رود.

--verbose یا -v

فعال‌سازی پیام‌های پرگو (verbose) در stderr.

دستور زیر بررسی می‌کند که آیا فایل patterndb.xml پیام Accepted publickey for myuser from 127.0.0.1 port 59357 ssh6 را شناسایی می‌کند یا خیر:

pdbtool match -p patterndb.xml -P sshd -M "Accepted publickey for myuser from 127.0.0.1 port 59357 ssh6"

مثال زیر فایل پایگاه داده الگوی sshd.pdb را بر روی پیام‌های لاگ ذخیره‌شده در فایل /var/log/messages اعمال کرده، و تنها پیام‌هایی را نمایش می‌دهد که برچسب useracct دریافت کرده‌اند.

pdbtool match -p sshd.pdb \
    –file /var/log/messages \
    –filter ‘tags(“usracct”);’

merge [options]

از دستور merge برای ترکیب فایل‌های جداگانه پایگاه داده الگو در یک فایل واحد استفاده کنید (پایگاه‌های داده الگو معمولاً برای ساده‌سازی نگهداری، به ازای هر برنامه در فایل‌های جداگانه‌ای ذخیره می‌شوند). اگر فایلی از قالب قدیمی‌تر پایگاه داده استفاده کند، به‌طور خودکار به آخرین قالب (V3) به‌روزرسانی می‌شود. برای جزئیات در مورد نسخه‌های مختلف پایگاه داده الگو، The syslog-ng OSE Administrator Guide را ببینید.

--debug یا -d
فعال‌سازی پیام‌های اشکال‌زدایی/تشخیصی روی stderr.

--directory یا -D
دایرکتوری شامل فایل‌های XML پایگاه داده الگو برای ادغام.

--glob یا -G
مشخص کردن نام فایل‌های مورد نظر برای ادغام با استفاده از یک الگوی glob،
برای مثال با استفاده از نویسه‌های عام (wildcards). برای جزئیات
در مورد الگوهای glob، دستور man glob را ببینید. این الگو تنها بر روی
نام فایل‌ها اعمال می‌شود و بر روی نام دایرکتوری‌ها اعمال نخواهد شد.

--pdb یا -p
نام فایل خروجی پایگاه داده الگو.

--recursive یا -r
ادغام فایل‌ها از زیردایرکتوری‌ها نیز انجام شود.

--sort یا -s
مرتب‌سازی فایل‌ها به ترتیب الفبایی هنگام ادغام (ابتدا مرتب‌سازی بر اساس
نام فایل، سپس بر اساس نام دایرکتوری).

--verbose یا -v
فعال‌سازی پیام‌های پرگو (verbose) روی stderr.

pdbtool merge --recursive --directory /home/me/mypatterns/  --pdb /var/lib/syslog-ng/patterndb.xml

در حال حاضر امکان تبدیل یک فایل بدون ادغام وجود ندارد، بنابراین اگر تنها می‌خواهید یک فایل قدیمی پایگاه داده الگو را به آخرین قالب تبدیل کنید، باید آن را در یک دایرکتوری خالی کپی نمایید.

patternize [options]

ایجاد خودکار یک پایگاه داده الگو از یک فایل لاگ شامل تعداد زیادی پیام لاگ. پایگاه داده الگوی حاصل در خروجی استاندارد (stdout) چاپ می‌شود. دستور pdbtool patternize از یک روش خوشه‌بندی داده‌ها برای یافتن پیام‌های مشابه لاگ و جایگزین کردن بخش‌های متفاوت با تجزیه‌کننده‌های @ESTRING:: @ استفاده می‌کند. برای جزئیات در مورد پایگاه‌های داده الگو و تجزیه‌کننده‌های پیام، The syslog-ng OSE Administrator Guide ⟨https://www.syslog-ng.com⟩ را ببینید. دستور patternize تنها در نسخه 3.2 و بالاتر در دسترس است.

--debug یا -d
فعال‌سازی پیام‌های اشکال‌زدایی/تشخیصی روی stderr.

--file=<path> یا -f
فایل لاگ شامل پیام‌های لاگی که الگوها باید از آن ساخته شوند. برای
دریافت پیام‌های لاگ از ورودی استاندارد (stdin)، از - استفاده کنید.

--iterate-outliers یا -o
تکرار بازگشتی بر روی خطوط لاگ برای پوشش بیشترین تعداد ممکن از پیام‌های
لاگ با الگوها.

--named-parsers یا -n
تعداد پیام‌های لاگ نمونه برای گنجاندن در پایگاه داده الگو به ازای هر
الگو. مقدار پیش‌فرض: 1

--no-parse یا -p
فایل ورودی تجزیه نشود، با هر خط به عنوان بخش پیام یک پیام لاگ برخورد
شود.

--samples=<number-of-samples>
گنجاندن یک نام تولیدشده در تجزیه‌کننده‌ها، برای مثال
.dict.string1، .dict.string2 و غیره.

--support=<number> یا -S
یک الگو در صورتی به پایگاه داده الگوی خروجی اضافه می‌شود که حداقل درصد
مشخص‌شده‌ای از پیام‌های لاگ فایل ورودی با آن الگو مطابقت داشته باشند.
برای مثال، اگر فایل لاگ ورودی شامل 1000 پیام لاگ باشد و گزینه
--support=3.0 استفاده شود، یک الگو تنها در صورتی ایجاد می‌شود
که حداقل با 3 درصد از پیام‌های لاگ (یعنی 30 پیام لاگ) تطابق داشته باشد.
اگر patternize الگوهای کافی ایجاد نکرد، سعی کنید مقدار support را کاهش دهید.
مقدار پیش‌فرض: 4.0

--verbose یا -v
فعال‌سازی پیام‌های پرگو (verbose) روی stderr..SS "مثال: PATTERNIZE"

pdbtool patternize --support=2.5 --file=/var/log/messages

test [options]

از دستور test برای اعتبارسنجی فایل XML پایگاه‌داده الگو استفاده کنید. توجه داشته باشید که برنامه xmllint باید نصب باشد. دستور test تنها در نگارش ۳٫۲ و بالاتر syslog-ng OSE در دسترس است.

--color-out یا -c
فعال‌سازی رنگ‌آمیزی در خروجی ترمینال.

--debug یا -d
فعال‌سازی پیام‌های اشکال‌زدایی/تشخیصی روی stderr.

--debug یا -D
چاپ اطلاعات اشکال‌زدایی برای الگوهای تطبیق‌نیافته.

--rule-id یا -r
فقط آزمایش قاعده patterndb (مشخص‌شده با شناسه قاعده آن) در برابر مثال مربوط به آن.

--validate
اعتبارسنجی فایل XML پایگاه‌داده الگو.

--verbose یا -v
فعال‌سازی پیام‌های پرگو روی stderr.

pdbtool test --validate /home/me/mypatterndb.pdb

/Users/hofi/Develop/Balabit/syslog-ng/build/install/

/Users/hofi/Develop/Balabit/syslog-ng/build/install/etc/syslog-ng.conf

نکته: اگر با مشکلی مواجه شدید یا برای syslog-ng OSE به راهنمایی نیاز دارید، syslog-ng OSE Administration Guide[1] را ببینید یا به syslog-ng OSE mailing list[2] مراجعه کنید. برای اخبار و اطلاعیه‌ها درباره syslog-ng OSE، به syslog-ng OSE blogs[3] سر بزنید.

این صفحه راهنما از syslog-ng OSE Administration Guide[1] تولید شده است که توسط مشارکت‌کنندگان متعددی نوشته شده و از صمیم قلب از آن‌ها سپاسگزاریم.

[1] syslog-ng OSE Administration Guide
⟨https://syslog-ng.github.io/admin-guide/README⟩

[2] syslog-ng OSE mailing list
⟨https://lists.balabit.hu/mailman/listinfo/syslog-ng⟩

[3] syslog-ng OSE blogs
⟨https://syslog-ng.com/blog⟩

18 December 2025 4.10.2