任意のログファイル(apf_logなど)から別のコンピュータにメッセージを送信する方法は?

任意のログファイル(apf_logなど)から別のコンピュータにメッセージを送信する方法は?

/etc/rsyslog.d/50-default.confに次の行を追加すると、ある標準ログファイルから別のサーバーにログメッセージを送信できることがわかりました(私はubuntu 16.04を使用しています)。

認証、認証個人。 * @@73.147.200.188:514
システムログ @@73.147.200.188:514

私はapf_logで同じことをしたいのですが、「apf_log @@73.147.200.188:514」は機能しません。

私はimfileモジュールの例を何十もの変えてみました(http://www.rsyslog.com/doc/v8-stable/configuration/modules/imfile.html)にはコマンドの古いバージョンと新しいバージョンの両方が含まれますが、何の効果もありません。

私が得た最も近いのは、実際にimfileを設定していないにもかかわらず、apf_logの正しい形式のログファイルエントリをauth.logに挿入する「apf_log /var/log/auth.log」行を追加することでした。残念ながら、auth.logエントリをリモートサーバーに直接送信することもできません(「auth.log @@73.147.200.188:514」は効果がありません)。

rsyslog の imfile モジュールのドキュメントには、「このモジュールは標準テキストファイルを syslog メッセージに変換する機能を提供します」と記載されています。 「状態ファイル」を使用して新しい行が表示されるタイミングを検出し、それを「rsyslogのルールエンジン」(「syslog @@73.147.200.188:514」および「auth,authpriv.* /var/ logを参照すると仮定します)に渡します。

ただし、そのルールエンジンのファイルの変数名が何であるかはわかりません。ファイル名、フルパス、imfileの「タグ」値を試してみました。また、サーバー(この場合は73.147.200.188)でこれらの設定を一致させ、/var/log/apf_logにフル権限があることを確認しました(両方のシステムで)。

ダスティン

ベストアンサー1

kodi私はRaspberry PiからFedora 23サーバーにログを送信するためにこれを行いました。 imfileおよびmatchルールの機能(local0)と重大度(info)だけを指定すればよいと思います。パイに設定ファイルを追加しました/etc/rsyslog.d/00-pi.conf

# try send arbitrary file to remote
$WorkDirectory /var/spool/rsyslog
$ModLoad imfile
$ModLoad imtcp
$InputFileName /home/osmc/.kodi/temp/kodi.log
$InputFileTag mytag1:
$InputFileStateFile imfilestatuskodi
$InputFileFacility local0
$InputFileSeverity info
$InputRunFileMonitor

# send all lines to server
local0.info @@server
& stop

ファイルは最初に含まれます/etc/rsyslog.conf。受信サーバーにはすでに受信設定があります/etc/rsyslog.d/00-receive.conf(単純化する必要があります)。

$ModLoad imtcp
$InputTCPServerRun 514
$template nomatch,"/var/log/nomatch-%hostname%.log"
# match on pi's ip address
if $fromhost-ip == '192.168.0.20' then {
     action(type="omfile" dynaFile="nomatch")
     stop
}

piでrsyslogを再起動すると、期待どおりkodi.logにすべてのファイルの内容とファイルの後続の更新が表示されます。/var/log/nomatch-pi.log予想どおり、piの状態ファイルは/var/spool/rsyslog/imfilestatuskodi

おすすめ記事