SNMPTRAPD.CONF(5) Net-SNMP SNMPTRAPD.CONF(5)

snmptrapd.conf - فایل پیکربندی دیمون دریافت تله‌های SNMP

گیرنده اعلان Net-SNMP (دیمون دریافت تله) از یک یا چند فایل پیکربندی برای کنترل عملکرد خود و چگونگی پردازش تله‌های ورودی (و درخواست‌های INFORM) استفاده می‌کند. این فایل (snmptrapd.conf) می‌تواند در یکی از چندین مسیر، به شرح ارائه‌شده در صفحه راهنمای snmp_config(5) قرار گیرد.

پیش‌تر، snmptrapd تمامی اعلان‌های ورودی را می‌پذیرفت و آنها را به صورت خودکار ثبت می‌کرد (حتی اگر هیچ پیکربندی صریحی ارائه نشده بود). از نسخه 5.3 به بعد، بررسی‌های کنترل دسترسی روی اعلان‌های ورودی اعمال خواهد شد. اگر snmptrapd بدون یک فایل پیکربندی مناسب (یا تنظیمات معادل کنترل دسترسی) اجرا شود، چنین تله‌هایی پردازش نخواهند شد. برای جزئیات بیشتر بخش کنترل دسترسی (ACCESS CONTROL) را ببینید.

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

فهرستی از نشانی‌های شنود را برای دریافت اعلان‌های ورودی SNMP تعریف می‌کند. برای اطلاعات بیشتر درباره قالب نشانی‌های شنود، بخش LISTENING ADDRESSES را در صفحه راهنمای snmpd(8) ببینید.
رفتار پیش‌فرض، شنود روی درگاه UDP شماره 162 در تمام رابط‌های IPv4 است.
پشتیبانی از NOTIFICATION-LOG-MIB را غیرفعال می‌کند. به طور معمول برنامه snmptrapd سوابق تله‌های دریافت‌شده را نگه می‌دارد که می‌توان با پرس‌وجوی جدول‌های nlmLogTable و nlmLogvariableTable آنها را بازیابی کرد. از این دستورالعمل می‌توان برای متوقف کردن این رفتار استفاده کرد.
برای جزئیات بیشتر، صفحه راهنمای snmptrapd(8) و سند NOTIFICATION-LOG-MIB را ببینید.
ثبت وقایع اعلان‌ها را به طور کلی غیرفعال می‌کند. این گزینه زمانی مفید است که برنامه snmptrapd فقط باید قلاب‌های traphandle را اجرا کند و نباید تله‌ها را در هیچ مکانی ثبت نماید.
از شل فراخواننده انشعاب نمی‌گیرد (fork نمی‌کند).
فایلی را برای ذخیره شناسه فرایند (PID) گیرنده اعلان تعیین می‌کند. به طور پیش‌فرض، این شناسه ذخیره نمی‌شود.

از نسخه 5.3 به بعد، لازم است به صراحت مشخص شود چه کسی مجاز به ارسال تله‌ها و informها به گیرنده اعلان است (و این پیام‌ها مجاز به راه‌اندازی چه نوع پردازش‌هایی هستند). این سازوکار از توسعه‌ای در مدل VACM استفاده می‌کند که در کارگزار اصلی SNMP به کار می‌رود.

در حال حاضر سه نوع پردازش را می‌توان مشخص کرد:

ثبت جزئیات اعلان - چه در یک فایل مشخص، چه در خروجی استاندارد (یا خطای استاندارد)، یا از طریق syslog (یا موارد مشابه).
ارسال جزئیات تله به یک برنامه گرداننده مشخص، از جمله پرل توکار (embedded perl).
بازارسال (فوروارد) تله به یک گیرنده اعلان دیگر.

در دستورالعمل‌های زیر، TYPES فهرستی (جداشده با کاما) از یک یا چند مورد از این شناسه‌ها خواهد بود. معمولاً این مقدار به صورت log,execute,net خواهد بود تا هر نوع پردازشی را برای دسته‌ای خاص از اعلان‌ها پوشش دهد. اما کاملاً امکان‌پذیر (و حتی مطلوب) است که منابع اعلان خاصی تنها به پردازش‌های برگزیده محدود شوند.

