Регистрационните файлове на Splunk AWS ALB не се анализират правилно

Опитвам се да приема моите AWS ALB регистрационни файлове в Splunk. В края на краищата мога да търся в своите ALB регистрационни файлове в Splunk. Но все пак събитията не се анализират правилно. Някой имал ли е подобен проблем или някакво предложение?

Ето моя prop.conf

[aws:alb:accesslogs]
SHOULD_LINEMERGE=false
FIELD_DELIMITER = whitespace
pulldown_type=true
FIELD_NAMES=type,timestamp,elb,client_ip,client_port,target,request_processing_time,target_processing_time,response_processing_time,elb_status_code,target_status_code,received_bytes,sent_bytes,request,user_agent,ssl_cipher,ssl_protocol,target_group_arn,trace_id
EXTRACT-elb = ^\s*(?P<type>[^\s]+)\s+(?P<timestamp>[^\s]+)\s+(?P<elb>[^\s]+)\s+(?P<client_ip>[0-9.]+):(?P<client_port>\d+)\s+(?P<target>[^\s]+)\s+(?P<request_processing_time>[^\s]+)\s+(?P<target_processing_time>[^\s]+)\s+(?P<response_processing_time>[^\s]+)\s+(?P<elb_status_code>[\d-]+)\s+(?P<target_status_code>[\d-]+)\s+(?P<received_bytes>\d+)\s+(?P<sent_bytes>\d+)\s+"(?P<request>.+)"\s+"(?P<user_agent>.+)"\s+(?P<ssl_cipher>[-\w]+)\s*(?P<ssl_protocol>[-\w\.]+)\s+(?P<target_group_arn>[^\s]+)\s+(?P<trace_id>[^\s]+)
EVAL-rtt = request_processing_time + target_processing_time + response_processing_time

Примерни данни

https 2020-08-20T12:40:00.274478Z app/my-aws-alb/e7538073dd1a6fd8 162.158.26.188:21098 172.0.51.37:80 0.000 0.004 0.000 405 405 974 424 "POST https://my-aws-alb-domain:443/api/ps/fpx/callback HTTP/1.1" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.2840.91 Safari/537.36" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:ap-southeast-1:111111111111:targetgroup/my-aws-target-group/41dbd234b301e3d84 "Root=1-5f3e6f20-3fdasdsfffdsf" "api.mydomain.com" "arn:aws:acm:ap-southeast-1:11111111111:certificate/be4344424-a40f-416e-8434c-88a8a3b072f5" 0 2020-08-20T12:40:00.270000Z "forward" "-" "-" "172.0.51.37:80" "405" "-" "-"


person hlesnt395    schedule 20.08.2020    source източник
comment
Моля, споделете примерни данни, за да можем да ги сравним с вашите настройки на props.conf. Освен това кои събития не са извлечени правилно?   -  person RichG    schedule 20.08.2020
comment
Благодаря за отговора @RichG. Тук прикачих примерните регистрационни файлове в първоначалния въпрос.   -  person hlesnt395    schedule 20.08.2020
comment
По принцип нищо не се анализира правилно. Той просто показва същите регистрационни файлове при търсене. Извличат се само полетата host, source, sourcetype и splunk_server.   -  person hlesnt395    schedule 20.08.2020
comment
Този израз EXTRACT работи в regex101.com, така че съм изненадан, че не работи в Splunk. Инсталирахте ли файла props.conf в главата за търсене и рестартирате ли Splunk?   -  person RichG    schedule 20.08.2020
comment
Трябва ли да го направя и в клъстера на главата за търсене? Обикновено правя само в HF и IDX възли (чрез Master indexer).   -  person hlesnt395    schedule 20.08.2020
comment
Тъй като EXTRACT е настройка за време за търсене, файлът props.conf трябва да бъде инсталиран на вашите SH. Ако имате нужда от извличане по време на индекс, използвайте TRANSFORMS на HF и индексаторите.   -  person RichG    schedule 20.08.2020
comment
Благодаря много за съвета. Бихте ли ми помогнали как да направя TRANSFORMS за това конкретно нещо?. Аз съм много нов в Splunk и нямам много представа за това.   -  person hlesnt395    schedule 20.08.2020
comment
Направих точно същия начин, който споменахте в Отговора. Но пак няма късмет. Нека да проверя дали съм направил други грешки и да ви държа в течение. Междувременно, моля за съвет, ако видите някакви промени, които трябва да се направят. Благодаря за подкрепата.   -  person hlesnt395    schedule 20.08.2020
comment
Здравей @RichG, Бих искал да се консултирам с теб, има ли друг съвет, който можеш да дадеш? Все още проблемът ми не беше решен : (   -  person hlesnt395    schedule 21.08.2020
comment
Нека продължим тази дискусия в чата.   -  person RichG    schedule 21.08.2020


Отговори (1)


Използването на трансформации е доста лесно. Започнете със строфа в transforms.conf.

[elb]
REGEX = ^\s*(?P<type>[^\s]+)\s+(?P<timestamp>[^\s]+)\s+(?P<elb>[^\s]+)\s+(?P<client_ip>[0-9.]+):(?P<client_port>\d+)\s+(?P<target>[^\s]+)\s+(?P<request_processing_time>[^\s]+)\s+(?P<target_processing_time>[^\s]+)\s+(?P<response_processing_time>[^\s]+)\s+(?P<elb_status_code>[\d-]+)\s+(?P<target_status_code>[\d-]+)\s+(?P<received_bytes>\d+)\s+(?P<sent_bytes>\d+)\s+"(?P<request>.+)"\s+"(?P<user_agent>.+)"\s+(?P<ssl_cipher>[-\w]+)\s*(?P<ssl_protocol>[-\w\.]+)\s+(?P<target_group_arn>[^\s]+)\s+(?P<trace_id>[^\s]+)

След това вижте трансформацията в props.conf

[aws:alb:accesslogs]
TIME_PREFIX = https\s
TIME_FORMAT = %Y-%m-%dT%H:%M:%S.%6N%Z
MAX_TIMESTAMP_LOOKAHEAD = 32
SHOULD_LINEMERGE=false
NO_BINARY_CHECK=true
TRANSFORMS-elb = elb
EVAL-rtt = request_processing_time + target_processing_time + response_processing_time
person RichG    schedule 20.08.2020