、
log4j.rootLogger=INFO, file, consoleLogs
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=myapp.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.consoleLogs=org.apache.log4j.ConsoleAppender
log4j.appender.consoleLogs.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleLogs.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.logger.com.amazonaws.request=DEBUG
AWS SDK用のlog4jログは、以下のように見えるのエラーREPONSEについては
2017-06-01 11:56:58 DEBUG request:1137 - Sending Request: PUT https://samsa-repo.s3.amazonaws.com /sendme.log Headers: (User-Agent: aws-sdk-java/1.11.109 Mac_OS_X/10.11.6 Java_HotSpot(TM)_64-Bit_Server_VM/25.111-b14/1.8.0_111 scala/2.11.8, amz-sdk-invocation-id: 9179e5c2-fee3-4e6e-abb9-b50f882f1966, Content-Length: 9, x-amz-storage-class: REDUCED_REDUNDANCY, Content-MD5: /UERdk1lrFHXgNJHTSd3QA==, Content-Type: application/octet-stream,)
2017-06-01 11:56:58 DEBUG request:87 - Received successful response: 200, AWS Request ID: 3695D599CB1FD794
、
2017-06-01 13:58:24 DEBUG request:1572 - Received error response: com.amazonaws.services.s3.model.AmazonS3Exception: The Content-MD5 you specified did not match what we received. (Service: Amazon S3; Status Code: 400; Error Code: BadDigest; Request ID: 684584BD135900F3), S3 Extended Request ID: Y1NowPaA/mhydTWaDBupS7o7CA/PkliiVKzmDrDQwENIOdrg049h8BZ+I6Pi1GC8TZqBq1AJGJg=
JSON形式でログすると、次のMaven依存関係を使用してJS内のlog4jログを変換できますフォーマットに、
<dependency>
<groupId>net.logstash.log4j</groupId>
<artifactId>jsonevent-layout</artifactId>
<version>1.7</version>
</dependency>
その後、
{
"@timestamp": "2017-06-01T21:05:37.204Z",
"source_host": "M00974000.prayagupd.net",
"file": "AmazonHttpClient.java",
"method": "executeOneRequest",
"level": "DEBUG",
"line_number": "1137",
"thread_name": "ScalaTest-run-running-PublishToSimpleStorageServiceSpecs",
"@version": 1,
"logger_name": "com.amazonaws.request",
"message": "Sending Request: HEAD https://samsa-repo.s3.amazonaws.com/Headers: (User-Agent: aws-sdk-java/1.11.109 Mac_OS_X/10.11.6 Java_HotSpot(TM)_64-Bit_Server_VM/25.111-b14/1.8.0_111 scala/2.11.8, amz-sdk-invocation-id: 39fd8121-b40d-cb48-a6ea-65cf580f569f, Content-Type: application/octet-stream,) ",
"class": "com.amazonaws.http.AmazonHttpClient$RequestExecutor",
"mdc": {}
},
{
"@timestamp": "2017-06-01T21:05:38.337Z",
"source_host": "M00974000.prayagupd.net",
"file": "AwsResponseHandlerAdapter.java",
"method": "handle",
"level": "DEBUG",
"line_number": "87",
"thread_name": "ScalaTest-run-running-PublishToSimpleStorageServiceSpecs",
"@version": 1,
"logger_name": "com.amazonaws.request",
"message": "Received successful response: 200, AWS Request ID: null",
"class": "com.amazonaws.http.response.AwsResponseHandlerAdapter",
"mdc": {}
}
あなたはログを送信した後
は次のようにフォワーダを使用してelasticsearchし、 log4j.rootLogger=INFO, file, consoleLogs
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=myapp.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=net.logstash.log4j.JSONEventLayoutV1
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.consoleLogs=org.apache.log4j.ConsoleAppender
log4j.appender.consoleLogs.layout=net.logstash.log4j.JSONEventLayoutV1
log4j.appender.consoleLogs.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.logger.com.amazonaws.request=DEBUG
ログは以下のようになります、net.logstash.log4j.JSONEventLayoutV1
にログ・パターンを変更しますfilebeatでは、ログ/リクエストを値Sending Request
で集計/検索できます。
filebeat forwarder/elasticsearch/kibanaダッシュボードが過剰である場合は、AWS cloudwatchを介して集約ログに行きたいと思うかもしれません。