rsyslog - шаблон - regex данные для вставки в дб

PassengerPoolIdleTime 300
RailsFrameworkSpawnerIdleTime 1800
RailsAppSpawnerIdleTime 600

Пассажиром по умолчанию использует вышеупомянутые значения. Можно добавить те строки в пассажирскую часть Apache conf и попытаться настроить значения.

1
задан 28 June 2013 в 21:09
1 ответ

На случай, если кто-то столкнется с та же ситуация, вот что я в итоге сделал:

# /etc/rsyslog.conf

# Not sure what R signifies but saw it in other examples
# ERE = extended regex
# 0 = The submatch we want
# DFLT = How should a non match be returned?
$Template tpl_custom_header, "%msg:R,ERE,0,DFLT:[^:]+--end% | %msg:R,ERE,2,DFLT:X-custom_header:( )([0-9]*)--end%\n"    
$Template tpl_response_dsn, "%msg:R,ERE,0,DFLT:[^:]+--end% | %msg:R,ERE,1,DFLT:dsn=([0-9][.][0-9][.][0-9])--end% \n"

Чтобы проверить свои регулярные выражения, вы должны использовать: http://www.rsyslog.com/regex/ , это немного странно, но выполняет свою работу готово.

Пример необработанных записей журнала, немного измененных с OP:

Jun 29 05:40:28 service1 mail-myapp/cleanup[22200]: 6F67240A1A: prepend: header X-custom_header: 136 from localhost[127.0.0.1]; from=<noreply@myapp.com> to=<me@gmail.com> proto=ESMTP helo=<localhost>: headername: message-id

Jun 29 05:40:30 service1 mail-myapp/smtp[22201]: 6F67240A1A: to=<me@gmail.com>, relay=gmail-smtp-in.l.google.com[2607:f8b0:400e:c01::1a]:25, delay=2, delays=0.09/0/0.82/1, dsn=2.0.0, status=sent (250 2.0.0 OK 1372485254 rs6si5760686pbc.32 - gsmtp)

Как они выглядят после применения шаблонов:

 6F67240A1A | 136
 6F67240A1A | 2.0.0

Когда я вставляю в mysql, я собираюсь вставить dsn как int vs string для повышения производительности, поэтому думаю об использовании этого:

 insert into response_log_dsn set mail_id = '6F67240A1A', dsn = (select cast(replace('2.0.0', '.', '') as unsigned));
0
ответ дан 4 December 2019 в 09:06

Теги

Похожие вопросы