เปิดใช้การหมุนเวียนบันทึกสําหรับคอมโพเนนต์ Edge

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

ใน Edge สำหรับ Private Cloud ไฟล์บันทึกหลักบางไฟล์ในคอมโพเนนต์ apigee แต่ละรายการจะได้รับการกำหนดค่าด้วยกลไกการหมุนเริ่มต้น ตัวอย่างเช่น ในคอมโพเนนต์โปรแกรมประมวลผลข้อความ ไฟล์ต่อไปนี้จะได้รับการกำหนดค่าด้วยกลไกการหมุนเริ่มต้นโดยใช้ Logback

  • /opt/apigee/var/log/edge-message-processor/logs/system.log
  • /opt/apigee/var/log/edge-message-processor/logs/events.log
  • /opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log
  • /opt/apigee/var/log/edge-message-processor/logs/configurations.log
  • /opt/apigee/var/log/edge-message-processor/logs/transactions.log

ไฟล์ที่คล้ายกันสำหรับคอมโพเนนต์ edge-* อื่นๆ (ซึ่งมีชื่อขึ้นต้นด้วย edge-) เช่น edge-management-server, edge-router, edge-postgres-server และ edge-qpid-server

คอมโพเนนต์ edge-* แต่ละรายการเหล่านี้จะสร้างไฟล์บันทึกเพิ่มเติม ซึ่งเป็นเอาต์พุตที่มีการเปลี่ยนเส้นทางของคอนโซลคอมโพเนนต์ที่เกี่ยวข้อง ในกรณีของคอมโพเนนต์ตัวประมวลผลข้อความ ไฟล์นี้จะเรียกว่า /opt/apigee/var/log/edge-message-processor/edge-message-processor.log คอมโพเนนต์ edge-* อื่นๆ จะสร้างไฟล์ที่คล้ายกัน ไลบรารีตัวบันทึกไม่ได้ดำเนินการหมุนเวียนไฟล์เหล่านี้ แต่ใช้ logrotate และ crontab แทน

ก่อนเริ่มต้น

เปิดใช้การหมุนเวียนบันทึก

เริ่มตั้งแต่ Edge สำหรับ Private Cloud เวอร์ชัน 4.52 เมื่อคุณติดตั้งคอมโพเนนต์ edge-* ระบบจะสร้างรายการ crontab สำหรับการหมุนเวียนบันทึกนี้ขึ้นโดยอัตโนมัติใน crontab ของผู้ใช้ apigee งาน Cron นี้จะทำงานทุกชั่วโมงโดยค่าเริ่มต้น และใช้ยูทิลิตี logrotate เพื่อหมุนเวียนบันทึก หากมีการติดตั้งคอมโพเนนต์ edge-* หลายรายการในโหนดเดียวกัน (เช่น ในการติดตั้งแบบออลอินวัน หรือหากมีการติดตั้งเราเตอร์และผู้ประมวลผลข้อความในโหนดเดียว) คอมโพเนนต์ทั้งหมดจะมีรายการ cron ของตัวเองสำหรับการหมุนเวียนบันทึกที่เกี่ยวข้อง

Notes:

  • หากในระหว่างการติดตั้งคอมโพเนนต์ edge-* คุณไม่ต้องการตั้งค่า cronjob ของ logrotate โดยอัตโนมัติ ให้ตั้งค่าแฟล็ก “ENABLE_LOGROTATE=n” ในไฟล์การกำหนดค่าแบบเงียบที่คุณใช้สำหรับการติดตั้ง หากงาน cron ไม่ได้ตั้งค่าในระหว่างการติดตั้ง คุณตั้งค่างาน cron ในภายหลังได้โดยทำตามขั้นตอนเพื่อเปิดใช้ cron ของ logrotate
  • สำหรับคอมโพเนนต์ edge-router งาน cron ของ logrotate เพิ่มเติมจะได้รับการกำหนดค่าโดยค่าเริ่มต้นด้วย Cron นี้จะหมุนเวียนบันทึกการเข้าถึงและบันทึกข้อผิดพลาดที่สร้างโดย Nginx

ตัวอย่างต่อไปนี้แสดงการกำหนดค่าและการดำเนินการดูแลระบบที่คุณทำได้แบบต่างๆ

ดูรายการ Cron ในโหนด

sudo crontab -u apigee -l

ดูรายการ cron logrotate ของคอมโพเนนต์

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -s

ตัวอย่างเช่น logrotate cron ของ edge-message-processor ให้เรียกใช้:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -s

ดูการกำหนดค่า logrotate ของคอมโพเนนต์

ดูการกำหนดค่า logrotate ของคอมโพเนนต์ได้ในไฟล์ $APIGEE_ROOT/<component>/logrotate/logrotate.conf เช่น ในกรณีของ edge-message-processor การกำหนดค่า logrotate ของโหนดจะอยู่ใน $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf

เปิดใช้ cron logrotate ของคอมโพเนนต์

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

ตัวอย่างเช่น หากต้องการเปิดใช้ cron ของ edge-message-processor logrotate ให้เรียกใช้:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e

ปิดใช้ cron logrotate ของคอมโพเนนต์

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -d

