기본적으로 rsyslog 구성 파일은 /etc/rsyslog.conf에 있습니다. -f /path/to/file 옵션을 사용하여 시작 시 구성 파일 경로를 설정할 수 있습니다.
내 질문은: 구성 파일이 기본값이 아닌 다른 곳에 설정된 경우 어떻게 찾을 수 있습니까?
답변1
소프트웨어와 구성 방법에 따라 다릅니다. rsyslogd
적어도 Centos 7 버전은 구성 파일을 읽은 후 닫으므로 lsof
데몬이 실행되면 이와 같은 도구는 파일을 표시하지 않습니다.
% sudo lsof -p `pidof rsyslogd` | perl -nle 'print for grep -f, split'
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
/usr/sbin/rsyslogd
...
그러나 파일 이름은 프로세스 테이블에 표시되며, /etc
이러한 구성은 일반적으로 숨겨져 있으므로 아래에서 검색할 수 있습니다.
% < /proc/`pidof rsyslogd`/cmdline tr '\0' ' ' ; echo
/usr/sbin/rsyslogd -n -f /nunca/adivinarás/esto
% sudo grep -r '/nunca/adivinar' /etc
/etc/sysconfig/rsyslog:SYSLOGD_OPTIONS="-f /nunca/adivinarás/esto"
완전히 알려지지 않은 시스템에서는 sysdig
SystemTap이나 커널 추적 도구와 같은 도구를 사용하고 데몬이 사용하는 파일을 보고할 수 있습니다.
% sudo sysdig -p '%fd.name' 'proc.name = rsyslogd' | tee files-used
...
그런 다음 데몬을 다시 시작하십시오.
커널 추적 도구가 없으면 strace
git 또는 linux와 같은 사용자 공간 도구를 사용하여 문제의 데몬을 추적 ktrace
하고 시스템 호출에서 구성 파일이 무엇인지 알아낼 수 있습니다. 구성 파일 읽기를 찾을 위치를 파악하려면 합리적으로 구성된 시스템의 추적 출력을 비교해야 할 수도 있습니다.