المقدمة
يصف هذا المستند إجراء أستكشاف أخطاء التشخيص غير المكتملة.sh تنفيذ البرنامج النصي في مجموعة سياسات Cisco (CPS) وإصلاحها.
تمت المساهمة من قبل Ullas Kumar E، مهندس TAC من Cisco.
المتطلبات الأساسية
المتطلبات
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
ملاحظة: توصي Cisco بأن يكون لديك وصول جذري امتيازات واجهة سطر الأوامر (CLI) ل CPS.
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:
- CPS 21.1
- Centos 8.0
- نظام الحوسبة الموحدة (UCS)-B
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
معلومات أساسية
Diagnostics.sh هو الأمر الأساسي لاستكشاف الأخطاء وإصلاحها الذي يمكن تنفيذه في عقدة pcrfClient أو المثبت ل CPS للتحقق من الحالة الحالية للنظام.
وهو يقدم قائمة مفصلة بالبارامترات كجزء من فحص صحة CPS.
يعمل هذا البرنامج النصي مقابل نقاط الوصول والمراقبة والتكوين المختلفة لنظام CPS الجاري تشغيله.
في بيئات التوفر العالي (HA) أو التكرار الجغرافي (GR)، يقوم البرنامج النصي دائما بفحص كل الأجهزة الافتراضية (VM) قبل أي عمليات فحص أخرى ويضيف أي فشل في إختبار الاتصال إلى المتغير IGNORE_HOST. يساعد هذا على تقليل أحتمالية حدوث أخطاء في وظائف البرامج النصية.
Examples:
/var/qps/bin/diag/diagnostics.sh -q
/var/qps/bin/diag/diagnostics.sh --basic_ports --clock_skew
هذه هي التحققات البارزة التي يقوم بها هذا النص.
--basic_ports : Run basic port checks
For AIO: 80, 11211, 27017, 27749, 7070, 8080, 8090, 8182, 9091, 9092
For HA/GR: 80, 11211, 7070, 8080, 8081, 8090, 8182, 9091, 9092, and Mongo DB ports based on /etc/broadhop/mongoConfig.cfg
--clock_skew : Check clock skew between lb01 and all vms (Multi-Node Environment only)
--diskspace : Check diskspace
--get_active_alarms : Get the active alarms in the CPS
--get_frag_status : Get fragmentation status for Primary members of DBs viz. session_cache, sk_cache, diameter, spr, and balance_mgmt.
--get_replica_status : Get the status of the replica-sets present in environment. (Multi-Node Environment only)
--get_shard_health : Get the status of the sharded database information present in environment. (Multi-Node Environment only)
--get_sharding_status : Get the status of the sharding information present in environment. (Multi-Node Environment only).
--get_session_shard_health : Get the session shard health status information present in environment. (Multi-Node Environment only).
--get_peer_status : Get the diameter peer information present in environment. (Multi-Node Environment only).
--get_sharded_replica_status : Get the status of the shards present in environment. (Multi-Node Environment only)
--ha_proxy : Connect to HAProxy to check operation and performance statistics, and ports (Multi-Node Environment only)
http://lbvip01:5540/haproxy?stats
http://lbvip01:5540//haproxy-diam?stats
--help -h : Help - displays this help
--hostnames : Check hostnames are valid (no underscores, resolvable, in /etc/broadhop/servers) (AIO only)
--ignored_hosts : Ignore the comma separated list of hosts. For example --ignored_hosts='portal01,portal02'
Default is 'portal01,portal02,portallb01,portallb02' (Multi-Node Environment only)
--ping_check : Check ping status for all VM
--policy_revision_status : Check the policy revision status on all QNS,LB,UDC VMs.
--lwr_diagnostics : Retrieve diagnostics from CPS LWR kafka processes
--qns_diagnostics : Retrieve diagnostics from CPS java processes
--qns_login : Check qns user passwordless login
--quiet -q : Quiet output - display only failed diagnostics
--radius : Run radius specific checks
--redis : Run redis specific checks
--whisper : Run whisper specific checks
--aido : Run Aido specific checks
--svn : Check svn sync status between pcrfclient01 & pcrfclient02 (Multi-Node Environment only)
--tacacs : Check Tacacs server reachability
--swapspace : Check swap space
--verbose -v : Verbose output - display *all* diagnostics (by default, some are grouped for readability)
--virtual_ips : Ensure Virtual IP Addresses are operational (Multi-Node Environment only)
--vm_allocation : Ensure VM Memory and CPUs have been allocated according to recommendations
المشكلة
من المحتمل في بعض الحالات، أن يتوقف تنفيذ برامج التشخيص.sh النصية عند نقطة واحدة ولا يمكنه الانتقال إلى مرحلة أخرى أو إنهاء تنفيذ البرنامج النصي.
يمكنك تنفيذ النص التنفيذي وتلاحظ أن النص التنفيذي عالق في "التحقق من أجل"حالة "عمليات DB الذكية التلقائية (AIDO)" لا تتم المتابعة للتحقق من رقم التحويل (SVN) وإجراء المزيد.
[root@installer ~]# diagnostics.sh
CPS Diagnostics HA Multi-Node Environment
---------------------------
Ping check for all VMs...
Hosts that are not 'pingable' are added to the IGNORED_HOSTS variable...[PASS]
Checking basic ports for all VMs...[PASS]
Checking qns passwordless logins for all VMs...[PASS]
Validating hostnames...[PASS]
Checking disk space for all VMs...[PASS]
Checking swap space for all VMs...[PASS]
Checking for clock skew for all VMs...[PASS]
Retrieving diagnostics from pcrfclient01:9045...[PASS]
Retrieving diagnostics from pcrfclient02:9045...[PASS]
Checking redis server instances status on lb01...[PASS]
Checking redis server instances status on lb02...[PASS]
Checking whisper status on all VMs...[PASS]
Checking AIDO status on all VMs...[PASS]
.
.
عند التحقق من إخراج الأخبار للتشخيصات.sh، هناك خطوة للتحقق من حالة SVN، ولا يتحرك البرنامج النصي أبعد من ذلك. هو يشير إلى أن البرنامج النصي diagnostic.sh التصق عند التحقق من عامل.
[[32mPASS[0m] AIDO Pass
[[ -f /var/tmp/aido_extra_info ]]
cat /var/tmp/aido_extra_info
There is no provision to check AIDO service status of installer from this host
/bin/rm -fr /var/tmp/aido_extra_info
check_all_svn
++ is_enabled true
++ [[ '' == \t\r\u\e ]]
++ [[ true != \f\a\l\s\e ]]
++ echo true
[[ true == \t\r\u\e ]]
++ awk '{$1=""; $2=""; print}'
++ /usr/bin/ssh root@pcrfclient01 -o ConnectTimeout=2 /usr/bin/facter.
++ grep svn_slave_list
يقوم البرنامج النصي بتسجيل الدخول إلى pcrfclient01 ويتحقق من svn_slave_list من إخراج الأمر factor، والذي لم يتم تنفيذه بالكامل.
أيضا، أنت يستطيع login إلى PCRFCLEINT01 وفحصت إن المعامل يركض أمر بشكل صحيح ويعطي إنتاج ب رغب.
[root@pcrfclient01 ]# facter | grep eth
[root@installer ~]# ^C
وعند التحقق من متوسط حمل PCRFCLIENT01، يلاحظ أنه مرتفع جدا.
[root@pcrfclient01 pacemaker]# top
top - 15:34:18 up 289 days, 14:55, 1 user, load average: 2094.68, 2091.77, 2086.36
تحقق من أن العمليات المتعلقة بالواجهة عالقة وتنتج عنها متوسط حمل مرتفع.
[root@pcrfclient01 ~]# ps -ef | grep facter | wc -l
2096
الحل
إن الحل النهائي لمسح هذه العمليات العالقة وتقليل معدل التحميل هو إعادة تمهيد pcrfclient01 VM. إجراء مسح العمليات المعلقة للعامل وحل مشكلة التشخيصات المعلقة.sh التنفيذ:
الخطوة 1. قم بتسجيل الدخول إلى العقدة pcrfclient وتنفيذ الأمر reboot.
[root@pcrfclient01 ~]# init 6
الخطوة 2. تحقق من أن الجهاز الظاهري VM PCRFilitn01 جاهز وثابت.
[root@pcrfclient01 ~]# uptime
10:07:15 up 1 min, 4:09, 1 user, load average: 0.33, 0.33, 0.36
[root@pcrfclient01 ~]#
الخطوة 3. تحقق من أن متوسط حمل العمل pcrfclient01 عادي.
[root@instapcrfclient01ller ~]# top
top - 10:07:55 up 1 min, 4:10, 1 user, load average: 0.24, 0.31, 0.35
الخطوة 4. قم بتشغيل التشخيصات.sh وتحقق من انتهاء تنفيذ البرنامج النصي.
[root@instapcrfclient01ller ~]# diagnostics.sh