SYSLOG.CONF(5)

명칭
syslog.conf - syslogd(8) 설정 파일

해설
syslog.conf 파일은 syslogd(8) 프로그램의 설정 파일입니다. 이 파일은 program (와)과 hostname 의 지정에 의해 나눌 수 있었던 행 블록으로부터 구성되어 있습니다. 각각의 행은 2개의 필드를 포함합니다. 그 행이 적용되는 메세지의 타입과 우선도를 지정한다 selector 필드와 syslogd 하지만 선택한 기준과 매치 한 메세지를 받았을 경우의 동작을 지정한다 action 필드입니다. selector 필드와 action 필드는 1 개 이상의 탭 캐릭터 또는 공백에서 단락지어지고 있습니다.

단락지어에 공백을 사용하면(자), syslog.conf (은)는 다른 Unix 나 Unix 적 시스템과 호환성이 없어져 버리는 것에 주의해 주세요. 이 기능은, 설정을 용이하게 해 (예를 들면 syslog.conf 에 컷 앤드 페이스트 할 수 있도록(듯이) 해), 그 때 발생 할 수 있는 미스를 피하기 (위해)때문에 추가되었습니다. 그렇지만 이 변경은, 낡은 스타일의 syslog.conf (즉 탭 캐릭터만)에의 백 워드 컴패터빌리티 (호환성)을 유지하고 있습니다.

selector (은)는, facility (와)과 피리어드 (“”). (와)과 옵션의 비교 플래그 ([<=>]) 그리고 level 그리고 encode 되어 동안에 공백은 포함하지 않습니다. facility (와)과 level 의 양쪽 모두, 대문자 소문자의 구별은 없습니다.

facility (은)는 메세지를 생성했던 것이 시스템의 어느 부분인가를 나타냅니다. 이것은, 다음에 주는 키워드군의 1 개(살)로 나타내지는 : auth, authpriv, console, cron, daemon, ftp, kern, lpr, mail, mark, news, ntp, security, syslog, user, uucp (와)과 local0 로부터 local7. 이러한 키워드 (mark 를 제외한다)는 openlog(3) (와)과 syslog(3) 프로그램 라이브러리 routine로 지정된다 “LOG_” 그리고 시작되는 값과 일치합니다. 비교 플래그 (을)를 사용해, 무엇을 기록하는지를 정확하게 지정할 수 있습니다. 비교 플래그의 디폴트조는 “=>” (또는 당신이 좋아한다면 “>=”) (이어)여, 지정했다 facility 리스트로부터의 level 이상의 레벨의 메세지를 기록하는 것을 의미합니다.

level (은)는 메세지의 중요도를 나타내, 이하의 키워드의 순서에 고로부터저가 됩니다: emerg, alert, crit, err, warning, notice, info, debug. 이러한 키워드는 syslog(3) 프로그램 라이브러리 routine로 지정된다 “LOG_” 그리고 시작되는 값과 일치합니다.

각각의 행 블록은 program 인가 hostname 의 지정에 의해 전의 블록과 구별됩니다. 블록은, 최신의 program 지정 및 hostname 지정에 대응하는 메세지만을 로그 합니다. 따라서, ‘ppp’ (을)를 program (으)로서 선택하는 블록에, hostname ‘dialhost’ (으)로부터의 메세지를 선택하는 블록이 직후에 계속되면(자), 제 2 의 블록은, dialhost 상의 ppp(8) 프로그램으로부터의 메세지만을 로그 합니다.

program 지정은, 행의 선두가 #! prog 또는! prog (전자는 이전의 syslogd 와의 호환성을 위한 물건입니다. 예를 들면 syslog.conf 파일을 공유하고 싶을 때 등에 편리합니다) 그리고 시작되어, 계속하는 블록은 syslog 를 호출하는 특정의 프로그램과 관련지을 수 있고 있습니다. program 지정 ‘foo’ (은)는, ‘foo: ’ 그렇다고 하는 프레픽스를 가지는 커널 로그 메세지에도 매치 합니다. hostname 지정으로 ‘#+hostname’ 또는 ‘+hostname’ 그렇다고 하는 서식의 것은, 이것에 계속하는 블록을, 지정한 호스트명으로부터의 메세지에 적용시킵니다. 또, hostname 지정으로 ‘#-hostname’ 또는 ‘-hostname’ 그렇다고 하는 지정의 것은, 이것에 계속하는 블록을, 지정한 호스트명 이외로부터의 메세지에 적용시킵니다. 호스트명이 ‘@’ (으)로서 주어지면(자), 로컬 호스트명이 사용됩니다. program 지정 또는 hostname 지정은, 프로그램명 또는 호스트명에 ‘*’ (을)를 지정하는 것으로써 리셋트 가능합니다.

