Rsyslog xuất ra tệp nhật ký tùy chỉnh


13

Bất cứ ai có thể cho tôi biết những gì tôi đã làm sai ở đây?

Đây là câu hỏi cuối cùng:

Tại sao khi tôi sử dụng lệnh logger tôi không thể đưa nó ra đầu ra tệp nhật ký tùy chỉnh /var/log?

Trong kịch bản của tôi:

logger -i -t ANM -p local7.info "This is a local 7 test"

Trong phần rsyslog.conftôi nối phần sau vào cuối tệp:

local7.* /var/log/anm.log

Ngoài ra, tập lệnh có quyền cho /var/log/anm.logtập tin

* CẬP NHẬT *

Vì vậy, tôi quên khởi động lại các dịch vụ đăng nhập. Tôi đã thử khởi động lại và " service rsyslog restart" Vẫn không thay đổi. Văn bản kiểm tra không hiển thị trong /var/log/anm.lognhưng nó xuất hiện trong/var/log/syslog

* CẬP NHẬT *

Cần những quyền /var/log/"yourlogfilehere"gì? Owner, Group, rwx?

Tôi đã thử thiết lập grp và own để root và tên người dùng đang chạy lệnh logger. Không có thay đổi với một trong hai.

Tôi cũng đã thử tạo các tệp nhật ký trong một thư mục tùy chỉnh trong /var/log. tức là /var/log/anm/anm.logvà thiết lập cả hai loại quyền cho thư mục.

* CẬP NHẬT *

rsyslogd đang chạy

syslog     598  0.0  0.1  31060  1292 ?        Sl   03:02   0:02 rsyslogd -c5

và đây là đầu ra từ /etc/rsyslog.conftập tin của tôi

#  /etc/rsyslog.conf    Configuration file for rsyslog.
#
#                       For more information see
#                       /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
#
#  Default logging rules can be found in /etc/rsyslog.d/50-default.conf


#################
#### MODULES ####
#################

$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
#$ModLoad immark  # provides --MARK-- message capability

# provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514


###########################
#### GLOBAL DIRECTIVES ####
###########################

#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Filter duplicated messages
$RepeatedMsgReduction on

#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog

#
# Where to place spool files
#
$WorkDirectory /var/spool/rsyslog

#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf

local7.*        /var/log/anm.log

Tôi cũng đã thử đưa nó vào /etc/rsyslog.d/50-default.conf(Tôi đang chạy Ubuntu 12.04 LTS)

#  Default rules for rsyslog.
#
#                       For more information see rsyslog.conf(5) and /etc/rsyslog.conf

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*                 /var/log/auth.log
*.*;auth,authpriv.none          -/var/log/syslog
#cron.*                         /var/log/cron.log
#daemon.*                       -/var/log/daemon.log
kern.*                          -/var/log/kern.log
#lpr.*                          -/var/log/lpr.log
mail.*                          -/var/log/mail.log
#user.*                         -/var/log/user.log
local7.*                        /var/log/anm.log

* CẬP NHẬT *

Vâng cuối cùng tôi đã tìm ra nó. Tôi ước ai đó đã trả lời điều này cho tôi. Mất vài ngày để tìm ra điều gì sai, nhưng tôi đoán là không có nhiều người sử dụng siêu người dùng.

Vấn đề là với các quyền của tệp nhật ký tùy chỉnh như tôi đã lý thuyết ban đầu. Tôi nghĩ rằng tôi đã có quyền chính xác, nhưng hóa ra chủ sở hữu cần phải là syslogvà nhóm adm. Tôi xác định điều này bằng cách so sánh với các user.logtập tin. Khi quyền đã được sửa đổi và kiểm tra lại, tất cả đều hoạt động hoàn hảo! Tôi hy vọng điều này sẽ giúp người khác nhanh hơn tôi có thể tìm thấy câu trả lời.


1
Tôi thấy một bài viết giống hệt nhau trên SF - xin đừng vượt qua.
Journeyman Geek

Mọi người cứ bảo tôi chuyển bài của tôi. Tôi đoán tôi nên xóa những người khác?
Atomiklan

1
vâng Bạn cũng có thể gắn cờ các bài đăng của riêng mình để yêu cầu người điều hành cũng di chuyển nó trong tương lai
Journeyman Geek

