Przenoszenie serwerów Apigee

Przeniesienie komponentów z jednej maszyny na inną może spowodować niezgodność konfiguracji, jeśli nie zsynchronizujesz adresów IP w plikach konfiguracji komponentów.

W tej sekcji opisaliśmy, jak diagnozować i rozwiązywać problemy z niezgodnością konfiguracji.

Adresy IP a nazwy hostów

W plikach konfiguracji komponentów należy używać adresów IP, a nie nazw hostów.

Chociaż niektóre pliki konfiguracji komponentów umożliwiają używanie nazw hostów zamiast adresów IP, używanie nazw hostów może skomplikować rozwiązywanie problemów. Na przykład nazwy hostów mogą być źródłem problemów związanych z połączeniem z serwerem DNS, błędami wyszukiwania i synchronizacją.

Dlatego Apigee zdecydowanie zaleca używanie adresów IP we wszystkich konfiguracjach komponentów. W niektórych przypadkach, np. w przypadku Cassandra, musisz używać adresów IP i nie możesz używać nazw hostów. Większość przykładów w dokumentacji używa adresów IP do konfiguracji komponentów.

W przypadku nazw hostów i adresów IP weź pod uwagę konsekwencje tych scenariuszy podczas przenoszenia serwerów Apigee:

Scenariusz Wpływ na przenoszenie serwerów
zmiana adresu IP, Zaktualizuj wszystkie powiązane pliki, które odwołują się do pierwotnego adresu IP.
Zmiana nazwy hosta bez zmiany adresu IP Brak wpływu
Zmiana nazwy hosta ze zmianą adresu IP Tak samo jak w przypadku zmiany adresu IP

Zmienianie adresu IP węzła Cassandra

Aby zmienić adres IP węzła Cassandra, wykonaj te czynności:

W przypadku konfiguracji z jednym węzłem Cassandra

  1. Edytuj /opt/apigee/customer/application/cassandra.properties w modyfikowanym systemie. Jeśli plik nie istnieje, utwórz go.
  2. Zmień te parametry:
    • Ustaw parametry conf_cassandra_seeds i conf_cassandra_listen_address, aby określić nowy adres IP systemu.
    • Zmień conf_cassandra_rpc_address, aby używać nowego adresu IP lub 0.0.0.0 (co umożliwia Cassandra Thrift nasłuchiwanie na wszystkich interfejsach).
  3. Otwórz plik /opt/apigee/apigee-cassandra/conf/cassandra-topology.properties w edytorze. W formularzu powinien być widoczny stary adres IP i ustawienie domyślne:
    192.168.56.101=dc-1:ra-1
    default=dc-1:ra-1

    Zapisz te informacje.

  4. Zmodyfikuj plik /opt/apigee/customer/application/cassandra.properties, aby zmienić stary adres IP na nowy:
    conf_cassandra-topology_topology=192.168.56.103=dc-1:ra-1\ndefault=dc-1:ra-1\n

    Pamiętaj, aby po adresie IP wstawić „\n” i określić te same ustawienia domyślne, które zostały znalezione w kroku 3 powyżej.

  5. Uruchom ponownie Cassandrę:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  6. W razie potrzeby napraw też ZooKeeper (patrz poniżej). W przeciwnym razie uruchom ponownie każdy komponent platformy Apigee, zaczynając od serwera zarządzania.

W przypadku konfiguracji z wieloma węzłami Cassandra (pierścień)

  1. Jeśli zmieniany węzeł jest węzłem początkowym, zmodyfikuj plik /opt/apigee/customer/application/cassandra.properties w każdym systemie w pierścieniu i zmień parametr conf_cassandra_seeds, aby uwzględnić nowy adres IP zmodyfikowanego systemu. Jeśli plik cassandra.properties nie istnieje, utwórz go.
  2. W systemie, który modyfikujesz, edytuj plik /opt/apigee/customer/application/cassandra.properties i zmień te parametry:
    • Skonfiguruj conf_cassandra_listen_address, aby używać nowego adresu IP.
    • Ustaw conf_cassandra_rpc_address tak, aby używać nowego adresu IP lub „0.0.0.0” (co pozwala Cassandra Thrift nasłuchiwać na wszystkich interfejsach).
  3. Otwórz plik /opt/apigee/apigee-cassandra/conf/cassandra-topology.properties w edytorze. Powinny wyświetlić się wszystkie adresy IP Cassandra i ustawienie domyślne w postaci:
    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

    Zapisz te informacje.

  4. Zmodyfikuj plik /opt/apigee/customer/application/cassandra.properties, aby zmienić stary adres IP na nowy:
    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

    Pamiętaj, aby po każdym adresie IP wstawić „\n” i użyć tych samych ustawień domyślnych, które zostały zapisane w kroku 3.

  5. Uruchom ponownie Cassandrę w zmodyfikowanym systemie. Jeśli zmodyfikowany system jest węzłem początkowym, uruchom ponownie każdy system, który używał zmodyfikowanego węzła początkowego.
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  6. Uruchom polecenie nodetool ring na zmodyfikowanym węźle, aby upewnić się, że pierścień jest kompletny. Narzędzie znajdziesz na stronie /opt/apigee/apigee-cassandra/bin.
    nodetool [-u username -pw password] -h localhost ring

    Nazwę użytkownika i hasło musisz podać tylko wtedy, gdy uwierzytelnianie JMX jest włączone w Cassandrze.

  7. Uruchom nodetool repair na zmodyfikowanym węźle. Pamiętaj, że ten proces może trochę potrwać, dlatego zdecydowanie zalecamy, aby nie przeprowadzać go w godzinach szczytu ruchu w interfejsie API.
    nodetool [-u username -pw password] -h localhost repair -pr
  8. Jeśli to konieczne, napraw ZooKeeper (patrz poniżej), a następnie uruchom ponownie każdy komponent platformy Apigee, zaczynając od serwera zarządzania.

