I have an auto-scaling group of EC2 instances running a Wordpress site behind an elastic load balancer. I can see that there are periodic 500 errors being reported by the elastic beanstalk app in Cloudwatch, but they're not coming from the application servers. I can see ELB logs in S3, but they're very laborious to use. Is there any way to log only 5xx errors with information like time, request, exact error code, etc, using Cloudwatch or something similar?
Use AWS Athena to analyse the ALB logs. There is a worked example here: https://docs.aws.amazon.com/athena/latest/ug/application-load-balancer-logs.html
You want to look for entries where elb_status_code LIKE '50%'
-
Amazing, thanks very much. Final query I used in case it saves anyone else a keystroke:
SELECT time, client_ip, elb_status_code, request_verb, request_url, user_agent FROM alb_logs where elb_status_code LIKE '50%' and user_agent != 'AWS Security Scanner' order by time desc LIMIT 100
– Jeremy Warne Nov 11 '19 at 1:04