إيقاف مركز بيانات

قد تحتاج أحيانًا إلى إيقاف مركز بيانات. على سبيل المثال، في حال ترقية نظام التشغيل، عليك تثبيت نظام التشغيل الجديد في مركز بيانات جديد ثم إيقاف مركز البيانات القديم. تقدّم الأقسام التالية مثالاً على إيقاف مركز بيانات نهائيًا، والذي يحتوي على مركزَي بيانات، هما dc-1 وdc-2، في عملية تثبيت متكتّبة تضم 12 عقدة:

  • dc-1 هو مركز البيانات الذي سيتم إيقافه.
  • dc-2 هو مركز بيانات ثانٍ، ويتم استخدامه في إجراء إيقاف الخدمة.

إذا كنت بصدد ترقية نظام التشغيل، يمكن أن يكون dc-2 هو مركز البيانات الذي ثبَّت فيه الإصدار الجديد من نظام التشغيل. ومع ذلك، ليس من الضروري تثبيت نظام تشغيل جديد لإيقاف مركز بيانات.

اعتبارات قبل إيقاف مركز بيانات

يجب مراعاة النقاط التالية عند إيقاف مركز بيانات نهائيًا:

  • حظر جميع الزيارات المتعلقة بوقت التشغيل والإدارة إلى مركز البيانات الذي يتم إيقافه نهائيًا وإعادة توجيهها إلى مراكز بيانات أخرى
  • بعد إيقاف مركز البيانات، ستنخفض سعة مجموعة Apigee. لتعويض ذلك، ننصحك بزيادة السعة في مراكز البيانات المتبقية أو إضافة مراكز بيانات بعد إيقافها.
  • أثناء عملية الإيقاف النهائي، من المحتمل فقدان بيانات الإحصاءات، وذلك استنادًا إلى مكونات الإحصاءات المثبَّتة في مركز البيانات الذي يتم إيقافه نهائيًا. يمكنك العثور على مزيد من التفاصيل في مقالة إضافة أو إزالة عقد Qpid.
  • قبل إيقاف مركز بيانات، يجب فهم كيفية ضبط جميع المكوّنات في جميع مراكز البيانات، خاصةً خوادم OpenLDAP وZooKeeper وCassandra وPostgres. يجب أيضًا الاحتفاظ بنسخ احتياطية من جميع المكوّنات وإعداداتها.

قبل البدء

  • خادم الإدارة: تعتمد جميع خطوات الإيقاف النهائي بشكل كبير على "خادم الإدارة". إذا كان لديك خادم إدارة واحد فقط متاحًا، ننصحك بتثبيت عنصر خادم إدارة جديد في مركز بيانات آخر غير dc-1 قبل إيقاف خادم الإدارة في dc-1، والتأكّد من توفّر أحد خوادم الإدارة في جميع الأوقات.
  • جهاز التوجيه: قبل إيقاف جهاز توجيه، يجب إيقاف إمكانية الوصول إلى أجهزة التوجيه من خلال حظر المنفذ 15999. تأكَّد من عدم توجيه أيّ طلبات أثناء التشغيل إلى أجهزة التوجيه التي يتم إيقافها نهائيًا.
  • Cassandra وZooKeeper: توضِّح الأقسام أدناه كيفية إيقاف dc-1 نهائيًا في إعداد مركزَي بيانات.

    إذا كان لديك أكثر من مركزَين بيانات، احرص على إزالة جميع الإشارات إلى العقدة التي يتم إيقافها نهائيًا (dc-1 في هذه الحالة) من جميع ملفات الضبط الصامتة في جميع مراكز البيانات المتبقية. بالنسبة إلى عقد Cassandra التي سيتم إيقافها نهائيًا، أزِل هذه المضيفين من CASS_HOSTS. يجب أن تظلّ عقد Cassandra المتبقية بالترتيب الأصلي CASS_HOSTS.

  • Postgres: في حال إيقاف خادم Postgres الرئيسي، احرص على ترقية أي من العقد الاحتياطية المتاحة لتصبح خادم Postgres رئيسيًا جديدًا. في حين يحتفظ خادم QPID بمساحة تخزين مؤقت في ملف الانتظار ، إذا لم يكن خادم Postgres الرئيسي متاحًا لفترة أطول، فإنّك تخاطر بفقدان بيانات الإحصاءات.

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

  • قبل إيقاف أي مكوّن نهائيًا، ننصحك بالاحتفاظ بنسخة احتياطية كاملة من كل العقد. اتّبِع الإجراء الخاص بالإصدار الحالي من Edge لإجراء عملية النسخ الاحتياطي. لمزيد من المعلومات عن الاحتفاظ بنسخة احتياطية، يُرجى الاطّلاع على مقالة الاحتفاظ بنسخة احتياطية واستعادة البيانات.

  • تأكَّد من أنّ Edge قيد التشغيل قبل إيقافه باستخدام الأمر:
    /opt/apigee/apigee-service/bin/apigee-all status
  • تأكَّد من عدم وصول أيّ عدد من الزيارات في وقت التشغيل حاليًا إلى مركز البيانات الذي تتم إزالته.

