Perlでリモートのsyslogサーバにsyslogを送りつける

CPANのSys::Syslogを使えば一発。

リモートのsyslog(UDP経由)を受けられるsyslogdが稼働してるホストを loghost として。

#!/usr/bin/perl

use Sys::Syslog ;
use Sys::Syslog qw(:standard :macros) ;

Sys::Syslog::setlogsock( "udp" , "loghost" ) ;

Sys::Syslog::openlog( 
         'testsyslog33' ,
         'nowait' ,
         'local0' ) ;

Sys::Syslog::syslog( 'info' , "homu!homu!homuhomu!" ) ;

Sys::Syslog::closelog() ;

こんなかんじで書けば、loghostのsyslogdにこんなかんじで出てくる。

Nov 24 09:31:56 localhost.local testsyslog33: homu!homu!homuhomu!

FacilityとLevelについては適当にやったけど、このへんはRFC3164とか見てくれ。
(ってかsyslog扱うんならこのへん知ってる前提で)

Comments are closed.