Python module for parsing AWS CloudFront and LoadBalancer logs
Project description
aws-log-parser
Python module to parse AWS LoadBalancer and CloudFront logs into Python3 data classes.
CloudFront Example
>>> from aws_log_parser import log_parser, LogType >>> entries = log_parser(log_data, LogType.CloudFront) >>> entries[0] CloudFrontWebDistributionLogEntry( date=datetime.date(2014, 5, 23), time=datetime.time(1, 13, 11), edge_location='FRA2', sent_bytes=182, client_ip='192.0.2.10', http_method='GET', host='d111111abcdef8.cloudfront.net', uri_stream='/view/my/file.html', status_code=200, referrer='www.displaymyfiles.com', user_agent='Mozilla/4.0 (compatible; MSIE 5.0b1; Mac_PowerPC)', uri_query=None, cookie=cookie_fixture, edge_result_type='RefreshHit', edge_request_id='MRVMF7KydIvxMWfJIglgwHQwZsbG2IhRJ07sn9AkKUFSHS9EXAMPLE==', host_header='d111111abcdef8.cloudfront.net', protocol='http', received_bytes=None, time_taken=0.001, forwarded_for=None, ssl_protocol=None, ssl_chipher=None, edge_response_result_type='RefreshHit', protocol_version='HTTP/1.1', )
LoadBalancer Example
>>> from aws_log_parser import log_parser, LogType >>> entries = log_parser(log_data, LogType.LoadBalancer) >>> entries[0] LoadBalancerLogEntry( type=HttpType.H2, timestamp=datetime.datetime(2019, 5, 10, 0, 55, 0, 578958, tzinfo=datetime.timezone.utc), elb='app/my-elb/bae6f4bf83cfba2a', client=Host( ip='73.9.17.165', port=55354, ), target=Host( ip='172.18.16.37', port=80, ), request_processing_time=0.001, target_processing_time=0.01, response_processing_time=0.0, elb_status_code=301, target_status_code=301, received_bytes=287, sent_bytes=465, http_request=HttpRequest( method='GET', url='https://example.it:443/l/27uM', query={}, protocol='HTTP/2.0', ), user_agent='Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 [FBAN/FBIOS;FBDV/iPhone10,6;FBMD/iPhone;FBSN/iOS;FBSV/12.2;FBSS/3;FBCR/T-Mobile;FBID/phone;FBLC/en_US;FBOP/5]', # noqa: E501 ssl_cipher='ECDHE-RSA-AES128-GCM-SHA256', ssl_protocol='TLSv1.2', target_group_arn='arn:aws:elasticloadbalancing:us-east-1:12345678900:targetgroup/my-elb/4bbbb73e0d3ddadc', trace_id='Root=1-5cd4cbe4-685415e018175510cb4e3588', domain_name='example.it', chosen_cert_arn='arn:aws:acm:us-east-1:12345678900:certificate/3e6b547b-dd22-41f2-9130-32f2c21f0ca0', matched_rule_priority=0, request_creation_time=datetime.datetime(2019, 5, 10, 0, 55, 0, 567000, tzinfo=datetime.timezone.utc), actions_executed=['waf', 'forward'], redirect_url=None, error_reason=None, )
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size aws_log_parser-1.8.0-py3-none-any.whl (11.1 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Close
Hashes for aws_log_parser-1.8.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddbc02cee95a5ee8039bf18a55a2d776fd2ff76504de181258df3b1313b4afa1 |
|
MD5 | a3864ee374b05d4abbc1ff206721ceb9 |
|
BLAKE2-256 | d688bf3cc5cd6bccf104b7e656de7786f02b29e0b1589098b49be3721bca9fa6 |