Aktualizowanie rejestracji magazynów danych

  1. Znajdź identyfikatory UUID rejestracji magazynu danych, które określają stary adres IP, za pomocą poniższych poleceń. Zwróć uwagę na parametry „type” i „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]'

      Gdzie DC to nazwa centrum danych. W przypadku instalacji w jednym centrum danych wartość to zwykle „dc-1”.

  2. Zarejestruj nowe adresy IP za pomocą jednego z poniższych poleceń. Wymagane polecenie zależy od typu zmienionego węzła.
    • W przypadku 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
    • Dla 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
    • W przypadku 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. Usuń stare rejestracje dla identyfikatora UUID systemu, w którym adres IP został zmieniony. W przypadku każdego z tych identyfikatorów UUID:
    curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers/OLD_UUID" -X DELETE

Zmienianie adresu IP węzła ZooKeeper

Aby zmienić adres IP węzła ZooKeeper, wykonaj te czynności:

Zmień adres IP i ponownie uruchom zespół ZooKeeper (tylko w przypadku konfiguracji zespołu z wieloma węzłami)

  1. Otwórz plik /opt/apigee/apigee-zookeeper/conf/zoo.cfg w edytorze. Powinny się wyświetlić wszystkie adresy IP ZooKeepera i ustawienie domyślne w postaci:
    server.1=192.168.56.101:2888:3888
    server.2=192.168.56.102:2888:3888
    server.3=192.168.56.103:2888:3888

    Zapisz te informacje.

  2. Na każdym węźle ZooKeeper zmodyfikuj plik /opt/apigee/customer/application/zookeeper.properties, aby ustawić właściwość conf_zoo_quorum na prawidłowe adresy IP. Jeśli plik nie istnieje, utwórz go.
    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

    Upewnij się, że po każdym adresie IP wstawiasz „\n” i że wpisy są w tej samej kolejności w każdym węźle.

  3. Znajdź lidera zespołu ZooKeeper, używając tego polecenia (zastąp node adresem IP maszyny ZooKeeper):
    echo srvr | nc node 2181

    Wiersz Mode w danych wyjściowych powinien zawierać słowo „leader”.

  4. Uruchom ponownie ZooKeepery jeden po drugim, zaczynając od lidera, a kończąc na węźle, na którym został zmieniony adres IP. Jeśli więcej niż 1 węzeł zookeeper zmienił adres IP, konieczne może być ponowne uruchomienie wszystkich węzłów.
    /opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
  5. Aby sprawdzić każdy węzeł ZooKeeper, użyj opisanego powyżej polecenia echo.

Poinformuj węzły Apigee o zmienionej konfiguracji.

  1. Na każdym węźle routera zmodyfikuj plik /opt/apigee/customer/application/router.properties w następujący sposób. Jeśli plik nie istnieje, utwórz go.
    • Zmień parametr conf_zookeeper_connection.string, aby uwzględnić nowy adres IP.
    • Zmień parametr conf_zookeeper_zk1.host, aby uwzględnić nowy adres IP.
  2. Na każdym węźle procesora komunikatów zmodyfikuj plik /opt/apigee/customer/application/message-processor.properties w następujący sposób. Jeśli plik nie istnieje, utwórz go.
    • Zmień parametr conf_zookeeper_connection.string, aby uwzględnić nowy adres IP.
    • Zmień parametr conf_zookeeper_zk1.host, aby uwzględnić nowy adres IP.
  3. W węźle serwera zarządzania zmodyfikuj plik /opt/apigee/customer/application/management-server.properties w ten sposób: Jeśli plik nie istnieje, utwórz go.
    • Zmień parametr conf_zookeeper_connection.string, aby uwzględnić nowy adres IP.
    • Zmień parametr conf_zookeeper_zk1.host, aby uwzględnić nowy adres IP.
  4. Uruchom ponownie wszystkie komponenty platformy Apigee, uruchamiając to polecenie w każdym węźle:
    /opt/apigee/apigee-service/bin/apigee-all restart

Zmiana adresu IP serwera LDAP (OpenLDAP)

Aby zmienić adres IP węzła OpenLDAP:

  1. W węźle serwera zarządzania zmodyfikuj plik /opt/apigee/customer/application/management-server.properties. Jeśli plik nie istnieje, utwórz go.
  2. W pliku management-server.properties ustaw parametr conf_security_ldap.server.host na nowy adres IP.
  3. Ponownie uruchom serwer zarządzania:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

Zmiana adresu IP innych typów węzłów Apigee

Aby zmienić adres IP dowolnego z tych typów węzłów (router, procesor komunikatów, serwer Postgres (nie postgresql) i serwer Qpid (nie qpidd):

  1. Użyj tego polecenia curl, aby zarejestrować nowy wewnętrzny i zewnętrzny adres 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

    Gdzie uuid to identyfikator UUID węzła.

Informacje o tym, jak uzyskać identyfikator UUID komponentu, znajdziesz w artykule Uzyskiwanie identyfikatorów UUID.