ترتيب إيقاف المكونات

في حال تثبيت Edge for Private Cloud على عدة عقد، عليك إيقاف استخدام مكوّنات Edge على تلك العقد بالترتيب التالي:

  1. واجهة مستخدم Edge (edge-ui)
  2. خادم الإدارة (edge-management-server)
  3. OpenLDAP (apigee-openldap)
  4. جهاز التوجيه (جهاز توجيه الحواف)
  5. معالج الرسائل (edge-message-processor)
  6. خادم Qpid وQpidd (edge-qpid-server وapigee-qpidd)
  7. Postgres وقاعدة بيانات PostgreSQL (edge-postgres-server وapigee-postgresql)
  8. ZooKeeper (apigee-zookeeper)
  9. Cassandra (apigee-cassandra)

توضّح الأقسام التالية كيفية إيقاف كل مكوّن.

واجهة مستخدم Edge

لإيقاف مكوّن واجهة مستخدم Edge وإزالة تثبيته من dc-1، أدخِل الأوامر التالية:

/opt/apigee/apigee-service/bin/apigee-service edge-ui stop
/opt/apigee/apigee-service/bin/apigee-service edge-ui uninstall

خادم الإدارة

لإيقاف "خادم الإدارة" على dc-1، اتّبِع الخطوات التالية:

  1. أوقِف "خادم الإدارة" على dc-1:
    apigee-service edge-management-server stop
  2. ابحث عن المعرّف الفريد العالمي لخادم الإدارة المسجَّل في dc-1:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET “http://{MS_IP}:8080/v1/servers?pod=central&region=dc-1&type=management-server”
  3. إلغاء تسجيل نوع الخادم:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=management-server&region=dc-1&pod=central&uuid=UUID&action=remove"
  4. حذف الخادم ملاحظة: إذا كانت هناك مكوّنات أخرى مثبّتة أيضًا على هذا الخادم، يجب إلغاء تسجيلها جميعًا أولاً قبل حذف معرّف UUID.
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/{UUID}
  5. إلغاء تثبيت مكوّن "خادم الإدارة" على dc-1:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server uninstall

Open LDAP

يوضِّح هذا القسم كيفية إيقاف OpenLDAP نهائيًا على dc-1.

ملاحظة: إذا كان لديك أكثر من مركزَي بيانات، اطّلِع على عمليات الإعداد التي تتضمّن أكثر من مركزَي بيانات أدناه.

