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

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

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

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

  • หากคุณไม่คุ้นเคยกับการกำหนดค่า logrotate โปรดอ่านคู่มือ logrotate
  • หากไม่คุ้นเคยกับการกำหนดค่า crontab โปรดอ่านคู่มือ crontab

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

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

หมายเหตุ

  • หากในระหว่างการติดตั้งคอมโพเนนต์ edge-* คุณไม่ต้องการตั้งค่า Cronjob logrotate โดยอัตโนมัติ ให้ตั้งค่าแฟล็ก "ENABLE_LOGROTATE=n" ในไฟล์การกำหนดค่าแบบไม่โต้ตอบที่คุณใช้สำหรับการติดตั้ง หากไม่ได้ตั้งค่า งาน 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

ตัวอย่างเช่น หากต้องการดู cron logrotate ของ 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 logrotate ของ edge-message-processor ให้เรียกใช้คำสั่งต่อไปนี้

$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 logrotate ของ edge-message-processor ให้เรียกใช้คำสั่งต่อไปนี้

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

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

ในโหนดที่คุณต้องการเปลี่ยนกำหนดการ logrotate cron ให้เปิดไฟล์ลบล้างการกำหนดค่าของคอมโพเนนต์ที่เกี่ยวข้อง ไฟล์ลบล้างการกำหนดค่าของคอมโพเนนต์ 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 เลือกว่าจะบีบอัดไฟล์ที่หมุนเวียนหรือไม่ ค่าเริ่มต้น: "compress"
conf_logrotate_compress_type ประเภทการบีบอัด ค่าเริ่มต้น: "delaycompress" เลื่อนการบีบอัดไฟล์ที่หมุนเวียนล่าสุดไปยังรอบ logrotate ถัดไป
conf_logrotate_size ขีดจำกัดขนาดบันทึกสำหรับการหมุนเวียน ค่าเริ่มต้น: "10M"

ใช้กลไกการหมุนเวียนไฟล์บันทึกและ Cron ของคุณเอง

หากข้อกำหนดในการหมุนเวียน <component>.log ไม่เป็นไปตามการกำหนดค่าที่ Apigee มีให้ คุณจะใช้กลไกการหมุนเวียนไฟล์บันทึกของคุณเองโดยใช้เครื่องมืออย่าง 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 ที่คล้ายกันเพื่อหมุนเวียนไฟล์บันทึกได้