Ghi nhật ký hoạt động apt / dpkg vào syslog


8

Mục tiêu của tôi là ghi nhật ký hoạt động apt / dpkg bằng syslog (rsyslog) , để các mục nhật ký được gửi đến máy chủ syslog trung tâm.

dpkg ghi vào /var/log/dpkg.log, apt ghi vào /var/log/aptthư mục.

Tôi đã làm một số nghiên cứu và có vẻ như apt hay dpkg đều có thể sử dụng syslog. Tùy chọn duy nhất là sử dụng tính năng "Mô-đun nhập tệp văn bản" của rsyslog ( http://www.rsyslog.com/doc/master/configuration/modules/imfile.html ), để kiểm tra định kỳ tệp nhật ký cho nội dung mới.

/etc/dpkg/dpkg.cfgtập tin cấu hình có logtùy chọn, nhưng không có trang hướng dẫn cho các tùy chọn và tính năng của dpkg.cfg.

Là thực sự rsyslog imfile là lựa chọn duy nhất?


Tôi không hiểu tại sao bạn muốn làm điều đó. Ngoài ra, bạn có muốn nó đăng nhập syslogthay thế hoặc ngoài các địa điểm mà nó đăng nhập không?
Faheem Mitha

Tôi cần nó, bởi vì chính sách của công ty chúng tôi yêu cầu phải có máy chủ syslog trung tâm với các sự kiện nhật ký từ tất cả các máy chủ ở một nơi. rsyslog đảm nhiệm việc phân phối các sự kiện, vì vậy tôi cần nhận các sự kiện apt + dpkg (các gói đã cài đặt / gỡ bỏ / cập nhật) để xử lý rsyslog.
Petr Stastny


Có tôi đã làm, nhưng nó chỉ ghi tên gói mà không có chi tiết hoạt động. imfile là tốt hơn cho điều đó. Tôi chỉ tự hỏi tại sao apt / dpkg không có khả năng tự nhiên để nói chuyện với quá trình nhật ký hệ thống.
Petr Stastny

1
Tập tin mong muốn lỗi, có lẽ?
Faheem Mitha

Câu trả lời:


3

Đối với dpkg, điều này có thể được thực hiện bằng cách thêm

status-logger "logger -t dpkg -p info"

đến /etc/dpkg/dpkg.cfg . Vì các cuộc gọi apt-get dpkg, các hành động apt-get / apt cũng được ghi lại. Xem man loggerđể điều chỉnh thông tin đăng nhập vào syslog.

Tôi đang sử dụng tác vụ ansible này để cập nhật các cấu hình:

- name: dpkg syslog
  lineinfile:
   dest: /etc/dpkg/dpkg.cfg
   line: 'status-logger "logger -t dpkg -p info"'

Nếu bạn đang sử dụng nhật ký systemd, thật thuận tiện để kiểm tra nhật ký thông qua

journalctl SYSLOG_IDENTIFIER=dpkg

Đẹp, mặc dù nhiệm vụ ansible cần become: yestránh một lỗi:FAILED! => {"changed": false, "msg": "The destination directory (/etc/dpkg) is not writable by the current user. Error was: [Errno 13] Permission denied: '/etc/dpkg/.ansible_tmppkCGRodpkg.cfg'"}
Tyson

0

Sửa đổi nơi dpkg ghi nhật ký đầu ra của nó là có thể thông qua --logtùy chọn. Điều này chỉ cho phép tên tập tin. DPKG được xây dựng như một công cụ đơn giản và hiệu quả để thao tác các gói, vì vậy việc không có logger làm phức tạp công cụ là một lợi thế. Cách đơn giản nhất là bạn ghi vào một tệp và syslog đọc từ tệp đó như bạn đã biết.

Bạn có thể sử dụng status-fdđể gửi trạng thái đến một mô tả tập tin như /dev/loghoặc status-loggerđể có một người trung gian gửi các mục vào syslog.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.