تله‌ها (و درخواست‌های INFORM در SNMPv2c) را با جامعه (community) مشخص‌شده برای راه‌اندازی انواع پردازش‌های فهرست‌شده مجاز می‌کند. به طور پیش‌فرض، این مورد اجازه می‌دهد هر اعلانی که از این جامعه استفاده می‌کند پردازش شود. فیلد SOURCE می‌تواند برای مشخص کردن این به کار رود که پیکربندی فقط برای اعلان‌های دریافت‌شده از منابع خاصی اعمال شود - برای جزئیات بیشتر صفحه راهنمای snmpd.conf(5) را ببینید.
اعلان‌های SNMPv3 را با کاربر مشخص‌شده برای راه‌اندازی انواع پردازش‌های فهرست‌شده مجاز می‌کند. به طور پیش‌فرض، این گزینه درخواست‌های احرازهویت‌شده (authNoPriv یا authPriv) را می‌پذیرد. فیلد LEVEL می‌تواند برای مجاز کردن اعلان‌های احرازهویت‌نشده (noauth)، یا الزام به رمزنگاری (priv) درست همانند کارگزار SNMP استفاده شود.
در هر دوی این دستورالعمل‌ها، فیلد OID (یا -v VIEW) می‌تواند برای محدود کردن این پیکربندی به پردازش اعلان‌های خاص استفاده شود.
نکته:
برخلاف پردازش VACM که در RFC 3415 توصیف شده است، این نما (view) تنها با مقدار snmpTrapOID اعلان ورودی مطابقت داده می‌شود و روی پیوندهای متغیر (varbinds) محموله موجود در آن اعلان اعمال نمی‌شود.
اعلان‌ها را در گروه (GROUP) مشخص‌شده (پیکربندی‌شده با دستورالعمل group) برای راه‌اندازی انواع پردازش‌های فهرست‌شده مجاز می‌کند. برای جزئیات بیشتر صفحه راهنمای snmpd.conf(5) را ببینید.
برای شرح چگونگی ایجاد کاربران SNMPv3، صفحه راهنمای snmpd.conf(5) را ببینید. این دستورالعمل تقریباً یکسان است، اما نام فایل از snmpd.conf به snmptrapd.conf تغییر می‌کند.
بررسی‌های کنترل دسترسی بالا را غیرفعال کرده و به رفتار پیشین در پذیرش تمامی اعلان‌های ورودی بازمی‌گردد.

به ترتیب قالب مورد استفاده برای نمایش تله‌های SNMPv1 و اعلان‌های SNMPv2 را مشخص می‌کنند. توجه داشته باشید که SNMPv2c و SNMPv3 هر دو از همان قالب SNMPv2 PDU استفاده می‌کنند.
قالب مورد استفاده برای مقصدهای مختلف را تعیین می‌کند. DESTINATION یکی از موارد زیر است: print, print1, print2, syslog, syslog1, syslog2, execute, execute1, execute2. مقدار print1 برای چاپ تله‌های SNMPv1، و print2 برای SNMPv2 استفاده می‌شود. print برای هر دو نسخه به کار می‌رود. به همین ترتیب، syslog هنگام ارسال تله‌ها به syslog استفاده می‌شود، و execute هنگام ارسال تله‌ها به برنامه‌ای مانند traptoemail(1) به کار می‌رود.
قالب‌های پیش‌فرض عبارتند از:
format print1 %.4y-%.2m-%.2l %.2h:%.2j:%.2k %B [%b] (via %A [%a]): %N\n\t%W Trap (%q) Uptime: %#T\n%v\n
format print2 %.4y-%.2m-%.2l %.2h:%.2j:%.2k %B [%b]:\n%v\n
format syslog1 %a: %W Trap (%q) Uptime: %#T%#v\n
format syslog2 %B [%b]: Trap %#v\n
format execute %B\n%b\n%V\n%v\n
برای نویسه‌های چیدمان موجود، صفحه راهنمای snmptrapd(8) را ببینید.
به گیرنده دستور می‌دهد تله‌های authenticationFailure را نادیده بگیرد.
نکته:
این مورد در حال حاضر فقط بر ثبت وقایع چنین اعلان‌هایی تأثیر می‌گذارد. تله‌های authenticationFailure همچنان به اسکریپت‌های گرداننده تله ارسال می‌شوند و به سایر گیرنده‌های اعلان بازارسال خواهند شد. نباید به این رفتار اتکا کرد، زیرا احتمال دارد در نسخه‌های آینده تغییر کند.
مشخص می‌کند که اعلان‌ها کجا باید ثبت شوند - در خروجی استاندارد، خطای استاندارد، یک فایل مشخص یا از طریق syslog. برای جزئیات بیشتر بخش LOGGING OPTIONS را در صفحه راهنمای snmpcmd(1) ببینید.
ویژگی‌های گوناگون نحوه نمایش OIDها و سایر مقادیر را تعیین می‌کند. برای جزئیات بیشتر بخش OUTPUT OPTIONS را در صفحه راهنمای snmpcmd(1) ببینید.