"Xin vui lòng, cần hỗ trợ ngay lập tức" cũng không phải là một tiêu đề rất hữu ích cho câu hỏi. Cá nhân tôi cũng thấy câu hỏi của bạn khó đọc; câu hỏi thực sự ở đâu? Câu hỏi thực sự duy nhất tôi có thể thấy là "những quyền nào làm / var / log / somefile cần?" và câu trả lời cho điều đó nên là "hãy để syslogd xử lý nó". Bên cạnh đó, đó là nhiều cập nhật trước đây và có lẽ không còn phù hợp nữa.
một CVn

Bạn có thể đăng giải pháp của mình dưới dạng câu trả lời để những người khác gặp vấn đề tương tự có thể thấy nó.
gronostaj

Câu trả lời:


6

Vâng cuối cùng tôi đã tìm ra nó. Tôi ước ai đó đã trả lời điều này cho tôi. Mất vài ngày để tìm ra điều gì sai, nhưng tôi đoán là không có nhiều người sử dụng siêu người dùng.

Vấn đề là với các quyền của tệp nhật ký tùy chỉnh như tôi đã lý thuyết ban đầu. Tôi nghĩ rằng tôi đã có quyền chính xác, nhưng hóa ra chủ sở hữu cần phải là "syslog" và nhóm "adm". Tôi xác định điều này bằng cách so sánh với tệp user.log. Khi quyền đã được sửa đổi và kiểm tra lại, tất cả đều hoạt động hoàn hảo! Tôi hy vọng điều này sẽ giúp người khác ngoài kia nhanh hơn tôi có thể tìm thấy câu trả lời.

Dưới đây là các quyền cuối cùng

-rw-r--r-- 1 syslog adm 0 Aug  3 05:09 anm.log

"Tôi nghĩ rằng tôi đã có quyền chính xác" ngụ ý rằng bạn đã tự tạo tệp. Tại sao bạn không đơn giản để cho syslog daemon tạo ra nó?
một CVn

Câu hỏi là: Tại sao khi tôi sử dụng lệnh logger tôi không thể đưa nó ra đầu ra tệp nhật ký tùy chỉnh trong / var / log? Tôi chỉ cố gắng để syslog tạo tập tin và tôi không làm việc. Dù cách nào cũng tốt. Tôi không phiền khi tập lệnh cài đặt của tôi tạo tập tin và đặt quyền.
Atomiklan

1
Cảm thấy thích khi giây = $$$
Atomiklan

Xin chào @Atomiklan Cảm ơn câu hỏi của bạn giải quyết vấn đề chính xác của tôi. Tuy nhiên, tôi tự hỏi tại sao tệp tự động được tạo bởi rsyslog nằm dưới root / root thay vì syslog / adm chính xác? Bạn có biết tại sao không?
Yudong Li

cảm ơn người đàn ông rõ ràng, nỗ lực của bạn đã cứu tôi sau 2 ngày gỡ lỗi syslog :) Và từ những bình luận mơ hồ của @ MichaelKjorling và @YudongLi Tôi đã hình dung ra daemon tự tạo tệp theo đường dẫn trong quy tắc cấu hình. Sau khi service restartnó biết quy tắc và trong cuộc gọi thích hợp đầu tiên, hãy loggertạo tệp với quyền được đặt chính xác.
xealits

1

@Atomiklan đã đề cập đến việc anh ta phải thay đổi chủ sở hữu / nhóm tệp tùy chỉnh của mình thành syslog / adm. Tôi đã thử nó và nó hoạt động ...

Nhưng nhận xét từ @ MichaelKjorling cũng có vẻ đúng: tại sao không để days syslog tạo tệp?

Chìa khóa trong trường hợp của tôi (và tôi đề nghị OP) là người dùng nhật ký hệ thống không có quyền ghi vào thư mục nhật ký tùy chỉnh của tôi . Tôi đã thực hiện chmod o+w, khởi động lại rsyslog và tệp nhật ký của tôi vui vẻ xuất hiện ở nơi cần có ... với syslog / adm là người dùng / nhóm.


1
#$ModLoad imudp
#$UDPServerRun 514

cần phải:

$ModLoad imudp
$UDPServerRun 514

để chạy đăng nhập từ xa!

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.