Kết hợp đuôi && tạp chí


27

Tôi đang theo dõi nhật ký của ứng dụng và postgres của riêng tôi.

tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log

Tôi cần bao gồm nhật ký của pgpool. Nó đã từng là syslog nhưng bây giờ nó là trong tạp chí.

Có cách nào để buộc đuôi -f && Tạp chí -f với nhau không?

Câu trả lời:


27

Bạn đã có thể sử dụng:

journalctl -u service-name -f

-f, - theo dõi

Chỉ hiển thị các mục tạp chí gần đây nhất và liên tục in các mục mới khi chúng được thêm vào tạp chí.

Ở đây tôi đã thêm "tên dịch vụ" để phân biệt câu trả lời này với người khác; bạn thay thế tên dịch vụ thực tế thay vì văn bản service-name.


20

Bạn có thể chuyển tiếp các mục nhật ký của bạn để tạp chí :

systemd-cat tail -f /tmp/myapp.log /var/log/postgresql.log

và sau đó sử dụng journalctl -f... mặc dù như Mark đã đề cập, nó sẽ in tất cả các mục tạp chí.


Một cách để chỉ lọc các tin nhắn từ các nhật ký đó và từ đơn vị cụ thể đó là sử dụng một SYSLOG_IDENTIFIERtệp riêng biệt tức là chỉnh sửa tệp đơn vị và trong [Service]phần thêm ví dụ:

SyslogIdentifier=my_stuff

khởi động lại thiết bị sau đó chạy systemd-catvới cùng định danh

systemd-cat -t my_stuff tail -f /tmp/myapp.log /var/log/postgresql.log

và cuối cùng chỉ truy vấn tạp chí cho định danh cụ thể đó:

journalctl -f -t my_stuff

4

Nếu bạn có sẵn bash, bạn có thể sử dụng thay thế quy trình như một trong các tailtham số:

tail -f /tmp/myapp.log /var/log/postgresql/postgresql.main.log <(journalctl -f)

Đây là cách thanh lịch tôi cũng đã thử, nhưng không hiệu quả. Tail cho thấy nó đang sử dụng / dev / fd / xx, nhưng không có nhật ký nào được hiển thị.
đạp

chính xác; / dev / fd / xxx là đường ống tạm thời mà bash sử dụng để thực hiện thay thế quy trình; bất kỳ đầu ra tạp chí sẽ hiển thị trong đó.
Jeff Schaller

5
Bạn có thể không muốn theo dõi toàn bộ tạp chí mà chỉ là những người cho đơn vị pgpool. Giả sử dịch vụ có tên pgpool.service, hãy thử journalctl -fu pgpool.service. Ngoài ra, nếu bạn không chạy cái này với quyền root, hãy đảm bảo người dùng nằm trong systemd-journalnhóm!
Mark Stosberg

1

thử một cái gì đó như:

tail -f /tmp/myapp.log >> /tmp/tail.log &
journalctl -f >> /tmp/tail.log &
tail -f /tmp/tail.log
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.