Elaticsearch chết khi Logstash cố gắng ghi dữ liệu


9

Tôi đã có một thiết lập Raspberry Pi 2 (Raspbian mới nhất kể từ tháng 4 năm 2015) mà tuần trước đã chạy cả ElasticSearch và Logstash trên mạng thử nghiệm (không phải là thiết lập đơn giản, nhưng nó ổn định trong hơn một tuần!). Tôi đã khởi động lại máy của mình ngày hôm nay và đã có một thời gian thực sự khó khăn để mọi thứ chạy lại; Cả ES và LS đều sẽ chạy độc lập, nhưng khi tôi cố gắng đẩy đầu ra LS vào ES thì cá thể ES chết mà không có lời giải thích. Mục tiêu của tôi là có được cả việc chạy và LS bơm dữ liệu vào ES thông qua plugin đầu ra tiêu chuẩn.

Tìm kiếm đàn hồi [v1.5.0]

Tôi tin rằng đây là vấn đề cốt lõi. ES có thể khởi động thông qua service elasticsearch startvà vẫn chạy, có thể truy cập thông qua các yêu cầu HTTP đến cổng 9200 và tất cả các dấu hiệu của cuộc sống dường như khỏe mạnh. Ngay khi một cái gì đó (bất cứ điều gì, theo như tôi có thể nói) cố gắng ghi dữ liệu vào một chỉ mục, quá trình sẽ chết và gỡ lỗi nhật ký @ / var / log / elSTERearch / * không chứa bất cứ điều gì liên quan đến lỗi dịch vụ. Tôi đã thử chèn thông qua logstash (xem bên dưới) cũng như với curl, cả hai đều chấm dứt quá trình ES. Lệnh curl tôi đang chạy là curl -XPOST "http://localhost:9200/logstash-2015.04.05/records/" -d "{ \"type\" : \"specialRecord\" }".

Đăng nhập [v1.4.2]

Tôi hiện đang chạy với cấu hình đơn giản này:

input {
    stdin { }
}

output {
        stdout { codec => rubydebug }
        elasticsearch {
                host => '127.0.0.1'
                cluster => 'elasticsearch'
        }
}

Ghi chú khác

Một số điều tôi đã thử:

  • Tôi đã thử tăng cấp độ ghi nhật ký cho Tìm kiếm đàn hồi thành DEBUG / TRACE và kết quả đầu ra không đáng quan tâm. Rất vui được cung cấp nhật ký nếu nó hữu ích.

  • Tôi đã thử cung cấp cho ES 256 MB và 512 MB dung lượng heap, dường như không ảnh hưởng gì. Tôi cũng đã xem việc sử dụng bộ nhớ trong tất cả những điều này và hết bộ nhớ dường như không phải là vấn đề.

  • Tôi đã cố gắng vô hiệu hóa phát đa hướng để cố gắng loại bỏ một loạt các biến mạng nhưng điều đó dường như không tạo ra sự khác biệt.

  • Tôi đã đảm bảo rằng thư mục dữ liệu cho ES có nhiều không gian, quyền ghi, v.v. ES tạo thư mục con trong thư mục path.datakhi được tải nhưng tôi không tin bất cứ điều gì được thêm vào kể từ khi tôi khởi động lại quá trình ES, các số liệu thống kê chỉ mục cho thấy rằng tổng số tài liệu bằng không.

Bây giờ tôi khá bối rối và thất vọng vì không có gì tôi cần (hoặc ít nhất là có thể tìm thấy) đang được ghi lại. Bất kỳ ý tưởng về những gì có thể xảy ra ở đây?


Nếu bạn không nhận được bất cứ điều gì hữu ích từ nhật ký, thì tùy chọn duy nhất (ngoài việc biên dịch từ nguồn và thêm nhiều câu lệnh gỡ lỗi) dường như đang sử dụng strace để xem các cuộc gọi hệ thống. Điều đó có thể cung cấp cho bạn một gợi ý về lý do tại sao elaticsearch đang chết. Để giảm âm lượng, hãy bắt đầu như bình thường và sau đó tiến hành quá trình chạy ngay trước khi bạn bắt đầu ghi.
Paul Haldane

Có một sự cố mà không có bất kỳ nhật ký nào nhắc nhở tôi về các vấn đề của JNI, đó có phải là một quy trình xử lý JVM ( hs_err_PID.log) không? ES 1.5 sử dụng một thư viện riêng có tên Sigar để theo dõi, nó có thể có vấn đề với ARM của Raspberry. Bạn có thể cố gắng tự chạy Sigar không? Tôi sẽ cố nâng cấp lên ES 1.5.2 hoặc ES 2.0 không sử dụng Sigar nữa.
G Quintana

Bạn đã tắt trao đổi?
Rumble

Elaticsearch khuyên dùng ram 8G để bắt đầu. Tôi đã từng chạy nó trên Raspberry Pi 3. Nó hoạt động, nhưng bạn cần cẩn thận một chút với tốc độ bạn gửi dữ liệu và các truy vấn có thể mất một chút thời gian.
webwurst

Câu trả lời:


1

Bạn cần thêm phần cứng

Raspi của bạn có thể (đáng kể) được cung cấp cho khối lượng công việc của bạn.

Tôi không phải là một chuyên gia về đàn hồi, nhưng tôi đã thiết lập nó trong một số tình huống thử nghiệm và cho việc sử dụng sản xuất hạn chế / nhẹ. Theo kinh nghiệm của tôi, trong khi thiết lập ban đầu đòi hỏi tương đối ít tài nguyên, vì số lượng chỉ mục tăng lên, hệ thống tạo ra nhiều IO và tải CPU hơn đáng kể.

Điều này đặc biệt rõ ràng sau khi khởi động lại trong khi hệ thống đang phục hồi các mảnh vỡ. Nếu các chỉ mục của bạn không quá lớn, bạn có thể xem xét các thùng hàng tháng thay vì các thùng hàng ngày mặc định, điều này có vẻ hữu ích trong vấn đề này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.