دو متغیر پیکربندی وجود دارند که همراه با هم زمان ثبت تله‌های در صف را در پایگاه داده MySQL کنترل می‌کنند. برای فعال‌سازی ثبت وقایع در MySQL باید مقداری غیر از صفر برای sqlSaveInterval تعیین شود.

حداکثر تعداد تله‌های قرارگیرنده در صف را پیش از تخلیه اجباری به پایگاه داده MySQL مشخص می‌کند.

تعداد ثانیه‌های بین تخلیه‌های دوره‌ای صف را مشخص می‌کند. مقدار 0 ثبت وقایع در MySQL را غیرفعال خواهد کرد.

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

هر زمان که اعلانی مطابق با نشانه OID دریافت شود، برنامه مشخص‌شده را (با آرگومان‌های داده‌شده) فراخوانی می‌کند. برای اعلان‌های SNMPv2c و SNMPv3، این نشانه با مقدار snmpTrapOID استخراج‌شده از اعلان مقایسه خواهد شد. برای تله‌های SNMPv1، مقادیر تله عمومی و اختصاصی و OID سازمانی به OID معادل تبدیل می‌شوند (مطابق RFC 2576).
به طور معمول، نشانه OID نام (یا OID عددی) یک شیء NOTIFICATION-TYPE خواهد بود و برنامه مشخص‌شده برای اعلان‌هایی که دقیقاً با این OID مطابقت دارند فراخوانی می‌شود. با این حال این نشانه از شکل ساده‌ای از پسوند نویسه عام نیز پشتیبانی می‌کند. با افزودن نویسه '*' به انتهای نشانه OID، برنامه مربوطه برای هر اعلانی که در زیردرخت با ریشه OID مشخص‌شده قرار دارد فراخوانی می‌شود. به عنوان مثال، نشانه OID به صورت .1.3.6.1.4.1* با هر اعلان اختصاصی سازمانی (از جمله خود OID مشخص‌شده) مطابقت خواهد داشت. یک نشانه OID به صورت .1.3.6.1.4.1.* تقریباً به همان صورت کار می‌کند، اما دقیقاً با این OID مطابقت نخواهد داشت - تنها با اعلان‌هایی که اکیداً در زیر این ریشه قرار دارند مطابقت دارد. توجه داشته باشید که این نحو از عبارت‌های باقاعده کامل یا نویسه‌های عام پشتیبانی نمی‌کند - نشانه OID به شکل oid.*.subids معتبر نیست.
اگر فیلد OID برابر با نشانه default باشد، برنامه برای هر اعلانی که با مدخل دیگر traphandle (که OID خاصی دارد) مطابقت نداشته باشد، فراخوانی می‌شود.

