2016-07-22 20 views
8

Chúng tôi có chính sách phân đoạn mạng khá nghiêm ngặt. Tôi đang sử dụng một cá thể đúc đám mây để triển khai một ứng dụng. Các quy tắc tường lửa đã được thiết lập để tiếp cận cụm kafka từ trong cá thể đúc đám mây. Tôi tin rằng các quy tắc tường lửa cũng đã được thiết lập để có được cá thể sở thú là tốt. Tôi cần phải xác nhận điều đó.Quy tắc Kafka và tường lửa

Vấn đề của tôi dường như là tôi có thể sản xuất tin nhắn cho kafka, nhưng người tiêu dùng của tôi dường như không chọn chúng. Nó dường như treo trong khi "bỏ phiếu".

Có một số máy chủ hoặc cổng ẩn mà tôi cần xử lý cho các quy tắc tường lửa không chỉ là các máy chủ và cổng tiêu chuẩn cho các nút kafka và zookeeper?

+0

Danh sách các cổng mà bạn đã mở để giao tiếp trong Kafka và cá thể sở thú trong Quy tắc AWS là gì? –

+0

Chúng tôi không sử dụng AWS, nhưng họ được cho là đã thực hiện truy cập từ các thiết bị đám mây đến các cổng 9091, 9092, 2181. Hai cái đầu tiên là kafka. Người cuối cùng là sở thú. –

+2

Bạn có đang chạy kafka theo thiết lập cụm hoặc độc lập không? Nếu cluster, sau đó mở các cổng '2888 & 3888'. Sử dụng cổng là, ** 2181 ** cho các kết nối máy khách; ** 2888 ** cho các kết nối người theo dõi, nếu họ là người dẫn đầu; và ** 3888 ** cho các kết nối máy chủ khác trong giai đoạn bầu cử lãnh đạo. Để biết thêm thông tin, hãy sử dụng [link] này (https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.2/bk_HDP_Reference_Guide/content/zookeeper-ports.html) –

Trả lời

2

TL; DR: Không có cổng ẩn. Kiểm tra cấu hình môi giới của bạn. Hãy chắc chắn rằng nó quảng cáo IP/PORT có thể truy cập bởi người tiêu dùng Kafka.


Tôi đã xem qua câu hỏi này sau khi gặp vấn đề tương tự với Kafka 0.10.1.1 với thư viện kafka-python là người tiêu dùng.

No. Tôi đã chụp lưu lượng truy cập mạng và không sử dụng bất kỳ cổng nào khác để liên lạc với Kafka. Nếu các nhà môi giới được cấu hình để sử dụng 9092, nó sẽ là cổng duy nhất được sử dụng bởi người tiêu dùng.

Nhưng khi điều tra thêm, cấu hình môi giới có lỗi trong trường hợp của tôi.

kafka.advertised.listeners = Plaintext: // [private_ip]: 9092, SSL: // [public_ip]: 9093 kafka.listeners = Plaintext: //0.0.0.0: 9092, SSL: // 0.0.0.0:9093

tôi đã sử dụng [public_ip]: 9092 như một máy chủ bootstrap vì tôi không có PKI thành lập nhưng tôi muốn kiểm tra người tiêu dùng của tôi từ internet công cộng.

Người tiêu dùng có thể kết nối với nhà môi giới nhưng không thể lấy bất kỳ tin nhắn nào.

Vì người tiêu dùng kết nối với Kafka bằng PLAINTEXT, Kafka đã quảng cáo địa chỉ môi giới PLAINTEXT thay vì địa chỉ SSL. Người tiêu dùng sau đó đã cố gắng tiếp cận các nhà môi giới Kafka bằng cách sử dụng địa chỉ IP riêng thay vì địa chỉ công cộng. (được tiết lộ bằng cách thu thập mạng thô)

Sau khi PKI được bật và được định cấu hình ở các công ty môi giới & khách hàng, tôi có thể lấy tin nhắn từ internet công cộng.

+0

Câu trả lời này gây hiểu lầm. Trong khi chính xác cho các cá thể Kafka độc lập, nó không tính đến việc khi chạy trong một cụm Kafka cũng cần các cổng 2888 và 3888 cho các kết nối đi theo và cuộc bầu cử lãnh đạo. Câu hỏi là về một cụm Kafka, không phải là một cá thể độc lập. –

2

Kafka và sở thú là những thứ khác nhau. Nếu bạn đang chạy cả hai trên cùng một máy, bạn cần phải mở cả hai cổng, của corse.

cổng Kafka mặc định:

  • 9092, có thể được thay đổi trên máy chủ.tính chất;

cổng Zookeeper mặc định:

  • 2181 cho các kết nối khách hàng;
  • 2888 đối với người theo dõi (các nút khác của vườn thú);
  • 3888 cho các kết nối nút liên;

Vậy đó.

Kafka, cũng có ngheadvertised.listeners tính mà phát triển một số nhầm lẫn về người dùng đầu tiên. Để đơn giản, người nghe là giao diện mạng mà máy chủ của bạn sẽ ràng buộc và được quảng cáo.listeners là tên máy chủ hoặc IP máy chủ của bạn sẽ tự đăng ký vào trình quản lý và lắng nghe yêu cầu. Nếu bạn đặt một tên máy chủ trong đó, khách hàng của bạn S have phải sử dụng tên máy chủ để kết nối. advertised.listeners url là địa chỉ mà khách hàng của bạn sẽ sử dụng để khởi động kết nối. Sau khi kết nối được thực hiện, khách hàng của bạn sẽ nhận được một kết nối đến sở thú để có được các url môi giới khác. Nhà sản xuất của bạn không hoạt động vì điều đó.

Vì vậy, để làm cho nó hoạt động, bạn cần phải mở 2888 trên tường lửa của bạn quá, không chỉ 2181. Và @Jaya Ananthram là sai khi ông nói với bạn rằng kafka cần 2181 cổng. Đó là một cảng vườn thú. Người tiêu dùng trên máy ảnh tĩnh 0,01 kafka cần liên lạc với người quản lý để duy trì một số thứ, đó là nó.

Kafka 0.11.0.0 đã thay đổi điều này và khiến khách hàng không cần người nuôi thú.

Các vấn đề liên quan