Elasticsearch ตายเมื่อ Logstash พยายามเขียนข้อมูล


9

ฉันได้ติดตั้ง Raspberry Pi 2 (Raspbian ล่าสุดเมื่อเดือนเมษายน 2015) ที่สัปดาห์ที่แล้วใช้ทั้ง ElasticSearch และ Logstash บนเครือข่ายทดสอบ (ไม่ใช่การตั้งค่าที่ตรงไปตรงมา ฉันรีบูทเครื่องของฉันวันนี้และมีเวลายากมากที่จะได้รับสิ่งที่ทำงานอีกครั้ง; ES และ LS ทั้งสองจะทำงานอย่างอิสระ แต่เมื่อฉันพยายามที่จะผลักดันเอาท์พุท LS ลงใน ES อินสแตนซ์ ES ตายโดยไม่มีคำอธิบาย เป้าหมายของฉันคือให้ทั้งการทำงานและการปั๊มข้อมูลลงใน ES ผ่านปลั๊กอินเอาต์พุตมาตรฐาน

ElasticSearch [v1.5.0]

ฉันเชื่อว่านี่คือสิ่งที่เป็นปัญหาหลัก ES สามารถเริ่มทำงานผ่านservice elasticsearch startและยังคงทำงานอยู่สามารถเข้าถึงได้ผ่านคำขอ HTTP ไปยังพอร์ต 9200 และสัญญาณชีวิตทั้งหมดดูดี ทันทีที่บางสิ่ง (ทุกอย่างที่ฉันสามารถบอกได้) พยายามเขียนข้อมูลไปยังดัชนีกระบวนการจะตายและดีบักล็อก @ / var / log / elasticsearch / * ไม่มีสิ่งใดที่เกี่ยวข้องกับความล้มเหลวของบริการ ฉันได้พยายามแทรกผ่าน logstash (ดูด้านล่าง) เช่นเดียวกับ curl ซึ่งทั้งสองอย่างนี้ยุติกระบวนการ ES curl -XPOST "http://localhost:9200/logstash-2015.04.05/records/" -d "{ \"type\" : \"specialRecord\" }"คำสั่งขดฉันทำงานเป็น

Logstash [v1.4.2]

ฉันกำลังใช้งานการกำหนดค่าแบบง่าย ๆ นี้:

input {
    stdin { }
}

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

บันทึกอื่น ๆ

บางสิ่งที่ฉันได้ลอง:

  • ฉันได้ลองเพิ่มระดับการบันทึกสำหรับ ElasticSearch ถึง DEBUG / TRACE และผลลัพธ์ไม่น่าสนใจอย่างน่าทึ่ง ยินดีที่จะให้บันทึกถ้ามันจะเป็นประโยชน์

  • ฉันพยายามให้ ES 256MB และ 512MB ของพื้นที่กองซึ่งดูเหมือนจะไม่ส่งผลกระทบอะไรเลย ฉันเคยดูการใช้งานหน่วยความจำในระหว่างนี้ทั้งหมดและหน่วยความจำหมดดูเหมือนจะไม่เป็นปัญหา

  • ฉันได้ลองปิดการใช้งานมัลติคาสต์เพื่อพยายามกำจัดตัวแปรเครือข่ายมากมาย แต่นั่นก็ไม่ได้สร้างความแตกต่าง

  • ฉันแน่ใจว่าไดเรกทอรีข้อมูลสำหรับ ES มีพื้นที่มากมายเขียนสิทธิ์ ฯลฯ ES สร้างไดเรกทอรีย่อยในpath.dataไดเรกทอรีเมื่อโหลด แต่ฉันไม่เชื่อว่าจะมีการเพิ่มอะไรอีกตั้งแต่เมื่อฉันรีสตาร์ทกระบวนการ ES สถิติดัชนีแนะนำว่า จำนวนเอกสารทั้งหมดเป็นศูนย์

ตอนนี้ฉันค่อนข้างนิ่งงันและผิดหวังที่ไม่มีสิ่งใดที่ฉันต้องการ (หรืออย่างน้อยฉันสามารถค้นหา) กำลังถูกบันทึก ความคิดใด ๆ เกี่ยวกับสิ่งที่อาจเกิดขึ้นที่นี่?


หากคุณไม่ได้รับประโยชน์อะไรจากบันทึกตัวเลือกเดียว (นอกเหนือจากการรวบรวมจากแหล่งที่มาและเพิ่มงบ debug เพิ่มเติม) ดูเหมือนว่าจะใช้ strace เพื่อดูการโทรของระบบ นั่นอาจให้คำใบ้แก่คุณว่าทำไมอีลาสติคจึงกำลังจะตาย หากต้องการลดระดับเสียงให้เริ่มต้นตามปกติจากนั้น strace กระบวนการทำงานก่อนที่คุณจะเริ่มต้นการเขียน
Paul Haldane

การมีข้อผิดพลาดโดยไม่มีบันทึกใด ๆ ทำให้ฉันนึกถึงปัญหา JNI ไม่มีการถ่ายโอนข้อมูลกระบวนการ JVM ( hs_err_PID.log) หรือไม่ ES 1.5 ใช้ไลบรารีดั้งเดิมที่ชื่อว่า Sigar เพื่อตรวจสอบอาจมีปัญหากับ ARM ของ Raspberry คุณลองใช้ Sigar ด้วยตัวเองได้ไหม? ฉันจะพยายามอัพเกรดเป็น ES 1.5.2 หรือ ES 2.0 ซึ่งไม่ใช้ Sigar อีกต่อไป
G Quintana

คุณปิดการแลกเปลี่ยนหรือไม่
Rumbles

Elasticsearch แนะนำให้ 8G ram เริ่มต้นด้วย ฉันเคยใช้มันกับ Raspberry Pi 3 มันใช้งานได้ แต่คุณต้องระวังความเร็วในการส่งข้อมูลและแบบสอบถามอาจต้องใช้เวลาสักหน่อย
webwurst

คำตอบ:


1

คุณต้องการฮาร์ดแวร์เพิ่มเติม

Raspi ของคุณอาจอยู่ภายใต้การขับเคลื่อนสำหรับภาระงานของคุณ

ฉันไม่ได้เป็นผู้เชี่ยวชาญ Elasticstack แต่ฉันได้ตั้งค่าในสถานการณ์การทดสอบหลายครั้งและสำหรับการใช้งานแบบ จำกัด / การใช้แสง จากประสบการณ์ของฉันในขณะที่การตั้งค่าเริ่มต้นต้องการทรัพยากรที่ค่อนข้างน้อยเนื่องจากจำนวนดัชนีที่เพิ่มขึ้นระบบจะสร้างดิสก์ IO และโหลด CPU มากขึ้นอย่างมีนัยสำคัญ

โดยเฉพาะอย่างยิ่งหลังจากรีสตาร์ทในขณะที่ระบบกู้คืนเศษ หากดัชนีของคุณไม่ใหญ่เกินไปคุณสามารถพิจารณารายเดือนถังแทนการเริ่มต้นรายวันถังซึ่งดูเหมือนว่าจะช่วยในเรื่องนี้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.