แอปพลิเคชั่นนี้มีวัตถุประสงค์เพื่อทดแทน udplogbeat แม้ว่าจะค่อนข้างคล้ายกัน แต่ก็มีการปรับปรุงบางอย่างและช่วยให้คุณสามารถเริ่มต้นระบบผ่าน UDP หรือ TCP ได้ มันสามารถทำหน้าที่ยอมรับบันทึกข้อความธรรมดาหรือ JSON และยังทำหน้าที่เป็นการแทนที่ปลายทาง syslog อีกด้วย
ตรวจสอบให้แน่ใจว่าโฟลเดอร์นี้อยู่ที่ตำแหน่งต่อไปนี้: ${GOPATH}/github.com/harfordfive
protologbeat.protocol
: tcp หรือ udp (ค่าเริ่มต้น: udp)protologbeat.address
: ที่อยู่ที่กระบวนการจะเปิดเผย (Deafult: 127.0.0.1)protologbeat.port
: พอร์ตที่กระบวนการจะฟัง (ค่าเริ่มต้น = 5,000)protologbeat.max_message_size
: ขนาดข้อความสูงสุดที่ยอมรับ (ค่าเริ่มต้น = 4096)protologbeat.json_mode
: เปิดใช้งานการบันทึกเฉพาะข้อความที่จัดรูปแบบ JSON (ค่าเริ่มต้น = false)protolog.merge_fields_to_root
: เมื่อเปิดใช้งาน json_mode จะต้องผสานฟิลด์ที่แยกวิเคราะห์เข้ากับระดับรูท (ค่าเริ่มต้น = เท็จ)protologbeat.default_es_log_type
: ประเภท Elasticsearch ที่จะกำหนดให้กับเหตุการณ์หากไม่มีการระบุเหตุการณ์ (ค่าเริ่มต้น: protologbeat)protologbeat.enable_syslog_format_only
: ค่าบูลีนที่ระบุว่าควรยอมรับเฉพาะข้อความ syslog เท่านั้น (ค่าเริ่มต้น = เท็จ)protologbeat.enable_gelf
: ค่าบูลีนที่ระบุว่ากระบวนการควรอยู่ในโหมดเพื่อยอมรับเฉพาะข้อความที่จัดรูปแบบ GELF หรือไม่protologbeat.enable_json_validation
: ค่าบูลีนที่ระบุว่าควรใช้การตรวจสอบความถูกต้องของสคีมา JSON สำหรับข้อความรูปแบบ json
หรือไม่ (ค่าเริ่มต้น = false)protologbeat.validate_all_json_types
: เมื่อเปิดใช้งาน json_mode ระบุว่าทุกประเภทต้องมีการระบุสคีมาหรือไม่ รายการบันทึกประเภทที่ไม่มีสคีมาจะไม่ถูกเผยแพร่ (ค่าเริ่มต้น = เท็จ)protologbeat.json_schema
: แฮชที่ประกอบด้วยประเภท Elasticsearch เป็นคีย์ และพาธไฟล์สคีมาโลคัลสัมบูรณ์เป็นค่า ต่อไปนี้เป็นตัวอย่างของบล็อกการกำหนดค่าสำหรับส่วน protologbeat
สคีมา JSON สามารถสร้างขึ้นได้โดยอัตโนมัติจากออบเจ็กต์ที่นี่: http://jsonschema.net/ คุณยังสามารถดูสกีมา email_contact และ stock_item เป็นตัวอย่างได้
โปรดดูไดเร็กทอรี _samples/
สำหรับตัวอย่างไคลเอนต์ในภาษาต่างๆ
หากต้องการใช้งาน Protologbeat และติดตั้งการขึ้นต่อกันด้วย ให้รันคำสั่งต่อไปนี้:
make setup
มันจะสร้างประวัติคอมไพล์ที่สะอาดสำหรับแต่ละขั้นตอนหลัก โปรดทราบว่าคุณสามารถเขียนประวัติใหม่ได้ตลอดเวลาหากต้องการก่อนที่จะพุชการเปลี่ยนแปลง
หากต้องการส่ง Protologbeat ในพื้นที่เก็บข้อมูล git ให้รันคำสั่งต่อไปนี้:
git remote set-url origin https://github.com/harfordfive/protologbeat
git push origin master
สำหรับการพัฒนาเพิ่มเติม โปรดดูคู่มือนักพัฒนา Beat
หากต้องการสร้างไบนารีสำหรับ Protologbeat ให้รันคำสั่งด้านล่าง สิ่งนี้จะสร้างไบนารีในไดเร็กทอรีเดียวกันกับชื่อ protologbeat
make
หากคุณต้องการสร้างไบนารีสำหรับ OSX, Linux และ/หรือ Windows คุณสามารถเรียกใช้สิ่งต่อไปนี้:
./build-bin [TAG_VERSION]
ไบนารีที่ได้ผลลัพธ์จะถูกวางไว้ในไดเร็กทอรี bin/
หากต้องการรัน Protologbeat โดยเปิดใช้งานเอาต์พุตการดีบัก ให้รัน:
./protologbeat -c protologbeat.yml -e -d "*"
หากต้องการทดสอบ Protologbeat ให้รันคำสั่งต่อไปนี้:
make testsuite
หรืออีกทางหนึ่ง:
make unit-tests
make system-tests
make integration-tests
make coverage-report
รายงานความครอบคลุมการทดสอบในโฟลเดอร์ ./build/coverage/
แต่ละจังหวะมีเทมเพลตสำหรับการแมปใน elasticsearch และเอกสารประกอบสำหรับฟิลด์ที่ถูกสร้างขึ้นโดยอัตโนมัติตาม etc/fields.yml
เพื่อสร้าง etc/protologbeat.template.json และ etc/protologbeat.asciidoc
make update
หากต้องการล้างซอร์สโค้ด Protologbeat ให้รันคำสั่งต่อไปนี้:
make fmt
make simplify
หากต้องการล้างไดเร็กทอรี build และส่วนที่สร้างขึ้น ให้รัน:
make clean
หากต้องการโคลน Protologbeat จากที่เก็บ git ให้รันคำสั่งต่อไปนี้:
mkdir -p ${GOPATH}/github.com/harfordfive
cd ${GOPATH}/github.com/harfordfive
git clone https://github.com/harfordfive/protologbeat
สำหรับการพัฒนาเพิ่มเติม โปรดดูคู่มือนักพัฒนา Beat
คุณสามารถค้นหารูปภาพ Docker สำหรับจังหวะนี้ได้ที่นี่ โปรดทราบว่าคอนเทนเนอร์เริ่มต้นด้วยการกำหนดค่าพื้นฐานที่รับฟังโปรโตคอล/ที่อยู่/พอร์ตเริ่มต้น และยอมรับข้อความธรรมดา สำหรับการปรับแต่งใดๆ โปรดแก้ไขตัวอย่างการกำหนดค่า protologbeat.full.yml และสร้างไฟล์ Docker ของคุณเองที่จะเขียนทับไฟล์ต้นฉบับ
กรอบจังหวะมีเครื่องมือในการคอมไพล์และจัดแพคเกจจังหวะของคุณสำหรับแพลตฟอร์มต่างๆ สิ่งนี้ต้องใช้นักเทียบท่าและผู้จำหน่ายตามที่อธิบายไว้ข้างต้น หากต้องการสร้างแพ็คเกจตามจังหวะของคุณ ให้รันคำสั่งต่อไปนี้:
make package
การดำเนินการนี้จะดึงและสร้างอิมเมจทั้งหมดที่จำเป็นสำหรับกระบวนการสร้าง กระบวนการเจาะรูให้เสร็จสิ้นอาจใช้เวลาหลายนาที