0

Я использую агент Amazon Kinesis для того, чтобы заводить журналы доступа к журналу nginx с целью нажатия на журнал доступа к Kinesis, что в конечном итоге будет использоваться в Kinesis Analytics.Агент Kinesis не преобразует записи в JSON

Агент работает и закрывает мой журнал доступа, а затем нажимает записи до Kinesis. Я могу видеть записи, прибывающие в Кинезис, поэтому связь хорошая.

Вопрос, связанный с вариантами форматирования, в частности, касается «LOGTOJSON».

Вот содержание /etc/aws-kinesis/agent.json:

{ 
    "cloudwatch.emitMetrics": false, 
    "kinesis.endpoint": "kinesis.eu-west-1.amazonaws.com", 

    "flows": [ 
    { 
     "filePattern": "/var/log/nginx/proxy-access*", 
     "kinesisStream": "removed-xxx", 
     "partitionKeyOption": "RANDOM", 
     "dataProcessingOptions": { 
     "optionName": "LOGTOJSON", 
     "logFormat": "COMBINEDAPACHELOG" 
    } 
    ] 
} 

Здесь вы часть Nginx конфигурации, который я использую для вывода бревен в апача комбинированном формате журнала:

log_format combined_apache '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'; 
access_log logs/proxy-access.log combined_apache; 

Вот является несколько строк вывода из журнала доступа nginx:

172.17.0.1 - - [09/Sep/2016:11:04:27 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 
172.17.0.1 - - [09/Sep/2016:11:04:27 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 
172.17.0.1 - - [09/Sep/2016:11:04:27 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 
172.17.0.1 - - [09/Sep/2016:11:04:27 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 

И вот выход агента Kinesis. Вы можете видеть, что записи «разбираются», но не «трансформируются».

2016-09-09 11:03:20.574+0000 18b332249e3f (Agent.MetricsEmitter RUNNING) com.amazon.kinesis.streaming.agent.Agent [INFO] Agent: Progress: 0 records parsed (0 bytes), and 0 records sent successfully to destinations. Uptime: 60041ms 
2016-09-09 11:03:20.574+0000 18b332249e3f (FileTailer[kinesis:centurion-weblogs:/var/log/nginx/proxy-access*].MetricsEmitter RUNNING) com.amazon.kinesis.streaming.agent.tailing.FileTailer [INFO] FileTailer[kinesis:centurion-weblogs:/var/log/nginx/proxy-access*]: Tailer Progress: Tailer has parsed 0 records (0 bytes), transformed 0 records, skipped 0 records, and has successfully sent 0 records to destination. 
2016-09-09 11:03:50.572+0000 18b332249e3f (FileTailer[kinesis:centurion-weblogs:/var/log/nginx/proxy-access*].MetricsEmitter RUNNING) com.amazon.kinesis.streaming.agent.tailing.FileTailer [INFO] FileTailer[kinesis:centurion-weblogs:/var/log/nginx/proxy-access*]: Tailer Progress: Tailer has parsed 0 records (0 bytes), transformed 0 records, skipped 0 records, and has successfully sent 0 records to destination. 
2016-09-09 11:03:50.572+0000 18b332249e3f (Agent.MetricsEmitter RUNNING) com.amazon.kinesis.streaming.agent.Agent [INFO] Agent: Progress: 0 records parsed (0 bytes), and 0 records sent successfully to destinations. Uptime: 90038ms 
2016-09-09 11:04:20.572+0000 18b332249e3f (FileTailer[kinesis:centurion-weblogs:/var/log/nginx/proxy-access*].MetricsEmitter RUNNING) com.amazon.kinesis.streaming.agent.tailing.FileTailer [INFO] FileTailer[kinesis:centurion-weblogs:/var/log/nginx/proxy-access*]: Tailer Progress: Tailer has parsed 398 records (36218 bytes), transformed 0 records, skipped 0 records, and has successfully sent 0 records to destination. 
2016-09-09 11:04:20.572+0000 18b332249e3f (Agent.MetricsEmitter RUNNING) com.amazon.kinesis.streaming.agent.Agent [INFO] Agent: Progress: 398 records parsed (36218 bytes), and 0 records sent successfully to destinations. Uptime: 120038ms 
2016-09-09 11:04:50.572+0000 18b332249e3f (FileTailer[kinesis:centurion-weblogs:/var/log/nginx/proxy-access*].MetricsEmitter RUNNING) com.amazon.kinesis.streaming.agent.tailing.FileTailer [INFO] FileTailer[kinesis:centurion-weblogs:/var/log/nginx/proxy-access*]: Tailer Progress: Tailer has parsed 533 records (48503 bytes), transformed 0 records, skipped 0 records, and has successfully sent 500 records to destination. 
2016-09-09 11:04:50.572+0000 18b332249e3f (Agent.MetricsEmitter RUNNING) com.amazon.kinesis.streaming.agent.Agent [INFO] Agent: Progress: 533 records parsed (48503 bytes), and 500 records sent successfully to destinations. Uptime: 150038ms 
2016-09-09 11:05:20.571+0000 18b332249e3f (FileTailer[kinesis:centurion-weblogs:/var/log/nginx/proxy-access*].MetricsEmitter RUNNING) com.amazon.kinesis.streaming.agent.tailing.FileTailer [INFO] FileTailer[kinesis:centurion-weblogs:/var/log/nginx/proxy-access*]: Tailer Progress: Tailer has parsed 533 records (48503 bytes), transformed 0 records, skipped 0 records, and has successfully sent 500 records to destination. 

Kinesis Analytics обнаруживает входящие данные как поток CSV, а не поток JSON. Когда я смотрю на содержание сырого потока в консоли AWS, это выглядит как это:

172.17.0.1 - - [09/Sep/2016:11:03:58 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 
,172.17.0.1 - - [09/Sep/2016:11:03:58 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 
,172.17.0.1 - - [09/Sep/2016:11:03:58 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 
,172.17.0.1 - - [09/Sep/2016:11:03:58 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 
,172.17.0.1 - - [09/Sep/2016:11:03:58 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 
,172.17.0.1 - - [09/Sep/2016:11:03:58 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 
,172.17.0.1 - - [09/Sep/2016:11:03:58 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 
,172.17.0.1 - - [09/Sep/2016:11:03:58 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 
,172.17.0.1 - - [09/Sep/2016:11:03:59 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 
,172.17.0.1 - - [09/Sep/2016:11:03:59 +0000] "GET/HTTP/1.0" 302 337 "-" "ApacheBench/2.3" 

Так это выглядит, как будто агент посылает каждую запись без каких-либо преобразований и ограничивающую каждую строку с запятой.

Я не вижу, где я здесь ошибся. Журнал доступа nginx выглядит так, как будто он написан в правильном формате, но агент Kinesis не преобразовывает его в JSON - по неизвестным причинам.

Любые указатели будут оценены по достоинству.

ответ

Смежные вопросы