المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

المكونات المستخدمة

التكوين

الرسم التخطيطي للشبكة

التكوينات

الخطوة 1. إعداد قاعدة البيانات

الخطوة 2. تحضير Telgraf

الخطوة 3. تحديد اشتراك تتبع الاستخدام الذي يحتوي على القياس المطلوب

الخطوة 4. تمكين NETconf على وحدة التحكم

الخطوة 5. تكوين اشتراك تتبع الاستخدام على وحدة التحكم

الخطوة 6. تكوين مصدر بيانات Grafana

الخطوة 7. إنشاء لوحة معلومات

الخطوة 8. إضافة مرئيات إلى لوحة المعلومات

التحقق من الصحة

WLC جار تشكيل

تكوين Telgraf

تكوين FlowDB

تشكيل غرافانا

استكشاف الأخطاء وإصلاحها

رد الفعل WLC One Stop-Shop

تأكيد إمكانية الوصول إلى الشبكة

التسجيل والتصحيح

التأكد من أن القياسات تصل إلى مكدس الترتيب

من واجهة سطر الأوامر InfluxDB

من موقع تلجراف

المراجع

المقدمة

يوضح هذا المستند كيفية نشر مكدس Telgraf و FlowDB و Grafana (TIG) وربطه مع المحول Catalyst 9800.

المتطلبات الأساسية

يوضح هذا المستند قدرات الواجهات البرامجية ل Catalyst 9800 من خلال عملية تكامل معقدة. يهدف هذا المستند إلى توضيح كيف يمكن تخصيص هذه المكونات بالكامل استنادا إلى أي حاجة إليها وتقديمها كمدخرين للوقت اليومي. يعتمد النشر الذي يتم عرضه هنا على gRPC ويقدم تكوين بيانات تتبع الاستخدام لجعل البيانات اللاسلكية من المادة حفازة 9800 متوفرة في أي حزمة ملاحظات من Telgraf و FlowDB و Grafana (TIG).

المتطلبات

توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:

- نموذج تكوين Catalyst Wireless 9800.

- قابلية الشبكات للبرمجة ونماذج البيانات.

- أساسيات حزمة TIG.

المكونات المستخدمة

تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:

- مادة حفازة 9800-CL (v. 17.12.03).

- أوبونتو (مقابل 22.04.03).

- FlowDB (الإصدار 1.06.07).

- Telgraf (v. 1.21.04).

- غرافانا (مقابل 10-02-01).

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.

التكوين

الرسم التخطيطي للشبكة

التكوينات

في هذا المثال، يتم تكوين القياس عن بعد على قائمة تحكم في الوصول إلى النقل (9800-CL) باستخدام اتصال GRPC لدفع المعلومات على تطبيق TeleGraf الذي يخزنها في قاعدة بيانات FlowDB. هنا، تم إستخدام جهازين،

- خادم Ubuntu يستضيف مكدس TIG بأكمله.

- مادة حفازة 9800-CL.

لا يركز دليل التكوين هذا على نشر هذه الأجهزة بالكامل بل على التكوينات المطلوبة على كل تطبيق لإرسال معلومات 9800 واستقبالها وتقديمها بشكل صحيح.

الخطوة 1. إعداد قاعدة البيانات

قبل الانتقال إلى جزء التكوين، تأكد من تشغيل مثيل "التدفق" بشكل صحيح. يمكن القيام بذلك بسهولة باستخدام systemctl status الأمر، إذا كنت تستخدم برنامج لينوكس.

admin@tig:~$ systemctl status influxd ● influxdb.service - InfluxDB is an open-source, distributed, time series database Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2023-06-14 13:06:18 UTC; 2 weeks 5 days ago Docs: https://docs.influxdata.com/influxdb/ Main PID: 733 (influxd) Tasks: 15 (limit: 19180) Memory: 4.2G CPU: 1h 28min 47.366s CGroup: /system.slice/influxdb.service └─733 /usr/bin/influxd -config /etc/influxdb/influxdb.conf

على سبيل المثال، لعمل هذا المثال، يحتاج Telgraf إلى قاعدة بيانات لتخزين القياسات وكذلك مستخدم للاتصال بهذه القاعدة. يمكن إنشاء هذه بسهولة من واجهة سطر الأوامر (CLI) الخاصة ب FlowDB، باستخدام الأوامر التالية:

admin@tig:~$ influx Connected to http://localhost:8086 version 1.8.10 InfluxDB shell version: 1.8.10 > create database TELEGRAF > create user telegraf with password 'YOUR_PASSWORD'

قاعدة البيانات التي تم إنشاؤها الآن، يمكن تكوين TeleGraf لتخزين المقاييس فيها بشكل صحيح.

الخطوة 2. تحضير Telgraf