facility (와)과 level 의 양쪽 모두의 키워드와 그 의미의 것보다 상세한 설명을 알고 싶은 경우는 syslog(3) (을)를 봐 주세요. 선택은 facility 그리고 행하는 (분)편이 program 그리고 행하는 것보다도 선호되고 있습니다. 왜냐하면, 후자는 네트워크 환경 속에서는 간단하게 변화해 버리는 경우가 있기 때문입니다. 그러나, 적절한 facility 하지만 정말로 존재하지 않는 경우도 있습니다.

만약 facility 지정에 일치한 메세지를 받아, 게다가 그것이 지정했다 level (혹은 그 이상의 level) (이었)였던 경우, 또는 메세지중의 일자의 뒤의 최초의 단어가 program (와)과 일치했을 경우, action 필드에서 지정된 동작이 선택됩니다.

복수의 selector (을)를, 세미콜론 (“”); 에 의해 단락짓는 것으로, 1 개(살)의 action 에 대해서 지정할 수가 있습니다. 그러나 각각의 selector (은)는 그 전에 있는 지정을 덧쓰기 수정 가능하게 되기 때문에 주의해 주세요.

복수의 facility (은)는, 콤마 (“”), 에 의해 단락짓는 것으로 1 개(살)의 level (을)를 지정할 수가 있습니다.

asterisk (“*”) (은)는, 모든 facility , 모든 levels , 또는 모든 programs (을)를 지정하는데 사용할 수 있습니다.

특별한 facility 이다 “mark” (은)는, 20분 마다 “info” 의 우선도를 가지는 메세지를 받아들입니다 ( syslogd(8) (을)를 참조 ). 이것은 asterisk를 포함한다 facility 필드에는 적용되지 않습니다.

특별한 level 이다 “none” (은)는, 특정의 facility (을)를 무효로 합니다.

각각의 행의 action 필드는, selector 필드로 지정된 메세지를 받아들였을 때의 동작을 지정합니다. 동작 지정에는 다음의 5개의 형식이 있습니다:

•   패스명 (선두가 slash로 시작됩니다). 해당하는 메세지는, 그 파일에 추가됩니다.

•   호스트명 ( “@” 캐릭터로부터 시작될 필요가 있습니다). 해당하는 메세지는, 지정된 호스트의 syslogd(8) 프로그램에 전송 됩니다.

•   콤마로 단락지어진 유저의 리스트. 해당하는 메세지는, 지정된 유저가 로그인하고 있으면, 그 유저의 화면에 출력됩니다.

•   1 개의 asterisk. 해당하는 메세지는, 로그인중의 모든 유저의 화면에 출력됩니다.

•   수직 바 (“|”) (와)과 거기에 계속되는 명령. 해당한 메세지를 파이프를 사용해 명령에 건네줄 수가 있습니다. 이 명령은, sh(1) 에 의해 평가되므로, 통상의 시르메타캐라크타나 입력/출력 리디렉트를 이용할 수 있습니다. (그러나 실행된 명령로부터의 stdio(3) 버퍼 된 출력의 리디렉트는 불필요한 지연을 일으키거나 혹은 시그널에 의해 로깅중의 서브 프로세스가 종료했을 경우 등 출력 데이터를 잃는 것이 있을 지도 모르는 것에 주의해 주세요) 명령 그것 자신은 stdout (와)과 stderr (을)를 /dev/null 에 리디렉트 해 동작합니다. SIGHUP (을)를 받으면(자), syslogd(8) (은)는 그 프로세스와의 파이프를 닫습니다. 만약 그 프로세스가 자발적으로 종료하지 않는다 경우는, 60초의 유예기간의 뒤 SIGTERM (을)를 보냅니다.

    명령은 파이프 경유로 보내야 할 데이터가 도착했을 때에 1 번만 기동됩니다. 그 후, 명령이 종료했을 경우에는 필요에 따라서 재기동됩니다. 그 때문에, 1 행의 입력만을 서브 프로세스에 인도하는 것이 바람직한 것이라면, (만약 많은 메세지가 빠르게 흐르는 경우에는, 자원을 대량으로 소비할 가능성이 있습니다만) 1 행의 입력이 있던 후에 종료하는 일에 의해 달성할 수가 있습니다. 필요하면, 이 효과를 얻기 위해서(때문에) 나팔 스크립트를 쓸 수도 있습니다.

    그 명령이 완전한 파이프라인이 아닌 경우, 커멘드를 exec 그리고 기동하면(자), 기동한 쉘 프로세스가 명령의 완료를 기다리지 않게 되므로 편리할지도 모릅니다. 경고: 이 프로세스는 syslogd(8) 의 UID 의 아래에서 움직입니다. 통상은 슈퍼 유저입니다.

