IOS XR

پیاده‌سازی اعلان‌های رویداد (Event Notifications) در Cisco Crosswork Network Controller

اکتبر 15, 202621 دقیقه مطالعهبدون دیدگاه

Cisco Crosswork Network Controllerقابلیت‌های اطلاع‌رسانی گسترده‌ای را برای یکپارچه‌سازی با سیستم‌های OSS خارجی فراهم می‌کند و به‌روزرسانی‌های لحظه‌ای (Real-time) در مورد هشدارها، تغییرات توپولوژی، افت کیفیت سرویس و سایر رویدادها را در حوزه‌های عملکردی مختلف محصول ارائه می‌دهد.

این مقاله تنها بر حوزه عملکرد مدیریت المان (Element Management Function) تمرکز دارد (که به سطح لایسنس Essential یا خود محصول مرتبط است). در این حوزه، Cisco Crosswork Network Controller از انواع اعلان‌ها (Notification) و پروتکل‌های زیر پشتیبانی می‌کند:

  • RESTCONF: هشدارها (Alarms)، موجودی (Inventory) و توپولوژی (Topology)*1
  • Kafka: هشدارها (Alarms)، موجودی (Inventory)، عملکرد (Performance) و حسابرسی (Audits)
  • TRAP: فقط هشدارها (Alarms)
  • SYSLOG: فقط هشدارها (Alarms only)

این آموزش یک نمای کلی از نحوه عملکرد این اعلان‌ها (Notifications) و چگونگی استفاده از آن‌ها را بدون ورود به جزئیات اجرایی ارائه می‌دهد. فرض بر این است که خواننده از قبل با مفاهیم پایه و نحوه استفاده از API در Cisco Crosswork Network Controller آشنایی دارد.

این آموزش با استفاده از نسخه 7.2 کنترلر شبکه Crosswork (Crosswork Network Controller) به عنوان مرجع تهیه شده است. جزئیات بیشتر به صورت آنلاین در دسترس است در Cisco DevNet

*1اگرچه رابط‌های برنامه‌نویسی کاربردی (API) توپولوژی به عنوان بخشی از مجموعه ویژگی‌های Crosswork Optimization Engine پیاده‌سازی شده‌اند، اما بخشی از حوزه عملکرد مدیریت المان (Element Management Function) در نظر گرفته می‌شوند.

اعلان‌های RESTCONF — هشدارها (Alarms) و موجودی (Inventory)

اولین مجموعه از رابط‌های برنامه‌نویسی (API) اطلاع‌رسانی RESTCONF بر هشدارها (Alarms) و موجودی (Inventory) متمرکز است. این اعلان‌ها به سیستم‌های پشتیبانی عملیاتی (OSS) اجازه می‌دهند تا تغییرات لحظه‌ای مانند ایجاد، به‌روزرسانی یا حذف هشدارها (Alarms)، گره‌ها (Nodes)، ماژول‌ها و سایر اشیاء مدل را ردیابی کنند.

این APIها از اعلان‌های بدون اتصال (connectionless) و مبتنی بر اتصال (connection-oriented) بر پایه WebSocket پشتیبانی می‌کنند. نقاط پایانی (Endpoints) متفاوتی برای اشتراک در اعلان‌های بدون اتصال و مبتنی بر اتصال در دسترس هستند. برای اعلان‌های مبتنی بر اتصال، فیلترها می‌توانند مستقیماً در خود نقطه پایانی منبع (resource endpoint) تعریف شوند. برای اعلان‌های بدون اتصال، فیلترها باید در بدنه درخواست POST (POST payload) تعریف گردند.

1.1 نقاط پایانی منابع اشتراکی (Subscription Resource Endpoints)

توجه:آدرس پایه (Base URL):

https://{{server_ip}}:30603/crosswork/notification

مسیرهای منبع (Resource paths) مختلفی برای اشتراک‌ها در دسترس هستند که بسته به استفاده از روش بدون اتصال (connectionless) یا اتصال‌گرا (connection-oriented) متفاوت می‌باشند:

مبتنی بر اتصال (Connection-oriented)

/restconf/streams/v2/alarm.xml (XML encoding)
/restconf/streams/v2/alarm.json (JSON encoding)
/restconf/streams/v1/inventory.xml (XML encoding)
/restconf/streams/v1/inventory.json (JSON encoding)

بدون اتصال (Connectionless)

/restconf/data/v2/notifications:subscription

1.2 اشتراک‌های کلاینت اتصال‌گرا (Connection-Oriented)

کلاینت‌های اتصال‌گرا (Connection-oriented) می‌توانند با استفاده از یکی از نقاط پایانی (Endpoints) منبع که در بالا نشان داده شده است (XML یا JSON)، اشتراک خود را ثبت کنند.

  • فیلترها را می‌توان با استفاده از نحو (Syntax) زیر به انتهای نقطه پایانی (Endpoint) اشتراک اضافه کرد:
/restconf/streams/v2/alarm?{filterType}={filterValue}
/restconf/streams/v1/inventory?{filterType}={filterValue}
  • پس از برقراری اتصال، کلاینت‌ها تا زمان قطع ارتباط، اعلان‌های فشاری (Push Notifications) را از سیستم اعلان EMF دریافت می‌کنند.
  • در صورتی که اعلان جدیدی برای ارسال وجود نداشته باشد، سرور هر 60 ثانیه پیام‌های ضربان قلب (Heartbeat Messages) را برای کلاینت ارسال می‌کند.

1.3 اشتراک‌های کلاینت بدون اتصال (Connectionless Client Subscriptions)

یک اشتراک بدون اتصال (Connectionless subscription) نیازمند یک محموله (Payload) است که موارد زیر را تعریف می‌کند:

  • نقطه پایانی مقصد (Destination endpoint)
  • نام موضوع (هشدار یا موجودی)
  • لطفاً متن ورودی خود را (به صورت آرایه JSON یا متن) ارسال کنید تا طبق دستورالعمل‌های دقیق شما، ترجمه آن را انجام دهم.
  • فیلترها

سیستم اطلاع‌رسانی EMF سپس اعلان‌ها را با استفاده از درخواست‌های POST به نقاط پایانی (Endpoints) ثبت‌شده ارسال می‌کند. محتوای اعلان در هر بدنه (Payload) درخواست POST گنجانده شده است. اشتراک‌های بدون اتصال (Connectionless subscriptions) فاقد وضعیت (Stateless) هستند، بنابراین هیچ اتصالی حفظ نمی‌شود. سیستم اطلاع‌رسانی EMF تا زمانی که اشتراک حذف نشود، اعلان‌های فشاری (Push notifications) را ارسال می‌کند.

  • فیلترها با استفاده از فرمت زیر در بدنه (Payload) درخواست POST گنجانده می‌شوند:
"ietf-restconf:notification.filters": [
 {
 "ietf-restconf:notification.key": "filterType",
 "ietf-restconf:notification.value": "filterValue"
 }
]

1.4 فیلترهای اتصال‌گرا (Connection-Oriented) و بدون اتصال (Connectionless)

اشتراک‌ها از انواع فیلترهای زیر پشتیبانی می‌کنند:

  • خانواده محصول
  • نوع محصول
  • شدت (Severity)
  • شناسه یکتای دستگاه (deviceUUID)

انواع فیلترها و مقادیر متعددی پشتیبانی می‌شوند.

/restconf/streams/v2/alarm.json?productType=Cisco NCS 5501, Cisco ASR 9904 Router&severity=critical,major
/restconf/streams/v1/inventory.json?productType=Cisco NCS 5501, Cisco ASR 9904 Router

مثال اتصال‌گرا (Connection-Oriented)

{
 "ietf-restconf:notification.client-url": "http://10.58.234.211:7070/notifications",
 "ietf-restconf:notification.topic": "alarm",
 "ietf-restconf:notification.format": "json",
 "ietf-restconf:notification.filters": [
 {
 "etf-restconf:notification.key": "productType",
 "etf-restconf:notification.value": "Cisco NCS 5501,Cisco ASR 9904 Router"
 },
 {
 "etf-restconf:notification.key": "severity",
 "etf-restconf:notification.value": "critical,major"
 }
 ]
}

نمونه بدون اتصال (Connectionless)

