Rsyslogリモート転送のいくつかの方法

9609 ワード

基本的な紹介
Rsyslogはsyslogdのマルチスレッド拡張版で、rsyslog vs. syslog-ngリンクはrsyslogの公式とsyslogの特性と性能のいくつかの対比であり、現在のほとんどのLinuxリリースバージョンのデフォルトでもrsyslogを使用してログを記録している.ここではrsyslogリモート転送のいくつかの方法を紹介し、リモートログ転送について理解することができます.
rsyslogは3つのリモートログ転送方式を提供します.
  • UDP:パケット伝送の信頼性が低い
  • TCP:パケット伝送の信頼性が高い
  • RELP:パケット伝送の信頼性が最も高く、データ損失を回避し、比較的新しいプロトコルであり、現在は応用が少ない
  • 以下はmanマニュアルのRELPプロトコルについて説明します.
    RELP can be used instead of UDP or plain TCP syslog to provide reliable delivery of syslog messages. Please note that plain TCP syslog does NOT provide truly reliable delivery, with it messages may be lost when there is a connection problem or the server shuts down. RELP prevents message loss in hose cases.
    RELPの更なる理解については参考になるUsing TLS with RELPRELP Input ModuleRELP Output Module (omrelp)
    関連構成
    To forward messages to another host via UDP, prepend the hostname with the at sign (“@”). To forward it via plain tcp, prepend two at signs (“@@”). To forward via RELP, prepend the string “:omrelp:” in front of the hostname.
    UDP転送
    Serverエンドの構成
    /etc/rsyslog.conf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    # Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 $AllowedSender UDP, 192.168.80.0/24  # This one is the template to generate the log filename dynamically, depending on the client's IP address.  #       IP             ,syslog        $template Remote,"/var/log/syslog/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"  # Log all messages to the dynamically formed file. :fromhost-ip, !isequal, "127.0.0.1" ?Remote #       IP    ,          #               ,        ,            Server       & ~ #          ,                    

    あるいは、以上の配置を/etc/rsyslog.d/に単独で格納xxx.confプロファイルでは、できるだけプライマリプロファイルの変更を避けます.もちろん、独立したファイルをプライマリプロファイルに含めるには、次のプロファイルが必要です.
    1
    2
    3
    
    # grep 'rsyslog.d' /etc/rsyslog.conf  # Include all config files in /etc/rsyslog.d/ $IncludeConfig /etc/rsyslog.d/*.conf 

    Clientエンド構成
    /etc/rsyslog.conf
    1
    
    *.* @192.168.80.130 

    以上の構成が完了した後/etc/init.d/rsyslog restartTCP転送
    TCP構成はUDPと類似しており、以下の通りである.
    Serverエンドの構成
    /etc/rsyslog.conf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    # Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514 $AllowedSender TCP, 192.168.80.0/24  # This one is the template to generate the log filename dynamically, depending on the client's IP address.  $template Remote,"/var/log/syslog/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"  # Log all messages to the dynamically formed file. :fromhost-ip, !isequal, "127.0.0.1" ?Remote & ~ 

    Clientエンド構成
    /etc/rsyslog.conf
    1
    
    *.* @@192.168.80.130 

    クライアントとサービス側は関連サービスを再起動すればよい
    TCPとUDPの伝送方式についてrsyslogはTCP伝送方式を推奨している
    In general, we suggest to use TCP syslog. It is way more reliable than UDP syslog and still pretty fast. The main reason is, that UDP might suffer of message loss. This happens when the syslog server must receive large bursts of messages. If the system buffer for UDP is full, all other messages will be dropped. With TCP, this will not happen. But sometimes it might be good to have a UDP server configured as well. That is, because some devices (like routers) are not able to send TCP syslog by design. In that case, you would need both syslog server types to have everything covered. If you need both syslog server types configured, please make sure they run on proper ports. By default UDP syslog is received on port 514. TCP syslog needs a different port because often the RPC service is using this port as well.
    RELP転送
    RELPはインストールが必要rsyslog-relp該当モジュール
    1
    
    # yum install rsyslog-relp -y 

    Serverエンドの構成
    /etc/rsyslog.conf
    1
    2
    3
    4
    5
    6
    7
    8
    
    $ModLoad imrelp #        $InputRELPServerRun 20514 #       # This one is the template to generate the log filename dynamically, depending on the client's IP address.  $template Remote,"/var/log/syslog/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"  # Log all messages to the dynamically formed file. :fromhost-ip, !isequal, "127.0.0.1" ?Remote 

    Clientエンド構成
    /etc/rsyslog.conf
    1
    2
    3
    4
    5
    
    $ActionQueueType LinkedList # use asynchronous processing $ActionQueueFileName srvrfwd # set file name, also enables disk mode $ActionResumeRetryCount -1 # infinite retries on insert failure $ActionQueueSaveOnShutdown on # save in-memory data if rsyslog shuts down *.* :omrelp:192.168.80.130:20514 

    クライアントとサービス側は関連サービスを再起動すればよい
    資料の参考と拡張
  • Using TLS with RELP
  • RELP Input Module
  • RELP Output Module (omrelp)
  • Rsyslog remote logging using RELP
  • UDP Rsyslog
  • TCP Rsyslog

  • –EOF–