23.3. 새 구성 형식 사용


rsyslog 패키지의 Red Hat Enterprise Linux 7에 대해 기본적으로 설치된 rsyslog 버전 7에서 새 구성 구문이 도입되었습니다. 이 새로운 구성 형식은 특정 잘못된 구문을 허용하지 않고 더 강력하고 직관적이며 일반적인 오류를 방지하는 것을 목표로 합니다. 구문 개선은 RainerScript를 사용하는 새로운 구성 프로세서에 의해 활성화됩니다. 레거시 형식은 계속 완전하게 지원되고 있으며 기본적으로 /etc/1.8.0.conf 구성 파일에서 사용됩니다.

RainerScript는 네트워크 이벤트를 처리하고 rsyslog 와 같은 이벤트 프로세서를 구성하도록 설계된 스크립팅 언어입니다. RainerScript가 먼저 표현식 기반 필터를 정의하는 데 사용되었습니다. 예 23.3. “표현식 기반 필터” 을 참조하십시오. rsyslog 버전 7의 RainerScript 버전은 input()ruleset() 문을 구현하므로 /etc/journal.conf 구성 파일을 새 구문으로 작성할 수 있습니다. 새 구문은 주로 더 구조화된다는 점에서 다릅니다. 매개 변수는 입력, 작업, 템플릿 및 모듈 로드와 같은 문에 인수로 전달됩니다. 옵션의 범위는 블록별로 제한됩니다. 이렇게 하면 가독성이 향상되고 잘못된 구성으로 인한 버그 수가 줄어듭니다. 성능 또한 큰 이점을 얻을 수 있습니다. 일부 기능은 두 구문 모두에 노출되며 일부는 새 기능에서만 발생합니다.

레거시 스타일 매개변수로 작성된 구성을 비교합니다.

$InputFileName /tmp/inputfile
$InputFileTag tag1:
$InputFileStateFile inputfile-state
$InputRunFileMonitor

또한 새 형식 문을 사용하는 것과 동일한 구성이 있습니다.And the same configuration with use of the new format statement:

input(type="imfile" file="/tmp/inputfile" tag="tag1:" statefile="inputfile-state")

이렇게 하면 구성에 사용되는 매개변수 수를 크게 줄이고 가독성을 높이며 실행 속도가 향상됩니다. RainerScript 문 및 매개변수에 대한 자세한 내용은 “온라인 문서” 을 참조하십시오.

23.3.1. 규칙 세트

특수 지시문을 별도로 남겨 두면 rsyslog 는 필터 조건으로 구성된 규칙에서 정의한 메시지와 조건이 true인 경우 수행할 작업을 처리합니다. 기존에 작성된 /etc/octets.conf 파일을 사용하면 모든 입력 메시지의 모양으로 모든 규칙이 평가됩니다. 이 프로세스는 첫 번째 규칙으로 시작하고 모든 규칙을 처리할 때까지 또는 규칙 중 하나에서 메시지를 삭제할 때까지 계속됩니다.

그러나 규칙은 규칙 세트라는 시퀀스로 그룹화할 수 있습니다. 규칙 세트를 사용하면 특정 규칙의 효과를 선택한 입력으로만 제한하거나 특정 입력에 바인딩된 별도의 작업 세트를 정의하여 rsyslog 의 성능을 향상시킬 수 있습니다. 즉, 특정 유형의 메시지에 대해 잠재적으로 false로 평가되는 필터 조건을 건너뛸 수 있습니다. /etc/journal.conf 의 레거시 규칙 세트는 다음과 같습니다.

$RuleSet rulesetname
rule
rule2

다른 규칙이 정의되거나 기본 규칙 세트를 다음과 같이 호출하면 규칙을 종료합니다.

$RuleSet RSYSLOG_DefaultRuleset

rsyslog 7의 새 구성 형식을 사용하면 input()ruleset() 문이 이 작업을 위해 예약되어 있습니다. /etc/journal.conf 의 새로운 형식 규칙 세트는 다음과 같습니다.

ruleset(name="rulesetname") {
   rule
   rule2
   call rulesetname2
   …
}

rulesetname 을 규칙 집합의 식별자로 바꿉니다. ruleset 이름은 RSYSLOG_ 로 시작할 수 없습니다. 이 네임스페이스는 rsyslog 에서 사용하도록 예약되어 있기 때문입니다. 그런 다음 RSYSLOG_DefaultRuleset 는 메시지에 다른 규칙 세트가 할당되어 있지 않은 경우 수행할 기본 규칙 집합을 정의합니다. 규칙rule2 를 사용하면 위에서 언급한 필터 작업 형식으로 규칙을 정의할 수 있습니다. call 매개 변수를 사용하면 다른 ruleset 블록 내부에서 규칙 세트를 호출하여 중첩할 수 있습니다.

규칙 세트를 생성한 후 적용할 입력을 지정해야 합니다.

input(type="input_type" port="port_num" ruleset="rulesetname");

여기서 입력 _type , 메시지를 수집한 입력 모듈 또는 port_num - 포트 번호를 통해 식별할 수 있습니다. file 또는 tag 와 같은 다른 매개변수는 input() 에 대해 지정할 수 있습니다. rulesetname 을 메시지에 대해 평가할 규칙 세트 이름으로 교체합니다. 입력 메시지가 규칙 세트에 명시적으로 바인딩되지 않은 경우 기본 규칙 세트가 트리거됩니다.

또한 레거시 형식을 사용하여 규칙 세트를 정의할 수도 있습니다. 자세한 내용은 “온라인 문서” 을 참조하십시오.

예 23.11. 규칙 세트 사용

다음 규칙 세트를 사용하면 다양한 포트에서 들어오는 원격 메시지를 서로 처리할 수 있습니다. 다음을 /etc/journal.conf에 추가하십시오.

ruleset(name="remote-6514") {
  action(type="omfile" file="/var/log/remote-6514")
}

ruleset(name="remote-601") {
  cron.* action(type="omfile" file="/var/log/remote-601-cron")
  mail.* action(type="omfile" file="/var/log/remote-601-mail")
}

input(type="imtcp" port="6514" ruleset="remote-6514");
input(type="imtcp" port="601" ruleset="remote-601");

위의 예에 표시된 규칙 세트는 두 포트에서 원격 입력에 대한 로그 대상을 정의합니다(포트 601 인 경우, 메시지는 기능에 따라 정렬됩니다. 그런 다음 TCP 입력이 활성화되고 규칙 세트에 바인딩됩니다. 이 구성이 작동하려면 필요한 모듈(imtcp)을 로드해야 합니다.

23.3.2. sysklogd와의 호환성

-c 옵션을 통해 지정된 호환성 모드는 rsyslog 버전 5에 있지만 버전 7에서는 존재하지 않습니다. 또한 sysklogd-style 명령줄 옵션은 더 이상 사용되지 않으며 이러한 명령줄 옵션을 통해 rsyslog 를 구성하는 것은 피해야 합니다. 그러나 여러 템플릿과 지시문을 사용하여 sysklogd와 같은 동작을 에뮬레이션하도록 rsyslogd 를 구성할 수 있습니다.

다양한 rsyslogd 옵션에 대한 자세한 내용은 rsyslogd(8)매뉴얼 페이지를 참조하십시오.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.