توجه:برای اشتراک‌های بدون اتصال (connectionless)، موضوع (topic) تنها می‌تواند شامل موارد زیر باشد:هشدار (alarm) or موجودی (inventory).

1.5 نمونه‌های اعلان هشدار (Alarm) و موجودی (Inventory) در RESTCONF

{
 "ietf-restconf:notification.notification": {
 "ietf-restconf:notification.topic": "alarm",
 "ietf-restconf:notification.time-of-update": "2025-12-09 16:58:18.284",
 "ietf-restconf:notification.time-of-update-iso8601": "2025-12-09T16:58:18.373+01:00",
 "ietf-restconf:notification.operation": "modify",
 "alm.alarm": {
 "alm.alarm-identifier": {
 "alm.event-identifier": "0aa3f125-0170-4690-b034-5d8c095972c4",
 "alm.resource-object-ref": "MD=CISCO_EMS!ND=Palinuro-29",
 "alm.probable-cause": "SECURITY-SSHD-4-INFO_FAILURE"
 },
 "alm.uuid": "0aa3f125-0170-4690-b034-5d8c095972c4",
 "alm.type": "device",
 "alm.perceived-severity": "cleared",
 "alm.description": "Successfully authenticated user 'epnm' from '10.58.29.231' on 'vty1'(cipher 'aes128-ctr', mac 'hmac-sha1') \n",
 "alm.category": "Security",
 "alm.source-object-ref": "MD=CISCO_EMS!ND=Palinuro-29",
 "alm.source-object-name": "",
 "alm.source-object-id": 0,
 "alm.node-ref": "Palinuro-29",
 "alm.business-key": "10.58.244.29:10.58.29.231:SECURITY-SSHD##SubAlarm@_1",
 "alm.cause-type": "cause-unknown",
 "alm.ack-state": "unacknowledged",
 "alm.remote-interface-ip-address": "10.58.244.29",
 "alm.system-received-time": "2025-11-23 12:34:49.000",
 "alm.system-received-time-iso8601": "2025-11-23T12:34:49.000+01:00",
 "alm.system-update-time": "2025-12-09 16:58:18.284",
 "alm.system-update-time-iso8601": "2025-12-09T16:58:18.284+01:00",
 "alm.probable-cause": "SECURITY-SSHD-4-INFO_FAILURE",
 "alm.service-affecting": "service-affecting-unknown",
 "alm.service-impacting": "service-impacting-unknown",
 "alm.owner": "",
 "alm.root-cause-alarm-identifier": {
 "alm.event-identifier": 0
 },
 "alm.user-defined-fields": ""
 }
 }
}

اعلان هشدار دستگاه (Device Alarm Notification)

{
 "ietf-restconf:notification.notification": {
 "ietf-restconf:notification.topic": "alarm",
 "ietf-restconf:notification.time-of-update": "2025-12-09 16:56:56.736",
 "ietf-restconf:notification.time-of-update-iso8601": "2025-12-09T16:56:57.073+01:00",
 "ietf-restconf:notification.operation": "modify",
 "alm.alarm": {
 "alm.alarm-identifier": {
 "alm.event-identifier": "45c44fd6-3313-416f-b584-e5e643880121",
 "alm.resource-object-ref": "MD=CISCO_EMS!OS=optima-csm-1",
 "alm.probable-cause": "CSM-POLICY-BW-EXCEEDED"
 },
 "alm.uuid": "45c44fd6-3313-416f-b584-e5e643880121",
 "alm.type": "system",
 "alm.perceived-severity": "cleared",
 "alm.description": "Traffic no longer exceeds policy bandwidth",
 "alm.category": "System",
 "alm.source-object-ref": "MD=CISCO_EMS!OS=optima-csm-1",
 "alm.source-object-name": "capp-coe",
 "alm.source-object-id": 0,
 "alm.node-ref": "optima-csm-1",
 "alm.business-key": "capp-coe-CSM-POLICY-BW-EXCEEDED##SubAlarm@_261",
 "alm.cause-type": "cause-unknown",
 "alm.ack-state": "unacknowledged",
 "alm.remote-interface-ip-address": "optima-csm-1",
 "alm.system-received-time": "2025-12-07 11:26:17.779",
 "alm.system-received-time-iso8601": "2025-12-07T11:26:17.779+01:00",
 "alm.system-update-time": "2025-12-09 16:56:56.736",
 "alm.system-update-time-iso8601": "2025-12-09T16:56:56.736+01:00",
 "alm.probable-cause": "CSM-POLICY-BW-EXCEEDED",
 "alm.service-affecting": "service-affecting-unknown",
 "alm.service-impacting": "service-impacting-unknown",
 "alm.owner": "",
 "alm.root-cause-alarm-identifier": {
 "alm.event-identifier": 0
 },
 "alm.user-defined-fields": ""
 }
 }
}

اعلان هشدار سیستم (System Alarm Notification)

{
 "ietf-restconf:notification.notification": {
 "ietf-restconf:notification.topic": "alarm",
 "ietf-restconf:notification.time-of-update": "2025-12-09 16:53:34.860",
 "ietf-restconf:notification.time-of-update-iso8601": "2025-12-09T16:53:37.315+01:00",
 "ietf-restconf:notification.operation": "modify",
 "alm.alarm": {
 "alm.alarm-identifier": {
 "alm.event-identifier": "c423d213-8bc7-4827-a97b-df1cf96b31f5",
 "alm.resource-object-ref": "MD=CISCO_EMS!ND=10.58.244.141-PceProviderHttpAlarm",
 "alm.probable-cause": "PceProviderHttpAlarm"
 },
 "alm.uuid": "c423d213-8bc7-4827-a97b-df1cf96b31f5",
 "alm.type": "network",
 "alm.perceived-severity": "critical",
 "alm.description": "SR-PCE 'sr-pce-141' with Host IP 10.58.244.141 for HTTP setting is disconnected.",
 "alm.category": "Network",
 "alm.source-object-ref": "MD=CISCO_EMS!ND=10.58.244.141-PceProviderHttpAlarm",
 "alm.source-object-name": "SR-PCE [sr-pce-141]",
 "alm.source-object-id": 0,
 "alm.node-ref": "10.58.244.141-PceProviderHttpAlarm",
 "alm.business-key": "http#d9d8f23-0e6d-46f3-afed-af950d9a00ce-PceProviderHttpAlarm##SubAlarm@_282",
 "alm.cause-type": "cause-unknown",
 "alm.ack-state": "unacknowledged",
 "alm.remote-interface-ip-address": "10.58.244.141-PceProviderHttpAlarm",
 "alm.system-received-time": "2025-12-09 16:53:34.860",
 "alm.system-received-time-iso8601": "2025-12-09T16:53:34.860+01:00",
 "alm.system-update-time": "2025-12-09 16:53:34.860",
 "alm.system-update-time-iso8601": "2025-12-09T16:53:34.860+01:00",
 "alm.probable-cause": "PceProviderHttpAlarm",
 "alm.service-affecting": "service-affecting-unknown",
 "alm.service-impacting": "service-impacting-unknown",
 "alm.owner": "",
 "alm.root-cause-alarm-identifier": {
 "alm.event-identifier": 0
 },
 "alm.user-defined-fields": ""
 }
 }
}

اعلان هشدار شبکه (Network Alarm Notification)

{
 "ietf-restconf:notification.notification": {
 "ietf-restconf:notification.topic": "inventory",
 "ietf-restconf:notification.time-of-update": "2024-08-20 08:50:55.583",
 "ietf-restconf:notification.time-of-update-iso8601": "2024-08-20T08:50:57.174Z",
 "ietf-restconf:notification.operation": "create",
 "eq.module": {
 "fdtn.description": "Cisco 8000 Series 32x400G QSFPDD 1RU Fixed System w/HBM",
 "fdtn.name": "Rack 0-Chassis IDPROM",
 "eq.connectors": "",
 "eq.contained-equipment-recurse": "",
 "eq.containing-equipment": "MD=CISCO_EMS!ND=Battipaglia-54!EQ=name=Rack 0;partnumber=68-7325-05",
 "eq.ent-physical-id": 8384519,
 "eq.equipment-type": "MODULE",
 "eq.fdn": "MD=CISCO_EMS!ND=Battipaglia-54!EQ=name=Rack 0-Chassis IDPROM;partnumber=N/A",
 "eq.hardware-version": "V03",
 "eq.is-field-replaceable-unit": "FALSE",
 "eq.is-physically-present": true,
 "eq.is-reporting-alarms-allowed": "UNKNOWN",
 "eq.manufactured-date": "2022-11-26T08:50:15Z",
 "eq.manufacturer": "Cisco Systems, Inc.",
 "eq.operational-state-code": "Unknown",
 "eq.product-id": "8201-32FH",
 "eq.serial-number": "FLM26480A7V",
 "eq.service-state": "UNKNOWN",
 "eq.vendor-equipment-type": "cevModuleCommonCards"
 }
 }
}