يوجد تكوينان فقط من Telgraf مثيران للاهتمام لهذا المثال لعمله. يمكن عمل هذا (كما هو معتاد للتطبيقات التي تعمل على Unix) من ملف /etc/telegraf/telegraf.conf التكوين.

الاول يعلن المخرج مستخدم تلجراف. وكما ذكرنا سابقا، يتم إستخدام FlowDB هنا ويتم تكوينها في قسم الإخراج في telegraf.conf الملف كما يلي:

############################################################################### # OUTPUT PLUGINS # ############################################################################### # Output Plugin InfluxDB [[outputs.influxdb]] ## The full HTTP or UDP URL for your InfluxDB instance. # ## # ## Multiple URLs can be specified for a single cluster, only ONE of the # ## urls will be written to each interval. urls = [ "http://127.0.0.1:8086" ] # ## The target database for metrics; will be created as needed. # ## For UDP url endpoint database needs to be configured on server side. database = "TELEGRAF" # ## HTTP Basic Auth username = "telegraf" password = "YOUR_PASSWORD"

يرشد هذا الأمر عملية Telgraf لتخزين البيانات التي تتلقاها في FlowDB التي تعمل على المضيف نفسه على المنفذ 8086 ولاستخدام قاعدة البيانات التي تسمى "Telgraf" (بالإضافة إلى بيانات الاعتماد telegraf/YOUR_PASSWORD للوصول إليها).

إذا كان أول ما تم إعلانه هو تنسيق المخرجات، الثاني هو، بطبيعة الحال، المدخل الأول. لإعلام Telgraf بأن البيانات التي تتلقاها تأتي من جهاز Cisco باستخدام القياس عن بعد، يمكنك إستخدام الوحدة النمطية للإدخال Cisco_Telemetry_mdt". لتكوين هذا، تحتاج فقط إلى إضافة الأسطر التالية في /etc/telegraf/telegraf.conf الملف:

############################################################################### # INPUT PLUGINS # ############################################################################### # # Cisco model-driven telemetry (MDT) input plugin for IOS XR, IOS XE and NX-OS platforms [[inputs.cisco_telemetry_mdt]] # ## Telemetry transport can be "tcp" or "grpc". TLS is only supported when # ## using the grpc transport. transport = "grpc" # # ## Address and port to host telemetry listener service_address = ":57000" # ## Define aliases to map telemetry encoding paths to simple measurement names [inputs.cisco_telemetry_mdt.aliases] ifstats = "ietf-interfaces:interfaces-state/interface/statistics"

وهذا يجعل تطبيق TeleGraf الذي يعمل على المضيف (على المنفذ الافتراضي 57000) قادرا على فك ترميز البيانات المستلمة الواردة من عنصر التحكم في الشبكة المحلية اللاسلكية (WLC).

بمجرد حفظ التكوين، تأكد من إعادة تشغيل Telgraf لتطبيقه على الخدمة. تأكد أيضا من إعادة تشغيل الخدمة بشكل صحيح:

