Rsyslog 8.集中ログ収集

すべてに良い。



今月は、Linux Administratorの最初のストリームを終了し、2番目のストリームをゆっくりと開始します。これは、新しい教師によって大幅に改訂および強化されます。 それらの1つ-Alexey Tsykunovは 、今日、小さな便利なメモを共有しています。



行こう



挑戦する



ディレクトリにログを保存するプログラムを実行するサーバーがいくつかあります。



これらのすべてのログを、サーバー名ごとにサブディレクトリに一元的に保存し、ファイル名を保持する必要があります。



syslogでロギングプログラムをすぐに再設定する方法はありません。



周辺:





クライアントとサーバーの両方がrsyslogを最新バージョンに更新する必要があります。



cd /etc/yum.repos.d/ wget http://rpms.adiscon.com/v8-stable/rsyslog.repo yum update rsyslog
      
      









解決策



Rsyslogには次の標準モジュールがあります。





これらを使用して、クライアントマシンとサーバーで構成が実行されました。



クライアントで



 module(load="imfile" mode="inotify") #      template (name="LongTagForwardFormat" type="string" string="<%PRI%>%TIMESTAMP:::date-rfc3339% %HOSTNAME% %syslogtag%%$.suffix%%msg:::sp-if-no-1st-sp%%msg%") #     ruleset(name="sendToLogserver") { action(type="omfwd" Target="192.168.1.1" Port="514" protocol="tcp" Template="LongTagForwardFormat") } #    .    input(type="imfile" File="/your_app_path_logs/log/*.log" tag="apptag__" ruleset="app_logs" addMetadata="on") #     ,   ruleset(name="app_logs") { set $.suffix=re_extract($!metadata!filename, "(.*)/([^/]*)", 0, 2, "app.log"); call sendToLogserver }
      
      





サーバー上



サーバーで、/ etc / rsyslog.confを直接構成しました



 #    unix socket module(load="imuxsock") #    journald module(load="imjournal") #        module(load="imtcp" MaxSessions="500") #      input(type="imtcp" port="514" ruleset="remote") #             ,      template(name="RemoteHost" type="string" string="/opt/pabkss/%HOSTNAME%/%$.logpath%") #      template(name="OnlyMsg" type="string" string="%msg:::drop-last-lf%\n") #    ruleset(name="remote") { #   ,    set $.logpath = replace($programname, "__", "/"); action(type="omfile" dynaFile="RemoteHost" template="OnlyMsg") }
      
      





新たな問題





 systemctl restart rsyslog
      
      





終わり



いつものように、私たちはここでコメント、質問を待っています。または、公開レッスンを見て教師を苦しめることができます。



All Articles