اعلان موجودی دستگاه (Device Inventory Notification)

1.6 کلاینت‌های تست (Testing Clients)

کلاینت‌های تست اتصال‌گرا (Connection-oriented) و بدون اتصال (Connectionless) در دسترس هستند در GitHub

Notification test client example

1.7 محدودیت‌های مربوط به هشدارهای RESTCONF

  • اشتراک‌های RESTCONF تنها از انواع فیلترهای زیر پشتیبانی می‌کنند:
    • خانواده محصول (productFamily)
    • نوع محصول (productType)
    • شدت (severity)
    • شناسه یکتای دستگاه (deviceUUID)
  • در حال حاضر، هیچ گزینه‌ای برای فیلتر کردن اعلان‌های هشدار دستگاه (Device Alarm Notifications) به‌صورت جداگانه از اعلان‌های هشدار سیستم یا شبکه وجود ندارد.
  • برای دریافت تنها هشدارهای دستگاه (Device Alarms)، از فیلتر productFamily با سینتکس زیر استفاده کنید:
    /restconf/streams/v2/alarm.json?productFamily=روترها (Routers), سوئیچ‌ها (Switch)
  • در زمان نگارش این متن، هیچ راهکار جایگزینی (Workaround) برای فیلتر کردن صرفِ هشدارهای سیستم یا شبکه وجود ندارد.

2. اعلان‌های RESTCONF — توپولوژی (Topology)

مجموعه متفاوتی از رابط‌های برنامه‌نویسی کاربردی (API) RESTCONF بر اعلان‌های توپولوژی (Topology notifications) تمرکز دارد. اگرچه این APIهای توپولوژی به عنوان بخشی از مجموعه ویژگی‌های Crosswork Optimization Engine پیاده‌سازی شده‌اند، اما توپولوژی بخشی از حوزه عملکرد مدیریت المان (Element Management Function) در نظر گرفته می‌شود. این اعلان‌ها به شما امکان می‌دهند تغییرات بلادرنگ (Real-time) مانند ایجاد، به‌روزرسانی یا حذف گره‌ها (Nodes)، لینک‌ها، اینترفیس‌ها و LSPها را در شبکه خود ردیابی کنید.

اعلان‌های توپولوژی (Topology) شامل موارد زیر است:

  • اعلان‌های رویداد توپولوژی (Topology) لایه ۲ و لایه ۳
  • اعلان‌های رویداد نقطه پایان لایه ۳ (L3 Termination Point Event notifications)
  • اعلان‌های رویداد لینک لایه ۳ (L3 Link Event notifications)
  • اعلان‌های رویداد گره (Node Event)
  • اعلان‌های رویداد تغییر سیاست SR (SR Policy Change Event notifications)
  • اعلان‌های معیارهای عملکرد (Performance Metrics)

توجه:مدل‌های اطلاع‌رسانی بر اساس مدل‌های IETF هستند.

2.1 فرآیند اشتراک توپولوژی (Topology Subscription Process)

توجه:آدرس پایه (Base URL):

https://{{server_ip}}:30603/crosswork/nbi/topology/v3/restconf

فرآیند اشتراک (Subscription) شامل دو مرحله است:

  • ایجاد یک جریان اعلان (Notification Stream):
/operations/sal-remote:create-notification-stream

این مقدار یک UUID اشتراک (Subscription) را بازمی‌گرداند.

  • با استفاده از UUID بازگردانده شده، برای دریافت اعلان‌ها (Notifications) گوش دهید.
/streams/json/urn:uuid:{{subscription_uuid}}

همچنین امکان فهرست کردن تمامی جریان‌های اعلان (Notification Streams) ایجاد شده وجود دارد:

/data/ietf-restconf-monitoring:restconf-state/streams

گزینه‌های اشتراک توپولوژی (Topology) 2.2

Crosswork Network Controller انواع مختلفی از اعلان‌های توپولوژی (Topology Notifications) را ارائه می‌دهد. کاربران می‌توانند با افزودن گزینه‌های مناسب به لیستnotificationsدر بدنه درخواست، در یک یا چند مورد از آن‌ها مشترک شوند:

"notifications": [
 "(urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state?revision=2018-02-26)l3-node-event",
 "(urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state?revision=2018-02-26)l3-link-event",
 "(urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state?revision=2018-02-26)l3-prefix-event",
 "(urn:ietf:params:xml:ns:yang:ietf-l3-unicast-topology-state?revision=2018-02-26)termination-point-event",
 "(urn:ietf:params:xml:ns:yang:ietf-l2-topology-state?revision=2020-11-15)l2-link-event"
]

نمونه‌های اعلان توپولوژی (Topology Notification) در RESTCONF 2.3

{
 "ietf-restconf:notification": {
 "event-time": "2026-10-06T16:27:01.532695836+02:00",
 "ietf-l2-topology-state:l2-link-event": {
 "event-type": "removal",
 "l2-link-attributes": {
 "name": "GigabitEthernet0/0/0/8: Torre-125: GigabitEthernet0/0/2: ETHERNET"
 },
 "network-ref": "Default-network",
 "link-ref": "Napoli-45: GigabitEthernet0/0/0/8: Torre-125: GigabitEthernet0/0/2: ETHERNET"
 }
 }
}

اعلان لینک لایه ۲ (L2 Link Notification)

{
 "ietf-restconf:notification": {
 "event-time": "2026-09-24T13:42:49.637648645+02:00",
 "ietf-l3-unicast-topology-state:l3-link-event": {
 "l3-link-attributes": {
 "name": "Torre-125: GigabitEthernet0/0/2: Napoli-45: GigabitEthernet0/0/0/8: ISIS_IPV4_L2",
 "metric2": "10",
 "metric1": "10",
 "ietf-sr-mpls-topology-state:sr-mpls": {
 "advertise-protection": "dual",
 "sids": [
 { ... },
 { ... }
 ],
 "information-source": "isis"
 },
 "cisco-crosswork-l3-te-topology:l3-link-attributes": {
 "domain-id": "200",
 "max-bandwidth-kbps": "1000000"
 },
 "cisco-crosswork-isis-topology:isis-link-attributes": {
 "level": 2,
 "net": {
 "system-id": "0000.0000.1250"
 }
 }
 },
 "l3-unicast-topology": {
 "cisco-crosswork-isis-topology:isis": {}
 },
 "link-ref": "Torre-125: GigabitEthernet0/0/2: Napoli-45: GigabitEthernet0/0/0/8: ISIS_IPV4_L2",
 "l3-event-type": "remove",
 "network-ref": "Default-network"
 }
 }
}

اعلان لینک لایه ۳ (L3 Link Notification)

{
 "ietf-restconf:notification": {
 "event-time": "2026-10-06T16:27:03.445010607+02:00",
 "ietf-l3-unicast-topology-state:l3-node-event": {
 "l3-node-attributes": {
 "name": "Torre-125",
 "cisco-crosswork-l3-te-topology:ipv6-router-id": [ ... ],
 "router-id": [ ... ],
 "ietf-sr-mpls-topology-state:sr-mpls": { ... },
 "cisco-crosswork-isis-topology:isis-node-attributes": [ ... ],
 "prefix": [ ... ]
 },
 "l3-unicast-topology": {
 "cisco-crosswork-srv6-topology-state:srv6": {},
 "cisco-crosswork-isis-topology:isis": {}
 },
 "l3-event-type": "update",
 "node-ref": "Torre-125",
 "network-ref": "Default-network"
 }
 }
}

اعلان گره لایه ۳ (L3 Node Notification)