لإيقاف OpenLDAP نهائيًا على dc-1، اتّبِع الخطوات التالية:

  1. احتفظ بنسخة احتياطية من عقدة dc-1 OpenLDAP باتّباع الخطوات الواردة في كيفية الاحتفاظ بنسخة احتياطية.
  2. أوقِف تكرار البيانات بين مركزَي البيانات dc-1 وdc-2 من خلال تنفيذ الخطوات التالية في كلا مركزَي البيانات.

    1. التحقّق من الحالة الحالية:
      ldapsearch -H ldap://{HOST}:{PORT} -LLL -x -b "cn=config" -D "cn=admin,cn=config" -w {credentials} -o ldif-wrap=no 'olcSyncRepl' | grep olcSyncrepl

      من المفترض أن يظهر لك الإخراج على النحو التالي:

      olcSyncrepl: {0}rid=001 provider=ldap://{HOST}:{PORT}/ binddn="cn=manager,dc=apigee,dc=com" bindmethod=simple credentials={credentials} searchbase="dc=apigee,dc=com" attrs="*,+" type=refreshAndPersist retry="60 1 300 12 7200 +" timeout=1
    2. أنشِئ ملفًا break_repl.ldif يحتوي على الأوامر التالية:
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcSyncRepl
      
      dn: olcDatabase={2}bdb,cn=config
      changetype: modify
      delete: olcMirrorMode
    3. نفِّذ الأمر ldapmodify:
      ldapmodify -x -w {credentials} -D "cn=admin,cn=config" -H "ldap://{HOST}:{PORT}/" -f path/to/file/break_repl.ldif

      من المفترض أن يظهر لك الإخراج على النحو التالي:

      modifying entry "olcDatabase={2}bdb,cn=config"
      modifying entry "olcDatabase={2}bdb,cn=config"
  3. يمكنك التأكّد من أنّه لم يعُد يتمّ تكرار البيانات في dc-2 إلى dc-1 عن طريق إنشاء إدخال في LDAP لـ dc-2 والتأكّد من أنّه لا يظهر في LDAP لـ dc-1.

    يمكنك اختياريًا اتّباع الخطوات التالية التي تنشئ مستخدمًا للقراءة فقط في dc-2 عقدة OpenLDAP، ثم التحقّق مما إذا تمّت مزامنة المستخدم أم لا. ويتم بعد ذلك حذف المستخدم.

    1. أنشئ ملفًا readonly-user.ldif في dc-2 يتضمّن المحتوى التالي:
      dn: uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com
      objectClass: organizationalPerson
      objectClass: person
      objectClass: inetOrgPerson
      objectClass: top
      cn: readonly-user
      sn: readonly-user
      userPassword: {testPassword}
    2. أضِف المستخدم باستخدام الأمر ldapadd في dc-2:
      ldapadd -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" -f path/to/file/readonly-user.ldif

      ستكون النتيجة مشابهة لما يلي:

      adding new entry "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
    3. ابحث عن المستخدم في dc-1 للتأكّد من عدم تكرار المستخدم. إذا لم يكن المستخدم متوفّرًا في dc-1، ستكون متأكدًا من أنّه لم يعُد يتم تكرار بيانات كل من تنسيقَي LDAP:
      ldapsearch -H ldap://{HOST}:{PORT} -x -w {credentials} -D "cn=manager,dc=apigee,dc=com" -b uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com -LLL

      من المفترض أن يظهر لك الإخراج على النحو التالي:

      No such object (32)
      Matched DN: ou=users,ou=global,dc=apigee,dc=com
    4. أزِل المستخدم الذي يملك الإذن بالقراءة فقط والذي أضفته سابقًا:
      ldapdelete -v -H ldap://{HOST}:{PORT} -w {credentials} -D "cn=manager,dc=apigee,dc=com" "uid=readonly-user,ou=users,ou=global,dc=apigee,dc=com"
  4. أوقِف OpenLDAP في dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
  5. ألغِ تثبيت مكوّن OpenLDAP على dc-1:
    /opt/apigee/apigee-service/bin/apigee-service apigee-openldap uninstall

جهاز التوجيه

يوضّح هذا القسم كيفية إيقاف جهاز توجيه. راجِع مقالة إزالة خادم للحصول على مزيد من التفاصيل حول إزالة جهاز التوجيه.

تؤدي الخطوات التالية إلى إيقاف جهاز التوجيه عن العمل في dc-1. إذا كانت هناك عدة عقد أجهزة توجيه تم ضبطها في dc-1، نفِّذ الخطوات في كل عقد أجهزة التوجيه واحدة تلو الأخرى.

ملاحظة: نفترض هنا أنّه تم ضبط منفذ التحقّق من حالة جهاز التوجيه 15999 في جهاز موازنة الحمل، وأنّ حظر المنفذ 15999 سيؤدي إلى عدم إمكانية الوصول إلى جهاز التوجيه. قد تحتاج إلى إذن الوصول إلى الجذر لحظر المنفذ.

