我想将tomcat catalinat.out日志流式传输到云监视:
这是我遵循的配置:
但是我在cloudwatch控制台中看不到catalina.out:
这是错误,我在awslogs.log中 我该怎么解决。 2020-05-22 18:15:55,450-cwlogs.push.batch-警告-3374-线程29-CreateLogGroup失败,发生异常调用CreateLogGroup操作时发生错误(AccessDeniedException):用户:arn:aws:sts :: 610232524349:假定角色/ aws-elasticbeanstalk-ec2-role / i-099300c0bfd4b6a28无权执行:logs:资源上的CreateLogGroup:arn:aws:logs:eu-central-1:610232524349:log-group:/ aws / elasticbeanstalk / ************ / var / log / tomcat8 / catalina.out:日志流:
答案 0 :(得分:0)
使用提供的示例,您不会导出catalinat.out,而是流式传输以监视以下文件:
要流式传输catalitat.out,必须将文件添加到配置中,并将日志的位置放在内容部分的末尾(提供的示例中的第61-71行)
应该这样,将/path/to/catalitat.log替换为日志的实际路径:
[/path/to/catalitat.log]
log_group_name = `{"Fn::Join":["/", ["/aws/elasticbeanstalk", { "Ref":"AWSEBEnvironmentName" }, "/path/to/catalitat.log"]]}`
log_stream_name = {instance_id}
file = /path/to/catalitat.log
答案 1 :(得分:0)
将tomcat日志(catalina.out)发布到CloudWatch流的步骤
为EC2创建新策略以使用AWS CloudWatch,提供对创建日志组,日志流和发布日志的访问权限
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "logs:*", "Resource": "*" } ] }
将策略附加到EC2实例的新创建或现有的IAM角色
使用PEM / PPK文件通过SSH连接到实例。
找到AWS CloudWatch Logs代理配置文件
[ec2-user@ elasticbeanstalk]$ sudo su [root@ elasticbeanstalk]# find / -name "*awslogs.conf" /etc/awslogs/awslogs.conf
编辑配置文件,并为tomcat日志添加日志流条目。我用过catalina.out
[ec2-user@ elasticbeanstalk]$ cat /etc/awslogs/awslogs.conf [general] state_file = /var/lib/awslogs/agent-state [tomcatLogs] log_group_name = tomcatLogs log_stream_name = catalinaLogs time_zone = LOCAL file = /[your-path-to]/tomcat8/catalina.out [ec2-user@ elasticbeanstalk]$
重新启动服务AWS日志
[ec2-user@ elasticbeanstalk]$ sudo service awslogs restart
重新访问CloudWatch日志组页面,您可以在其中看到名称为“ tomcatLogs ”的新组和名称为“ catalinaLogs ”