{
 "ietf-restconf:notification": {
 "event-time": "2026-10-06T16:27:02.161627238+02:00",
 "ietf-l3-unicast-topology-state:termination-point-event": {
 "tp-ref": "GigabitEthernet0/0/8",
 "l3-termination-point-attributes": {
 "ip-address": [
 "2.45.125.45"
 ]
 },
 "l3-event-type": "update",
 "node-ref": "Napoli-45",
 "network-ref": "Default-network"
 }
 }
}

اعلان نقطه پایان (Termination Point Notification)

3. اعلان‌های Kafka

Crosswork Network Controller همچنین یک سیستم اطلاع‌رسانی Kafka را با انواع اشتراک (Subscription) زیر ارائه می‌دهد:

  • Alarm
  • Inventory_Changes
  • System_Audit
  • Device_Performance_Monitoring
  • Network_Performance_Monitoring
  • Service_Health_Monitoring

اعلان‌های Kafka از یک فرآیند اشتراک (Subscription) شامل دو مرحله استفاده می‌کنند:

  1. تعریف یک مقصد (Destination) برای Kafka
  2. ایجاد یک اشتراک تولیدکننده (Producer Subscription)

تعریف مقصد (Destination) کافکا (Kafka) 3.1

کاربردی‌ترین روش برای تعریف مقصد Kafka از طریق رابط کاربری گرافیکی (GUI) در Crosswork Network Controller است تا استفاده از API (Cisco DevNet جزئیات بیشتری را درباره APIهای موجود ارائه می‌دهد).

فرم مقصد داده (Data Destination) در منوی مدیریت (Administration) در دسترس است. به طور کلی، یک مقصد می‌تواند به چندین برنامه و مورد استفاده (Use Case) در Crosswork Network Controller خدمت‌رسانی کند (راهنمای مدیریت Crosswork Network Controller 7.2 جزئیات بیشتری را ارائه می‌دهد).

هنگام تکمیل فرم، به پارامتر اجباری (Mandatory) توجه کنید.منبع داده (Data Source)این پارامتر مشخص می‌کند که آیا Crosswork Network Controller از مقصد برای استریم داده‌های تولید شده توسط برنامه، داده‌های خام جمع‌آوری شده توسط گردآورنده آن (Data Gateway) و یا هر دو استفاده می‌کند.

در این مورد، یکی را انتخاب کنیدبرنامه کاربردی (Application) or هر کدام (Any).

Kafka destination data source selection

انتخاب منبع داده (Data Source)

نقطه پایانی (Endpoint) منبع اشتراک Kafka 3.2

توجه:آدرس پایه (Base URL):

https://{{server_ip}}:30603/crosswork/notification/v2

از نقطه پایانی (Endpoint) زیر برای ایجاد اشتراک‌های Kafka استفاده کنید:

/subscription

درخواست POST نیازمند یک بدنه (Payload) با فیلدهای زیر است:

  • نام مقصد: نام مقصد همان‌طور که در رابط کاربری گرافیکی (GUI) تعریف شده است
  • نوع مقصد (destinationType): Kafka یا gRPC*
  • فیلتر: این مورد فقط برای موجودی کالا اعمال می‌شود؛ برای جزئیات بیشتر به بخش زیر مراجعه کنید.
  • نام تاپیک: نام تاپیک Kafka
  • نوع داده اشتراک (subscriptionDataType): یکی از موارد
    • تغییرات موجودی (Inventory_Changes)
    • هشدار (Alarm)
    • حسابرسی سیستم (System_Audit)
    • پایش عملکرد دستگاه (Device_Performance_Monitoring)
    • پایش عملکرد شبکه (Network_Performance_Monitoring)
    • پایش سلامت سرویس (Service_Health_Monitoring)
  • داده‌های اشتراک (subscriptionData): این مورد تنها برای مدیریت عملکرد (PM) سلامت دستگاه، شبکه یا سرویس کاربرد دارد؛ برای جزئیات بیشتر به بخش زیر مراجعه کنید.

توجه:برای gRPC، تنها قابلیت‌های Device_Performance_Monitoring و Network_Performance_Monitoring پشتیبانی می‌شوند.

فیلترپارامتر

پارامتر اختیاری Kafkaفیلترمی‌تواند برای فیلتر کردن اعلان‌های موجودی (Inventory) استفاده شود.

می‌توان آن را روی یکی از مقادیر زیر تنظیم کرد:

  • خانواده محصول (مانند روترها)
  • سری محصول (مانند روترهای سری Cisco 8000)
  • نوع محصول (مانند روتر Cisco 8201-32FH)

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

داده‌های اشتراک (subscriptionData)پارامتر (Parameter)

Kafkaداده‌های اشتراک (subscriptionData) (اجباری (Mandatory)پارامتر) مشخص می‌کند که کدام مجموعه از داده‌های مدیریت عملکرد (PM data) باید استریم شود. مقدار آن به نوع داده اشتراک انتخاب شده (subscriptionDataType) بستگی دارد.نوع داده اشتراک (subscriptionDataType).

برایپایش عملکرد دستگاه (Device Performance Monitoring), داده‌های اشتراک (subscriptionData)بر اساس نوع خط‌مشی (Policy) و نام خط‌مشی فعال‌شده در لیست خط‌مشی‌های عملکرد (Performance Policy) است.

  • مثال:policy_type=OpticalSFP, policy_instance=OPT_PM

برایپایش عملکرد شبکه (Network Performance Monitoring)کاربران می‌توانند یکی از موارد زیر را انتخاب کنند:

  • SR_PM_Interface
  • SR_PM_Policy

برایپایش سلامت سرویس (Service_Health_Monitoring)، کاربران می‌توانند یکی از موارد زیر را انتخاب کنند:

  • Y1731_Probes
  • PCA_Probes

یادداشت ۱:تنها یک اشتراک برای هر موضوع مجاز است.

یادداشت ۲:Cisco Crosswork Network Controller ازJSONبرای اعلان‌های هشدار و موجودی استفاده می‌کند، و ازGPBKVبرای PM.

مهم:برخلاف اشتراک‌های موجودی (Inventory Subscriptions)، اشتراک‌های هشدار (Alarm Subscriptions) از فیلترهای مبتنی بر API که بتوانند به صورت متنی (Contextually) هنگام فراخوانی این API اعمال شوند، پشتیبانی نمی‌کنند.به محض ایجاد یک اشتراک، Crosswork Network Controller بلافاصله تمام آلارم‌ها و رویدادهای دستگاه، سیستم و شبکه را به مقصد Kafka ارسال می‌کند.برای اعمال فیلتر، کاربران باید یک «سیاست اعلان» (Notification Policy) پیکربندی کنند.

این کار می‌تواند از طریق رابط کاربری گرافیکی (GUI) (که در ادامه توضیح داده شده) یا از طریق API انجام شود.به عنوان یک روش پیشنهادی (Best Practice)، سیاست اعلان را در یک محیط آزمایشگاهی با استفاده از GUI پیکربندی و اعتبارسنجی کنید، سپس هنگام ایجاد اشتراک، آن را در محیط عملیاتی (Production) از طریق API اعمال نمایید. این کار به جلوگیری از ایجاد بار غیرضروری بر روی کلاستر Kafka مقصد کمک می‌کند.این کار می‌تواند از طریق رابط کاربری گرافیکی (GUI) (که در ادامه توضیح داده شده است) یا API ایجاد شود. به عنوان یک رویه استاندارد (Best Practice)، سیاست اطلاع‌رسانی (Notification Policy) را در محیط آزمایشگاهی با استفاده از GUI پیکربندی و اعتبارسنجی کنید، سپس هنگام ایجاد اشتراک (Subscription)، آن را از طریق API در محیط عملیاتی (Production) اعمال نمایید. این کار به جلوگیری از ایجاد بار غیرضروری بر روی کلاستر هدف Kafka کمک می‌کند.

نمونه‌های محتوا (Payload) 3.3

{
 "destinationName": "external_kafka",
 "destinationType": "Kafka",
 "filter": null,
 "topicName": "alarm_topic",
 "subscriptionData": null,
 "subscriptionDataType": "Alarm"
}

محتوای پیام اشتراک هشدار (Alarm Subscription Payload)

{
 "destinationName": "external_kafka",
 "destinationType": "Kafka",
 "filter": null,
 "topicName": "DPM_topic"
 "subscriptionData": "policy_type=OpticalSFP, policy_instance=Optical SFP",
 "subscriptionDataType": "Device_Performance_Monitoring",
}

