Điểm:1

Làm cách nào để giới hạn kích thước nhật ký trên Bean Beanalk với nền tảng Corretto 8/Amazon Linux 2?

lá cờ in

Gần đây, chúng tôi đã di chuyển một trong các ứng dụng của mình sang nền tảng "Corretto 8 chạy trên nền tảng 64bit Amazon Linux 2/3.2.12". Hiện tại, chúng tôi đang gặp sự cố là các tệp nhật ký đang lấp đầy dung lượng ổ đĩa của chúng tôi trong khoảng thời gian hơn một tuần. Chúng tôi đã không có vấn đề trước đây.

Điều khó chịu là chúng tôi đang truyền trực tuyến các nhật ký đó tới đồng hồ điện toán đám mây, vì vậy chúng tôi thực sự không cần chúng trong phiên bản đó. Điều khó chịu hơn nữa là tất cả tài liệu, bài đăng trên blog, v.v. mà tôi có thể tìm thấy về vấn đề này dường như không được viết cho nền tảng này. Khi nhìn vào cấu trúc tệp, có vẻ như nó đang sử dụng một cách tiếp cận khác mà tôi chưa hoàn toàn hình dung ra.

Trước hết, không có thư mục /var/log/httpd... hoặc các thư mục khác cho các nhật ký cụ thể. Cho đến nay tôi đã tìm ra rằng những gì được gửi tới web.stdout.log logstream (trên nền tảng cũ từng được đặt tên khác, nhưng tôi không nhớ chính xác như thế nào. Trong mọi trường hợp, đó là nơi đăng nhập của ứng dụng khởi động mùa xuân to) được lưu trữ trong tệp /var/log/messages.

Tôi biết điều này bởi vì trong khi phân tích lý do tại sao chúng tôi hết dung lượng đĩa, tệp này sẽ luôn là tệp lớn nhất trên toàn bộ đĩa. Ngoại trừ ngay sau khi một phiên bản bắt đầu, thì nó có kích thước hợp lý. Sau 3 ngày, nó có thể đạt đến kích thước 2 GB và nó chỉ tiếp tục tăng lên cho đến khi không còn gì nữa. Không còn nghi ngờ gì nữa, đó là nguồn gốc rắc rối của chúng ta.

Câu hỏi là, tôi có thể làm gì làm về nó? Xoay vòng nhật ký ở cấu hình mặc định và tôi có thể thấy một số tệp trong /var/log/rotated (cũng là một thư mục khác với nơi từng là nhật ký xoay), nhưng chúng rất nhỏ (lớn nhất trong số chúng là 1,3 MB đáng yêu trong size...), và kích thước của /var/log/messages không bao giờ giảm, nó chỉ tăng lên.

Tôi đã đọc rất nhiều bài viết về cách giải quyết các vấn đề tương tự bằng cách định cấu hình logrotate bằng ebextensions, của chính AWS và các blogger, nhưng trong tất cả chúng, tôi có thể thấy rất nhanh rằng chúng được xây dựng trên một cấu trúc rất khác, vì vậy chúng không dường như có thể áp dụng được. Ngoài ra, trong quá trình di chuyển, chúng tôi đã trải nghiệm rằng một số điều đã được thực hiện với ebextensions giờ không được thực hiện với ebextensions nữa, nhưng tài liệu còn khá thiếu.

Có ai biết nền tảng đủ để cho tôi manh mối về cách tôi có thể định cấu hình nền tảng này không? tôi thậm chí không cần quay nhật ký, nói đúng ra, tôi chỉ muốn chúng biến mất ngay sau khi chúng cũ hơn một giờ hoặc lâu hơn. Sau tất cả, chúng tôi có chúng trên cloudwatch...

Thông tin thêm Càng tìm hiểu sâu về vấn đề này, tôi càng thấy bối rối. Có một tệp /var/log/web.stdout.log nhận các thông báo giống như /var/log/messages. Nhìn vào nội dung của logrotate.elasticbeanstalk.hourly, đây là tệp thực sự đang được xoay vòng nhật ký và tệp đó có vẻ đang hoạt động tốt.

