23.6. Rsyslog 모듈 사용


모듈식 설계로 인해 rsyslog 는 추가 기능을 제공하는 다양한 모듈을 제공합니다. 모듈은 타사에서 작성할 수 있습니다. 대부분의 모듈은 추가 입력(아래 입력 모듈 참조) 또는 출력을 제공합니다(아래 출력 모듈 참조). 다른 모듈은 각 모듈에 특정 기능을 제공합니다. 모듈은 모듈이 로드된 후 사용할 수 있게 되는 추가 구성 지시문을 제공할 수 있습니다. 모듈을 로드하려면 다음 구문을 사용합니다.

module(load=”MODULE”)
Copy to Clipboard Toggle word wrap

여기서 MODULE 은 원하는 모듈을 나타냅니다. 예를 들어 rsyslog 가 표준 텍스트 파일을 syslog 메시지로 변환할 수 있는 텍스트 파일 입력 모듈(imfile)을 로드하려면 /etc/journal.conf 구성 파일에 다음 행을 지정하십시오.

module(load=”imfile”)
Copy to Clipboard Toggle word wrap

rsyslog 는 다음과 같은 주요 카테고리로 구분된 여러 모듈을 제공합니다.

  • 입력 모듈 - 입력 모듈은 다양한 소스에서 메시지를 수집합니다. 입력 모듈의 이름은 항상 imfile im journal 과 같은 im 접두사로 시작합니다.
  • 출력 모듈 - 출력 모듈은 네트워크를 통해 전송, 데이터베이스에 저장 또는 암호화와 같은 다양한 대상으로 메시지를 발행하는 기능을 제공합니다. 출력 모듈의 이름은 항상 omsnmp ,omrelp 등과 같은 om 접두사로 시작합니다.
  • parser 모듈 - 이 모듈은 사용자 정의 구문 분석 규칙을 생성하거나 잘못된 형식의 메시지를 구문 분석하는 데 유용합니다. C 프로그래밍 언어에 대한 중간 지식을 사용하면 자체 메시지 구문 분석기를 만들 수 있습니다. 구문 분석 모듈의 이름은 항상 pm rfc5424,pmrfc3164 등과 같은 pm 접두사로 시작합니다.
  • 메시지 수정 모듈 - 메시지 수정 모듈은 syslog 메시지의 내용을 변경합니다. 이러한 모듈의 이름은 mm 접두사로 시작합니다. mmanon,mmnormalize 또는 mmjsonparse 와 같은 메시지 수정 모듈은 메시지의 익명화 또는 정규화에 사용됩니다.
  • 문자열 생성기 모듈 - 문자열 생성기 모듈은 메시지 콘텐츠를 기반으로 문자열을 생성하고 rsyslog 가 제공하는 템플릿 기능과 강력히 협력합니다. 템플릿에 대한 자세한 내용은 23.2.3절. “템플릿” 을 참조하십시오. 문자열 생성기 모듈의 이름은 항상 sm 접두사(예: smfile 또는 smtradfile )로 시작합니다.
  • 라이브러리 모듈 - 라이브러리 모듈은 다른 로드 가능한 모듈에 대한 기능을 제공합니다. 이러한 모듈은 필요한 경우 rsyslog 에 의해 자동으로 로드되며 사용자가 구성할 수 없습니다.

사용 가능한 모든 모듈 및 자세한 설명은 http://www.rsyslog.com/doc/rsyslog_conf_modules.html 에서 확인할 수 있습니다.

주의

rsyslog 가 모듈을 로드할 때 일부 기능과 데이터에 대한 액세스 권한을 제공합니다. 이로 인해 보안 취약점이 발생할 수 있습니다. 보안 위험을 최소화하기 위해 신뢰할 수 있는 모듈만 사용하십시오.

23.6.1. 텍스트 파일 가져오기

imfile 로 축약된 텍스트 파일 입력 모듈을 사용하면 rsyslog 가 모든 텍스트 파일을 syslog 메시지 스트림으로 변환할 수 있습니다. imfile 을 사용하여 자체 텍스트 파일 로그를 생성하는 애플리케이션에서 로그 메시지를 가져올 수 있습니다. imfile 을 로드하려면 /etc/journal.conf에 다음을 추가합니다.

    module(load=”imfile”
    				PollingInterval=”int”)
Copy to Clipboard Toggle word wrap

여러 파일을 가져올 때에도 imfile 을 한 번 로드하는 것으로 충분합니다. PollingInterval 모듈 인수는 rsyslog 가 연결된 텍스트 파일의 변경 사항을 확인하는 빈도를 지정합니다. 기본 간격은 10초이며, 이를 변경하려면 int 를 초 단위로 지정된 시간 간격으로 바꿉니다.