جزئیات اعلان از طریق ورودی استاندارد به برنامه داده می‌شود. توجه داشته باشید که این همواره از قالب اعلان سبک SNMPv2 استفاده خواهد کرد و تله‌های SNMPv1 پیش از ارسال به برنامه مطابق با RFC 2576 تبدیل می‌شوند. قالب ورودی، در صورتی که از قالب پیش‌فرض تعیین‌شده توسط "format execute %B\n%b\n%V\n%v\n" استفاده کنید، یک مدخل در هر خط است:

نام میزبانی که اعلان را ارسال کرده است، آن‌طور که توسط gethostbyaddr(3) تعیین شده است.
نشانی انتقال، مانند:
"[UDP: [172.16.10.12]:23456->[10.150.0.8]]"
فهرستی از پیوندهای متغیر (variable bindings) که محتوای اعلان را توصیف می‌کنند، یک مورد در هر خط. اولین نشانه در هر خط (تا فاصله) OID پیوند متغیر است و باقی خط مقدار آن می‌باشد. قالب هر دوی این‌ها توسط دستورالعمل outputOption (یا پیکربندی مشابه) کنترل می‌شود.
اولین OID همیشه باید SNMPv2-MIB::sysUpTime.0، و دومی باید SNMPv2-MIB::snmpTrapOID.0 باشد. خطوط باقی‌مانده شامل فهرست پیوندهای متغیر محموله خواهد بود. برای تله‌های SNMPv1، آخرین OID برابر با SNMPv2-MIB::snmpTrapEnterprise.0 خواهد بود.
مثال:
یک اسکریپت traptoemail در بسته Net-SNMP گنجانده شده است که می‌تواند درون یک دستورالعمل traphandle استفاده شود:

traphandle default /usr/bin/perl /usr/bin/traptoemail -s mysmtp.somewhere.com -f admin@somewhere.com me@somewhere.com

اعلان‌هایی را که با OID مشخص‌شده مطابقت دارند به گیرنده دیگری که در DESTINATION شنود می‌کند فوروارد (بازارسال) می‌کند. تفسیر OID (و default) مشابه دستورالعمل traphandle است.
برای اطلاعات بیشتر درباره قالب نشانی‌های شنود، بخش LISTENING ADDRESSES را در صفحه راهنمای snmpd(8) ببینید.

addForwarderInfo 1|yes|true|0|no|false

هر بار که تله‌ای بازارسال می‌شود، یک OID با نشانی IP سیستمی که تله از آن دریافت شده است اضافه می‌کند. OID زیر اضافه می‌شود: .1.3.6.1.6.3.18.1.3.x (SNMP-COMMUNITY-MIB::snmpTrapAddress.x) که در آن x کمترین نمایه‌ای (index >= 0) است که هنوز در محموله تله وجود ندارد. گیرنده نهایی (یعنی سامانه پایش) می‌تواند با بررسی پیوند متغیر با OID snmpTrapAddress.0، نشانی IPv4 فرستنده اصلی را مشخص کند. اگر آن OID مقداردهی نشده باشد، به این معنی است که تله مستقیماً ارسال شده یا به بیان دیگر بازارسال نشده است.

دیمون در هنگام اجرای دستورات traphandle متوقف (مسدود) می‌شود. (این مشکل باید در آینده با ترکیب مناسبی از دریافت سیگنال و wait() برطرف شود).
تمام دستورالعمل‌های فهرست‌شده با مقدار "yes" در واقع دامنه‌ای از مقادیر بولی (boolean) را می‌پذیرند. این موارد هر یک از مقادیر 1، yes یا true را برای فعال‌سازی رفتار مربوطه، یا هر یک از مقادیر 0، no یا false را برای غیرفعال‌سازی آن می‌پذیرند. حالت پیش‌فرض در هر مورد، غیرفعال بودن قابلیت است؛ بنابراین این دستورالعمل‌ها معمولاً تنها برای فعال‌سازی رفتار مربوطه استفاده می‌شوند.

/etc/snmp/snmptrapd.conf

snmp_config(5), snmptrapd(8), syslog(8), traptoemail(1), variables(5), netsnmp_config_api(3).

13 Mar 2014 V5.9.5.2