محتوای ارسالی برای اشتراک (Subscription Payload) مدیریت عملکرد دستگاه (Device PM)

نمونه‌های اعلان (Notification) در Kafka 3.4

توجه:برای مشاهده نمونه‌های اعلان هشدار و موجودی، به بخش 1.5 مراجعه کنید؛ این نمونه‌ها یکسان هستند.

$be6a6904-ce07-41e9-ad7a-8030ba9018cc?
?0???2MgmtEth0/RSP0/CPU0/0??%-
?0???2TenGigE0/0/0/0??%-
?0???2TenGigE0/0/0/1??%-
?0???2TenGigE0/0/0/2??%-
?0???2TenGigE0/0/0/3??%-
?0???2TenGigE0/0/0/4??%-
?0???2TenGigE0/0/0/5??%-
?0???2TenGigE0/0/0/6??%-
?0???2TenGigE0/0/0/7??%-
?0???2TenGigE0/0/0/8??%-
?0???2TenGigE0/0/0/9??%-
?0???2TenGigE0/0/0/10??%-
?0???2TenGigE0/0/0/11??%-
?0???2TenGigE0/0/0/12??%-
?0???2TenGigE0/0/0/13??%-
?0???2TenGigE0/0/0/14??%-
?0???2TenGigE0/0/0/15??%-
?0???2TenGigE0/0/0/16??%-
?0???2TenGigE0/0/0/17??%-
?0???2TenGigE0/0/0/18??%-
?0???2TenGigE0/0/0/19??%-
?0???2HundredGigE0/0/1/0??%-
?0???2HundredGigE0/0/1/1??%-
?0???2FourHundredGigE0/1/0/0??%-
?0???2FourHundredGigE0/1/0/1??%-

اعلان وضعیت دستگاه (Device PM Notification) – کدگذاری شده با GPBKV

فایل‌های تعریف پیام پروتکل در دسترس هستند در GitHub.

??t?{"AuditNotification":{"deviceIP":"N/A","clientIP":"10.58.234.123","description":"Logout successful","source":"AAA","creationtime":1725891947116,"userName":"nmartino"}}

اعلان حسابرسی سیستم (System Audit Notification)

4. سیاست‌های اطلاع‌رسانی (Notification Policies)

Cisco Crosswork Network Controller قابلیت Notification Policies را برای ایجاد جریان‌های اعلان (Notification streams) جدید یا فیلتر کردن جریان‌های موجود فراهم می‌کند.

به‌طور دقیق‌تر، سیاست‌های اعلان (Notification Policies) می‌توانند:

  • فیلتر کردن جریان‌های اعلان هشدار Kafka موجود
  • ایجاد جریان‌های اعلان جدید TRAP یا SYSLOG برای هشدارهای دستگاه، رویدادهای سیستم و شبکه

توجه:چندین خط‌مشی (Policy) می‌توانند بر روی یک استریم Kafka اعمال شوند.

دو نوع مختلف از سیاست‌های اطلاع‌رسانی (Notification Policies) قابل ایجاد است:

  • رویدادهای سیستم یا شبکه
  • هشدارها و رویدادهای دستگاه

Notification policy options

گزینه‌های سیاست‌های اعلان (Notification Policies)

4.1 فیلترهای رویدادهای سیستم و شبکه (System and Network Events Filters)

هنگام ایجاد جریان‌های رویداد سیستم یا شبکه، کاربران می‌توانند فیلترها را در بخش معیارها (Criteria) اعمال کنند یا از*برای گنجاندن تمام رویدادها استفاده کنند.

از معیارها می‌توان برای فیلتر کردن رویدادهای سیستم (System Events) استفاده کرد. راهنمای آنلاین (Online Help) برای کمک به تعریف معیارها در دسترس است.

System and network event filter criteria

فیلترهای سیستمی زیر در دسترس هستند:

  • Severity
  • EventType
  • Category
  • Source
  • GeneratedBy

تنها مقادیر شدت (Severity) (۰ تا ۶) و دسته‌بندی (Category) (سیستم، شبکه و حسابرسی) مستند شده‌اند. لیست ناقصی از رویدادهای سیستم موجود است که می‌تواند به صورت آفلاین ارائه شود (از طریق ایمیل با من تماس بگیرید).

4.2 فیلترهای هشدارها (Alarms) و رویدادهای (Events) دستگاه

هنگام ایجاد جریان‌های هشدار (Alarm) و رویداد (Event) دستگاه، کاربران می‌توانند فیلترهایی را بر اساس شدت (Severity)، نام هشدار و دسته‌بندی هشدار اعمال کنند.

Device alarm and event filter criteria

مهم:هنگامی که یک خط‌مشی اعلان سیستم (System Notification Policy) بر روی یک جریان Kafka موجود اعمال می‌شود، هشدارهای دستگاه (Device alarms) را فیلتر نمی‌کند. به همین ترتیب، یک خط‌مشی اعلان دستگاه (Device Notification Policy) نیز رویدادهای سیستم یا شبکه را فیلتر نخواهد کرد. فیلتر کردن هشدارهای دستگاه به صورت جداگانه از هشدارهای سیستم یا شبکه امکان‌پذیر است، اما نیازمند انجام اقدامات اضافی است.

برای دریافت تنها هشدارهای دستگاه:

  • یک خط‌مشی اعلان سیستم/شبکه با معیار «severity=0» ایجاد کنید.

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

  • یک خط‌مشی اعلان هشدار دستگاه (Device Alarm Notification Policy) ایجاد کرده و نام هشدار «ODUK-1-AIS-PM» را انتخاب کنید.

گیرنده‌های اعلان (Notification Receivers)

گیرندگان اعلان (Notification) را می‌توان در حین ایجاد خط‌مشی اعلان تعریف کرد یا از قبل در مسیر زیر پیکربندی نمود:Settings > Notification Destination.

Notification receiver settings

5. اعلان‌های TRAP (TRAP Notifications)

Crosswork Network Controller همچنین می‌تواند هشدارها و رویدادهای دستگاه (Device)، سیستم و شبکه را با استفاده از گردش‌کار Notification Policy و همان معیارهای فیلترینگ که در بخش قبل توضیح داده شد، به صورت اعلان‌های SNMP TRAP ارسال کند.

جزئیات بیشتر:

  • رویدادهای حسابرسی (Audit events) در دسته‌بندی سیستم و شبکه گنجانده شده‌اند
  • این محصول از هر دو پروتکل SNMPv2 و SNMPv3 پشتیبانی می‌کند
  • پیام‌ها با استفاده از CISCO-EPM-NOTIFICATION-MIB قالب‌بندی می‌شوند

توجه:پیاده‌سازی MIB بین هشدارهای دستگاه (device alarms) و رویدادهای سیستم، شبکه یا حسابرسی (audit events) متفاوت است (برای جزئیات بیشتر به دو بخش بعدی مراجعه کنید).

این فرآیند اطلاع‌رسانی شامل دو مرحله است:

  • یک گیرنده TRAP تعریف کنید (برای اختصار حذف شده است؛ به راهنمای مدیریت Crosswork Network Controller 7.2 برای جزئیات مراجعه کنید).
  • یک خط‌مشی اعلان (Notification Policy) ایجاد کنید، همان‌طور که در بالا توضیح داده شد.

۵.۱ نمونه‌های اعلان‌های TRAP دستگاه و پیاده‌سازی MIB

