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 

終わり


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

Source: https://habr.com/ru/post/J352682/


All Articles