admin@tig:~$ sudo systemctl restart telegraf admin@tig:~$ systemctl status telegraf.service ● telegraf.service - Telegraf Loaded: loaded (/lib/systemd/system/telegraf.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2023-07-03 17:12:49 UTC; 2min 18s ago Docs: https://github.com/influxdata/telegraf Main PID: 110182 (telegraf) Tasks: 10 (limit: 19180) Memory: 47.6M CPU: 614ms CGroup: /system.slice/telegraf.service └─110182 /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d

الخطوة 3. تحديد اشتراك تتبع الاستخدام الذي يحتوي على القياس المطلوب

وكما ذكرنا، يتم تنظيم القياسات على أجهزة Cisco كما على العديد من الأجهزة الأخرى وفقا لنموذج YANG. يمكن العثور على طرازات Cisco YANG المحددة لكل إصدار من IOS XE (المستخدم على 9800) هنا، وخاصة طراز IOS XE Dublin 17.12.03 المستخدم في هذا المثال.

في هذا المثال، نركز على تجميع مقاييس إستخدام وحدة المعالجة المركزية (CPU) من مثيل 9800-CL المستخدم. من خلال فحص نموذج YANG ل Cisco IOS XE Dublin 17.12.03، يمكن للمرء تحديد الوحدة النمطية التي تحتوي على إستخدام وحدة المعالجة المركزية (CPU) لوحدة التحكم، وخاصة للثوان الخمس الأخيرة. وهذه أجزاء من وحدة المعالجة المركزية (CPU) من Cisco-IOS-XE-process-cpu-oper، تحت تجميع إستخدام وحدة المعالجة المركزية (صفحة خمس ثوان).

الخطوة 4. تمكين NETconf على وحدة التحكم

يعتمد إطار عمل طلب اتصال GRPC على NETCONF للعمل بنفس الطريقة. لذلك، هذا سمة ينبغي كنت مكنت على ال 9800 وهذا تحقق ب يركض هذا أمر:

WLC(config)#netconf ssh WLC(config)#netconf-yang

الخطوة 5. تكوين اشتراك تتبع الاستخدام على وحدة التحكم

بمجرد ظهور XPaths (a.k.a، XML Paths Language) للمقاييس المحددة من طراز YANG، يمكن تكوين اشتراك في القياس عن بعد بسهولة من واجهة سطر الأوامر (CLI) طراز 9800 لبدء دفقها إلى مثيل TeleGraf المكون في الخطوة 2. ويتم القيام بذلك من خلال تنفيذ هذه الأوامر:

WLC(config)#telemetry ietf subscription 101 WLC(config-mdt-subs)#encoding encode-kvgpb WLC(config-mdt-subs)#filter xpath /process-cpu-ios-xe-oper:cpu-usage/cpu-utilization/five-seconds WLC(config-mdt-subs)#source-address 10.48.39.130 WLC(config-mdt-subs)#stream yang-push WLC(config-mdt-subs)#update-policy periodic 100 WLC(config-mdt-subs)#receiver ip address 10.48.39.98 57000 protocol grpc-tcp

في كتلة الرمز هذه، يتم أولا تحديد اشتراك بيانات تتبع الاستخدام بالمعرف 101. يمكن أن يكون معرف الاشتراك أي رقم بين <0-2147483647> طالما أنه لا يتداخل مع اشتراك آخر. تم تكوين هذا الاشتراك، بهذا الترتيب:

- طريقة الترميز المستخدمة، والتي يجب أن تكون kvGPB عند العمل باستخدام بروتوكول نقل gRPC.

- عامل التصفية الخاص بالقياسات المرسلة بواسطة الاشتراك، نظرا لأنه يقوم بتحديد XPath للمقياس الذي يثير اهتمامنا (لمعرفة، /process-cpu-ios-xe-oper:cpu-usage/cpu-utilization/five-seconds).

- عنوان IP المصدر المستخدم من قبل وحدة التحكم لإرسال المقاييس.

- نوع الدفق المستخدم في توصيل المقاييس، وفي هذه الحالة Yang Push IETF القياسي.

- التردد الذي تستخدمه وحدة التحكم لإرسال البيانات إلى المشترك في 100 جزء من الثانية. في هذه الحالة، تم تكوينه لإرسال التحديث بشكل دوري كل ثانية.

- عنوان IP الخاص بالمستقبل ورقم المنفذ بالإضافة إلى البروتوكول المستخدم للاتصال بين وحدة التحكم والمشترك. في هذا المثال، يتم إستخدام gRPC-TCPs لإرسال القياس إلى المضيف 10.48.39.98 على المنفذ 57000.

الخطوة 6. تكوين مصدر بيانات Grafana

والآن بعد أن بدأت وحدة التحكم في إرسال البيانات إلى شركة Telgraf وتخزينها في قاعدة بيانات تدفق TelgrafDB، فقد حان الوقت لتكوين Grafana للسماح لها باستعراض هذه المقاييس.

من واجهة المستخدم الرسومية الخاصة بك، انتقل إلى المنزل > الاتصالات > توصيل البيانات واستخدم شريط البحث للعثور على مصدر بيانات تدفق البيانات.

حدد نوع مصدر البيانات هذا واستخدم الزر "إنشاء مصدر بيانات تدفق البيانات" لتوصيل Grafana وقاعدة بيانات TELEGRAPH التي تم إنشاؤها في الخطوة 1.

تعبئة النموذج الذي يظهر على الشاشة، قم بتوفير:

- اسم لمصدر البيانات.

- عنوان URL لمثيل InfluxDB المستخدم.

- اسم قاعدة البيانات المستخدم (في هذا المثال، "Telgraf").

- تم تعريف بيانات اعتماد المستخدم للوصول إليها (في هذا المثال، telegraf/YOUR_PASSWORD).

الخطوة 7. إنشاء لوحة معلومات

يتم تنظيم مرئيات Grafana في لوحات المعلومات. لإنشاء لوحة معلومات تحتوي على المرئيات Catalyst 9800 Metrics Visual، انتقل إلى الصفحة الرئيسية > لوحات المعلومات واستخدم زر "لوحة معلومات جديدة"

يؤدي ذلك إلى فتح لوحة المعلومات الجديدة التي تم إنشاؤها. انقر فوق رموز التروس للوصول إلى معلمة لوحة المعلومات وتغيير اسمها. في المثال، يتم إستخدام "بيانات تتبع إستخدام Catalyst 9800". بمجرد تنفيذ ذلك، أستخدم الزر "حفظ لوحة المعلومات" لحفظ لوحة المعلومات.

الخطوة 8. إضافة مرئيات إلى لوحة المعلومات

الآن، بعد إرسال البيانات واستقبالها وتخزينها بشكل صحيح وأن غرافانا لديها إمكانية الوصول إلى موقع التخزين هذا، حان الوقت لإنشاء تصور لها.

من أي لوحة معلومات Grafana الخاصة بك، أستخدم الزر "إضافة" وحدد "عرض" من القائمة التي تظهر لإنشاء عرض لمقايسك.

هذا يفتح لوحة التحرير من ال يخلق مرئيات:

من هذه اللوحة، حدد

- اسم مصدر البيانات الذي قمت بإنشائه في الخطوة 6، Telgraf في هذا المثال.

- القياس (المخطط) الذي يحتوي على البيانات التي تريد تصورها، "Cisco-IOS-XE-process-cpu-oper:إستخدام وحدة المعالجة المركزية/إستخدام وحدة المعالجة المركزية" في هذا المثال.

- الحقل من قاعدة البيانات الذي يمثل المقاييس التي تريد تصورها، "5_seconds" في هذا المثال.

- عنوان المرئيات، "إستخدام وحدة المعالجة المركزية (CPU) 9800-CL" في هذا المثال.

بمجرد ضغط زر "حفظ/تطبيق" من الشكل السابق، فإن المرئيات التي تظهر إستخدام وحدة المعالجة المركزية الخاصة بوحدة التحكم Catalyst 9800 عبر الوقت يتم إضافتها إلى لوحة المعلومات. يمكن حفظ التغييرات التي تم إجراؤها على لوحة المعلومات باستخدام زر أيقونة القرص المرن.

التحقق من الصحة

WLC جار تشكيل

Building configuration... Current configuration : 112215 bytes ! ! Last configuration change at 14:28:36 UTC Thu May 23 2024 by admin ! NVRAM config last updated at 14:28:23 UTC Thu May 23 2024 by admin ! version 17.12 [...] aaa new-model ! ! aaa authentication login default local aaa authentication login local-auth local aaa authentication dot1x default group radius aaa authorization exec default local aaa authorization network default group radius [...] vlan internal allocation policy ascending ! vlan 39 ! vlan 1413 name VLAN_1413 ! ! interface GigabitEthernet1 switchport access vlan 1413 negotiation auto no mop enabled no mop sysid ! interface GigabitEthernet2 switchport trunk allowed vlan 39,1413 switchport mode trunk negotiation auto no mop enabled no mop sysid ! interface Vlan1 no ip address no ip proxy-arp no mop enabled no mop sysid ! interface Vlan39 ip address 10.48.39.130 255.255.255.0 no ip proxy-arp no mop enabled no mop sysid [...] telemetry ietf subscription 101 encoding encode-kvgpb filter xpath /process-cpu-ios-xe-oper:cpu-usage/cpu-utilization source-address 10.48.39.130 stream yang-push update-policy periodic 1000 receiver ip address 10.48.39.98 57000 protocol grpc-tcp [...] netconf-yang

تكوين Telgraf

# Configuration for telegraf agent [agent] metric_buffer_limit = 10000 collection_jitter = "0s" debug = true quiet = false flush_jitter = "0s" hostname = "" omit_hostname = false ############################################################################### # OUTPUT PLUGINS # ############################################################################### # Configuration for sending metrics to InfluxDB [[outputs.influxdb]] urls = ["http://127.0.0.1:8086"] database = "TELEGRAF" username = "telegraf" password = "Wireless123#" ############################################################################### # INPUT PLUGINS # ############################################################################### ############################################################################### # SERVICE INPUT PLUGINS # ############################################################################### # # Cisco model-driven telemetry (MDT) input plugin for IOS XR, IOS XE and NX-OS platforms [[inputs.cisco_telemetry_mdt]] transport = "grpc" service_address = "10.48.39.98:57000" [inputs.cisco_telemetry_mdt.aliases] ifstats = "ietf-interfaces:interfaces-state/interface/statistics"

تكوين FlowDB

### Welcome to the InfluxDB configuration file. reporting-enabled = false [meta] dir = "/var/lib/influxdb/meta" [data] dir = "/var/lib/influxdb/data" wal-dir = "/var/lib/influxdb/wal" [retention] enabled = true check-interval = "30m"

تشكيل غرافانا

#################################### Server #################################### [server] http_addr = 10.48.39.98 domain = 10.48.39.98

استكشاف الأخطاء وإصلاحها

رد الفعل WLC One Stop-Shop

من جانب عنصر التحكم في الشبكة المحلية اللاسلكية (WLC)، فإن أول شيء للتحقق من ذلك هو أن العمليات المتعلقة بالواجهات البرامجية قيد التشغيل.

#show platform software yang-management process confd : Running nesd : Running syncfd : Running ncsshd : Running <-- NETCONF / gRPC Dial-Out dmiauthd : Running <-- For all of them, Device Managment Interface needs to be up. nginx : Running <-- RESTCONF ndbmand : Running pubd : Running gnmib : Running <-- gNMI

بالنسبة ل NETconf (المستخدم بواسطة اتصال gRPC خارجي)، يمكن أن يساعد هذا الأمر أيضا في التحقق من حالة العملية.

WLC#show netconf-yang status netconf-yang: enabled netconf-yang candidate-datastore: disabled netconf-yang side-effect-sync: enabled netconf-yang ssh port: 830 netconf-yang turbocli: disabled netconf-yang ssh hostkey algorithms: rsa-sha2-256,rsa-sha2-512,ssh-rsa netconf-yang ssh encryption algorithms: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,aes256-cbc netconf-yang ssh MAC algorithms: hmac-sha2-256,hmac-sha2-512,hmac-sha1 netconf-yang ssh KEX algorithms: diffie-hellman-group14-sha1,diffie-hellman-group14-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group16-sha512

بمجرد التحقق من حالة العملية، يوجد تحقق آخر مهم وهو حالة اتصال القياس عن بعد بين Catalyst 9800 ومستلم Telgraf. ويمكن عرضه باستخدام الأمر "show telemetry connection all".

WLC#show telemetry connection all Telemetry connections Index Peer Address Port VRF Source Address State State Description ----- -------------------------- ----- --- -------------------------- ---------- -------------------- 28851 10.48.39.98 57000 0 10.48.39.130 Active Connection up

إذا كان اتصال بيانات تتبع الاستخدام قيد التشغيل بين عنصر التحكم في الشبكة المحلية اللاسلكية (WLC) وجهاز الاستقبال، فيمكن أيضا التأكد من أن الاشتراكات التي تم تكوينها صحيحة باستخدام show telemetry ietf subscription all brief الأمر.

WLC#show telemetry ietf subscription all brief ID Type State State Description 101 Configured Valid Subscription validated

يوفر الإصدار المفصل من هذا الأمر، show telemetry ietf subscription all detailمزيد من المعلومات حول الاشتراكات ويمكن أن يساعد في الإشارة إلى مشكلة من التكوين الخاص به.

WLC#show telemetry ietf subscription all detail Telemetry subscription detail: Subscription ID: 101 Type: Configured State: Valid Stream: yang-push Filter: Filter type: xpath XPath: /process-cpu-ios-xe-oper:cpu-usage/cpu-utilization Update policy: Update Trigger: periodic Period: 1000 Encoding: encode-kvgpb Source VRF: Source Address: 10.48.39.130 Notes: Subscription validated Named Receivers: Name Last State Change State Explanation ------------------------------------------------------------------------------------------------------------------------------------------------------- grpc-tcp://10.48.39.98:57000 05/23/24 08:00:25 Connected

تأكيد إمكانية الوصول إلى الشبكة

تقوم وحدة التحكم Catalyst 9800 بإرسال بيانات gRPC إلى منفذ جهاز الاستقبال الذي تم تكوينه لكل اشتراك في بيانات تتبع الاستخدام.

WLC#show run | include receiver ip address receiver ip address 10.48.39.98 57000 protocol grpc-tcp

للتحقق من اتصال الشبكة بين عنصر التحكم في الشبكة المحلية اللاسلكية (WLC) وجهاز الاستقبال على هذا المنفذ الذي تم تكوينه، تتوفر العديد من الأدوات.

من عنصر التحكم في الشبكة المحلية اللاسلكية (WLC)، يمكن إستخدام برنامج Telnet على جهاز الاستقبال الذي تم تكوينه IP/port (هنا 10.48.39.98:57000) للتحقق من أن هذا الجهاز مفتوح ويمكن الوصول إليه من وحدة التحكم نفسها. إن لا يكون حركة مرور يكون يمنع، ميناء ينبغي ظهرت كمفتوح في الإنتاج:

WLC#telnet 10.48.39.98 57000 Trying 10.48.39.98, 57000 ... Open <-------

بدلا من ذلك، يمكن للمرء إستخدام NMAP من أي مضيف لضمان أن المستقبل تعرض بشكل صحيح على المنفذ الذي تم تكوينه.

$ sudo nmap -sU -p 57000 10.48.39.98 Starting Nmap 7.95 ( https://nmap.org ) at 2024-05-17 13:12 CEST Nmap scan report for air-1852e-i-1.cisco.com (10.48.39.98) Host is up (0.020s latency). PORT STATE SERVICE 57000/udp open|filtered unknown Nmap done: 1 IP address (1 host up) scanned in 0.35 seconds

التسجيل والتصحيح

2024/05/23 14:40:36.566486156 {pubd_R0-0}{2}: [mdt-ctrl] [30214]: (note): **** Event Entry: Configured legacy receiver creation/modification of subscription 101 receiver 'grpc-tcp://10.48.39.98:57000' 2024/05/23 14:40:36.566598609 {pubd_R0-0}{2}: [mdt-ctrl] [30214]: (note): Use count for named receiver 'grpc-tcp://10.48.39.98:57000' set to 46. 2024/05/23 14:40:36.566600301 {pubd_R0-0}{2}: [mdt-ctrl] [30214]: (note): {subscription receiver event='configuration created'} received for subscription 101 receiver 'grpc-tcp://10.48.39.98:57000' [...] 2024/05/23 14:40:36.572402901 {pubd_R0-0}{2}: [pubd] [30214]: (info): Collated data collector filters for subscription 101. 2024/05/23 14:40:36.572405081 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Creating periodic sensor for subscription 101. 2024/05/23 14:40:36.572670046 {pubd_R0-0}{2}: [pubd] [30214]: (info): Creating data collector type 'ei_do periodic' for subscription 101 using filter '/process-cpu-ios-xe-oper:cpu-usage/cpu-utilization'. 2024/05/23 14:40:36.572670761 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Creating crimson data collector for filter '/process-cpu-ios-xe-oper:cpu-usage/cpu-utilization' (1 subfilters) with cap 0x0001. 2024/05/23 14:40:36.572671763 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Need new data collector instance 0 for subfilter '/process-cpu-ios-xe-oper:cpu-usage/cpu-utilization'. 2024/05/23 14:40:36.572675434 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Creating CRIMSON periodic data collector for filter '/process-cpu-ios-xe-oper:cpu-usage/cpu-utilization'. 2024/05/23 14:40:36.572688399 {pubd_R0-0}{2}: [pubd] [30214]: (debug): tree rooted at cpu-usage 2024/05/23 14:40:36.572715384 {pubd_R0-0}{2}: [pubd] [30214]: (debug): last container/list node 0 2024/05/23 14:40:36.572740734 {pubd_R0-0}{2}: [pubd] [30214]: (debug): 1 non leaf children to render from cpu-usage down 2024/05/23 14:40:36.573135594 {pubd_R0-0}{2}: [pubd] [30214]: (debug): URI:/cpu_usage;singleton_id=0 SINGLETON 2024/05/23 14:40:36.573147953 {pubd_R0-0}{2}: [pubd] [30214]: (debug): 0 non leaf children to render from cpu-utilization down 2024/05/23 14:40:36.573159482 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Timer created for subscription 101, sensor 0x62551136f0e8 2024/05/23 14:40:36.573166451 {pubd_R0-0}{2}: [mdt-ctrl] [30214]: (note): {subscription receiver event='receiver connected'} received with peer (10.48.39.98:57000) for subscription 101 receiver 'grpc-tcp://10.48.39.98:57000' 2024/05/23 14:40:36.573197750 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Starting batch from periodic collector 'ei_do periodic'. 2024/05/23 14:40:36.573198408 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Building from the template 2024/05/23 14:40:36.575467870 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Created dbal batch:133, for crimson subscription 2024/05/23 14:40:36.575470867 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Done building from the template 2024/05/23 14:40:36.575481078 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Executing batch:133 for periodic subscription 2024/05/23 14:40:36.575539723 {pubd_R0-0}{2}: [mdt-ctrl] [30214]: (note): {subscription id=101 receiver name='grpc-tcp://10.48.39.98:57000', state='connecting'} handling 'receiver connected' event with result 'e_mdt_rc_ok' 2024/05/23 14:40:36.575558274 {pubd_R0-0}{2}: [mdt-ctrl] [30214]: (note): {subscription receiver event='receiver connected'} subscription 101 receiver 'grpc-tcp://10.48.39.98:57000' changed 2024/05/23 14:40:36.577274757 {ndbmand_R0-0}{2}: [ndbmand] [30690]: (info): get__next_table reached the end of table for /services;serviceName=ewlc_oper/capwap_data@23 2024/05/23 14:40:36.577279206 {ndbmand_R0-0}{2}: [ndbmand] [30690]: (debug): Cleanup table for /services;serviceName=ewlc_oper/capwap_data cursor=0x57672da538b0 2024/05/23 14:40:36.577314397 {ndbmand_R0-0}{2}: [ndbmand] [30690]: (info): get__next_object cp=ewlc-oper-db exit return CONFD_OK 2024/05/23 14:40:36.577326609 {ndbmand_R0-0}{2}: [ndbmand] [30690]: (debug): yield ewlc-oper-db 2024/05/23 14:40:36.579099782 {iosrp_R0-0}{1}: [parser_cmd] [26295]: (note): id= A.B.C.D@vty0:user= cmd: 'receiver ip address 10.48.39.98 57000 protocol grpc-tcp' SUCCESS 2024/05/23 14:40:36.578 UTC 2024/05/23 14:40:36.580979429 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Batch response received for crimson sensor, batch:133 2024/05/23 14:40:36.580988867 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Green response: Result rc 0, Length: 360, num_records 1 2024/05/23 14:40:36.581175013 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Green Resp cursor len 63 2024/05/23 14:40:36.581176173 {pubd_R0-0}{2}: [pubd] [30214]: (debug): There is no more data left to be retrieved from batch 133. 2024/05/23 14:40:36.581504331 {iosrp_R0-0}{2}: [parser_cmd] [24367]: (note): id= 10.227.65.133@vty1:user=admin cmd: 'receiver ip address 10.48.39.98 57000 protocol grpc-tcp' SUCCESS 2024/05/23 14:40:36.553 UTC [...] 2024/05/23 14:40:37.173223406 {pubd_R0-0}{2}: [pubd] [30214]: (info): Added queue (wq: tc_inst 60293411, 101) to be monitored (mqid: 470) 2024/05/23 14:40:37.173226005 {pubd_R0-0}{2}: [pubd] [30214]: (debug): New subscription (subscription 101) monitoring object stored at id 19 2024/05/23 14:40:37.173226315 {pubd_R0-0}{2}: [pubd] [30214]: (note): Added subscription for monitoring (subscription 101, msid 19) 2024/05/23 14:40:37.173230769 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Stats updated for Q (wq: tc_inst 60293411, 101), total_enqueue: 1 2024/05/23 14:40:37.173235969 {pubd_R0-0}{2}: [pubd] [30214]: (debug): (grpc::events) Processing event Q 2024/05/23 14:40:37.173241290 {pubd_R0-0}{2}: [pubd] [30214]: (debug): GRPC telemetry connector update data for subscription 101, period 1 (first: true) 2024/05/23 14:40:37.173257944 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Encoding path is Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization 2024/05/23 14:40:37.173289128 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Creating kvgpb encoder 2024/05/23 14:40:37.173307771 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Creating combined parser 2024/05/23 14:40:37.173310050 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Beginning MDT yang container walk for record 0 2024/05/23 14:40:37.173329761 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Dispatching new container [data_node: name=Cisco-IOS-XE-process-cpu-oper:cpu-usage, type=container, parent=n/a, key=false] 2024/05/23 14:40:37.173334681 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Container 'Cisco-IOS-XE-process-cpu-oper:cpu-usage' started successfully 2024/05/23 14:40:37.173340313 {pubd_R0-0}{2}: [pubd] [30214]: (debug): add data in progress 2024/05/23 14:40:37.173343079 {pubd_R0-0}{2}: [pubd] [30214]: (debug): GRPC telemetry connector continue data for subscription 101, period 1 (first: true) 2024/05/23 14:40:37.173345689 {pubd_R0-0}{2}: [pubd] [30214]: (debug): (grpc::events) Processing event Q 2024/05/23 14:40:37.173350431 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Dispatching new container [data_node: name=cpu-utilization, type=container, parent=Cisco-IOS-XE-process-cpu-oper:cpu-usage, key=false] 2024/05/23 14:40:37.173353194 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Deferred container cpu-utilization 2024/05/23 14:40:37.173355275 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Container 'cpu-utilization' started successfully 2024/05/23 14:40:37.173380121 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Dispatching new leaf [name=five-seconds, value=3, parent=cpu-utilization, key=false] 2024/05/23 14:40:37.173390655 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Leaf 'five-seconds' added successfully 2024/05/23 14:40:37.173393529 {pubd_R0-0}{2}: [pubd] [30214]: (debug): add data in progress 2024/05/23 14:40:37.173395693 {pubd_R0-0}{2}: [pubd] [30214]: (debug): GRPC telemetry connector continue data for subscription 101, period 1 (first: true) 2024/05/23 14:40:37.173397974 {pubd_R0-0}{2}: [pubd] [30214]: (debug): (grpc::events) Processing event Q 2024/05/23 14:40:37.173406311 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Dispatching new leaf [name=five-seconds-intr, value=0, parent=cpu-utilization, key=false] 2024/05/23 14:40:37.173408937 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Leaf 'five-seconds-intr' added successfully 2024/05/23 14:40:37.173411575 {pubd_R0-0}{2}: [pubd] [30214]: (debug): add data in progress [...]

التأكد من أن القياسات تصل إلى مكدس الترتيب

من واجهة سطر الأوامر InfluxDB

مثل أي نظام قاعدة بيانات آخر، يأتي FlowDB مع واجهة سطر الأوامر (CLI) التي يمكن إستخدامها للتحقق من تلقي المقاييس بشكل صحيح بواسطة Telgraf وتخزينها في قاعدة البيانات المعرفة. وتنظم قاعدة بيانات التدفق مقاييس، تسمى نقاط، إلى قياسات منظمة بدورها كسلسلة. يمكن إستخدام بعض الأوامر الأساسية المقدمة هنا للتحقق من نظام البيانات على جانب FlowDB والتأكد من وصول البيانات إلى هذا التطبيق.

أولا، يمكنك التحقق من أن السلسلة، القياسات وبنيتها (المفاتيح) تم توليدها بشكل صحيح. يتم إنشاء هذه تلقائيا بواسطة Telgraf و FlowDB استنادا إلى بنية RPC المستخدمة.

ملاحظة: بالطبع، هذا الهيكل قابل للتخصيص بالكامل من تكوينات Telgraf و FlowDB. ومع ذلك، يتم ذلك خلف نطاق دليل التكوين هذا.

$ influx Connected to http://localhost:8086 version 1.6.7~rc0 InfluxDB shell version: 1.6.7~rc0 > USE TELEGRAF Using database TELEGRAF > SHOW SERIES key --- Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization,host=ubuntu-virtual-machine,path=Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization,source=WLC,subscription=101 > SHOW MEASUREMENTS name: measurements name ---- Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization > SHOW FIELD KEYS FROM "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization" name: Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization fieldKey fieldType -------- --------- cpu_usage_processes/cpu_usage_process/avg_run_time integer cpu_usage_processes/cpu_usage_process/five_minutes float cpu_usage_processes/cpu_usage_process/five_seconds float cpu_usage_processes/cpu_usage_process/invocation_count integer cpu_usage_processes/cpu_usage_process/name string cpu_usage_processes/cpu_usage_process/one_minute float cpu_usage_processes/cpu_usage_process/pid integer cpu_usage_processes/cpu_usage_process/total_run_time integer cpu_usage_processes/cpu_usage_process/tty integer five_minutes integer five_seconds integer five_seconds_intr integer one_minute integer

بمجرد توضيح بنية البيانات (عدد صحيح أو سلسلة أو قيمة منطقية، ...)، يمكن للمرء الحصول على عدد نقاط البيانات التي يتم تخزينها على هذه القياسات المستندة إلى حقل معين.

# Get the number of points from "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization" for the field "five_seconds". > SELECT COUNT(five_seconds) FROM "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization" name: Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization time count ---- ----- 0 1170 > SELECT COUNT(five_seconds) FROM "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization" name: Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization time count ---- ----- 0 1171 # Fix timestamp display > precision rfc3339 # Get the last point stored in "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization" for the field "five_seconds". > SELECT LAST(five_seconds) FROM "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization" name: Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization time last ---- ---- 2024-05-23T13:18:53.51Z 0 > SELECT LAST(five_seconds) FROM "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization" name: Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization time last ---- ---- 2024-05-23T13:19:03.589Z 2

إذا زاد عدد النقاط لحقل معين وطابع الوقت لآخر تكرار، فمن الجيد أن يستلم مكدس TIG ويخزن بشكل صحيح البيانات المرسلة من خلال عنصر التحكم في الشبكة المحلية اللاسلكية (WLC).

من موقع تلجراف

للتحقق من أن مستقبل Telgraf يحصل على بعض المقاييس من وحدة التحكم ويتحقق من تنسيقها، يمكنك إعادة توجيه مقاييس Telgraf إلى ملف مخرجات على المضيف. يمكن أن يكون هذا مفيدا للغاية عندما يتعلق الأمر باستكشاف أخطاء الاتصال البيني بالأجهزة وإصلاحها. لتحقيق ذلك، ما عليك سوى الاستفادة من المكون الإضافي للإخراج "file" من Telgraf، القابل للتكوين من /etc/telegraf/telegraf.conf.

# Send telegraf metrics to file(s) [[outputs.file]] # ## Files to write to, "stdout" is a specially handled file. files = ["stdout", "/tmp/metrics.out", "other/path/to/the/file"] # # ## Use batch serialization format instead of line based delimiting. The # ## batch format allows for the production of non line based output formats and # ## may more efficiently encode metric groups. # # use_batch_format = false # # ## The file will be rotated after the time interval specified. When set # ## to 0 no time based rotation is performed. # # rotation_interval = "0d" # # ## The logfile will be rotated when it becomes larger than the specified # ## size. When set to 0 no size based rotation is performed. # # rotation_max_size = "0MB" # # ## Maximum number of rotated archives to keep, any older logs are deleted. # ## If set to -1, no archives are removed. # # rotation_max_archives = 5 # # ## Data format to output. # ## Each data format has its own unique set of configuration options, read # ## more about them here: # ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md data_format = "influx"

المراجع

إرشادات تحديد حجم الأجهزة

متطلبات غرافانا