.1.3.6.1.2.1.1.3.0=137336973
.1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.9.9.311.0.2
.1.3.6.1.4.1.9.9.311.1.1.2.1.2.0="1.0"
.1.3.6.1.4.1.9.9.311.1.1.2.1.3.0=1788608530
.1.3.6.1.4.1.9.9.311.1.1.2.1.4.0=1788608733
.1.3.6.1.4.1.9.9.311.1.1.2.1.5.0="c387a038-4dfc-4281-92aa-61146b38e17e"
.1.3.6.1.4.1.9.9.311.1.1.2.1.6.0=3
.1.3.6.1.4.1.9.9.311.1.1.2.1.7.0="3, CLEARED"
.1.3.6.1.4.1.9.9.311.1.1.2.1.8.0=2
.1.3.6.1.4.1.9.9.311.1.1.2.1.9.0=-1
.1.3.6.1.4.1.9.9.311.1.1.2.1.10.0="-1, LINK_DOWN"
.1.3.6.1.4.1.9.9.311.1.1.2.1.11.0=1
.1.3.6.1.4.1.9.9.311.1.1.2.1.12.0="10.244.171.44"
.1.3.6.1.4.1.9.9.311.1.1.2.1.13.0="Switches and Routers"
.1.3.6.1.4.1.9.9.311.1.1.2.1.14.0=1
.1.3.6.1.4.1.9.9.311.1.1.2.1.15.0="10.58.238.196"
.1.3.6.1.4.1.9.9.311.1.1.2.1.16.0="Port 'Null0' (Description: 'Not available') is up on device '10.58.238.196'."
.1.3.6.1.4.1.9.9.311.1.1.2.1.17.0=5
.1.3.6.1.4.1.9.9.311.1.1.2.1.18.0="5, CLEARED"
.1.3.6.1.4.1.9.9.311.1.1.2.1.19.0=0
.1.3.6.1.4.1.9.9.311.1.1.2.1.20.0=""
.1.3.6.1.4.1.9.9.311.1.1.2.1.21.0="srcObjectDisplayName=,rootCauseId=0,hostName=10.58.238.196,serviceImpacting=0,……..
.1.3.6.1.4.1.9.9.311.1.1.2.1.22.0=""
.1.3.6.1.4.1.9.9.311.1.1.2.1.23.0=""
.1.3.6.1.4.1.9.9.311.1.1.2.1.24.0=2
.1.3.6.1.4.1.9.9.311.1.1.2.1.25.0=0
.1.3.6.1.4.1.9.9.311.1.1.2.1.26.0=""
.1.3.6.1.4.1.9.9.311.1.1.2.1.27.0=""
.1.3.6.1.4.1.9.9.311.1.1.2.1.28.0=""
.1.3.6.1.4.1.9.9.311.1.1.2.1.29.0="c387a038-4dfc-4281-92aa-61146b38e17e"

نمونه TRAP دستگاه

پیاده‌سازی MIB برای تله (TRAP) دستگاه

SNMP Varbind نوع داده (Data Type)*1 Varbind OID توضیحات (Description) مثال‌ها (Examples)
cenAlarmVersion SnmpAdminString*2 .1.3.6.1.4.9.9.31 1.1.1.2.1.2 نسخه انتشار این MIB 1.0
cenAlarmTimestamp مهر زمانی (Timestamp) .1.3.6.1.4.9.9.31 1.1.1.2.1.3 زمانی که هشدار صادر شد 1523608787
cenAlarmUpdatedTimestamp مهر زمانی (Timestamp) .1.3.6.1.4.9.9.31 1.1.1.2.1.4 زمان آخرین به‌روزرسانی 1523608788
cenAlarmInstanceID SnmpAdminString .1.3.6.1.4.9.9.31 1.1.1.2.1.5 شناسه یکتای نمونه هشدار (Alarm Instance ID) c2afd3c1-d4e5-46db-84b2- 86d0d43f2056
cenAlarmStatus عدد صحیح (Integer) .1.3.6.1.4.9.9.31 1.1.1.2.1.6 وضعیت هشدار که وضعیت هشدار را با مقدار عددی نشان می‌دهد. 2 = فعال (ACTIVE)، 3 = پاک‌شده (CLEARED) 2
cenAlarmStatusDefinition SnmpAdminString .1.3.6.1.4.9.9.31 1.1.1.2.1.7 توضیح کوتاه وضعیت هشدار. رشته با فرمت ‘ قالب‌بندی شده است,’. 2, ACTIVE
cenAlarmType*1 عدد صحیح (Integer) .1.3.6.1.4.9.9.31 1.1.1.2.1.8 • 1 – ناشناخته • 2 – مستقیم • 3 – غیرمستقیم • 4 – ترکیبی Hardcoded as 2
cenAlarmCategory عدد صحیح (Integer) .1.3.6.1.4.9.9.31 1.1.1.2.1.9 استفاده نشده – به جای آن از cenAlarmCategoryDefinition استفاده کنید –
cenAlarmCategoryDefinition*2 SnmpAdminString .1.3.6.1.4.9.9.31 1.1.1.2.1.10 توضیح کوتاه دسته‌بندی. رشته با فرمت ‘ قالب‌بندی شده است,’ عدد صحیح نباید به عنوان نوع رویداد CNC در نظر گرفته شود LINK_DOWN”, “LINK_UP
cenAlarmServerAddressType InetAddressType .1.3.6.1.4.9.9.31 1.1.1.2.1.11 نوع آدرس اینترنتی که سرور از طریق آن قابل دسترسی است. 0 = ناشناخته، 1 = IPv4، 2 = IPv6 1
cenAlarmServerAddress*3 InetAddress .1.3.6.1.4.9.9.31 1.1.1.2.1.12 پاد (Pod) کوبرنتیز (K8s) برای ارسال هشدار CNC، آدرس IP داخلی 10.244.251.122
cenAlarmManagedObjectClass SnmpAdminString .1.3.6.1.4.9.9.31 1.1.1.2.1.13 دسته‌بندی هشدار CNC “Switches and Routers”, “BGP”
cenAlarmManagedObjectAddressType InetAddressType .1.3.6.1.4.9.9.31 1.1.1.2.1.14 نوع آدرس اینترنتی که شیء مدیریت‌شده (دستگاه) از طریق آن قابل دسترسی است. 0 = ناشناخته، 1 = IPv4، 2 = IPv6 1
cenAlarmManagedObjectAddress InetAddress .1.3.6.1.4.9.9.31 1.1.1.2.1.15 آدرس IP یا نام DNS شیء مدیریت‌شده (دستگاه) 172.30.9.121
cenAlarmDescription OctetString .1.3.6.1.4.9.9.31 1.1.1.2.1.16 توضیحات دقیق هشدار Check notes
cenAlarmSeverity عدد صحیح (Integer) .1.3.6.1.4.9.9.31 1.1.1.2.1.17 • 0 – بحرانی (CRITICAL) • 1 – اصلی (MAJOR) • 2 – فرعی (MINOR) • 3 – هشدار (WARNING) • 4 – پاک‌شده (CLEARED) • 5 – اطلاعاتی (INFO) 4
cenAlarmSeverityDefinition SnmpAdminString .1.3.6.1.4.9.9.31 1.1.1.2.1.18 توضیح کوتاه شدت هشدار تولید شده. رشته با فرمت ‘ قالب‌بندی شده است,‘ 4, CLEARED
cenAlarmTriageValue عدد صحیح (Integer) .1.3.6.1.4.9.9.31 1.1.1.2.1.19 استفاده نشده –
cenEventIDList OctetString .1.3.6.1.4.9.9.31 1.1.1.2.1.20 استفاده نشده –
cenUserMessage1 SnmpAdminString .1.3.6.1.4.9.9.31 1.1.1.2.1.21 اطلاعات مربوط به هشدار Check notes
cenUserMessage2 SnmpAdminString .1.3.6.1.4.9.9.31 1.1.1.2.1.22 استفاده نشده –
cenUserMessage3 SnmpAdminString .1.3.6.1.4.9.9.31 1.1.1.2.1.23 استفاده نشده –
cenAlarmMode عدد صحیح (Integer) .1.3.6.1.4.9.9.31 1.1.1.2.1.24 • 1 – ناشناخته: زمانی که مقدار این ویژگی قابل تعیین نباشد. • 2 – هشدار (alert): نشان‌دهنده هشداری است که توسط مجموعه‌ای از رویدادها تولید شده که همه آن‌ها از طریق نظرسنجی (Polling) اشیاء مدیریت‌شده و/یا گوش دادن به اعلان‌های SNMP گزارش می‌شوند. • 3 – رویداد (event): نشان‌دهنده رویدادی است که توسط نظرسنجی اشیاء مدیریت‌شده و/یا گوش دادن به اعلان‌های SNMP تولید می‌شود. 2,3
cenPartitionNumber عدد صحیح (Integer) .1.3.6.1.4.9.9.31 1.1.1.2.1.25 استفاده نشده –
cenPartitionName SnmpAdminString .1.3.6.1.4.9.9.31 1.1.1.2.1.26 استفاده نشده –
cenCustomerIdentification SnmpAdminString .1.3.6.1.4.9.9.31 1.1.1.2.1.27 استفاده نشده –
cenCustomerRevision SnmpAdminString .1.3.6.1.4.9.9.31 1.1.1.2.1.28 استفاده نشده –
cenAlertID SnmpAdminString .1.3.6.1.4.9.9.31 1.1.1.2.1.29 در یک اعلان مبتنی بر رویداد، این ویژگی شامل شناسه هشدار (Alert ID) است که رویداد تولید شده در آن تجمیع شده است. در یک اعلان مبتنی بر هشدار، cenAlarmInstanceId و cenAlertID یکسان هستند. c2afd3c1-d4e5-46db-84b2- 86d0d43f2056

