LINUX.ORG.RU

fluentd считывать данные передавать в elasticsearch

 ,


0

1

Добрый день. Нужно настроить fluentd со следующими условиями:

Вычитывались все файлы с расширением .log из каталога /var/log/ Вычитанные логи должны помечаться тегом task07., где * - путь к файлу, вида var.log.file.log Все вычитанные логи и помеченные тегом task07.* должны перенаправляться в elasticsearch Логи должны сохраняться в индекс task07.filename-*, где *- это дата в формате ГГГГ-ММ-ДД, а filename - имя файла источника без расширения. tag сообщений должен быть записан в поле @log_name

Написал следующий конфиг в fluentd:

<source>
 @type tail
 path /var/log/*.log
 read_from_head true
 tag task07.*
 <parse>
  @type none
 </parse>
</source>

<filter task07.*>
 @type record_transformer
 enable_ruby true
 <record>
  service_name ${tag_parts[3]}
 </record>
</filter>

<match task07.*>
 @type rewrite_tag_filter
 <rule>
  key path
  pattern /.+/
  tag task07.$1
 </rule>
</match>


<match *.**>
 @type copy
 <store>
  type elasticsearch
  host localhost
  port 9200
  include_tag_key true
  index_name ${tag}-%Y-%m-%d
  tag_key @log_name
  flush_interval 10s
 </store>
</match>

В результате когда выполняю запрос curl http://localhost:9200/task07.*/_search?pretty=true, получаю след. ответ:

{
  "took": 29,
  "timed_out": false,
  "_shards": {
    "total": 0,
    "successful": 0,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 0,
      "relation": "eq"
    },
    "max_score": 0,
    "hits": []
  }
}

Как понимаю при корректной отработке fluentd, запрос в elasticsearch должен в ответе выдать что-то в этом роде:

 {
        "_index": "task07.auth-2021-03-10",
        "_type": "_doc",
        "_id": "bnj7HHgB9Qf_JJn5P4Ah",
        "_score": 1,
        "_source": {
          "message": "Mar 10 16:31:35 b9dd4778dfa96af54d794e8f08ff2396 sshd[15110]: Received disconnect from 1.251.239.18 port 59042:11: Bye Bye [preauth]",
          "@log_name": "task07.var.log.auth.log"
        }
}

Можете объяснить какие ошибки были допущены в моем конфиге fluentd, что в результате не получается добиться нужного результата.


  1. Посмотрите логи fluentd, он может ругается на что.
  2. Отправьте логи на стандартный вывод, проверьте, что они выглядят так, как вами задумывалось.
ugoday ★★★★★
()