ตัวอย่างเช่น หากต้องการปิดใช้ cron ของ edge-message-processor ให้เรียกใช้:logrotate

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -d

เปลี่ยนกำหนดการ Cron ของคำสั่ง logrotate ที่เฉพาะเจาะจง

ในโหนดที่คุณต้องการเปลี่ยนกำหนดการ cron ของ logrotate ให้เปิดไฟล์ลบล้างการกำหนดค่าของคอมโพเนนต์ที่เกี่ยวข้อง ไฟล์การลบล้างการกำหนดค่าของคอมโพเนนต์ edge-* จะแสดงอยู่ในตารางด้านล่าง

ส่วนประกอบ ไฟล์ลบล้างการกำหนดค่า
edge-message-processor $APIGEE_ROOT/customer/application/message-processor.properties
edge-management-server $APIGEE_ROOT/customer/application/management-server.properties
edge-router $APIGEE_ROOT/customer/application/router.properties
edge-postgres-server $APIGEE_ROOT/customer/application/postgres-server.properties
edge-qpid-server $APIGEE_ROOT/customer/application/qpid-serverproperties

เปิดไฟล์การลบล้างที่เหมาะสมและตั้งค่าการลบล้างการกำหนดค่าต่อไปนี้ ตัวอย่างด้านล่างจะลบล้างงาน cron ที่จะทำงานในนาทีที่ 0 ของทุกชั่วโมง

conf_logrotate_cron_duration=0 * * * *

วิธีตั้งค่าการลบล้างการกำหนดค่า

  1. ตรวจสอบว่าผู้ใช้ apigee อ่านไฟล์ได้
  2. ใช้กำหนดการ cron ที่ใหม่กว่ากับคอมโพเนนต์:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

เช่น หากต้องการใช้กำหนดการ cron ที่ใหม่กว่ากับ logrotate ของ edge-message-processor ให้ป้อน

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e

หากต้องการยืนยันว่ามีการใช้การเปลี่ยนแปลงแล้ว ให้ตรวจสอบรายการ cron หรือดูรายการ cron ของ logrotate ของคอมโพเนนต์

การกำหนดค่าเพิ่มเติมของ logrotate

นอกจากนี้คุณยังแก้ไขการกำหนดค่าเพิ่มเติมได้เช่นเดียวกับขั้นตอนที่แสดงในส่วนด้านบนสำหรับการแก้ไขกำหนดการ cron ตารางด้านล่างจะอธิบายการกำหนดค่าเหล่านี้

การกำหนดค่า คำอธิบาย
conf_logrotate_bin_location ตำแหน่งของไบนารี Logrotate ค่าเริ่มต้น: /usr/sbin/logrotate
conf_logrotate_status_file ไฟล์สถานะที่บันทึกสถานะรันไทม์ของ Logrotate - รายการมีสิทธิ์อ่าน/เขียนสำหรับผู้ใช้ apigee ค่าเริ่มต้น: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs บันทึกที่ต้องการหมุนเวียน ใส่ไวลด์การ์ดได้ ค่าเริ่มต้น: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate จำนวนการหมุนเวียน ค่าเริ่มต้น: "5"
conf_logrotate_compress ต้องการบีบอัดไฟล์ที่หมุนไหม ค่าเริ่มต้น: "บีบอัด"
conf_logrotate_compress_type ประเภทการบีบอัด ค่าเริ่มต้น: “delaycompress” เลื่อนการบีบอัดไฟล์ที่หมุนล่าสุดไปยังรอบการบันทึกถัดไป
conf_logrotate_size ขีดจำกัดขนาดบันทึกสำหรับการหมุน ค่าเริ่มต้น: "10 ล้าน"

ใช้กลไกการหมุนเวียนไฟล์บันทึกและ cron

หากการกำหนดค่าโดย Apigee ไม่ตรงตามข้อกำหนดสำหรับการหมุนเวียน <component>.log คุณสามารถใช้กลไกในการหมุนเวียนบันทึกของคุณเองโดยใช้เครื่องมือต่างๆ เช่น Logrotate หรือเครื่องมืออื่นๆ ตัวอย่างเช่น การกำหนดค่าที่ Apigee จัดเตรียมไว้ให้คุณหมุนบันทึกตามขนาดได้ แต่ต้องการหมุนเวียนบันทึกตามวันที่/เวลาหรือปัจจัยอื่นๆ ในกรณีดังกล่าว คุณควรปิดใช้ cron ของ logrotate ที่ได้จาก Apigee และตั้งค่างาน cron ของคุณเองตามต้องการ

หากต้องการดูรายการ cron สำหรับการหมุนเวียนของ Apigee คือไฟล์ $APIGEE_ROOT//logrotate/logrotate.cron เช่น ในกรณีของ edge-message-processor ไฟล์นี้จะเรียกว่า $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron ไฟล์นี้รวมทั้งรายการ cron และคำสั่งที่ดำเนินการโดย Apigee สำหรับการหมุนเวียนบันทึก หากต้องการใช้ logrotate แต่ไม่ต้องการใช้การกำหนดค่าของ Apigee ให้สร้างไฟล์การกำหนดค่า logrotate ของคุณเองและใช้คำสั่ง logrotate ที่คล้ายกันเพื่อทำการหมุนเวียนบันทึก