가져올 텍스트 파일을 식별하려면 /etc/journal.conf에서 다음 구문을 사용하십시오.

# File 1
input(type="imfile"
   File="path_to_file"
   Tag="tag:"
   Severity="severity"
   Facility="facility")

# File 2
input(type="imfile"
   File="path_to_file2")
...
Copy to Clipboard Toggle word wrap

입력 텍스트 파일을 지정하는 데 필요한 설정:

  • path_to_file 을 텍스트 파일의 경로로 바꿉니다.
  • tag: 를 이 메시지의 태그 이름으로 바꿉니다.

필수 지시문 외에도 텍스트 입력에 적용할 수 있는 몇 가지 다른 설정이 있습니다. 심각도를 적절한 키워드로 교체하여 가져온 메시지의 심각도 를 설정합니다. 기능을 키워드로 교체하여 메시지를 생성한 하위 시스템을 정의합니다. 심각도 및 기능에 대한 키워드는 기능/우선 우선 순위 기반 필터에서 사용되는 항목과 동일합니다. 23.2.1절. “filters”

예 23.15. 텍스트 파일 가져오기

Apache HTTP 서버는 텍스트 형식으로 로그 파일을 생성합니다. rsyslog 의 처리 기능을 Apache 오류 메시지에 적용하려면 먼저 imfile 모듈을 사용하여 메시지를 가져옵니다. 다음을 /etc/journal.conf에 추가하십시오.

module(load=”imfile”)
input(type="imfile"
   File="/var/log/httpd/error_log"
   Tag="apache-error:")
Copy to Clipboard Toggle word wrap

23.6.2. 데이터베이스로 메시지 내보내기

텍스트 파일이 아닌 데이터베이스에서 로그 데이터를 처리하는 것이 더 빠르고 편리해질 수 있습니다. 사용된 DBMS 유형에 따라 ommysql,ompgsql,omoracle 또는 ommongodb 와 같은 다양한 출력 모듈 중에서 선택합니다. 또는 libdbi 라이브러리를 사용하는 일반 omlibdbi 출력 모듈을 사용합니다. omlibdbi 모듈은 데이터베이스 시스템 firebird/Interbase, MS SQL, Sybase, SQLite, Oracle, mSQL, MySQL, PostgreSQL을 지원합니다.

예 23.16. 데이터베이스로 Rsyslog messages 내보내기

rsyslog 메시지를 MySQL 데이터베이스에 저장하려면 /etc/journal.conf에 다음을 추가합니다.

module(load=”ommysql”)

. action(type”ommysql”
server=”database-server”
db=”database-name”
uid=”database-userid”
pwd=”database-password”
serverport=”1234”)
Copy to Clipboard Toggle word wrap

먼저 output 모듈이 로드되면 통신 포트가 지정됩니다. 서버 이름 및 데이터베이스 및 인증 데이터와 같은 추가 정보는 위의 예의 마지막 줄에 지정됩니다.

23.6.3. 암호화된 전송 활성화

네트워크 전송의 기밀성 및 무결성은 TLS 또는 GSSAPI 암호화 프로토콜을 통해 제공할 수 있습니다.

TLS( Transport Layer Security )는 네트워크를 통해 통신 보안을 제공하도록 설계된 암호화 프로토콜입니다. TLS를 사용하는 경우 rsyslog 메시지는 전송 전에 암호화되며 발신자와 수신자 간에 상호 인증이 있습니다. TLS 구성은 “TLS로 암호화된 메시지 전송 구성” 에서 참조하십시오.

GSSAPI( Generic Security Service API )는 프로그램이 보안 서비스에 액세스할 수 있는 애플리케이션 프로그래밍 인터페이스입니다. rsyslog 와 관련하여 이를 사용하려면 Kerberos 환경이 작동해야 합니다. GSSAPI 구성은 “GSSAPI를 사용하여 암호화된 메시지 전송 구성” 에서 참조하십시오.

TLS로 암호화된 메시지 전송 구성

