Назад | Перейти на главную страницу

Преобразование журналов файлов cookie Apache в формат json с помощью rsyslogd

Я регистрирую заголовки файлов cookie, некоторые файлы cookie могут иметь срок, а некоторые нет, то же самое относится к другим параметрам cookie, мне нужно реализовать централизованное ведение журнала, поэтому перед отправкой их в logstash я хочу преобразовать syslog в json. Как я могу это сделать?

Я нашел плохое решение. Вы можете добавить% {cookiename} C к своему определению LogFormat, но это означает, что вам нужно знать имена всех файлов cookie, и это только первая проблема. Вторая проблема заключается в том, что для файлов cookie, которые не существуют в определенном месте, a - будет регистрироваться, и это будет занимать место, однако это легко изменить с помощью модуля rsyslog (я так думаю), чтобы удалить tresh.

Вот пример.

LogFormat "{\" rhost \ ":% h, \" time \ ":% t, \" cookiename \ ": \"% {cookiename} C \ ", \" useragent \ ": \"% {User-agent } i \ ", \" vhost \ ": \"% {Host} i \ "}" json

Это будет регистрировать json с именем и значением cookie, если оно существует.

Я предлагаю вам форматировать журналы в apache как json ранее.

В соответствии с запросом, вот пример, который я получил о том, как использовать LogFormart в httpd, чтобы ваши журналы apache регистрировались напрямую, как json:

LogFormat "{\"time\":\"%{%Y-%m-%dT%H:%M:%S%z}t\",\"clientip\":\"%a\",\"duration\": %D,\"status\": %>s,\"request\": \"%U%q\",\"uri\": \"%U\",\"remote_user\": \"%u\",\"query_string\": \"%q\",\"document\": \"%f\",\"bytes\": %B,\"request_method\": \"%m\",\"referer\": \"%{Referer}i\",\"useragent\": \"%{User-agent}i\",\"vhost\": \"%{Host}i\" }" json