Kinesis
Amazon Kinesis Data Streams 筆記。
Intro
Kinesis Data Streams is a scalable and durable real-time data streaming service that can continuously capture gigabytes of data per second from hundreds of thousands of sources.
Setup Kinesis Agent On EC2
Create IAM Role
Attach on EC2:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"cloudwatch:PutMetricData",
"kinesis:PutRecords"
],
"Resource": "*"
}
]
}Install Agent
sudo yum updatesudo yum install –y aws-kinesis-agentCreate a folder for streaming data
cd /opt/
sudo mkdir app-stream-1
cd app-stream-1Config
sudo cat /etc/aws-kinesis/agent.jsonDefault configuration:
{
"cloudwatch.emitMetrics": true,
"kinesis.endpoint": "https://kinesis.ap-southeast-1.amazonaws.com",
"firehose.endpoint": "",
"flows": [
{
"filePattern": "/opt/app-stream-1/logfile.log",
"kinesisStream": "kds-test",
"partitionKeyOption": "RANDOM"
},
{
"dataProcessingOptions": {
"optionName": "CSVTOJSON",
"customFieldNames": [ "field1", "field2" ],
"delimiter": "yourdelimiter"
},
"filePattern": "/tmp/app.log*",
"kinesisStream": "stream name",
"initialPosition": "END_OF_FILE",
"maxBufferAgeMillis": "60000",
"maxBufferSizeBytes": "4194304",
"maxBufferSizeRecords": "500",
"minTimeBetweenFilePollsMillis": "100",
"multiLineStartPattern": "",
"partitionKeyOption": "RANDOM",
"skipHeaderLines": "0",
"truncatedRecordTerminator": "\n"
}
]
}Set permissions
sudo chown aws-kinesis-agent-user:aws-kinesis-agent-user -R /opt/stream-1Kinesis Agent Services
sudo service aws-kinesis-agent statussudo service aws-kinesis-agent start
sudo service aws-kinesis-agent restart
sudo service aws-kinesis-agent stopTail log files
Tail the application log file:
sudo tail -f /opt/kds/file.logTail the Kinesis Agent log file:
sudo tail -f /var/log/aws-kinesis-agent/aws-kinesis-agent.log