Size: a a a

Regular Expressions

2021 January 14

СД

Стас Донцов... in Regular Expressions
да я видел эту репу
источник

СД

Стас Донцов... in Regular Expressions
ну там не 120 паттернс
источник

OM

Oleg Makarikhin in Regular Expressions
не считал, но наверное каждую определенную строку они рассматривают как паттерн
источник

СД

Стас Донцов... in Regular Expressions
и вот одно мне не понятно, что значит слово перед двоеточием и после, вот взять пример:

# Default postgresql pg_log format pattern
POSTGRESQL %{DATESTAMP:timestamp} %{TZ} %{DATA:user_id} %{GREEDYDATA:connection_id} %{POSINT:pid}


DATESTAMP - это как я понял мини-паттерн, более мелкая регулярка
timestamp - а это что? это название переменной в которой будет сохранен сам штамп?
источник

OM

Oleg Makarikhin in Regular Expressions
Стас Донцов
и вот одно мне не понятно, что значит слово перед двоеточием и после, вот взять пример:

# Default postgresql pg_log format pattern
POSTGRESQL %{DATESTAMP:timestamp} %{TZ} %{DATA:user_id} %{GREEDYDATA:connection_id} %{POSINT:pid}


DATESTAMP - это как я понял мини-паттерн, более мелкая регулярка
timestamp - а это что? это название переменной в которой будет сохранен сам штамп?
да, это "преимущество" грока, его патерны могут пользоваться уже определенными паттернами
источник

OM

Oleg Makarikhin in Regular Expressions
источник

OM

Oleg Makarikhin in Regular Expressions
Стас Донцов
и вот одно мне не понятно, что значит слово перед двоеточием и после, вот взять пример:

# Default postgresql pg_log format pattern
POSTGRESQL %{DATESTAMP:timestamp} %{TZ} %{DATA:user_id} %{GREEDYDATA:connection_id} %{POSINT:pid}


DATESTAMP - это как я понял мини-паттерн, более мелкая регулярка
timestamp - а это что? это название переменной в которой будет сохранен сам штамп?
имхо, весьма хреновый патерн)
POSTGRESQL
источник

OM

Oleg Makarikhin in Regular Expressions
я вот для своего пилил недавно,
https://pastebin.com/yg0Qbb3h
источник

OM

Oleg Makarikhin in Regular Expressions
GREEDYDATA переопределенный, в нем символ переноса строки прямо в конфиге реализован переносом строки.
источник

СД

Стас Донцов... in Regular Expressions
и сколько тут типов сообщений получится?
источник

СД

Стас Донцов... in Regular Expressions
или это для одного какого-то сообщения?
источник

СД

Стас Донцов... in Regular Expressions
под типами имею в виду, что мне не понятно - данный шаблон можно применить к семейству событий или только к одному
источник

OM

Oleg Makarikhin in Regular Expressions
у меня такой формат
log_line_prefix = '%t [%p]: [%l-1] db=%d,user=%u,app=%a,client=%h '
источник

OM

Oleg Makarikhin in Regular Expressions
Стас Донцов
под типами имею в виду, что мне не понятно - данный шаблон можно применить к семейству событий или только к одному
только к постгресным логам
источник

СД

Стас Донцов... in Regular Expressions
вообще всем?
источник

СД

Стас Донцов... in Regular Expressions
у них там везде формат одинаковый?
источник

OM

Oleg Makarikhin in Regular Expressions
ну постгресные, а другие програмные продукты свои логи генерируют и не проходят пайплайны постгресного
источник

OM

Oleg Makarikhin in Regular Expressions
эм...
источник

СД

Стас Донцов... in Regular Expressions
нет, я про другое, сейчас объясню
источник

СД

Стас Донцов... in Regular Expressions
вот есть например Auditd, система аудирования в линуксе, у нее есть "типы сообщений", приведу два:

audispd: node=srv-test-Auditd-01 type=EXECVE msg=audit(1604575502.800:38394): argc=3 a0='sed' a1='-nr' a2='s/^statsdir[[:space:]]+([^[:space:]]+).*$/\\1/p'

audispd: node=srv-test-Auditd-01 type=PATH msg=audit(1606132038.725:2471): item=1 name='/home/sdontsov/testfile7' inode=1049370 dev=fc:00 mode=0100664 ouid=1007 ogid=1007 rdev=00:00 nametype=DELETE

И вот в данном случае можно было сделать либо одну большую регулярку на два события, либо разделить регулярку и сделать две отдельных регулярки:
- одну для события типа EXECVE
- другую для события типа PATH
источник