로그를 fifo 장치로 리디렉션하는 방법은 무엇입니까?

로그를 fifo 장치로 리디렉션하는 방법은 무엇입니까?

rsyslog 구성 파일에 다음 줄이 있습니다.

*.*;auth,daemon,kern,user   -/dev/logi

예상한 대로 수행되었지만 iptables 로그 중 일부를 다른 파일로 보내고 싶어서 rsyslog.conf 파일에 다음을 추가했습니다.

:msg,contains,"IPTABLES:" /var/log/iptables
& stop

/dev/fw 장치를 생성했지만 파일의 새 내용을 장치로 보내는 방법을 모르겠습니다. 그것을 할 수 있는 방법이 있나요?

답변1

마침내 해결책을 찾았습니다.

이것은 시스템 시작 시 생성한 fifo 장치입니다.

LOG_DEV=/dev/logi
if [ ! -r $LOG_DEV ]; then
    mkfifo $LOG_DEV
    chmod 640 $LOG_DEV
    chown root:morfik $LOG_DEV
fi

/etc/init.d/rsyslog방금 파일 에 추가했습니다 .

해당 장치를 사용하면 파일에 다음 줄을 배치하여 모든 로그를 보낼 수 있습니다 /etc/rsyslog.conf.

*.*                 -/dev/logi

이는 규칙 섹션의 첫 번째 줄이므로 모든 로그가 해당 줄로 이동하여 구성 파일의 다른 규칙을 계속 처리합니다. 파일의 다음 규칙은 다음과 같습니다.

:msg,contains,"IPTABLES:" /var/log/iptables
& stop

iptables 로그를 특정 파일로 보냅니다. 이 작업을 수행한 후 rsyslog는 문구가 포함된 항목 처리만 중지합니다 IPTABLES:. 다음 규칙은 rsyslog 구성 파일의 일반적인 규칙입니다.

그래서 나는 내가 원하는 것을 얻었습니다. 모든 로그는 fifo 장치로 전송되고 iptables 항목에 대한 별도의 로그 파일입니다.

관련 정보