نمونه‌هایی از اعلان‌های TRAP سیستم و شبکه و پیاده‌سازی MIB

.1.3.6.1.2.1.1.3.0=152911250
.1.3.6.1.6.3.1.1.4.1.0=.1.3.6.1.4.1.9.9.311.0.2
.1.3.6.1.4.1.9.9.311.1.1.2.1.2.0="1.0"
.1.3.6.1.4.1.9.9.311.1.1.2.1.3.0=1788764475
.1.3.6.1.4.1.9.9.311.1.1.2.1.4.0=1788764475
.1.3.6.1.4.1.9.9.311.1.1.2.1.5.0="0669e1d3-6981-4c6c-826c-b5fe583ae266"
.1.3.6.1.4.1.9.9.311.1.1.2.1.6.0=2
.1.3.6.1.4.1.9.9.311.1.1.2.1.7.0="2, ACTIVE"
.1.3.6.1.4.1.9.9.311.1.1.2.1.8.0=2
.1.3.6.1.4.1.9.9.311.1.1.2.1.9.0=-1
.1.3.6.1.4.1.9.9.311.1.1.2.1.10.0="-1, 1000"
.1.3.6.1.4.1.9.9.311.1.1.2.1.11.0=1
.1.3.6.1.4.1.9.9.311.1.1.2.1.12.0="10.244.171.44"
.1.3.6.1.4.1.9.9.311.1.1.2.1.13.0="capp-infra:DLM"
.1.3.6.1.4.1.9.9.311.1.1.2.1.14.0=1
.1.3.6.1.4.1.9.9.311.1.1.2.1.15.0="robot-dlminvmgr-7896b9d7df-n5blp"
.1.3.6.1.4.1.9.9.311.1.1.2.1.16.0="[Device: 10.58.234.44] [snmp]ErrorType ConnectionError,Invalid SNMP credentials or Wrong SNMP …..
.1.3.6.1.4.1.9.9.311.1.1.2.1.17.0=2
.1.3.6.1.4.1.9.9.311.1.1.2.1.18.0="2, MAJOR"
.1.3.6.1.4.1.9.9.311.1.1.2.1.19.0=0
.1.3.6.1.4.1.9.9.311.1.1.2.1.20.0=""
.1.3.6.1.4.1.9.9.311.1.1.2.1.21.0="srcObjectDisplayName=Device <no host> (443d497e-986f-47ff-9cc5-75bc404358b5),hostname……
.1.3.6.1.4.1.9.9.311.1.1.2.1.22.0="Device <no host> (443d497e-986f-47ff-9cc5-75bc404358b5)"
.1.3.6.1.4.1.9.9.311.1.1.2.1.23.0=""
.1.3.6.1.4.1.9.9.311.1.1.2.1.24.0=3
.1.3.6.1.4.1.9.9.311.1.1.2.1.25.0=0
.1.3.6.1.4.1.9.9.311.1.1.2.1.26.0=""
.1.3.6.1.4.1.9.9.311.1.1.2.1.27.0=""
.1.3.6.1.4.1.9.9.311.1.1.2.1.28.0=""
.1.3.6.1.4.1.9.9.311.1.1.2.1.29.0="bb6310d7-ca8f-48b8-bf0b-bc2f1

نمونه TRAP سیستم

پیاده‌سازی MIB برای TRAP سیستم و شبکه

متغیر SNMP (SNMP Varbind) فیلد رویداد (Event Field*1) شناسه شیء متغیر (Varbind OID) توضیحات (Description) مثال‌ها (Examples)
cenAlarmVersion – .1.3.6.1.4.9.9.31 1.1.1.2.1.2 نسخه انتشار این MIB 1.0
cenAlarmTimestamp مهر زمانی (Timestamp) .1.3.6.1.4.9.9.31 1.1.1.2.1.3 زمانی که هشدار صادر شده است 1523608787
cenAlarmUpdatedTimestamp مهر زمانی (Timestamp) .1.3.6.1.4.9.9.31 1.1.1.2.1.4 زمان آخرین به‌روزرسانی 1523608788
cenAlarmInstanceID شناسه هشدار (AlarmId) .1.3.6.1.4.9.9.31 1.1.1.2.1.5 شناسه یکتای نمونه هشدار 57e3ef70-1597
cenAlarmStatus وضعیت هشدار (Alarm Status) .1.3.6.1.4.9.9.31 1.1.1.2.1.6 وضعیت هشدار، وضعیت آن را به صورت مقدار عددی صحیح نشان می‌دهد. 2 = فعال (ACTIVE)، 3 = پاک‌شده (CLEARED) 2
cenAlarmStatusDefinition تعریف وضعیت هشدار (Alarm Status Definition) .1.3.6.1.4.9.9.31 1.1.1.2.1.7 توضیح کوتاه وضعیت هشدار. رشته به این صورت فرمت‌بندی شده است:,’. 2, فعال (ACTIVE)
cenAlarmType – .1.3.6.1.4.9.9.31 1.1.1.2.1.8 • 1 – ناشناخته • 2 – مستقیم • 3 – غیرمستقیم • 4 – ترکیبی به صورت ثابت (Hardcoded) برابر با 2
cenAlarmCategory دسته‌بندی (Category) .1.3.6.1.4.9.9.31 1.1.1.2.1.9 استفاده نمی‌شود – به جای آن از cenAlarmCategoryDefinition استفاده کنید –
cenAlarmCategoryDefinition تعریف دسته‌بندی (Category Definition) .1.3.6.1.4.9.9.31 1.1.1.2.1.10 توضیح کوتاه دسته‌بندی رویداد. رشته به این صورت فرمت‌بندی شده است: ‘ عدد صحیح نباید در نظر گرفته شود 1002 AUDIT_LOG, L2LinkAlarm, SrPolicyEvent
cenAlarmServerAddressType نوع آدرس (Address Type) .1.3.6.1.4.9.9.31 1.1.1.2.1.11 نوع آدرس اینترنتی گره کلاستر CNC. 1 = IPv4، 2 = IPv6 1
cenAlarmServerAddress آدرس (Address) .1.3.6.1.4.9.9.31 1.1.1.2.1.12 پاد (Pod) کوبرنتیز (K8s) ارسال‌کننده هشدار CNC، آدرس IP داخلی 10.244.251.122
cenAlarmManagedObjectClass شناسه برنامه مبدأ (OriginAppId) .1.3.6.1.4.9.9.31 1.1.1.2.1.13 سیستم: شناسه برنامه مبدأ (OriginAppId) برنامه‌ای که رویداد را تولید کرده است. حسابرسی شبکه (Network Audit) capp-infra Audit, Network
cenAlarmManagedObjectAddressType نوع آدرس اینترنتی (Internet address type) .1.3.6.1.4.9.9.31 1.1.1.2.1.14 نوع آدرس اینترنتی که شیء مدیریت‌شده (دستگاه) از طریق آن قابل دسترسی است. 0 = ناشناخته، 1 = IPv4، 2 = IPv6 1
cenAlarmManagedObjectAddress سرویس (Service) .1.3.6.1.4.9.9.31 1.1.1.2.1.15 سیستم: نام پاد CNC، شبکه: -L3InterfaceAlarm، حسابرسی: آدرس IP کلاینت بررسی یادداشت‌ها*1
cenAlarmDescription توضیحات (Description) .1.3.6.1.4.9.9.31 1.1.1.2.1.16 توضیحات دقیق رویداد. بررسی یادداشت‌ها*2
cenAlarmSeverity شدت (Severity) .1.3.6.1.4.9.9.31 1.1.1.2.1.17 • 2 – بحرانی (CRITICAL) • 3 – اصلی (MAJOR) • 4 – هشدار (WARNING) • 5 – جزئی (MINOR) • 6 – اطلاعاتی (INFORMATION) • 7 – پاک‌شده (CLEARED) 5
cenAlarmSeverityDefinition تعریف شدت (Severity Definition) .1.3.6.1.4.9.9.31 1.1.1.2.1.18 توضیح کوتاه شدت رویداد. رشته به این صورت فرمت‌بندی شده است: ‘ 3, اصلی (MAJOR)
cenAlarmTriageValue .1.3.6.1.4.9.9.31 1.1.1.2.1.19 استفاده نمی‌شود –
cenEventIDList .1.3.6.1.4.9.9.31 1.1.1.2.1.20 استفاده نمی‌شود –
cenUserMessage1 توضیحات شیء (ObjectDescription)، شناسه شیء (ObjectId) .1.3.6.1.4.9.9.31 1.1.1.2.1.21 اطلاعات مربوط به رویداد ObjectDescription، ObjectId. رشته از فرمت ‘‘ استفاده می‌کند. بررسی یادداشت‌ها
cenUserMessage2*1 شناسه سرویس مبدأ (OriginServiceId) .1.3.6.1.4.9.9.31 1.1.1.2.1.22 سیستم: اطلاعات مربوط به شناسه سرویس مبدأ رویداد (موقعیت CNC)، رویدادهای شبکه و حسابرسی: خالی بررسی یادداشت‌ها
cenUserMessage3 .1.3.6.1.4.9.9.31 1.1.1.2.1.23 استفاده نمی‌شود –
cenAlarmMode .1.3.6.1.4.9.9.31 1.1.1.2.1.24 • 1 – ناشناخته • 2 – هشدار (alert) • 3 – رویداد (event) 3
cenPartitionNumber .1.3.6.1.4.9.9.31 1.1.1.2.1.25 استفاده نمی‌شود –
cenPartitionName .1.3.6.1.4.9.9.31 1.1.1.2.1.26 استفاده نمی‌شود –
cenCustomerIdentification .1.3.6.1.4.9.9.31 1.1.1.2.1.27 استفاده نمی‌شود –
cenCustomerRevision .1.3.6.1.4.9.9.31 1.1.1.2.1.28 استفاده نمی‌شود –
cenAlertID*1 شناسه رویداد (EventId) .1.3.6.1.4.9.9.31 1.1.1.2.1.29 شناسه رویدادِ تولید شده 9f19e5a9-a64c