لإيقاف جهاز توجيه، اتّبِع الخطوات التالية:

  1. أوقِف إمكانية الوصول إلى أجهزة التوجيه عن طريق حظر المنفذ 15999، وهو منفذ التحقّق من الصحة. تأكَّد من حظر عدد الزيارات في وقت التشغيل في مركز البيانات هذا:

    iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
  2. تأكَّد من إمكانية الوصول إلى جهاز التوجيه:

    curl -vvv -X GET http://{ROUTER_IP}:15999/v1/servers/self/reachable

    من المفترض أن يظهر لك الإخراج على النحو التالي:

    About to connect() to 10.126.0.160 port 15999 (#0)
    Trying 10.126.0.160...
    Connection refused
    Failed connect to 10.126.0.160:15999; Connection refused
    Closing connection 0
    curl: (7) Failed connect to 10.126.0.160:15999; Connection refused
  3. احصل على المعرّف الفريد العالمي (UUID) لجهاز التوجيه، كما هو موضّح في مقالة الحصول على أرقام التعريف الفريدة العالمية (UUID).
  4. أوقِف جهاز التوجيه باتّباع الخطوات التالية:
    /opt/apigee/apigee-service/bin/apigee-service edge-router stop
  5. يمكنك إدراج مجموعات بوابات التطبيقات المتاحة في المؤسسة باستخدام الأمر التالي:
    curl -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://{MS_IP}:8080/v1/organizations/{ORG}/pods"

    اطّلِع على لمحة عن مجموعات التطبيقات.

  6. إلغاء تسجيل نوع الخادم:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=router&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  7. إلغاء تسجيل الخادم:
    curl -u <AdminEmailID>:'<AdminPassword>’ -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. إلغاء تثبيت edge-router:
    /opt/apigee/apigee-service/bin/apigee-service edge-router uninstall
    راجِع مقالة إزالة خادم.
  9. يمكنك محو iptables قاعدة لتفعيل المنفذ المحظور 15999:
    iptables -F

معالج الرسائل

يصف هذا القسم كيفية إيقاف "معالج الرسائل" نهائيًا من dc-1. اطّلِع على إزالة خادم للحصول على مزيد من التفاصيل حول إزالة "معالج الرسائل".

بما أنّنا نفترض أنّ dc-1 يحتوي على تثبيت مجمع من 12 عقدة، هناك عقدتَان من "معالج الرسائل" تم ضبطهما في dc-1. نفِّذ الأوامر التالية في كلتا العقدتَين.

  1. احصل على أرقام التعريف الفريدة العالمية (UUID) لمعالجي الرسائل، كما هو موضّح في الحصول على أرقام التعريف الفريدة العالمية (UUID).
  2. أوقِف "معالج الرسائل":
    apigee-service edge-message-processor stop
  3. إلغاء تسجيل نوع الخادم:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  4. إلغاء ربط بيئة بمعالج الرسائل
    curl -H "Content-Type:application/x-www-form-urlencoded" <AdminEmailID>:'<AdminPassword>’  \
    -X POST http://{MS_IP}:8080/v1/organizations/{ORG}/environments/{ENV}/servers \
    -d "action=remove&uuid=UUID"
  5. إلغاء تسجيل نوع الخادم:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers -d "type=message-processor&region=dc-1&pod=gateway-1&uuid=UUID&action=remove"
  6. يُرجى اتّباع الخطوات التالية لإلغاء تثبيت "معالج الرسائل":
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor uninstall
  7. إلغاء تسجيل الخادم:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID

خادم Qpid وQpidd

يوضّح هذا القسم كيفية إيقاف خادم Qpid (edge-qpid-server) وQpidd (apigee-qpidd) نهائيًا. تتوفّر عقدتَان من Qpid تم ضبطهما في dc-1، لذا عليك اتّباع الخطوات التالية لكلٍّ من العقدتَين:

  1. احصل على المعرّف الفريد العالمي (UUID) لـ Qpidd، كما هو موضّح في مقالة الحصول على المعرّفات الفريدة العالمية (UUID).
  2. إيقاف edge-qpid-server وapigee-qpidd:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  3. الحصول على قائمة بمجموعات "إحصاءات Google" ومجموعات المستهلكين:
    curl -u <AdminEmailID>:'<AdminPassword>' -X GET http://{MS_IP}:8080/v1/analytics/groups/ax
  4. أزِل Qpid من مجموعة المستهلكين:
    curl -u <AdminEmailID>:'<AdminPassword>' -H "Content-Type: application/json"  -X DELETE \ "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/consumer-groups/{consumer_group}/consumers/{QPID_UUID}"
  5. أزِل Qpid من مجموعة الإحصاءات:
    curl -v -u <AdminEmailID>:'<AdminPassword>' \
    -X DELETE "http://{MS_IP}:8080/v1/analytics/groups/ax/{ax_group}/servers?uuid={QPID_UUID}&type=qpid-server"
  6. إلغاء تسجيل خادم Qpid من عملية تثبيت Edge:
    curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
    -d "type=qpid-server&region=dc-1&pod=central&uuid={QPID_UUID}&action=remove"
  7. أزِل خادم Qpid من عملية تثبيت Edge:
    curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
  8. أعِد تشغيل جميع مكوّنات edge-qpid-server على جميع العقد للتأكّد من أنّه تم رصد التغيير من قِبل هذه المكوّنات:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server wait_for_ready
  9. ألغِ تثبيت edge-qpid-server وapigee-qpidd:
    $ /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    $ /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall

‫Postgres وPostgresql

قد يتضمّن مركز البيانات الذي يتم إيقافه خادمًا رئيسيًا أو احتياطيًا لنظام Postgres. توضّح الأقسام التالية كيفية إيقافها نهائيًا:

إيقاف خادم Postgres الرئيسي

ملاحظة: في حال إيقاف خادم Postgres الرئيسي، احرص على ترقية أي من العقد الاحتياطية المتاحة لتصبح خادم Postgres رئيسيًا جديدًا. في حين أنّ قوائم انتظار QPID تُخزّن البيانات مؤقتًا، إذا لم يكن خادم Postgres الرئيسي متاحًا لفترة طويلة، فإنّك تخاطر بفقدان بيانات الإحصاءات.

لإيقاف خادم Postgres الرئيسي:

  1. يمكنك الاحتفاظ بنسخة احتياطية من العقدة الرئيسية dc-1 Postgres من خلال اتّباع التعليمات الواردة في الروابط التالية:
  2. احصل على أرقام التعريف الفريدة العالمية (UUID) لخوادم Postgres، كما هو موضّح في مقالة الحصول على أرقام التعريف الفريدة العالمية (UUID).
  3. على dc-1، أوقِف edge-postgres-server و apigee-postgresql على الدليل الرئيسي الحالي:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  4. على العقدة الاحتياطية في dc-2، أدخِل الأمر التالي لجعلها العقدة الرئيسية:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql promote-standby-to-master <IP of OLD Progress master>

    ملاحظة: إذا كان لديك أكثر من عقدة Postgres واحدة في وضع الاستعداد، عليك إضافة إدخالات المضيفين على العقدة الرئيسية الجديدة وتعديل إعدادات النسخ لجميع العقد المتاحة في وضع الاستعداد في Postgres.

    لإضافة إدخالات المضيف إلى خادم Postgres الرئيسي الجديد: اتّبِع الخطوات الواردة في القسم المناسب أدناه:

    إذا كانت هناك عقدة احتياطية واحدة فقط متبقية

    على سبيل المثال، لنفترض أنّه قبل إيقاف الخدمة، تمّ إعداد ثلاث عقد Postgres. أوقفت الخدمة الرئيسية الحالية وأعدت ترقية إحدى العقد الاحتياطية المتبقية في postgres إلى عقدة رئيسية. يمكنك ضبط العقدة الاحتياطية المتبقية باتّباع الخطوات التالية:

    1. في الملف الرئيسي الجديد، عدِّل ملف الضبط لضبط ما يلي:
      PG_MASTER=IP_or_DNS_of_new_PG_MASTER
      PG_STANDBY=IP_or_DNS_of_PG_STANDBY
    2. فعِّل النسخ على النسخة الرئيسية الجديدة:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle

    إذا كان هناك أكثر من عقدة احتياطية متبقية

    1. أضِف الإعدادات التالية في /opt/apigee/customer/application/postgresql.properties:
      conf_pg_hba_replication.connection=host replication apigee standby_1_ip/32 trust \n host replication apigee standby_2_ip/32 trust
    2. تأكَّد من أنّ الملف ‎ /opt/apigee/customer/application/postgresql.properties يملكه مستخدم apigee:
      chown apigee:apigee /opt/apigee/customer/application/postgresql.properties
    3. إعادة تشغيل apigee-postgresql:
      apigee-service apigee-postgresql restart
    4. لتعديل إعدادات النسخ على عقدة احتياطية:

      1. عدِّل ملف الإعدادات /opt/silent.conf وعدِّل الحقل PG_MASTER باستخدام عنوان IP لخادم Postgres الرئيسي الجديد.
      2. أزِل أي بيانات قديمة من Postgres باستخدام الأمر التالي:
        rm -rf /opt/apigee/data/apigee-postgresql/
      3. إعداد النسخ على العقدة الاحتياطية:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    5. تأكَّد من إعداد خادم Postgres الرئيسي بشكل صحيح من خلال إدخال الأمر التالي في dc-2:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    6. أزِل خوادم Postgresql وأضِفها من مجموعة الإحصاءات ومجموعة المستهلكين.
      1. أزِل خادم Postgres القديم من مجموعة الإحصاءات باتّباع التعليمات الواردة في مقالة إزالة خادم Postgres من مجموعة إحصاءات.
      2. أضِف خادم postgres جديدًا إلى مجموعة الإحصاءات باتّباع التعليمات الواردة في مقالة إضافة خادم Postgres حالي إلى مجموعة إحصاءات.
    7. ألغِ تسجيل خادم postgres القديم من dc-1:
      curl -u <AdminEmailID>:<AdminPassword> -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server®ion=dc-1&pod=analytics&uuid=UUID&action=remove"
            
    8. حذف خادم postgres القديم من dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    9. أصبح من الآمن الآن إيقاف خادم Postgres الرئيسي القديم. إلغاء تثبيت edge-postgres-server وapigee-postgresql:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    إيقاف الخدمة الاحتياطية في Postgres

    ملاحظة: تعرض مستندات عملية التركيب في مجموعة تضم 12 عقدة عقدة dc-1 postgresql باعتبارها العقدة الرئيسية، ولكن من باب التسهيل، نفترض في هذا القسم أنّ عقدة dc-1 postgresql هي العقدة الاحتياطية وأنّ عقدة dc-2 postgresql هي العقدة الرئيسية.

    لإيقاف الخدمة الاحتياطية في Postgres، اتّبِع الخطوات التالية:

    1. احصل على معرّفات UUID لخوادم Postgres باتّباع التعليمات الواردة في الحصول على معرّفات UUID.
    2. أوقِف apigee-postgresql على العقدة الاحتياطية الحالية في dc-1:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
    3. أزِل خوادم Postgresql وأضِفها من مجموعة الإحصاءات ومجموعة المستهلكين.
      1. أزِل خادم Postgres القديم من مجموعة الإحصاءات باتّباع التعليمات الواردة في مقالة إزالة خادم Postgres من مجموعة إحصاءات.
      2. أضِف خادم postgres جديدًا إلى مجموعة الإحصاءات باتّباع التعليمات الواردة في مقالة إضافة خادم Postgres حالي إلى مجموعة إحصاءات.
    4. ألغِ تسجيل خادم postgres القديم من dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://{MS_IP}:8080/v1/servers \
      -d "type=postgres-server&region=dc-1&pod=analytics&uuid=UUID&action=remove"
    5. حذف خادم postgres القديم من dc-1:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://{MS_IP}:8080/v1/servers/UUID
    6. أصبح من الآمن الآن إيقاف خادم Postgres الرئيسي القديم. إلغاء تثبيت edge-postgres-server وapigee-postgresql:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server uninstall
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql uninstall

    ZooKeeper وCassandra

    يوضّح هذا القسم كيفية إيقاف خوادم ZooKeeper وCassandra نهائيًا في عملية إعداد مركزَي بيانات.

    إذا كان لديك أكثر من مركزين بيانات، احرص على إزالة جميع الإشارات إلى العقدة التي يتم إيقافها نهائيًا (dc-1 في هذه الحالة) من جميع ملفات الضبط الصامتة في جميع مراكز البيانات المتبقية. بالنسبة إلى عقد Cassandra التي سيتم إيقافها نهائيًا، أزِل هذه المضيفين من CASS_HOSTS. يجب أن تظلّ عقد Cassandra المتبقية بالترتيب الأصلي CASS_HOSTS.

    ملاحظة حول ZooKeeper: يجب الحفاظ على نصاب لعدد العقد التي تشارك في التصويت أثناء تعديل القيمة الخاصة بالخاصية ZK_HOST في ملف الإعدادات، لضمان استمرار عمل مجموعة ZooKeeper. يجب أن يكون لديك عدد فردي من العقد المُشفِّرة في الإعداد. لمزيد من المعلومات، يُرجى الاطّلاع على مهام صيانة Apache ZooKeeper.

    لإيقاف خوادم ZooKeeper وCassandra نهائيًا:

    1. يمكنك الاحتفاظ بنسخة احتياطية من عقدتَي dc-1 Cassandra وZooKeeper باتّباع التعليمات الواردة في الروابط التالية:
    2. أدخِل أرقام تعريف UUID لخوادم ZooKeeper وCassandra في مركز البيانات الذي سيتم فيه إيقاف عقد Cassandra.

      apigee-adminapi.sh servers list -r dc-1 -p central -t application-datastore --admin <AdminEmailID> --pwd '<AdminPassword>' --host localhost
    3. إلغاء تسجيل نوع الخادم:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MS_IP:8080/v1/servers -d "type=cache-datastore&type=user-settings-datastore&type=scheduler-datastore&type=audit-datastore&type=apimodel-datastore&type=application-datastore&type=edgenotification-datastore&type=identityzone-datastore&type=user-settings-datastore&type=auth-datastore&region=dc-1&pod=central&uuid=UUID&action=remove"
    4. إلغاء تسجيل الخادم:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
    5. عدِّل ملف الإعدادات باستخدام عناوين IP للعقد التي تم إيقافها نهائيًا والتي تمت إزالتها من ZK_HOSTS وCASS_HOSTS.

      مثال: لنفترض أنّ لديك عناوين IP $IP1 $IP2 $IP3 في الموقع الإلكتروني dc-1 و$IP4 $IP5 $IP6 في الموقع الإلكتروني dc-2، وأنّك بصدد إيقاف الموقع الإلكتروني dc-1. بعد ذلك، عليك إزالة عناوين IP $IP1 $IP2 $IP3 منملفّات الإعدادات.

      • إدخالات ملف الإعدادات الحالية:
        ZK_HOSTS="$IP1 $IP2 $IP3 $IP4 $IP5 $IP6"
        CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1, $IP4:2,1 $IP5:2,1 $IP6:2,1”
      • إدخالات ملف الإعدادات الجديدة:
        ZK_HOSTS="$IP4 $IP5 $IP6"
        CASS_HOSTS="$IP4:2,1 $IP5:2,1 $IP6:2,1"
    6. عدِّل ملف الضبط الصامت (الذي تم تعديله في الخطوة هـ) باستخدام عناوين IP للعقد التي تمت إزالتها أو إيقافها نهائيًا، وشغِّل الملف الشخصي لخوادم التحكّم على جميع العقد التي تستضيف خوادم التحكّم:
      /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updated_config_file
    7. عدِّل ملف الإعدادات باستخدام عناوين IP للعقد التي تم إيقافها نهائيًا وشغِّل الملف الشخصي لمعالج الرسائل/معالج الرسائل المتعدّدة على جميع عقد المعالج ومعالج الرسائل:
      • في حال ضبط Edge Router وMessage Processor على العقدة نفسها، أدخِل:
        /opt/apigee/apigee-setup/bin/setup.sh -p rmp -f updated_config_file
      • إذا تم ضبط Edge Router وMessage Processor على عقد منفصلة، أدخِل ما يلي:

        بالنسبة إلى جهاز التوجيه:

        /opt/apigee/apigee-setup/bin/setup.sh -p r -f updated_config_file

        بالنسبة إلى Message Processor:

        /opt/apigee/apigee-setup/bin/setup.sh -p mp -f updated_config_file
    8. إعادة ضبط جميع عقد Qpid، مع إزالة عناوين IP للعقد التي تم إيقافها من ملف Response File:
      /opt/apigee/apigee-setup/bin/setup.sh -p qs -f updated_config_file
    9. عليك إعادة ضبط جميع عقد Postgres، مع إزالة عناوين IP للعقد التي تم إيقافها من ملف Response File:
      /opt/apigee/apigee-setup/bin/setup.sh -p ps -f updated_config_file
    10. عدِّل مساحة مفاتيح system_auth. إذا كان قد تم تفعيل مصادقة Cassandra على مثبّت حالي من Cassandra، عدِّل عامل النسخ لمساحة مفاتيح system_auth من خلال تنفيذ الأمر التالي:
      ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-2': '3'};

      يضبط هذا الأمر عامل النسخ على '3'، ما يشير إلى ثلاث عقد Cassandra في المجموعة. عدِّل هذه القيمة حسب الحاجة.

      بعد إكمال هذه الخطوة، من المفترض أن لا يحتوي طوبولوجيا Cassandra على dc-1 في أي من مساحات المفاتيح.

    11. أوقِف تشغيل عقد Cassandra على dc-1 واحدة تلو الأخرى.

      لإيقاف تشغيل عقد Cassandra، أدخِل الأمر التالي:

      /opt/apigee/apigee-cassandra/bin/nodetool -h cassIP -u cassandra -pw '<AdminPassword>' decommission
    12. تحقَّق من اتصال عقد Cassandra من dc-1 باستخدام أحد الأوامر التالية:
      /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p '<AdminPassword>'

      أو الأمر الثانوي لإثبات الهوية الذي سيتم تشغيله على العقدة التي تم إيقافها نهائيًا:

      /opt/apigee/apigee-cassandra/bin/nodetool netstats

      من المفترض أن يعرض الأمر أعلاه ما يلي:

      Mode: DECOMMISSIONED
    13. شغِّل الملف الشخصي لـ DS لجميع عقد Cassandra وZooKeeper في dc-2:
      /opt/apigee/apigee-setup/bin/setup.sh -p ds -f updated_config_file
    14. أوقِف apigee-cassandra وapigee-zookeeper في dc-1:
      apigee-service apigee-cassandra stop
      apigee-service apigee-zookeeper stop
    15. إلغاء تثبيت apigee-cassandra وapigee-zookeeper في dc-1:
      apigee-service apigee-cassandra uninstall
      apigee-service apigee-zookeeper uninstall

    حذف عمليات الربط من dc-1

    لحذف عمليات الربط من dc-1، اتّبِع الخطوات التالية:

    1. احذف عمليات الربط من dc-1.
      1. يمكنك إدراج جميع مجموعات الوحدات المتاحة ضمن المؤسسة:
        curl -v -u  <AdminEmailID>:'<AdminPassword>' -X GET "http://MS_IP:8080/v1/o/ORG/pods"
      2. للتحقّق مما إذا تمت إزالة جميع عمليات الربط، احصل على أرقام تعريف UUID للخوادم المرتبطة بالمجموعات:
        curl -v -u  <AdminEmailID>:'<AdminPassword>' \
        -X GET "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1/servers"

        إذا لم يعرض هذا الأمر أي أرقام تعريف UUID، يعني ذلك أنّ الخطوات السابقة قد أزالت جميع عمليات الربط، ويمكنك تخطّي الخطوة التالية. بخلاف ذلك، نفِّذ الخطوة التالية.

      3. أزِل جميع عمليات ربط الخادم لأرقام تعريف UUID التي تم الحصول عليها في الخطوة السابقة:
        curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MS_IP:8080/v1/servers/UUID
      4. إلغاء ربط المؤسسة بالوحدة:
        curl -v -u  <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/o/ORG/pods" -d "action=remove&region=dc-1&pod=gateway-1" -H "Content-Type: application/x-www-form-urlencoded" -X POST
    2. حذف مجموعات التطبيقات:
      curl -v -u <AdminEmailID>:'<AdminPassword>' "http://MS_IP:8080/v1/regions/dc-1/pods/gateway-1" -X DELETE
    3. حذف المنطقة
      curl -v -u <AdminEmailID>:'<AdminPassword>'  "http://MS_IP:8080/v1/regions/dc-1" -X DELETE

    في هذه المرحلة، تكون قد أكملت إيقاف dc-1.

    الملحق

    تحديد المشاكل وحلّها

    إذا بقيت هناك خوادم في بعض مجموعات الوحدات بعد تنفيذ الخطوات السابقة، اتّبِع الخطوات التالية لإلغاء تسجيل الخوادم وحذفها. ملاحظة: يمكنك تغيير الأنواع والمجموعات حسب الحاجة.

    1. احصل على أرقام تعريف UUID باستخدام الأمر التالي:
      apigee-adminapi.sh servers list -r dc-1 -p POD -t  --admin <AdminEmailID> --pwd  '<AdminPassword>’ --host localhost
    2. إلغاء تسجيل نوع الخادم:
      curl -u <AdminEmailID>:'<AdminPassword>' -X POST http://MP_IP:8080/v1/servers -d "type=TYPE=REGION=dc-1&pod=POD&uuid=UUID&action=remove"
    3. حذف الخوادم واحدًا تلو الآخر:
      curl -u <AdminEmailID>:'<AdminPassword>' -X DELETE http://MP_IP:8080/v1/servers/UUID

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

    يمكنك التحقّق من إكمال عملية الإيقاف باستخدام الأوامر التالية.

    خادم الإدارة

    1. نفِّذ الأوامر التالية من "خوادم الإدارة" في جميع المناطق.
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=central&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=gateway&region=dc-1
      curl -v -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/servers?pod=analytics&region=dc-1
    2. شغِّل الأمر التالي على جميع المكوّنات للتحقّق من متطلبات المنفذ لجميع منافذ التحكم.
      curl -v http://MS_IP:8080/v1/servers/self
    3. تحقَّق من مجموعة الإحصاءات.
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/o/ORG/e/ENV/provisioning/axstatus
      curl -v  -u  <AdminEmailID>:'<AdminPassword>' http://MS_IP:8080/v1/analytics/groups/ax
    4. عقد Cassandra/ZooKeeper

      1. على جميع عقد Cassandra، أدخِل:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> statusthrift

        سيؤدي ذلك إلى عرض الحالة running أو not running لهذه العقدة المحدّدة.

      2. في إحدى العقد، أدخِل:
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> ring
        /opt/apigee/apigee-cassandra/bin/nodetool -h <host> status

        ستُظهر الأوامر أعلاه معلومات مركز البيانات النشط.

      3. في عقد ZooKeeper، أدخِل أولاً:
        echo ruok | nc <host> 2181
        

        يعرض هذا الأمر القيمة imok.

        بعد ذلك، أدخِل ما يلي:

        echo stat | nc <host> 2181 | grep Mode
        

        ستكون قيمة Mode التي يعرضها الأمر أعلاه إحدى القيم التالية: observer أو leader أو follower.

      4. في إحدى عقد ZooKeeper، شغِّل:
        /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh >> /tmp/zk-tree.out.txt
      5. على عقدة Postgres الرئيسية، شغِّل:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

        تأكَّد من أنّ الاستجابة تشير إلى أنّ العقدة هي العقدة الرئيسية.

      6. على العقدة الاحتياطية، شغِّل:
        /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

        تأكَّد من أنّ الردّ يؤكّد أنّ العقدة هي العقدة الاحتياطية.

      7. سجِّل الدخول إلى قاعدة بيانات PostgreSQL باستخدام الأمر التالي:
        psql -h localhost -d apigee -U postgres

        أدخِل كلمة مرور المستخدم postgres عندما يُطلب منك ذلك (القيمة التلقائية: postgres).

        بعد ذلك، نفِّذ الاستعلام التالي للتحقّق من الحد الأقصى client_received_start_timestamp:

        SELECT max(client_received_start_timestamp) FROM "analytics"."$org.$env.fact" LIMIT 1;

      السجلّات

      راجِع السجلّات في المكوّنات للتأكّد من عدم حدوث أي أخطاء.