Flumeログ分類レベルの指定

1505 ワード

UDPまたはTCPでsyslog形式のログを受信する場合、たとえば:
flume dump 'syslogUdp(5140)'

このコマンドはUDPを使用して5140ポートでログを受信します.コマンドラインから正常に受信できるかどうかをテストしたい場合は、次の手順に従います.
echo '<37>Hello from cmd.' |nc -u localhost 5140

テストテキストヘッダに<37>を付けてログを分類する必要があります.そうしないと、flumeは次のエラーを放出します.
2013-07-16 08:26:49,614 [logicalNode dump-10] WARN syslog.SyslogUdpSource: 1 rejected packets. packet: java.net.DatagramPacket@51c888d9
com.cloudera.flume.handlers.text.EventExtractException: Failed to extract syslog wire entry
	at com.cloudera.flume.handlers.syslog.SyslogWireExtractor.extract(SyslogWireExtractor.java:178)
	at com.cloudera.flume.handlers.syslog.SyslogWireExtractor.extractEvent(SyslogWireExtractor.java:89)
	at com.cloudera.flume.handlers.syslog.SyslogUdpSource.next(SyslogUdpSource.java:88)
	at com.cloudera.flume.core.connector.DirectDriver$PumperThread.run(DirectDriver.java:108)

 
Clouderaからの解釈:The extra <37> is a syslog wireformat encoding of a message category and priority level.
 
TCPでsyslogを受信する方法は以下の通りです.
$ flume dump 'syslogTcp(5140)'

別のコマンドラインウィンドウを開き、次のように入力します.
[cloudera@n4 ~]$ echo '<37>Hello from cmd.' |nc -t localhost 5140

ログを受信するウィンドウに「Hello from cmd.」が表示されます.出力、ここではflume dumpを使用して受信したログをコマンドラインに印刷します.