Việc di chuyển các thành phần từ máy này sang máy khác có thể gây ra lỗi không khớp cấu hình nếu bạn không đồng bộ hoá địa chỉ IP trong tệp cấu hình thành phần.
Phần này mô tả cách chẩn đoán và khắc phục lỗi không khớp về cấu hình.
Địa chỉ IP so với tên máy chủ lưu trữ
Bạn nên sử dụng địa chỉ IP thay vì tên máy chủ lưu trữ trong tệp cấu hình thành phần.
Mặc dù một số tệp cấu hình thành phần cho phép bạn sử dụng tên máy chủ lưu trữ thay vì địa chỉ IP, nhưng việc sử dụng tên máy chủ lưu trữ có thể khiến việc khắc phục sự cố trở nên phức tạp. Ví dụ: tên máy chủ lưu trữ có thể là nguồn gốc của các vấn đề liên quan đến khả năng kết nối của máy chủ DNS, lỗi tra cứu và đồng bộ hoá.
Do đó, Apigee đặc biệt khuyến khích bạn sử dụng địa chỉ IP cho tất cả cấu hình thành phần. Trong một số trường hợp, chẳng hạn như với Cassandra, bạn phải sử dụng địa chỉ IP và không thể sử dụng tên máy chủ lưu trữ. Hầu hết các ví dụ trong tài liệu đều sử dụng địa chỉ IP để định cấu hình thành phần.
Đối với tên máy chủ lưu trữ và địa chỉ IP, hãy cân nhắc ý nghĩa của các trường hợp sau khi di chuyển máy chủ Apigee:
| Trường hợp | Tác động đến việc di chuyển máy chủ |
|---|---|
| Thay đổi địa chỉ IP | Cập nhật tất cả các tệp liên quan có tham chiếu đến địa chỉ IP ban đầu |
| Thay đổi tên máy chủ mà không thay đổi địa chỉ IP | Không ảnh hưởng gì |
| Thay đổi tên máy chủ cùng với thay đổi địa chỉ IP | Tương tự như thay đổi địa chỉ IP |
Thay đổi địa chỉ IP của nút Cassandra
Để thay đổi địa chỉ IP của một nút Cassandra, hãy thực hiện các bước sau:
Đối với cấu hình có một nút Cassandra
- Chỉnh sửa
/opt/apigee/customer/application/cassandra.propertiestrên hệ thống đang được sửa đổi. Nếu tệp không tồn tại, hãy tạo tệp. - Thay đổi các tham số sau:
- Đặt các tham số
conf_cassandra_seedsvàconf_cassandra_listen_addressđể chỉ định địa chỉ IP mới của hệ thống. - Thay đổi
conf_cassandra_rpc_addressđể sử dụng địa chỉ IP mới hoặc 0.0.0.0 (cho phép Cassandra Thrift nghe trên tất cả giao diện).
- Đặt các tham số
- Mở
/opt/apigee/apigee-cassandra/conf/cassandra-topology.propertiestrong trình chỉnh sửa. Bạn sẽ thấy địa chỉ IP cũ và chế độ cài đặt mặc định trong biểu mẫu:192.168.56.101=dc-1:ra-1 default=dc-1:ra-1
Lưu thông tin đó.
- Chỉnh sửa
/opt/apigee/customer/application/cassandra.propertiesđể thay đổi địa chỉ IP cũ đã chỉ định thành địa chỉ IP mới:conf_cassandra-topology_topology=192.168.56.103=dc-1:ra-1\ndefault=dc-1:ra-1\n
Đảm bảo rằng bạn chèn "\n" sau địa chỉ IP và chỉ định cùng một chế độ cài đặt mặc định như bạn đã tìm thấy ở trên trong Bước 3.
- Khởi động lại Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Nếu cần, hãy sửa cả ZooKeeper (xem bên dưới), nếu không, hãy khởi động lại mọi thành phần của nền tảng Apigee, bắt đầu từ Máy chủ quản lý.
Đối với các cấu hình có nhiều nút Cassandra (vòng)
- Nếu nút đang được thay đổi là nút gốc, hãy chỉnh sửa tệp
/opt/apigee/customer/application/cassandra.propertiestrên mỗi hệ thống trong vòng và thay đổi tham sốconf_cassandra_seedsđể bao gồm IP mới của hệ thống đã sửa đổi. Nếu tệp cassandra.properties không tồn tại, hãy tạo tệp đó. - Chỉnh sửa
/opt/apigee/customer/application/cassandra.propertiestrên hệ thống đang được sửa đổi và thay đổi các tham số sau:- Đặt
conf_cassandra_listen_addressđể sử dụng địa chỉ IP mới. - Đặt
conf_cassandra_rpc_addressđể sử dụng địa chỉ IP mới hoặc "0.0.0.0" (cho phép Cassandra Thrift nghe trên tất cả giao diện).
- Đặt
- Mở
/opt/apigee/apigee-cassandra/conf/cassandra-topology.propertiestrong trình chỉnh sửa. Bạn sẽ thấy tất cả địa chỉ IP của Cassandra và chế độ cài đặt mặc định ở dạng: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
Lưu thông tin đó.
- Chỉnh sửa
/opt/apigee/customer/application/cassandra.propertiesđể thay đổi địa chỉ IP cũ đã chỉ định thành địa chỉ IP mới: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
Đảm bảo rằng bạn chèn "\n" sau mỗi địa chỉ IP và sử dụng cùng một chế độ cài đặt mặc định như bạn đã ghi lại ở trên trong Bước 3.
- Khởi động lại Cassandra trên hệ thống đã sửa đổi. Nếu hệ thống đã sửa đổi là một nút gốc, hãy khởi động lại từng hệ thống đã sử dụng nút gốc đã sửa đổi.
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- Chạy lệnh
nodetool ringtrên nút đã sửa đổi để đảm bảo vòng đã hoàn tất. Bạn có thể tìm thấy tiện ích này tại/opt/apigee/apigee-cassandra/bin.nodetool [-u username -pw password] -h localhost ring
Bạn chỉ cần truyền tên người dùng và mật khẩu nếu đã bật tính năng xác thực JMX cho Cassandra.
- Chạy
nodetool repairtrên nút đã sửa đổi. Xin lưu ý rằng quá trình này có thể mất một chút thời gian, vì vậy, bạn không nên thực hiện quá trình này trong giờ cao điểm của lưu lượng truy cập API.nodetool [-u username -pw password] -h localhost repair -pr
- Nếu cần, hãy sửa chữa ZooKeeper (xem bên dưới), sau đó khởi động lại mọi thành phần của nền tảng Apigee, bắt đầu từ Máy chủ quản lý.
Cập nhật thông tin đăng ký kho dữ liệu
- Tìm UUID của các lượt đăng ký kho dữ liệu chỉ định địa chỉ IP cũ bằng cách sử dụng các lệnh bên dưới. Hãy lưu ý các tham số "type" và "UUID":
-
curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=central®ion=DC" | egrep -i '[type|internalip|uuid|region]'
-
curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=gateway®ion=DC" | egrep -i '[type|internalip|uuid|region]'
-
curl -u ADMINEMAIL:PW "http://$MSIP:$port/v1/servers?pod=analytics®ion=DC" | egrep -i '[type|internalip|uuid|region]'
Trong đó DC là tên trung tâm dữ liệu. Trong một bản cài đặt trung tâm dữ liệu, giá trị thường là "dc-1".
-
- Đăng ký địa chỉ IP mới bằng một trong các lệnh bên dưới. Lệnh cần thiết sẽ phụ thuộc vào loại nút đã thay đổi.
- Đối với type="application-datastore":
curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers -d \ "Type=application-datastore&Type=audit-datastore&InternalIP=NEWIP®ion=REGION&pod=central" \ -H 'content-type: application/x-www-form-urlencoded' -X POST
- Đối với 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®ion=REGION&pod=GATEWAY_POD" -H 'content-type: \ application/x-www-form-urlencoded' -X POST
- Đối với type="reportcrud-datastore":
curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers" -d \ "Type=reportcrud-datastore&InternalIP=NEW_IP®ion=REGION&pod=analytics" \ -H 'content-type: application/x-www-form-urlencoded' -X POST
- Đối với type="application-datastore":
- Xoá các bản đăng ký cũ cho UUID của hệ thống có địa chỉ IP đã thay đổi. Đối với mỗi UUID này, hãy phát hành:
curl -u ADMINEMAIL:PW "http://MSIP:port/v1/servers/OLD_UUID" -X DELETE
Thay đổi địa chỉ IP của nút ZooKeeper
Hãy làm theo các bước dưới đây để thay đổi địa chỉ IP của nút ZooKeeper:
Thay đổi địa chỉ IP và khởi động lại nhóm ZooKeeper (chỉ dành cho cấu hình nhóm nhiều nút)
- Mở
/opt/apigee/apigee-zookeeper/conf/zoo.cfgtrong trình chỉnh sửa. Bạn sẽ thấy tất cả địa chỉ IP của ZooKeeper và chế độ cài đặt mặc định ở dạng:server.1=192.168.56.101:2888:3888 server.2=192.168.56.102:2888:3888 server.3=192.168.56.103:2888:3888
Lưu thông tin đó.
- Trên mỗi nút ZooKeeper, hãy chỉnh sửa tệp
/opt/apigee/customer/application/zookeeper.propertiesđể đặt thuộc tínhconf_zoo_quorumthành địa chỉ IP chính xác. Nếu tệp không tồn tại, hãy tạo tệp.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
Đảm bảo rằng bạn chèn "\n" sau mỗi địa chỉ IP và các mục nhập theo cùng thứ tự trên mỗi nút.
- Tìm nút dẫn đầu của nhóm ZooKeeper bằng lệnh sau (thay node bằng địa chỉ IP của máy Zookeeper):
echo srvr | nc node 2181
Dòng Chế độ trong kết quả sẽ có nội dung "leader".
- Khởi động lại từng ZooKeeper, bắt đầu bằng nút dẫn đầu và kết thúc bằng nút có địa chỉ IP đã thay đổi. Nếu có nhiều nút zookeeper thay đổi địa chỉ IP, bạn có thể cần phải khởi động lại tất cả các nút.
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper restart
- Sử dụng lệnh
echođược mô tả ở trên để xác minh từng nút ZooKeeper.
Thông báo cho các nút Apigee về cấu hình đã thay đổi
- Trên mỗi nút Bộ định tuyến, hãy chỉnh sửa tệp
/opt/apigee/customer/application/router.propertiesnhư sau. Nếu tệp không tồn tại, hãy tạo tệp.- Thay đổi tham số
conf_zookeeper_connection.stringđể thêm địa chỉ IP mới - Thay đổi tham số
conf_zookeeper_zk1.hostđể thêm địa chỉ IP mới
- Thay đổi tham số
- Trên mỗi nút Bộ xử lý thông báo, hãy chỉnh sửa tệp
/opt/apigee/customer/application/message-processor.propertiesnhư sau. Nếu tệp không tồn tại, hãy tạo tệp.- Thay đổi tham số
conf_zookeeper_connection.stringđể thêm địa chỉ IP mới - Thay đổi tham số
conf_zookeeper_zk1.hostđể thêm địa chỉ IP mới
- Thay đổi tham số
- Trên nút Máy chủ quản lý, hãy chỉnh sửa tệp
/opt/apigee/customer/application/management-server.propertiesnhư sau. Nếu tệp không tồn tại, hãy tạo tệp.- Thay đổi tham số
conf_zookeeper_connection.stringđể thêm địa chỉ IP mới - Thay đổi tham số
conf_zookeeper_zk1.hostđể thêm địa chỉ IP mới
- Thay đổi tham số
- Khởi động lại tất cả thành phần của nền tảng Apigee bằng cách chạy lệnh sau trên mỗi nút:
/opt/apigee/apigee-service/bin/apigee-all restart
Thay đổi địa chỉ IP của máy chủ LDAP (OpenLDAP)
Để thay đổi địa chỉ IP của một nút OpenLDAP, hãy làm như sau:
- Trên nút Máy chủ quản lý, hãy chỉnh sửa tệp
/opt/apigee/customer/application/management-server.properties. Nếu tệp không tồn tại, hãy tạo tệp. - Trong tệp
management-server.properties, hãy đặt tham sốconf_security_ldap.server.hostthành địa chỉ IP mới. - Khởi động lại Máy chủ quản lý:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
Thay đổi địa chỉ IP của các loại nút Apigee khác
Cách thay đổi địa chỉ IP của bất kỳ loại nút nào sau đây (Bộ định tuyến, Bộ xử lý thông báo, Máy chủ Postgres (không phải postgresql) và Máy chủ Qpid (không phải qpidd):
- Sử dụng lệnh
curlsau đây để đăng ký địa chỉ IP nội bộ và địa chỉ IP bên ngoài mới: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=ipTrong đó, uuid là UUID của nút.
Để biết thông tin về cách lấy UUID của một thành phần, hãy xem bài viết Lấy UUID.