TLS를 통해 암호화된 전송을 사용하려면 서버와 클라이언트 모두를 구성해야 합니다.

  1. 공개 키, 개인 키 및 인증서 파일을 만들려면 14.1.11절. “새 키 및 인증서 생성” 를 참조하십시오.
  2. 서버 측에서 /etc/journal.conf 구성 파일에 다음을 구성합니다.

    1. gtls netstream 드라이버를 기본 드라이버로 설정합니다.

      global(defaultnetstreamdriver="gtls")
      Copy to Clipboard Toggle word wrap
    2. 인증서 파일에 경로를 제공합니다.

      global(defaultnetstreamdrivercafile="path_ca.pem"
      defaultnetstreamdrivercertfile="path_cert.pem"
      defaultnetstreamdriverkeyfile="path_key.pem")
      Copy to Clipboard Toggle word wrap

      더 적은 cluttered 구성 파일을 선호하는 경우 모든 글로벌 지시문을 단일 블록에 병합할 수 있습니다.

      교체:

      • 공개 키의 경로가 있는 path_ca.pem
      • certificate 파일 경로가 있는 path_cert.pem
      • 개인 키 경로가 있는 path_key.pem
    3. imtcp 모듈을 로드하고 드라이버 옵션을 설정합니다.

      module(load=”imtcp”
      StreamDriver.Mode=“number”
      StreamDriver.AuthMode=”anon”)
      Copy to Clipboard Toggle word wrap
    4. 서버를 시작합니다.

      input(type="imtcp" port="port″)
      Copy to Clipboard Toggle word wrap

      교체:

      • 드라이버 모드를 지정할 있습니다. TCP 전용 모드를 활성화하려면 1을 사용합니다.
      • 리스너를 시작할 포트 번호가 있는 포트 번호 (예: 10514)

        anon 설정은 클라이언트가 인증되지 않았음을 의미합니다.

  3. 클라이언트 측에서 /etc/journal.conf 구성 파일에 다음을 구성합니다.

    1. 공개 키를 로드합니다.

      global(defaultnetstreamdrivercafile="path_ca.pem")
      Copy to Clipboard Toggle word wrap

      path_ca.pem 을 공개 키의 경로로 바꿉니다.

    2. gtls netstream 드라이버를 기본 드라이버로 설정합니다.

       global(defaultnetstreamdriver="gtls")
      Copy to Clipboard Toggle word wrap
    3. 드라이버를 구성하고 수행할 작업을 지정합니다.

      module(load=”imtcp”
        streamdrivermode=”number”
        streamdriverauthmode=”anon”)
      input(type=”imtcp”
        address=”server.net”
        port=”port”)
      Copy to Clipboard Toggle word wrap

      번호,anon, port 를 서버에서와 동일한 값으로 바꿉니다.

      위 목록의 마지막 행에서 예제 작업은 서버에서 지정된 TCP 포트로 메시지를 전달합니다.

GSSAPI를 사용하여 암호화된 메시지 전송 구성

rsyslog 에서 GSSAPI와의 상호 작용은 imgssapi 모듈에서 제공합니다. GSSAPI 전송 모드를 활성화하려면 다음을 수행합니다.

  1. /etc/journal.conf에 다음 구성을 배치합니다.

    $ModLoad imgssapi
    Copy to Clipboard Toggle word wrap

    이 지시문은 imgssapi 모듈을 로드합니다.

  2. 다음과 같이 입력을 지정합니다.

    $InputGSSServerServiceName name
    $InputGSSServerPermitPlainTCP on
    $InputGSSServerMaxSessions number
    $InputGSSServerRun port
    Copy to Clipboard Toggle word wrap
    • name 을 GSS 서버의 이름으로 바꿉니다.
    • 번호를 교체하여 지원되는 최대 세션 수를 설정합니다. 이 수는 기본적으로 제한되지 않습니다.
    • GSS 서버를 시작할 선택한 포트로 포트를 바꿉니다.

      설정의 $InputGSSServerPermitPlainTCP 는 서버가 동일한 포트에서 일반 TCP 메시지를 수신할 수 있도록 허용합니다. 이는 기본적으로 꺼져 있습니다.

참고

구성 파일 판독기가 /etc/journal.conf 구성 파일에 $InputGSSServerRun 지시문이 발생하면 imgssapi 모듈이 초기화됩니다. 따라서 $InputGSSServerRun 후에 구성된 보조 옵션은 무시됩니다. 구성을 적용하려면 $InputGSSServerRun 전에 모든 imgssapi 구성 옵션을 배치해야합니다.

예 23.17. GSSAPI 사용

다음 구성을 사용하면 동일한 포트에서 일반 tcp syslog 메시지를 수신할 수도 있는 포트 1514에서 GSS 서버를 사용할 수 있습니다.

$ModLoad imgssapi
$InputGSSServerPermitPlainTCP on
$InputGSSServerRun 1514
Copy to Clipboard Toggle word wrap

23.6.4. RELP 사용

RELP( Reliable Event Logging Protocol )는 컴퓨터 네트워크에서 데이터 로깅을 위한 네트워킹 프로토콜입니다. 이벤트 메시지의 안정적인 전달을 제공하도록 설계되었으므로 메시지 손실을 허용하지 않는 환경에서 유용합니다.

RELP 구성

RELP를 구성하려면 /etc/journal.conf 파일을 사용하여 서버와 클라이언트 모두를 구성해야 합니다.

  1. 클라이언트를 구성하려면 다음을 수행합니다.

    1. 필요한 모듈을 로드합니다.

      module(load="imuxsock")
      module(load="omrelp")
      module(load="imtcp")
      Copy to Clipboard Toggle word wrap
    2. TCP 입력을 다음과 같이 구성합니다.

      input(type="imtcp" port="port″)
      Copy to Clipboard Toggle word wrap

      필요한 포트에서 리스너를 시작하려면 포트를 교체합니다.

    3. 전송 설정을 구성합니다.

      action(type="omrelp" target="target_IP″ port="target_port″)
      Copy to Clipboard Toggle word wrap

      target_IPtarget_port 를 대상 서버를 식별하는 IP 주소 및 포트로 바꿉니다.

  2. 서버를 구성하려면 다음을 수행합니다.

    1. 모듈 로드를 구성합니다.

      module(load="imuxsock")
      module(load="imrelp" ruleset="relp")
      Copy to Clipboard Toggle word wrap
    2. 클라이언트 구성과 유사하게 TCP 입력을 구성합니다.

      input(type="imrelp" port="target_port″)
      Copy to Clipboard Toggle word wrap

      target_port 를 클라이언트에서와 동일한 값으로 바꿉니다.

    3. 규칙을 구성하고 수행할 작업을 선택합니다. 다음 예제에서 log_path 는 메시지 저장 경로를 지정합니다.

      ruleset (name="relp") {
      action(type="omfile" file="log_path")
      }
      Copy to Clipboard Toggle word wrap
TLS를 사용하여 RELP 구성

TLS를 사용하여 RELP를 구성하려면 인증을 구성해야 합니다. 그런 다음 /etc/journal.conf 파일을 사용하여 서버와 클라이언트를 모두 구성해야 합니다.

  1. 공개 키, 개인 키 및 인증서 파일을 만듭니다. 자세한 내용은 14.1.11절. “새 키 및 인증서 생성”에서 참조하십시오.
  2. 클라이언트를 구성하려면 다음을 수행합니다.

    1. 필요한 모듈을 로드합니다.

      module(load="imuxsock")
      module(load="omrelp")
      module(load="imtcp")
      Copy to Clipboard Toggle word wrap
    2. TCP 입력을 다음과 같이 구성합니다.

      input(type="imtcp" port="port″)
      Copy to Clipboard Toggle word wrap

      필요한 포트에서 리스너를 시작하려면 포트를 교체합니다.

    3. 전송 설정을 구성합니다.

      action(type="omrelp" target="target_IP″ port="target_port″ tls="on"
      tls.caCert="path_ca.pem"
      tls.myCert="path_cert.pem"
      tls.myPrivKey="path_key.pem"
      tls.authmode="mode"
      tls.permittedpeer=["peer_name"]
      )
      Copy to Clipboard Toggle word wrap

      교체:

      • 대상 서버를 식별하는 IP 주소 및 포트가 있는 target_IPtarget_port 입니다.
      • path_ca.pem,path_cert.pem, path_key.pem 및 인증 파일 경로가 있는 path_ca.pem
      • 트랜잭션의 인증 모드가 있는 모드입니다. "name" 또는 "fingerprint"를 사용합니다.
      • 허용된 피어의 인증서 지문이 있는 peer_name. 이를 지정하면 tls.permittedpeer 가 선택한 피어 그룹에 대한 연결을 제한합니다.

        tls="on" 설정은 TLS 프로토콜을 활성화합니다.

  3. 서버를 구성하려면 다음을 수행합니다.

    1. 모듈 로드를 구성합니다.

      module(load="imuxsock")
      module(load="imrelp" ruleset="relp")
      Copy to Clipboard Toggle word wrap
    2. 클라이언트 구성과 유사하게 TCP 입력을 구성합니다.

      input(type="imrelp" port="target_port″ tls="on"
      tls.caCert="path_ca.pem"
      tls.myCert="path_cert.pem"
      tls.myPrivKey="path_key.pem"
      tls.authmode="name"
      tls.permittedpeer=["peer_name","peer_name1","peer_name2"]
      )
      Copy to Clipboard Toggle word wrap

      강조 표시된 값을 클라이언트에서와 동일하게 바꿉니다.

    3. 규칙을 구성하고 수행할 작업을 선택합니다. 다음 예제에서 log_path 는 메시지 저장 경로를 지정합니다.

      ruleset (name="relp") {
      action(type="omfile" file="log_path")
      }
      Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat