⚠️ Эта страница автоматически переведена, и перевод может быть несовершенным.
blog-post

Integration of Manticore with Logstash/Filebeat

Введение

Logstash это инструмент управления журналами, который собирает данные из различных источников, преобразует их на лету и отправляет в нужное вам место назначения. Часто используется как конвейер данных для Elasticsearch, открытой аналитической и поисковой системы.
Filebeat — это легковесный отправитель для пересылки и централизации данных журналов. После установки в качестве агента он отслеживает указанные вами файлы журналов или места, собирает события журналов и пересылает их для индексации, обычно в Elasticsearch или Logstash.

Теперь Manticore также поддерживает использование Logstash и Filebeat в качестве конвейеров обработки. Это позволяет отправлять собранные и преобразованные данные в Manticore так же, как в Elasticsearch. В настоящее время поддерживаются версии Logstash 7.6‑9.2 и Filebeat 7.17‑9.2.

Рассмотрим простой пример конфигурационного файла Logstash, используемого для индексации dpkg.log, стандартного файла журнала менеджера пакетов Debian. Сам журнал имеет простую структуру, как показано ниже:

2023-05-31 10:42:55 status triggers-awaited ca-certificates-java:all 20190405ubuntu1.1
2023-05-31 10:42:55 trigproc libc-bin:amd64 2.31-0ubuntu9.9 <none>
2023-05-31 10:42:55 status half-configured libc-bin:amd64 2.31-0ubuntu9.9
2023-05-31 10:42:55 status installed libc-bin:amd64 2.31-0ubuntu9.9
2023-05-31 10:42:55 trigproc systemd:amd64 245.4-4ubuntu3.21 <none>

Конфигурация Logstash

Ниже приведён пример конфигурации Logstash:

input {
  file {
    path => ["/var/log/dpkg.log"]
    start_position => "beginning"
    sincedb_path => "/dev/null"
    mode => "read"
    exit_after_read => "true"
   file_completed_action => "log"
   file_completed_log_path => "/dev/null"
  }
}

output {
  elasticsearch {
   index => " dpkg_log"
   hosts => ["http://localhost:9308"]
   ilm_enabled => false
   manage_template => false
  }
}

Обратите внимание, что перед дальнейшими действиями необходимо учесть один важный момент: Manticore не поддерживает функции управления шаблонами журналов и управления жизненным циклом индекса Elasticsearch. Поскольку эти функции включены по умолчанию в Logstash, их нужно явно отключить в конфигурации. Кроме того, параметр hosts в разделе конфигурации output должен соответствовать HTTP‑портy прослушивания Manticore (по умолчанию localhost:9308).

Результаты Logstash

После внесения описанных изменений в конфигурацию вы можете запустить Logstash, и данные из журнала dpkg будут переданы в Manticore и корректно проиндексированы.

Ниже представлена получившаяся схема созданной таблицы и пример вставленного документа:

mysql> DESCRIBE dpkg_log;
+------------------+--------+---------------------+
| Field            | Type   | Properties          |
+------------------+--------+---------------------+
| id               | bigint |                     |
| message          | text   | indexed stored      |
| @version         | text   | indexed stored      |
| @timestamp       | text   | indexed stored      |
| path             | text   | indexed stored      |
| host             | text   | indexed stored      |
+------------------+--------+---------------------+

mysql> SELECT * FROM dpkg_log LIMIT 1\G

*************************** 1. row ***************************
id: 7280000849080746110
host: logstash-db848f65f-lnlf9
message: 2023-04-12 02:03:21 status unpacked libc-bin:amd64 2.31-0ubuntu9
path: /var/log/dpkg.log
@timestamp: 2023-06-16T09:23:57.405Z
@version: 1

Конфигурация Filebeat

Альтернативный способ сбора необработанных данных — использование агента Filebeat. Ниже приведена конфигурация Filebeat для работы с нашим примером журнала dpkg:

filebeat.inputs:
- type: filestream
  id: example
  paths:
	- /var/log/dpkg.log

output.elasticsearch:
  hosts: ["http://localhost:9308"]
  index:  "dpkg_log"
  allow_older_versions: true

setup.ilm:
  enabled: false

setup.template:
  name: "dpkg_log"
  pattern: "dpkg_log"

Конфигурация для версий Filebeat выше 8.10

В версиях Filebeat выше 8.10 функция сжатия вывода включена по умолчанию. Поэтому параметр compression_level: 0 необходимо добавить в файл конфигурации для обеспечения совместимости с Manticore:

filebeat.inputs:
- type: filestream
  id: example
  paths:
	- /var/log/dpkg.log

output.elasticsearch:
  hosts: ["http://localhost:9308"]
  index:  "dpkg_log"
  allow_older_versions: true
  compression_level: 0

setup.ilm:
  enabled: false

setup.template:
  name: "dpkg_log"
  pattern: "dpkg_log"

Результаты Filebeat

После запуска Filebeat с этой конфигурацией данные журналов будут отправлены в Manticore и корректно проиндексированы. Ниже представлена получившаяся схема таблицы, созданной Manticore, и пример вставленного документа:

mysql> DESCRIBE dpkg_log;
+------------------+--------+--------------------+
| Field            | Type   | Properties         |
+------------------+--------+--------------------+
| id               | bigint |                    |
| @timestamp       | text   | indexed stored     |
| message          | text   | indexed stored     |
| log              | json   |                    |
| input            | json   |                    |
| ecs              | json   |                    |
| host             | json   |                    |
| agent            | json   |                    |
+------------------+--------+--------------------+


mysql> SELECT * FROM dpkg_log LIMIT 1\G
*************************** 1. row ***************************
id: 7280000849080753116
@timestamp: 2023-06-16T09:27:38.792Z
message: 2023-04-12 02:06:08 status half-installed libhogweed5:amd64 3.5.1+really3.5.1-2
input: {"type":"filestream"}
ecs: {"version":"1.6.0"}
host: {"name":"logstash-db848f65f-lnlf9"}
agent: {"ephemeral_id":"587c2ebc-e7e2-4e27-b772-19c611115996","id":"2e3d985b-3610-4b8b-aa3b-2e45804edd2c","name":"logstash-db848f65f-lnlf9","type":"filebeat","version":"7.10.0","hostname":"logstash-db848f65f-lnlf9"}
log: {"offset":80,"file":{"path":"/var/log/dpkg.log"}}

Заключение

Таким образом, теперь вы можете легко индексировать данные журналов с помощью Manticore в сочетании с Logstash или Filebeat. Интеграция Manticore с Logstash и Filebeat открывает новые возможности для простого индексирования данных журналов.

Установить Manticore Search

Установить Manticore Search