Свободный формат Apache [предупреждение]: шаблон не соответствует:

В моем /etc/fluent/fluent.conf

@type tail формат apache2 путь /var/log/apache2/other_vhosts_access.log тег apache2.access

Ошибка / предупреждение: 2016-02-11 00:59:10 +0100 [предупреждение]: шаблон не соответствует: "mybebsite.dz:443 105.101.114.234 - - [11 / Feb / 2016: 00: 59: 10 +0100] \ "POST / __es / _all / _search HTTP / 1.1 \" 200 794 \ " https://mywebsite.net/\" \ "Mozilla / 5.0 (Windows NT 6.1; WOW64; rv: 43.0) Gecko / 20100101 Firefox / 43.0 \ ""

Почему этот паттерн не подходит? Лучший.

2 ответа

Я сталкиваюсь с предупреждением: шаблон не совпадает в fluentd, и из-за этого мой раздел фильтра не работал. А потом я серьезно отнесся к этому предупреждению и решил это, создав регулярное выражение. Итак, мой td-agent.conf выглядит следующим образом:

 <source>
    @type tail
    format **/^([^ ]*) (?<host>[^ ]*) [^ ]* "(?<method>\S+) (?<path>[^ ]* +\S*)? (?<code>[^ ]*) (?<size>[^ ]*) (?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?/**
    path /var/log/apache2/access.log
    pos_file /var/log/td-agent/httpd.access.pos
    tag s3.apache.access
  </source>
  <filter **>
    @type grep
    <regexp>
      key path
      pattern \/aws\/project_launch\/view\/[\w\W]*
    </regexp>
  </filter>
  <match **>
    @type s3
    aws_key_id xxxxxx
    aws_sec_key xxxxxx
    s3_bucket bucketalifluentd
    s3_region eu-west-1
    path logs_viewshare/
    buffer_path /var/log/td-agent/buffer/s3
    time_slice_format %Y-%m-%d/%H
    time_slice_wait 2m
  </match>

Обратите внимание, что журналы apache2 могут отличаться для вас, потому что вы сделали другую конфигурацию в apache2.conf. Вы можете использовать рубуляр

для создания регулярных выражений в ruby, потому что fluentd / td-agent был написан на ruby. После этого вы можете просмотреть буфер, который собрал ваши логи в каталоге /var/log/td-agent/buffer/s3.xxx

Похоже, что плагин хвоста не поддерживает формат для журнала журнала Apache "vhost_combined", но "комбинированный".
Как насчет изменения файла конфигурации apache следующим образом:

/etc/apache2/conf-available/other-vhosts-access-log.conf
До:CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined
(изменить vhost_combined на комбинированный)
После:CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log combined

Другие вопросы по тегам