我试图按照以下架构进行测试
该地区是弗吉尼亚州
我创建了一个EC2实例和访问管理(IAM)角色,配置了写入Amazon Kinesis Firehose和Amazon CloudWatch的权限
OS amazon Linux : amzn-ami-hvm-2017.09.1.20180115-x86_64-gp2 (ami-97785bed))
安装假Apache日志生成器并运行脚本
pwd -> /home/ec2-user/Fake-Apache-Log-Generator-master/access_log_*.log
Run script -> python apache-fake-log-gen.py -n 0 -o LOG
在EC2实例上安装Amazon Kinesis Agent
以名称"ymtestdatastream3"
agent.json
在EC2实例上配置如下
{
"cloudwatch.endpoint": "monitoring.us-east-1.amazonaws.com", "cloudwatch.emitMetrics": true, "firehose.endpoint": "firehose.us-east-1.amazonaws.com", "flows": [ { "filePattern": "/home/ec2-user/Fake-Apache-Log-Generator-master/access_log*.log", "deliveryStream": "ymtestdatastream3", "dataProcessingOptions": [ { "initialPostion": "START_OF_FILE", "maxBufferAgeMillis":"2000", "optionName": "LOGTOJSON", "logFormat": "COMBINEDAPACHELOG" } ] } ]
}
但是,AWS s3中没有数据。
/var/log/aws-kinesis-agent/aws-kinesis-agent.log
如下
localhost(Agent.MetricsEmitter RUNNING)com.amazon.kinesis.streaming.agent.Agent [INFO]代理:进度:0条记录已解析(0字节),0条记录成功发送到目的地。正常运行时间:3330023ms 2018-02-09 10:56:41.120 + 0900 localhost(FileTailer [fh:ymtestdatastream3:/home/ec2-user/Fake-Apache-Log-Generator-master/access_log*.log] .MetricsEmitter RUNNING)com.amazon。 kinesis.streaming.agent.tailing.FileTailer [INFO] FileTailer [fh:ymtestdatastream3:/home/ec2-user/Fake-Apache-Log-Generator-master/access_log*.log]:Tailer Progress:Tailer已经解析了0条记录( 0bytes),转换了0条记录,跳过0条记录,并成功将0条记录发送到目的地。
如何设置AWS kinesishose agent.json
?
答案 0 :(得分:0)
默认情况下,EC2将/ home设置为具有严格限制的权限,因为这是ssh密钥的默认设置。因此,运动代理甚至无法访问您的主目录。由于您在受限的路径上书写,因此无效。编辑您的造假者python程序以在其他地方写入日志-并确保您已授予整个路径的权限,直到日志文件为止。祝你好运!