[Perl] ポートを指定してsyslogの送信テストする

fluentdでsyslogを受信する設定の関連で、ちゃんとsyslogを受信できるのか調べる必要がありました。 送信する方も正しいか切り分けできていなかったので、syslogの送信テストをしたいと思った所、[ここのサイト](http://www.hiihah.info/index.php?Linux:syslog転送テスト)に素敵なサンプルがありました。 ポートを指定してsyslogを送りたかったので、少し改造してポート指定できるように変更しました。 ```perl `gutter:true;; コードの記載 #!/usr/bin/perl use strict; use warnings; use Sys::Syslog qw(:DEFAULT setlogsock); if (@ARGV != 4){ print "usage syslogtest.pl [target_host[:port]] [facility] [priority] [msg]\n"; print "priority is error|warning|debug|info\n"; exit(1); } my $ident = "send-syslog-test"; my $logopt = "pid"; my $port = 514; my ($sv, $facility, $priority, $msg ) = @ARGV; # ポート指定されていればポートを取得する if ($sv =~ /([^:]+):([0-9]+)/) { $sv = $1; $port = $2; } setlogsock({type => "udp", port => $port}); $Sys::Syslog::host = $sv; openlog($ident, $logopt, $facility); syslog($priority, $msg); closelog(); ``` ## 参考URL * [Linux:syslog転送テスト](http://www.hiihah.info/index.php?Linux:syslog転送テスト) * [Sys::Syslog](http://perldoc.perl.org/Sys/Syslog.html)

0 件のコメント :

コメントを投稿