Thực hiện một lsof, quy trình sử dụng tệp đó là rsyslogd. Theo nhận xét của shearn89 bên dưới, rõ ràng đó là nhật ký hệ thống mới và mọi thứ ghi vào thiết bị xuất chuẩn đều được ghi vào đó.

Nhận ra rằng tệp đó không thuộc bất kỳ loại xoay vòng nào, tôi đang cố gắng thiết lập tệp đó. Hiện tại, chỉ trên ví dụ trực tiếp, sau này tôi sẽ tìm ra cách thực hiện nó trong cấu hình môi trường thực tế.

Tôi đã tạo một tệp cấu hình mới trong /etc/logrotate/elasticbeanstalk.hourly với nội dung sau:

/var/log/tin nhắn {
 gốc rễ su
 kích thước 10M
 xoay 5
 mất tích
 nén
 thông báo
 copytruncate
 ngày tháng
 định dạng ngày %s
 olddir /var/log/xoay
}

Đang chạy sudo /usr/sbin/logrotate /etc/logrotate.elasticbeanstalk.hourly/logrotate.elasticbeanstalk.messages.conf --debug, tôi nhận được đầu ra sau:

mẫu xoay: /var/log/messages 10485760 byte (5 lần quay)
olddir là /var/log/rotated, các tệp nhật ký trống không được xoay, các nhật ký cũ bị xóa
xem xét nhật ký /var/log/messages
  nhật ký cần xoay
xoay nhật ký /var/log/messages, log->rotateCount là 5
Đã chuyển đổi ' %s' -> '%s'
hậu tố ngày văn bản '1646905905'
mẫu toàn cầu '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0 -9]'
toàn cầu tìm nhật ký xoay cũ không thành công
sao chép /var/log/messages sang /var/log/rotated/messages1646905905
cắt bớt /var/log/messages
nén nhật ký với: /bin/gzip

Điều đó có vẻ đầy hứa hẹn, nhưng sự thật lạnh lùng là dường như không có gì thay đổi. Tệp vẫn có cùng kích thước và không có tệp nào được tạo trong thư mục xoay vòng. Nó dường như không có tác dụng gì cả. Tôi đã thay đổi cấu hình để nó di chuyển và tạo thay vì cắt bớt tại chỗ, tôi đã thử -f, tất cả đều có cùng kết quả. Không có lỗi từ logrotate, nhưng cũng không có tác dụng. Tập tin đó có vẻ không thấm nước.

lá cờ cn
`/var/log/messages` là nhật ký hệ thống tiêu chuẩn - nếu ứng dụng đang ghi vào thiết bị xuất chuẩn, nó sẽ chuyển đến `messages`. Đặt cược tốt nhất là thiết lập xoay vòng trên hầu hết mọi thứ đang tạo nhật ký.
UncleBob avatar
lá cờ in
Vâng, bây giờ tôi đã phát hiện ra rằng tập tin cụ thể này hoàn toàn không được luân chuyển. Bây giờ câu hỏi duy nhất là làm thế quái nào mà tôi hoàn thành được điều đó...
Điểm:0
lá cờ bd

Tôi đã lưu cái này trong .ebextensions/liblogrotate.config:

các tập tin:
   /etc/remove_old_logs.sh:
     chủ sở hữu: root
     nhóm: gốc
     chế độ: "000644"
     nội dung: |
       #!/bin/sh
       tìm /var/log -type f -mtime +7 -exec rm {} +

vùng chứa_lệnh:
  01_crontab:
    lệnh: "( crontab -l | grep -v -F \". /etc/remove_old_logs.sh\" ; echo \"0 0 * * * . /etc/remove_old_logs.sh\" ) | crontab -"

Nó tạo một crontab xóa các tệp cũ hơn 7 ngày trong thư mục/var/log. Tôi biết nó không tối ưu, nhưng tôi không quan tâm nhiều đến những nhật ký đó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.