공행, 및, 최초의 공백이 아닌 캐릭터가 해시 (“#”) 캐릭터인 행은 무시됩니다.

사용예
설정 파일은 다음과 같이 됩니다:

    # err 레벨 이상의 모든 메세지, 모든 레벨의 kernel 메세지,
    # notice 레벨의 auth 메세지를 콘솔에 출력합니다.
    # 사적인 인증 메세지는 기록을 취하지 않습니다!
    *.err;kern. *;auth.notice;authpriv.none	/dev/console
    # info 이상의 레벨을 가지는 (mail 를 제외한다) 모든 메세지를 기록합니다.
    # 사적인 인증 메세지는 기록을 취하지 않습니다!
    *.info;mail.none;authpriv.none		/var/log/messages
    # debug 레벨만의 daemon 메세지를 기록합니다
    daemon. =debug						/var/log/daemon.debug
    # authpriv 파일은 액세스 제한을 가집니다.
    authpriv. *						/var/log/secure
    # 모든 레벨의 mail 메세지를 한 개소에 정리해 기록합니다.
    mail. *							/var/log/maillog
    # emerg (비상사태) 레벨의 모든 메세지는 전원이 받습니다.
    *.emerg							*
    *.emerg							@arpa.berkeley.edu
    # alert 레벨 이상의 메세지를 root 와 eric 의 화면에 표시됩니다.
    *.alert                                                 root, eric
    # err 레벨 이상의 mail 와 news 의 에러를 특별한 파일에 보존합니다.
    mail;news.err						/var/log/spoolerr
    # 모든 레벨의 인증 메세지를 필터에 파이프 합니다.
    auth. *					|exec /usr/local/sbin/authfilter
    # ftpd 의 트랜잭션(transaction)를 mail 와 news 에 맞추어 보존합니다.
    ! ftpd
    *. *							/var/log/spoolerr
    # 보안 메세지를 다른 파일에 보존합니다.
    security. *						/var/log/security
    # /dev/console 에의 기입을 다른 파일에 보존합니다.
    console. *						/var/log/console.log

실장에 관한 주
“kern” 퍼실리티는, 통상, 로컬의 커널로부터 생성되는 메세지용으로 예약되고 있습니다. 퍼실리티 “kern” 그리고 로그 된 다른 메세지는, 통상, 퍼실리티 “user” 에 변환됩니다. 이 변환은 무효화 가능합니다. 자세한 것은 syslogd(8) (을)를 참조해 주세요.

관련 파일
/etc/syslog.conf
    syslogd(8) 설정 파일

버그
복수의 selector 지정은, 가끔 생각한 것처럼 효과를 발휘하지 않는 것이 있습니다. 예를 들면, “mail.crit, *.err” (와)과 설정하면(자), “mail” 퍼실리티의 메세지의 레벨은 “err” 인가 그 이상되어, “crit” 인가 그 이상의 레벨로는 되지 않습니다.

네트워크 환경에 있어서는, 모든 operating system가 같은 facility 명세트를 실장하고 있는 것은 아닌 점에 주의해 주세요. authpriv, cron, ftp, ntp 라고 한 이 실장에 대해 알려진 facility 가, 목적의 시스템에는 존재하지 않을지도 모릅니다. 더욱 나쁜 일에, DEC UNIX 는 AdvFS 파일 시스템의 로그 이벤트에 facility 번호 10 (이 실장에서는 authpriv 에 해당합니다)(을)를 사용하고 있습니다.

관련 항목
syslog(3), syslogd(8)