העברת שרתי Apigee

העברת רכיבים ממחשב אחד למחשב אחר עלולה לגרום לחוסר התאמה בהגדרות אם לא מקפידים על סנכרון כתובות ה-IP בקובצי ההגדרות של הרכיבים.

בקטע הזה מוסבר איך לאבחן ולתקן חוסר התאמה בהגדרות.

כתובות IP לעומת שמות מארחים

מומלץ להשתמש בכתובות IP ולא בשמות מארחים בקובצי התצורה של הרכיבים.

אף על פי שבחלק מקובצי ההגדרות של הרכיבים אפשר להשתמש בשמות מארחים במקום בכתובות IP, השימוש בשמות מארחים עלול לסבך את פתרון הבעיות. לדוגמה, שמות מארחים יכולים להיות מקור לבעיות שקשורות לקישוריות של שרת DNS, לכשלים בחיפוש ולסנכרון.

לכן, ב-Apigee מומלץ מאוד להשתמש בכתובות IP בכל ההגדרות של הרכיבים. במקרים מסוימים, כמו ב-Cassandra, צריך להשתמש בכתובות IP ולא בשמות מארחים. ברוב הדוגמאות במסמכי התיעוד נעשה שימוש בכתובות IP להגדרת הרכיבים.

כשמעבירים שרתי Apigee, חשוב להביא בחשבון את ההשלכות של התרחישים הבאים לגבי שמות מארחים וכתובות IP:

תרחיש ההשפעה על העברת שרתים
שינוי בכתובת ה-IP עדכון של כל הקבצים הקשורים שמפנים לכתובת ה-IP המקורית
שינוי שם המארח ללא שינוי בכתובת ה-IP אין השפעה
שינוי שם המארח עם שינוי בכתובת ה-IP זהה לשינוי בכתובת IP

שינוי כתובת ה-IP של צומת Cassandra

כדי לשנות את כתובת ה-IP של צומת Cassandra, מבצעים את השלבים הבאים:

לגבי הגדרות עם צומת Cassandra יחיד

  1. עריכה של /opt/apigee/customer/application/cassandra.properties במערכת שמשנים. אם הקובץ לא קיים, צריך ליצור אותו.
  2. משנים את הפרמטרים הבאים:
    • מגדירים את הפרמטרים conf_cassandra_seeds ו-conf_cassandra_listen_address כדי לציין את כתובת ה-IP החדשה של המערכת.
    • משנים את conf_cassandra_rpc_address כך שישתמש בכתובת ה-IP החדשה או ב-0.0.0.0 (שמאפשר ל-Cassandra Thrift להאזין לכל הממשקים).
  3. פותחים את /opt/apigee/apigee-cassandra/conf/cassandra-topology.properties בעורך. בטופס אמורה להופיע כתובת ה-IP הישנה והגדרת ברירת המחדל:
    192.168.56.101=dc-1:ra-1
    default=dc-1:ra-1

    שומרים את המידע הזה.

  4. עורכים את /opt/apigee/customer/application/cassandra.properties כדי לשנות את כתובת ה-IP הישנה שצוינה לכתובת ה-IP החדשה:
    conf_cassandra-topology_topology=192.168.56.103=dc-1:ra-1\ndefault=dc-1:ra-1\n

    חשוב להקפיד להוסיף את התו '\n' אחרי כתובת ה-IP, ולציין את אותן הגדרות ברירת מחדל שצוינו בשלב 3 שלמעלה.

  5. מפעילים מחדש את Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  6. במקרה הצורך, צריך גם לתקן את ZooKeeper (ראו שינוי כתובת ה-IP של צומת ZooKeeper). אחרת, מפעילים מחדש כל רכיב בפלטפורמת Apigee, החל משרת הניהול.

