Syslog는 많은 유닉스 계열 시스템에서 사용하는 메시지 모델과 전송 규약을 정의합니다. Rsyslog는 메시지를 수신, 필터링, 변환, 저장 및 전달할 수 있는 구현체 중 하나입니다. systemd-journald와 함께 사용할 수도 있으며, 어느 이름도 모든 애플리케이션이 그 경로를 사용한다는 뜻은 아닙니다.
로깅 · 레슨 2
syslog
syslog 퍼실리티, 심각도, 라우팅 규칙 및 logger 명령의 동작 방식을 알아봅니다.
퍼실리티와 심각도
syslog 메시지는 대략적인 소스 범주를 설명하는 퍼실리티와 emergency부터 debug까지의 심각도를 가집니다. 흔한 퍼실리티에는 auth, cron, daemon, kern, mail, user 및 local0부터 local7까지가 있습니다.
심각도에는 순서가 있습니다. 고전적인 선택자 구문에서 daemon.warning은 일반적으로 warning뿐 아니라 daemon의 warning 이상으로 심각한 모든 메시지와 일치합니다. 고전 구문을 지원하는 구현체에서는 daemon.=warning처럼 등호 한정자를 사용해 정확히 일치시킬 수 있습니다.
daemon.warning 같은 고전적인 선택자는 일반적으로 무엇과 일치합니까?
rsyslog 규칙 읽기
Rsyslog는 일반적으로 주 설정 파일과 /etc/rsyslog.d/ 아래의 조각 파일을 불러옵니다. 전통적인 규칙은 선택자와 그 뒤의 동작으로 구성됩니다.
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
kern.* /var/log/kern.log
첫째 줄은 두 인증 퍼실리티의 모든 우선순위를 라우팅합니다. 둘째 줄은 메시지를 광범위하게 선택하되 해당 퍼실리티를 제외합니다. 셋째 줄은 커널 퍼실리티 메시지를 라우팅합니다. 파일 동작 앞의 -는 일반적으로 비동기 쓰기를 요청하며 제외를 뜻하지 않습니다.
프로덕션 라우팅을 변경하기 전에 포함된 모든 파일을 검사하고 설치된 버전에서 사용하는 정확한 구문을 검증하십시오.
전통적인 rsyslog 규칙에서 동작은 어느 부분입니까?
테스트 메시지 보내기
logger를 사용해 식별 가능한 태그와 우선순위가 있는 통제된 테스트 메시지를 전송합니다.
$ logger -p user.notice -t lesson-test 'routing check 2026-08-31T10:00'
그런 다음 예상 대상을 조회합니다.
$ journalctl -t lesson-test --since '5 minutes ago'
전달 및 라우팅 설정에 따라 같은 이벤트가 저널과 텍스트 파일에 모두 나타날 수 있습니다. logger -s는 메시지를 표준 오류에도 복사할 뿐, 영구 저장을 입증하지는 않습니다.
logger -t lesson-test는 전송하는 메시지에 무엇을 추가합니까?
라우팅 변경 및 검증
변경 전에 현재 설정을 보관하고 하위 소비자를 파악합니다. 구현체의 설정 검사 모드로 구문을 검증하십시오. 일반적인 명령은 다음과 같습니다.
$ sudo rsyslogd -N1
검증을 통과한 뒤에만 서비스 관리자를 통해 서비스를 다시 불러와야 합니다. 새 태그 메시지를 보내고, 필요한 모든 대상에서 확인하며, 서비스 상태와 내부 오류 로그를 검사합니다. 구문이 유효한 규칙도 범위를 지나치게 넓게 설정하거나 레코드를 중복시키거나 민감한 데이터를 노출할 수 있습니다.
신뢰할 수 없는 네트워크를 통과해 원격으로 전달할 때는 인증되고 암호화된 전송을 사용해야 합니다. UDP 전송에는 종단 간 확인 응답이 없습니다. 중요한 감사 요구 사항에는 큐, 손실, 무결성, 접근 제어 및 수신기 장애를 고려한 설계가 필요합니다.
새 라우팅 규칙이 작동한다는 충분한 증거는 무엇입니까?
레슨 완료
syslog 완료
이제 메시지 메타데이터부터 설정된 대상까지 syslog 라우팅을 테스트할 수 있습니다.
퍼실리티와 순서가 있는 심각도 수준을 구분합니다.
선택자와 동작을 분리해 읽습니다.
logger로 태그와 우선순위가 지정된 이벤트를 보냅니다.설정을 검증하고 전송을 종단 간 확인합니다.