6. اعلان‌های SYSLOG

نرم‌افزار Cisco Crosswork Network Controller همچنین از ارسال رویدادهای دستگاه (Device)، سیستم (System)، شبکه (Network) و حسابرسی (Audit) از طریق SYSLOG پشتیبانی می‌کند.

فرمت SYSLOG:

<pri><v> <stamp> <vip> <app> <PID> <Message ID> <Structure Data> <Message>

همانند اعلان‌های TRAP، تنظیمات SYSLOG شامل دو مرحله است:

  • تعریف یک گیرنده SYSLOG (برای اختصار حذف شده است؛ برای جزئیات به راهنمای مدیریت Crosswork Network Controller 7.2 مراجعه کنید).
  • یک خط‌مشی (Policy) اعلان ایجاد کنید، همان‌طور که در بالا توضیح داده شد.

6.1 نمونه‌های اعلان‌های SYSLOG دستگاه

# tcpdump -vni ens160 udp port 514
Facility unknown (25) (25), Severity alert (1)
Msg: 1 2026-09-01T12:05:40.000Z 10.58.234.78 Wired Switch - e6fdba2a-2b3a-46ba-8f31-86e8fefbdd37 LINK_DOWN:10.58.238.196:If:Null0-LINK_DOWN 'Port 'Null0' (Description: 'Not available') is down on device '10.58.238.196'.'

ابزار tcpdump مقادیر PRI را به مقادیر تسهیلات (facility) و شدت (severity) رمزگشایی می‌کند.

PRI = Facility × 8 + Severity RFC 5424 6.2.1

برای نمایش PRI و نسخه (Version)، از دستور زیر استفاده کنید:

# tcpdump -ni ens160 -s 0 -A 'udp port 514'
<205>1 2026-09-01T12:05:40.000Z 10.58.234.78 Wired Switch - e6fdba2a-2b3a-46ba-8f31-86e8fefbdd37 LINK_DOWN:10.58.238.196:If:Null0-LINK_DOWN 'Port 'Null0' (Description: 'Not available') is up on device '10.58.238.196'.'
پارامتر مقدار
اولویت (PRI) 205
نسخه 1
مهر زمانی (Stamp) 2026-09-01T12:05.000Z
آی‌پی مجازی (VIP) 10.58.234.78
برنامه (App) سوئیچ کابلی (Wired Switch)
شناسه محصول (PID) –
شناسه پیام (Message ID) e6fdba2a-2b3a-46ba-8f31-86e8fefbdd37
داده‌های ساختاریافته (Structured Data) LINK_DOWN.58.238.196:If
پیام (Message) پورت ‘Null0’ (توضیحات: ‘در دسترس نیست’) در دستگاه ‘10.58.238.196’ بالا (up) است.

6.2 نمونه‌های اعلان‌های SYSLOG سیستم

<26>1 2026-09-01T14:39:38.136Z 10.58.234.78 Device <no host> (0603b4d4-511c-475d-b908-9f2697769676)-capp-infra:DLM - b8b8703a-a908-4a4b-b2af-bd46ffd93e95 RobotNodeData[0603b4d4-511c-475d-b908-9f2697769676]-1000-1000 '[Device: 10.58.234.44] [snmp]ErrorType ConnectionError,Invalid SNMP credentials or Wrong SNMP connectivity details [ssh]Error 10.58.234.44: SSH2 authentication failure: SSH_MSG_USERAUTH_FAILURE;'
پارامتر مقدار
اولویت (PRI) 26
نسخه 1
مهر زمانی (Stamp) 2026-09-01T14:39.136Z
VIP 10.58.234.78
برنامه (App) دستگاه (Device)(0603b4d4-511c-475d-b908-9f2697769676)-capp-infra
شناسه محصول (PID) –
شناسه پیام (Message ID) b8b8703a-a908-4a4b-b2af-bd46ffd93e95
داده‌های ساختاریافته (Structured Data) RobotNodeData[0603b4d4-511c-475d-b908-9f2697769676]-1000-1000
پیام (Message) [Device: 10.58.234.44] [snmp]ErrorType ConnectionError,Invalid SNMP credentials or Wrong SNMP connectivity details [ssh]Error 10.58.234.44: SSH2 authentication failure: SSH_MSG_USERAUTH_FAILURE;

ماتریس گزینه‌های اطلاع‌رسانی (Notification Options Matrix)

RESTCONF Kafka TRAP SYSLOG
ارسال هشدارهای دستگاه ✅ ✅ ✅ ✅
ارسال هشدارهای سیستم ✅ ✅ ✅ ✅
همچنین ارسال رویدادها ❌ ❌ ✅ ✅
ارسال فقط هشدارهای دستگاه یا سیستم ❌*1 ❌*1 ✅ ✅
فیلتر بر اساس شدت هشدار دستگاه ✅ ✅ ✅ ✅
فیلتر بر اساس نام یا دسته‌بندی هشدار دستگاه ❌ ✅ ✅ ✅
فیلتر بر اساس گروه‌های دستگاه ❌*2 ✅ ✅ ✅
ارسال اعلان‌های موجودی (Inventory) ✅ ✅ ❌ ❌
ارسال اعلان‌های PM ❌ ✅ ❌ ❌
ارسال اعلان‌های حسابرسی (Audit) ❌ ✅ ✅ ✅

یک راهکار موقت (Workaround) تنها برای استریم کردن هشدارهای دستگاه (Device Alarms) در دسترس است. برای هشدارهای سیستم (System Alarms)، یک راهکار موقت جزئی تنها برای Kafka در دسترس می‌باشد.

*2 راهکار جایگزین، فیلتر کردن بر اساس دستگاه (Device) استخانواده محصول (productFamily), نوع محصول (productType)، یاشناسه یکتای دستگاه (deviceUUID).

اشتراک‌گذاری:

دیدگاه خود را بنویسید