לגבי הגדרות עם כמה צמתים (nodes) של Cassandra (טבעת)

  1. אם הצומת שמשנים הוא צומת ראשוני, עורכים את הקובץ /opt/apigee/customer/application/cassandra.properties בכל מערכת בטבעת, ומשנים את הפרמטר conf_cassandra_seeds כך שיכלול את כתובת ה-IP החדשה של המערכת ששונתה. אם הקובץ cassandra.properties לא קיים, צריך ליצור אותו.
  2. עורכים את /opt/apigee/customer/application/cassandra.properties במערכת שמשנים, ומשנים את הפרמטרים הבאים:
    • מגדירים את conf_cassandra_listen_address לשימוש בכתובת ה-IP החדשה.
    • מגדירים את conf_cassandra_rpc_address לשימוש בכתובת ה-IP החדשה או ב-0.0.0.0 (שמאפשרת ל-Cassandra Thrift להאזין בכל הממשקים).
  3. פותחים את /opt/apigee/apigee-cassandra/conf/cassandra-topology.properties בעורך. כל כתובות ה-IP של Cassandra והגדרות ברירת המחדל צריכות להופיע בטופס:
    192.168.56.101=dc-1:ra-1
    192.168.56.102=dc-1:ra-1
    192.168.56.103=dc-1:ra-1
    default=dc-1:ra-1

    שומרים את המידע הזה.

  4. עורכים את /opt/apigee/customer/application/cassandra.properties כדי לשנות את כתובת ה-IP הישנה שצוינה לכתובת ה-IP החדשה:
    conf_cassandra-topology_topology=192.168.56.101=dc-1:ra-1\n192.168.56.102=dc-1:ra-1\n192.168.56.104=dc-1:ra-1\ndefault=dc-1:ra-1\n

    חשוב להקפיד להוסיף את התו '\n' אחרי כל כתובת IP, ולהשתמש באותן הגדרות ברירת מחדל שרשמתם בשלב 3.

  5. מפעילים מחדש את Cassandra במערכת ששונתה.
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  6. עבור כל שאר הצמתים, חוזרים על השינויים שבוצעו בשלבים 3 ו-4 כדי לעדכן אותם לגבי המיקום של הצומת הזה בטבעת Cassandra. בנוסף, משנים את כתובת ה-IP של צומת ה-seed כמו שמתואר בשלב 1.
  7. מפעילים מחדש כל אחד מצומתי Cassandra שנותרו, אחד אחרי השני.
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  8. מריצים את הפקודה nodetool ring בצומת ששונה כדי לוודא שהטבעת הושלמה. אפשר למצוא את כלי השירות בכתובת /opt/apigee/apigee-cassandra/bin.
    nodetool [-u username -pw password] -h localhost ring
  9. מריצים את הפקודה nodetool repair בצומת ששונה. חשוב לזכור שהתהליך הזה עשוי להימשך זמן מה, ולכן מומלץ מאוד לא לבצע אותו בשעות השיא של תנועת ה-API.
    nodetool [-u username -pw password] -h localhost repair -pr
  10. אם צריך, מתקנים את ZooKeeper (ראו שינוי כתובת ה-IP של צומת ZooKeeper), ואז מפעילים מחדש כל רכיב של פלטפורמת Apigee, החל משרת הניהול.

עדכון של רישומים במאגר נתונים

  1. כדי למצוא את מזהי ה-UUID של רישומי מאגרי הנתונים שבהם מצוינת כתובת ה-IP הישנה, משתמשים בפקודות שלמטה. שימו לב לפרמטרים type ו-UUID:
    • curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=central&region=DC" | egrep -i '[type|internalip|uuid|region]'
    • curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=gateway&region=DC" | egrep -i '[type|internalip|uuid|region]'
    • curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=analytics&region=DC" | egrep -i '[type|internalip|uuid|region]'

      כאשר DC הוא שם מרכז הנתונים. בהתקנה של מרכז נתונים יחיד, הערך הוא בדרך כלל dc-1.

  2. רושמים את כתובות ה-IP החדשות באמצעות אחת מהפקודות שלמטה. הפקודה הנדרשת תלויה בסוג הצומת שהשתנה.
    • עבור type="application-datastore":
      curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers -d \
        "Type=application-datastore&Type=audit-datastore&InternalIP=NEWIP&region=REGION&pod=central" \
        -H 'content-type: application/x-www-form-urlencoded' -X POST
    • עבור type="kms-datastore":
      curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers -d \
        "Type=kms-datastore&Type=dc-datastore&Type=keyvaluemap-datastore&Type=counter-datastore&Type=cache-datastore \
        &InternalIP=NEWIP&region=REGION&pod=GATEWAY_POD" -H 'content-type: \
        application/x-www-form-urlencoded' -X POST
    • ‫type="reportcrud-datastore":
      curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers" -d \
        "Type=reportcrud-datastore&InternalIP=NEW_IP&region=REGION&pod=analytics" \
        -H 'content-type: application/x-www-form-urlencoded' -X POST 
  3. מוחקים רישומים ישנים של ה-UUID של המערכת שבה כתובת ה-IP השתנתה. לגבי כל בעיה של UUID:
    curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers/OLD_UUID" -X DELETE

שינוי כתובת ה-IP של צומת ZooKeeper

כדי לשנות את כתובת ה-IP של צומת ZooKeeper:

משנים את כתובת ה-IP ומפעילים מחדש את קבוצת השרתים של ZooKeeper (רק בהגדרות של קבוצת שרתים מרובת צמתים)

  1. פותחים את /opt/apigee/apigee-zookeeper/conf/zoo.cfg בעורך. אמורות להופיע כל כתובות ה-IP של ZooKeeper והגדרת ברירת המחדל בפורמט הבא:
    server.1=192.168.56.101:2888:3888
    server.2=192.168.56.102:2888:3888
    server.3=192.168.56.103:2888:3888

    שומרים את המידע הזה.

  2. בכל צומת של ZooKeeper, עורכים את הקובץ /opt/apigee/customer/application/zookeeper.properties כדי להגדיר את המאפיין conf_zoo_quorum לכתובות ה-IP הנכונות. אם הקובץ לא קיים, צריך ליצור אותו.
    conf_zoo_quorum=server.1=192.168.56.101:2888:3888\nserver.2=192.168.56.102:2888:3888\nserver.3=192.168.56.104:2888:3888\n

    חשוב להקפיד להוסיף את התו '\n' אחרי כל כתובת IP, ולוודא שהערכים מופיעים באותו סדר בכל צומת.

  3. כדי למצוא את המנהיג של קבוצת השרתים של ZooKeeper, משתמשים בפקודה הבאה (מחליפים את node בכתובת ה-IP של מכונת Zookeeper):
    echo srvr | nc node 2181

    בשורה Mode בפלט צריך להופיע הערך leader.

  4. מפעילים מחדש את ZooKeeper אחד אחרי השני, מתחילים עם ה-leader ומסיימים עם הצומת שכתובת ה-IP שלו השתנתה. אם יותר מצומת אחד של zookeeper שינה את כתובת ה-IP, יכול להיות שיהיה צורך להפעיל מחדש את כל הצמתים.
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
  5. משתמשים בפקודה echo שמתוארת למעלה כדי לאמת כל צומת של ZooKeeper.

עדכון של צומתי Apigee לגבי השינוי בהגדרה

  1. בכל צומת של נתב, עורכים את הקובץ /opt/apigee/customer/application/router.properties באופן הבא. אם הקובץ לא קיים, צריך ליצור אותו.
    • משנים את הפרמטר conf_zookeeper_connection.string כך שיכלול את כתובת ה-IP החדשה
    • משנים את הפרמטר conf_zookeeper_zk1.host כך שיכלול את כתובת ה-IP החדשה
  2. בכל צומת של מעבד ההודעות, עורכים את הקובץ /opt/apigee/customer/application/message-processor.properties באופן הבא. אם הקובץ לא קיים, צריך ליצור אותו.
    • משנים את הפרמטר conf_zookeeper_connection.string כך שיכלול את כתובת ה-IP החדשה
    • משנים את הפרמטר conf_zookeeper_zk1.host כך שיכלול את כתובת ה-IP החדשה
  3. בצומת של שרת הניהול, עורכים את הקובץ /opt/apigee/customer/application/management-server.properties באופן הבא. אם הקובץ לא קיים, צריך ליצור אותו.
    • משנים את הפרמטר conf_zookeeper_connection.string כך שיכלול את כתובת ה-IP החדשה
    • משנים את הפרמטר conf_zookeeper_zk1.host כך שיכלול את כתובת ה-IP החדשה
  4. מריצים את הפקודה הבאה בכל צומת כדי להפעיל מחדש את כל רכיבי פלטפורמת Apigee:
    /opt/apigee/apigee-service/bin/apigee-all restart

שינוי כתובת ה-IP של שרת LDAP (SymasLDAP)

כדי לשנות את כתובת ה-IP של צומת SymasLDAP:

  1. בצומת של שרת הניהול, עורכים את הקובץ /opt/apigee/customer/application/management-server.properties file. אם הקובץ לא קיים, צריך ליצור אותו.
  2. בקובץ management-server.properties, מגדירים את הפרמטר conf_security_ldap.server.host לכתובת ה-IP החדשה.
  3. מפעילים מחדש את שרת הניהול:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

שינוי כתובת ה-IP של סוגים אחרים של צמתים ב-Apigee

כדי לשנות את כתובת ה-IP של אחד מסוגי הצמתים האלה (נתב, מעבד הודעות, שרת Postgres (לא postgresql) ושרת Qpid (לא qpidd):

  1. משתמשים בפקודה curl הבאה כדי לרשום את כתובת ה-IP הפנימית והחיצונית החדשות:
    curl -u ADMINEMAIL:PW -X PUT \
      http://MSIP:8080/v1/servers/uuid -d ExternalIP=ip
    curl -u ADMINEMAIL:PW -X PUT \
      http://$MSIP:8080/v1/servers/uuid -d InternalIP=ip

    כאשר uuid הוא המזהה הייחודי האוניברסלי (UUID) של הצומת.

במאמר קבלת UUID מוסבר איך מקבלים UUID של רכיב.