Введение
Vector от Datadog — это высокопроизводительный, сквозной (агент и агрегатор) конвейер данных наблюдаемости, который позволяет собирать, преобразовывать и маршрутизировать все ваши логи и метрики. Кроме того, он является открытым исходным кодом. Хотя он может служить агрегатором сам по себе, более эффективно использовать Vector.dev в сочетании со специализированным инструментом хранения данных, таким как Manticore.
Давайте посмотрим, как они могут работать вместе. Для этого мы используем пример индексации 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>
Конфигурация
Вот пример конфигурационного файла Vector.dev в формате toml:
[sources.test_file]
type = "file"
include = [ "/var/log/dpkg.log" ]
[transforms.modify_test_file]
type = "remap"
inputs = [ "test_file" ]
source = """
.vec_timestamp = del(.timestamp)"""
[sinks.manticore]
type = "elasticsearch"
inputs = [ "modify_test_file" ]
endpoints = ["http://127.0.0.1:9308"]
bulk.index = "dpkg_log"
Обратите внимание, что в этом примере мы предполагаем, что Manticore использует свой порт http по умолчанию 9308. Если вы используете пользовательский порт http, вам следует соответствующим образом изменить конфигурацию Vector.dev. Также обратите внимание, что мы добавили раздел transforms в конфигурацию, чтобы переименовать поле timestamp по умолчанию, так как это зарезервированное слово в Manticore.
Результаты
Теперь просто запустите Vector.dev с приведенной выше конфигурацией, и данные из журнала dpkg будут переданы в Manticore и правильно проиндексированы.
Вот результирующая схема созданной таблицы и пример вставленного документа:
mysql> DESCRIBE dpkg_log;
+-----------------+---------+--------------------+
| Field | Type | Properties |
+-----------------+---------+--------------------+
| id | bigint | |
| file | text | indexed stored |
| host | text | indexed stored |
| message | text | indexed stored |
| source_type | text | indexed stored |
| vec_timestamp | text | indexed stored |
+-----------------+---------+--------------------+
mysql> SELECT * FROM testlog_3 LIMIT 3\G
*************************** 1. row ***************************
id: 7856533729353672195
file: /var/log/dpkg.log
host: logstash-787f68f6f-nhdd2
message: 2023-06-05 14:03:04 startup archives install
source_type: file
vec_timestamp: 2023-08-04T15:32:50.203091741Z
*************************** 2. row ***************************
id: 7856533729353672196
file: /var/log/dpkg.log
host: logstash-787f68f6f-nhdd2
message: 2023-06-05 14:03:04 install base-passwd:amd64 <none> 3.5.47
source_type: file
vec_timestamp: 2023-08-04T15:32:50.203808861Z
*************************** 3. row ***************************
id: 7856533729353672197
file: /var/log/dpkg.log
host: logstash-787f68f6f-nhdd2
message: 2023-06-05 14:03:04 status half-installed base-passwd:amd64 3.5.47
source_type: file
vec_timestamp: 2023-08-04T15:32:50.203814031Z
Заключение
Таким образом, с интеграцией, описанной в этом руководстве, вы теперь можете легко и эффективно индексировать свои данные журнала, используя Manticore в сотрудничестве с Vector от Datadog, высокопроизводительным сквозным конвейером данных наблюдаемости. Эта синергия между Vector.dev и Manticore не только предлагает упрощенный подход к управлению данными журнала, но и расширяет функциональность, позволяя выполнять преобразования и маршрутизацию. Независимо от того, имеете ли вы дело с простыми или сложными структурами журналов, эта интеграция предоставляет надежное решение, делая процесс сбора, преобразования и хранения ваших данных более доступным и эффективным.
