diff --git a/.github/workflows/nightly_integration.yml b/.github/workflows/nightly_integration.yml index adf18b6f39..55ebe94160 100644 --- a/.github/workflows/nightly_integration.yml +++ b/.github/workflows/nightly_integration.yml @@ -65,7 +65,7 @@ jobs: - uses: manticoresoftware/clt@0.7.3 with: test_prefix: test/clt-tests/integrations/filebeat/test-integrations-check-filebeat-versions - image: manticoresearch/dind:v1 + image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest comment_mode: failures run_args: --privileged -v $(pwd)/manual:/manual ui_host: "https://clt.manticoresearch.com" @@ -126,7 +126,7 @@ jobs: test_prefix: test/clt-tests/integrations/logstash/test-integrations-check-logstash-versions image: ghcr.io/manticoresoftware/manticoresearch:test-kit-latest comment_mode: failures - run_args: --privileged + run_args: --privileged -v $(pwd)/manual:/manual ui_host: "https://clt.manticoresearch.com" test_logstash_versions: diff --git a/.translation-cache/Integration/Filebeat.md.json b/.translation-cache/Integration/Filebeat.md.json index c57808cc47..d4222790f2 100644 --- a/.translation-cache/Integration/Filebeat.md.json +++ b/.translation-cache/Integration/Filebeat.md.json @@ -14,5 +14,13 @@ "russian": "# Интеграция с Filebeat\n\n> ПРИМЕЧАНИЕ: интеграция с Filebeat требует [Manticore Buddy](../Installation/Manticore_Buddy.md). Если она не работает, убедитесь, что Buddy установлен.\n\n[Filebeat](https://www.elastic.co/beats/filebeat) — это легковесный шиппер для пересылки и централизации логов. Установленный как агент, он отслеживает указанные вами файлы логов или директории, собирает события из логов и пересылает их для индексирования, обычно в Elasticsearch или Logstash.\n\nТеперь Manticore также поддерживает использование Filebeat как конвейера обработки. Это позволяет отправлять собранные и преобразованные данные в Manticore так же, как в Elasticsearch. В настоящее время поддерживаются версии 7.17-9.2.\n\n## Конфигурация Filebeat\n\nКонфигурация варьируется в зависимости от версии Filebeat, которую вы используете.\n\n### Конфигурация для Filebeat 7.17, 8.0, 8.1\n\n> **Важно**: версии Filebeat 7.17.0, 8.0.0 и 8.1.0 имеют известную проблему с glibc 2.35+ (используется в Ubuntu 22.04 и новее). Эти версии могут аварийно завершать работу с ошибкой \"Fatal glibc error: rseq registration failed\". Чтобы исправить это, добавьте конфигурацию `seccomp`, как показано ниже.\n\nCODE_BLOCK_0\n\n**Ссылки**: [Issue #30576](https://github.com/elastic/beats/issues/30576), [PR #30620](https://github.com/elastic/beats/pull/30620)\n\n### Конфигурация для Filebeat 8.1 - 8.10\n\nДля версий с 8.1 по 8.10 необходимо добавить опцию `allow_older_versions`:\n\nCODE_BLOCK_1\n\n### Конфигурация для Filebeat 8.11 - 8.19\n\nНачиная с версии 8.11, сжатие вывода включено по умолчанию, поэтому для совместимости с Manticore необходимо явно задать `compression_level: 0`:\n\nCODE_BLOCK_2\n\n### Конфигурация для Filebeat 9.0+\n\nFilebeat 9.0 представляет крупные изменения в архитектуре, заменяя тип входа `log` на `filestream`. Начиная с версии 9.0, также изменился метод идентификации файлов по умолчанию на fingerprint, который требует, чтобы файлы были не менее 1024 байт ([см. issue #44780](https://github.com/elastic/beats/issues/44780)). Для совместимости с Manticore и файлами любого размера необходимо отключить fingerprint.\n\nНиже приведена требуемая конфигурация для Filebeat 9.0 и всех последующих версий:\n\nCODE_BLOCK_3\n\n**Важные заметки по Filebeat 9.0+:**\n\n- Вход `type: filestream` заменяет прежний `type: log`\n\n- Параметр `prospector.scanner.fingerprint.enabled: false` **обязателен** для отключения идентификации файлов по fingerprint, обеспечивая корректную обработку файлов размером меньше 1024 байт\n\n- Поле `id` требуется для filestream входов и должно быть уникальным\n\n## Результаты Filebeat\n\nЗапустив Filebeat с этой конфигурацией, лог-данные будут отправлены в Manticore и корректно проиндексированы. Ниже показана итоговая схема таблицы, созданной Manticore, и пример вставленного документа:\n\nCODE_BLOCK_4\n\nCODE_BLOCK_5" }, "is_code_or_comment": false + }, + "2c027831ac40cee81b357237e9e17b31589987c86c4f7cf76d5f3294d645367b": { + "original": "# Integration with Filebeat\n\n> NOTE: The integration with Filebeat requires [Manticore Buddy](../Installation/Manticore_Buddy.md). If it doesn't work, make sure Buddy is installed.\n\n[Filebeat](https://www.elastic.co/beats/filebeat) is a lightweight shipper for forwarding and centralizing log data. Once installed as an agent, it monitors the log files or locations you specify, collects log events, and forwards them for indexing, usually to Elasticsearch or Logstash.\n\nNow, Manticore also supports the use of Filebeat as processing pipelines. This allows the collected and transformed data to be sent to Manticore just like to Elasticsearch. Currently, versions 7.17-9.2 are supported.\n\n## Filebeat configuration\n\nConfiguration varies depending on which version of Filebeat you're using.\n\n### Configuration for Filebeat 7.17, 8.0, 8.1\n\n> **Important**: Filebeat versions 7.17.0, 8.0.0, and 8.1.0 have a known issue with glibc 2.35+ (used in Ubuntu 22.04 and newer distributions). These versions may crash with \"Fatal glibc error: rseq registration failed\". To fix this, add the `seccomp` configuration as shown below.\n\nCODE_BLOCK_0\n\n**References**: [Issue #30576](https://github.com/elastic/beats/issues/30576), [PR #30620](https://github.com/elastic/beats/pull/30620)\n\n### Configuration for Filebeat 8.1 - 8.10\n\nFor versions 8.1 through 8.10, you need to add the `allow_older_versions` option:\n\nCODE_BLOCK_1\n\n### Configuration for Filebeat 8.11 - 8.x\n\nFrom version 8.11, output compression is enabled by default, so you must explicitly set `compression_level: 0` for compatibility with Manticore:\n\nCODE_BLOCK_2\n\n### Configuration for Filebeat 9.0+\n\nFilebeat 9.0 introduces a major architecture change, replacing the `log` input type with `filestream`. Starting from version 9.0, the default file identification method also changed to fingerprint, which requires files to be at least 1024 bytes ([see issue #44780](https://github.com/elastic/beats/issues/44780)). For Manticore compatibility with files of any size, you must disable fingerprinting.\n\nHere's the required configuration for Filebeat 9.0 and all later versions:\n\nCODE_BLOCK_3\n\n**Important notes for Filebeat 9.0+:**\n\n- The `type: filestream` input replaces the older `type: log`\n\n- The `prospector.scanner.fingerprint.enabled: false` setting is **required** to disable fingerprint-based file identification, ensuring reliable processing of files smaller than 1024 bytes\n\n- The `id` field is required for filestream inputs and must be unique\n\n## Filebeat results\n\nOnce you run Filebeat with this configuration, log data will be sent to Manticore and properly indexed. Here is the resulting schema of the table created by Manticore and an example of the inserted document:\n\nCODE_BLOCK_4\n\nCODE_BLOCK_5", + "translations": { + "chinese": "# 与 Filebeat 的集成\n\n> 注意:与 Filebeat 的集成需要 [Manticore Buddy](../Installation/Manticore_Buddy.md)。如果无法正常工作,请确保已安装 Buddy。\n\n[Filebeat](https://www.elastic.co/beats/filebeat) 是一个轻量级的记录数据转发和集中工具。安装作为代理后,它会监控您指定的日志文件或位置,收集日志事件,并将其转发以供索引,通常是发送到 Elasticsearch 或 Logstash。\n\n现在,Manticore 也支持将 Filebeat 用作处理管道。这允许将收集和转换后的数据像发送到 Elasticsearch 一样发送到 Manticore。目前支持的版本为 7.17-9.2。\n\n## Filebeat 配置\n\n配置根据您使用的 Filebeat 版本而异。\n\n### Filebeat 7.17、8.0、8.1 的配置\n\n> **重要**:Filebeat 版本 7.17.0、8.0.0 和 8.1.0 在使用 glibc 2.35+(用于 Ubuntu 22.04 及更高版本的发行版)时存在已知问题。这些版本可能会因“Fatal glibc error: rseq registration failed”而崩溃。为解决此问题,请添加如下所示的 `seccomp` 配置。\n\nCODE_BLOCK_0\n\n**参考**:[Issue #30576](https://github.com/elastic/beats/issues/30576),[PR #30620](https://github.com/elastic/beats/pull/30620)\n\n### Filebeat 8.1 - 8.10 的配置\n\n对于 8.1 到 8.10 版本,需要添加 `allow_older_versions` 选项:\n\nCODE_BLOCK_1\n\n### Filebeat 8.11 - 8.x 的配置\n\n从 8.11 版本起,默认启用输出压缩,因此您必须显式设置 `compression_level: 0` 以保证与 Manticore 的兼容:\n\nCODE_BLOCK_2\n\n### Filebeat 9.0+ 的配置\n\nFilebeat 9.0 引入了重大架构更改,替换了 `log` 输入类型为 `filestream`。从 9.0 版本开始,默认的文件识别方法也更改为指纹识别,要求文件至少为 1024 字节([参见 issue #44780](https://github.com/elastic/beats/issues/44780))。为了使 Manticore 兼容任意大小的文件,您必须禁用指纹识别。\n\n以下是 Filebeat 9.0 及之后所有版本所需的配置:\n\nCODE_BLOCK_3\n\n**针对 Filebeat 9.0+ 的重要说明:**\n\n- `type: filestream` 输入替代了旧的 `type: log`\n\n- `prospector.scanner.fingerprint.enabled: false` 设置是**必须的**,用以禁用基于指纹的文件识别,确保对小于 1024 字节的文件可靠处理\n\n- filestream 输入要求有 `id` 字段,且必须唯一\n\n## Filebeat 结果\n\n一旦使用此配置启动 Filebeat,日志数据将被发送到 Manticore 并正确建立索引。以下是 Manticore 创建的表的结果模式及插入文档示例:\n\nCODE_BLOCK_4\n\nCODE_BLOCK_5", + "russian": "# Интеграция с Filebeat\n\n> ПРИМЕЧАНИЕ: Для интеграции с Filebeat требуется [Manticore Buddy](../Installation/Manticore_Buddy.md). Если интеграция не работает, убедитесь, что Buddy установлен.\n\n[Filebeat](https://www.elastic.co/beats/filebeat) — это лёгкий агент для пересылки и централизованного сбора логов. Установленный как агент, он отслеживает указанные вами лог-файлы или места, собирает события логов и пересылает их для индексирования, обычно в Elasticsearch или Logstash.\n\nТеперь Manticore также поддерживает использование Filebeat в качестве конвейеров обработки. Это позволяет отправлять собранные и преобразованные данные в Manticore так же, как в Elasticsearch. В настоящее время поддерживаются версии 7.17-9.2.\n\n## Конфигурация Filebeat\n\nКонфигурация зависит от используемой вами версии Filebeat.\n\n### Конфигурация для Filebeat 7.17, 8.0, 8.1\n\n> **Важно**: В версиях Filebeat 7.17.0, 8.0.0 и 8.1.0 известна проблема с glibc 2.35+ (используется в Ubuntu 22.04 и новее). Эти версии могут аварийно завершать работу с ошибкой \"Fatal glibc error: rseq registration failed\". Чтобы исправить это, добавьте конфигурацию `seccomp`, как показано ниже.\n\nCODE_BLOCK_0\n\n**Ссылки**: [Issue #30576](https://github.com/elastic/beats/issues/30576), [PR #30620](https://github.com/elastic/beats/pull/30620)\n\n### Конфигурация для Filebeat 8.1 - 8.10\n\nДля версий с 8.1 по 8.10 необходимо добавить опцию `allow_older_versions`:\n\nCODE_BLOCK_1\n\n### Конфигурация для Filebeat 8.11 - 8.x\n\nНачиная с версии 8.11, сжатие вывода включено по умолчанию, поэтому для совместимости с Manticore нужно явно указать `compression_level: 0`:\n\nCODE_BLOCK_2\n\n### Конфигурация для Filebeat 9.0+\n\nFilebeat 9.0 вводит существенные архитектурные изменения, заменяя тип ввода `log` на `filestream`. Также с версии 9.0 изменён метод идентификации файлов по умолчанию на отпечаток (fingerprint), который требует, чтобы файлы были не менее 1024 байт ([см. issue #44780](https://github.com/elastic/beats/issues/44780)). Для совместимости с Manticore и обработки файлов любого размера необходимо отключить fingerprinting.\n\nВот требуемая конфигурация для Filebeat 9.0 и всех последующих версий:\n\nCODE_BLOCK_3\n\n**Важные замечания для Filebeat 9.0+:**\n\n- Ввод `type: filestream` заменяет устаревший `type: log`\n\n- Настройка `prospector.scanner.fingerprint.enabled: false` **обязательна** для отключения идентификации файлов по отпечатку, что обеспечивает корректную обработку файлов размером меньше 1024 байт\n\n- Поле `id` обязательно для `filestream` и должно быть уникальным\n\n## Результаты Filebeat\n\nПосле запуска Filebeat с данной конфигурацией лог-данные будут отправлены в Manticore и корректно индексированы. Ниже приведена итоговая схема таблицы, созданной Manticore, и пример вставленного документа:\n\nCODE_BLOCK_4\n\nCODE_BLOCK_5" + }, + "is_code_or_comment": false } } diff --git a/.translation-cache/Integration/Logstash.md.json b/.translation-cache/Integration/Logstash.md.json index 36fc3aa165..b7953b2125 100644 --- a/.translation-cache/Integration/Logstash.md.json +++ b/.translation-cache/Integration/Logstash.md.json @@ -6,5 +6,21 @@ "russian": "# Интеграция с Logstash\n\n> ПРИМЕЧАНИЕ: Интеграция с Logstash требует [Manticore Buddy](../Installation/Manticore_Buddy.md). Если она не работает, убедитесь, что Buddy установлен.\n\n[Logstash](https://www.elastic.co/logstash) — это инструмент управления журналами, который собирает данные из различных источников, преобразует их на лету и отправляет в нужное место назначения. Он часто используется как конвейер данных для Elasticsearch, открытого аналитического и поискового движка.\n\nТеперь Manticore поддерживает использование Logstash в качестве конвейера обработки. Это позволяет отправлять собранные и преобразованные данные в Manticore так же, как в Elasticsearch. В настоящее время поддерживаются версии 7.6+.\n\nРассмотрим простой пример конфигурационного файла Logstash, используемого для индексирования `dpkg.log`, стандартного файла журнала менеджера пакетов Debian. Сам журнал имеет простую структуру, как показано ниже:\n\nCODE_BLOCK_0\n\n## Конфигурация Logstash\n\nВот пример конфигурации Logstash:\n\nCODE_BLOCK_1\n\nОбратите внимание, что перед дальнейшими действиями необходимо учесть один важный момент: Manticore не поддерживает управление шаблонами журналов (Log Template Management) и управление жизненным циклом индексов (Index Lifecycle Management) в Elasticsearch. Поскольку эти функции по умолчанию включены в Logstash, их необходимо явно отключить в конфигурации. Кроме того, опция hosts в разделе output конфигурации должна соответствовать HTTP-порту прослушивания Manticore (по умолчанию localhost:9308).\n\n## Результаты Logstash\n\nПосле внесения описанных изменений в конфигурацию вы можете запустить Logstash, и данные из журнала dpkg будут переданы в Manticore и корректно проиндексированы.\n\nНиже приведена итоговая схема созданной таблицы и пример вставленного документа:\n\nCODE_BLOCK_2\n\nCODE_BLOCK_3" }, "is_code_or_comment": false + }, + "6e80a8a92ad9d2193ea09e8fd7f3fda4f2d871a69616340e07fb565c388c053a": { + "original": "# Integration with Logstash\n\n> NOTE: The integration with Logstash requires [Manticore Buddy](../Installation/Manticore_Buddy.md). If it doesn't work, make sure Buddy is installed.\n\n[Logstash](https://www.elastic.co/logstash) is a log management tool that collects data from a variety of sources, transforms it on the fly, and sends it to your desired destination. It is often used as a data pipeline for Elasticsearch, an open-source analytics and search engine.\n\nNow, Manticore supports the use of Logstash as a processing pipeline. This allows the collected and transformed data to be sent to Manticore just like to Elasticsearch. Currently, versions 7.6-9.2 are supported.\n\nLet’s examine a simple example of a Logstash config file used for indexing `dpkg.log`, a standard log file of the Debian package manager. The log itself has a simple structure, as shown below:\n\nCODE_BLOCK_0\n\n## Logstash configuration\n\nHere is an example Logstash configuration:\n\nCODE_BLOCK_1\n\nNote that, before proceeding further, one crucial caveat needs to be addressed: Manticore does not support Log Template Management and the Index Lifecycle Management features of Elasticsearch. As these features are enabled by default in Logstash, they need to be explicitly disabled in the config. Additionally, the hosts option in the output config section must correspond to Manticore’s HTTP listen port (default is localhost:9308).\n\n## Logstash results\n\nAfter adjusting the config as described, you can run Logstash, and the data from the dpkg log will be passed to Manticore and properly indexed.\n\nHere is the resulting schema of the created table and an example of the inserted document:\n\nCODE_BLOCK_2\n\nCODE_BLOCK_3", + "translations": { + "chinese": "# 与 Logstash 的集成\n\n> 注意:与 Logstash 的集成需要 [Manticore Buddy](../Installation/Manticore_Buddy.md)。如果无法正常工作,请确保已安装 Buddy。\n\n[Logstash](https://www.elastic.co/logstash) 是一个日志管理工具,能够从各种来源收集数据,实时转换数据,并将其发送到所需的目的地。它通常被用作 Elasticsearch(一个开源的分析和搜索引擎)数据管道。\n\n现在,Manticore 支持使用 Logstash 作为处理管道。这允许将收集和转换的数据发送到 Manticore,就像发送到 Elasticsearch 一样。目前支持的版本为 7.6-9.2。\n\n让我们来看一个用于索引 `dpkg.log` 的简单 Logstash 配置文件示例,`dpkg.log` 是 Debian 软件包管理器的标准日志文件。该日志本身结构简单,如下所示:\n\nCODE_BLOCK_0\n\n## Logstash 配置\n\n这是一个 Logstash 配置示例:\n\nCODE_BLOCK_1\n\n请注意,在进一步操作之前,有一个关键的注意事项需要说明:Manticore 不支持 Elasticsearch 的日志模板管理和索引生命周期管理功能。由于这些功能在 Logstash 中默认启用,因此需要在配置中显式禁用它们。另外,输出配置部分的 hosts 选项必须对应 Manticore 的 HTTP 监听端口(默认是 localhost:9308)。\n\n## Logstash 结果\n\n按照上述方式调整配置后,你可以运行 Logstash,dpkg 日志中的数据将被传递到 Manticore 并正确建立索引。\n\n以下是创建表的结果模式和插入文档的示例:\n\nCODE_BLOCK_2\n\nCODE_BLOCK_3", + "russian": "# Интеграция с Logstash\n\n> ПРИМЕЧАНИЕ: Интеграция с Logstash требует [Manticore Buddy](../Installation/Manticore_Buddy.md). Если она не работает, убедитесь, что Buddy установлен.\n\n[Logstash](https://www.elastic.co/logstash) — это инструмент управления журналами, который собирает данные из различных источников, преобразует их на лету и отправляет в нужное место назначения. Он часто используется как конвейер данных для Elasticsearch — открытого аналитического и поискового движка.\n\nТеперь Manticore поддерживает использование Logstash в качестве конвейера обработки. Это позволяет отправлять собранные и преобразованные данные в Manticore так же, как в Elasticsearch. В настоящее время поддерживаются версии 7.6-9.2.\n\nРассмотрим простой пример конфигурационного файла Logstash, используемого для индексирования `dpkg.log` — стандартного файла журнала менеджера пакетов Debian. Сам журнал имеет простую структуру, как показано ниже:\n\nCODE_BLOCK_0\n\n## Конфигурация Logstash\n\nВот пример конфигурации Logstash:\n\nCODE_BLOCK_1\n\nОбратите внимание, что прежде чем продолжать, необходимо учесть один важный момент: Manticore не поддерживает функции управления шаблонами индексов (Log Template Management) и управления жизненным циклом индексов (Index Lifecycle Management) в Elasticsearch. Поскольку эти функции по умолчанию включены в Logstash, их необходимо явно отключить в конфигурации. Кроме того, опция hosts в разделе output конфигурации должна соответствовать HTTP-порту прослушивания Manticore (по умолчанию localhost:9308).\n\n## Результаты Logstash\n\nПосле корректировки конфигурации, как описано выше, вы можете запустить Logstash, и данные из журнала dpkg будут переданы в Manticore и корректно проиндексированы.\n\nВот итоговая схема созданной таблицы и пример вставленного документа:\n\nCODE_BLOCK_2\n\nCODE_BLOCK_3" + }, + "is_code_or_comment": false + }, + "db28f1526a8e5c5f2864f1b52407660f08281235ce433e61f9d4fe9fdb9340b0": { + "original": "# Integration with Logstash\n\n> NOTE: The integration with Logstash requires [Manticore Buddy](../Installation/Manticore_Buddy.md). If it doesn't work, make sure Buddy is installed.\n\n[Logstash](https://www.elastic.co/logstash) is a log management tool that collects data from a variety of sources, transforms it on the fly, and sends it to your desired destination. It is often used as a data pipeline for Elasticsearch, an open-source analytics and search engine.\n\nNow, Manticore supports the use of Logstash as a processing pipeline. This allows the collected and transformed data to be sent to Manticore just like to Elasticsearch. Currently, versions 7.6-9.2 are supported.\n\nLet’s examine a simple example of a Logstash config file used for indexing `dpkg.log`, a standard log file of the Debian package manager. The log itself has a simple structure, as shown below:\n\nCODE_BLOCK_0\n\n## Logstash configuration\n\nHere is an example Logstash configuration:\n\nCODE_BLOCK_1\n\nNote that, before proceeding further, one crucial caveat needs to be addressed: Manticore does not support Log Template Management and the Index Lifecycle Management features of Elasticsearch. As these features are enabled by default in Logstash, they need to be explicitly disabled in the config. Additionally, the hosts option in the output config section must correspond to Manticore’s HTTP listen port (default is localhost:9308).\n\n## Version-specific configuration\n\nConfiguration varies depending on which version of Logstash you're using.\n\n### Configuration for Logstash 7.17\n\nFor Logstash 7.17, the basic configuration is straightforward and doesn't require additional ILM settings:\n\nCODE_BLOCK_2\n\nRun with:\n\nCODE_BLOCK_3\n\n### Configuration for Logstash 8.0 - 9.1\n\nStarting from version 8.0, ILM (Index Lifecycle Management) and template management are enabled by default and must be explicitly disabled for compatibility with Manticore:\n\nCODE_BLOCK_4\n\nFor versions 9.0 and 9.1, Logstash requires running as a superuser. Set the environment variable before starting:\n\nCODE_BLOCK_5\n\n### Configuration for Logstash 9.2+\n\nFrom version 9.2, the recommended approach is to configure the superuser setting via a configuration file instead of using environment variables. This provides a more permanent and manageable solution.\n\nConfiguration file (e.g., `logstash.conf`):\n\nCODE_BLOCK_6\n\nCreate `/etc/logstash/logstash.yml`:\n\nCODE_BLOCK_7\n\nRun with:\n\nCODE_BLOCK_8\n\n## Logstash results\n\nAfter adjusting the config as described, you can run Logstash, and the data from the dpkg log will be passed to Manticore and properly indexed.\n\nHere is the resulting schema of the created table and an example of the inserted document:\n\nCODE_BLOCK_9\n\nCODE_BLOCK_10", + "translations": { + "chinese": "# 与 Logstash 的集成\n\n> 注意:与 Logstash 的集成需要 [Manticore Buddy](../Installation/Manticore_Buddy.md)。如果集成不工作,请确保 Buddy 已安装。\n\n[Logstash](https://www.elastic.co/logstash) 是一种日志管理工具,它从各种来源收集数据,实时转换数据,并发送到您想要的目标。它通常用作 Elasticsearch(一个开源分析和搜索引擎)的数据管道。\n\n现在,Manticore 支持使用 Logstash 作为处理管道。这允许收集和转换后的数据像发送给 Elasticsearch 一样发送给 Manticore。目前,支持的版本是 7.6 到 9.2。\n\n让我们来看看一个用于索引 `dpkg.log` 的简单 Logstash 配置文件示例,`dpkg.log` 是 Debian 包管理器的标准日志文件。该日志本身结构简单,如下所示:\n\nCODE_BLOCK_0\n\n## Logstash 配置\n\n下面是一个 Logstash 配置示例:\n\nCODE_BLOCK_1\n\n请注意,在继续之前,需要强调一个关键注意事项:Manticore 不支持 Elasticsearch 的日志模板管理和索引生命周期管理功能。由于这些功能在 Logstash 中默认启用,必须在配置中显式禁用它们。此外,output 配置段中的 hosts 选项必须对应 Manticore 的 HTTP 监听端口(默认是 localhost:9308)。\n\n## 针对不同版本的配置\n\n配置根据您使用的 Logstash 版本而有所不同。\n\n### Logstash 7.17 的配置\n\n对于 Logstash 7.17,基本配置相当简单,不需要额外的 ILM 设置:\n\nCODE_BLOCK_2\n\n运行命令:\n\nCODE_BLOCK_3\n\n### Logstash 8.0 - 9.1 的配置\n\n从 8.0 版本开始,ILM(索引生命周期管理)和模板管理默认启用,必须显式禁用以兼容 Manticore:\n\nCODE_BLOCK_4\n\n对于 9.0 和 9.1 版本,Logstash 需要以超级用户身份运行。在启动前设置环境变量:\n\nCODE_BLOCK_5\n\n### Logstash 9.2+ 的配置\n\n从 9.2 版本开始,推荐通过配置文件来配置超级用户设置,而不是使用环境变量,提供了更持久和便于管理的方案。\n\n配置文件(例如 `logstash.conf`):\n\nCODE_BLOCK_6\n\n创建 `/etc/logstash/logstash.yml`:\n\nCODE_BLOCK_7\n\n运行命令:\n\nCODE_BLOCK_8\n\n## Logstash 结果\n\n按照上述方式调整配置后,您可以运行 Logstash,dpkg 日志中的数据将传递给 Manticore 并正确索引。\n\n下面是创建的表的结果模式以及插入文档的示例:\n\nCODE_BLOCK_9\n\nCODE_BLOCK_10", + "russian": "# Интеграция с Logstash\n\n> ПРИМЕЧАНИЕ: Интеграция с Logstash требует [Manticore Buddy](../Installation/Manticore_Buddy.md). Если она не работает, убедитесь, что Buddy установлен.\n\n[Logstash](https://www.elastic.co/logstash) — это инструмент управления журналами, который собирает данные из разных источников, преобразует их на лету и отправляет в желаемое место назначения. Часто используется как конвейер данных для Elasticsearch, открытого движка аналитики и поиска.\n\nТеперь Manticore поддерживает использование Logstash в качестве конвейера обработки. Это позволяет передавать собранные и преобразованные данные в Manticore так же, как в Elasticsearch. В настоящее время поддерживаются версии 7.6-9.2.\n\nРассмотрим простой пример файла конфигурации Logstash, используемого для индексирования `dpkg.log`, стандартного журнала менеджера пакетов Debian. Сам журнал имеет простую структуру, как показано ниже:\n\nCODE_BLOCK_0\n\n## Конфигурация Logstash\n\nВот пример конфигурации Logstash:\n\nCODE_BLOCK_1\n\nОбратите внимание, что перед дальнейшими действиями необходимо учитывать важный нюанс: Manticore не поддерживает управление шаблонами индексов и управление жизненным циклом индекса (ILM) в Elasticsearch. Поскольку эти функции по умолчанию включены в Logstash, их необходимо явно отключить в конфигурации. Кроме того, параметр hosts в разделе output конфигурации должен соответствовать HTTP-порту прослушивания Manticore (по умолчанию localhost:9308).\n\n## Конфигурация для разных версий\n\nКонфигурация зависит от используемой версии Logstash.\n\n### Конфигурация для Logstash 7.17\n\nДля Logstash 7.17 базовая конфигурация проста и не требует дополнительных настроек ILM:\n\nCODE_BLOCK_2\n\nЗапускать так:\n\nCODE_BLOCK_3\n\n### Конфигурация для Logstash 8.0 - 9.1\n\nНачиная с версии 8.0, ILM и управление шаблонами включены по умолчанию и должны быть явно отключены для совместимости с Manticore:\n\nCODE_BLOCK_4\n\nДля версий 9.0 и 9.1 Logstash требует запуска от имени суперпользователя. Задайте переменную окружения перед запуском:\n\nCODE_BLOCK_5\n\n### Конфигурация для Logstash 9.2+\n\nНачиная с версии 9.2, рекомендуется настраивать параметр суперпользователя через конфигурационный файл вместо использования переменных окружения. Это обеспечивает более постоянное и управляемое решение.\n\nКонфигурационный файл (например, `logstash.conf`):\n\nCODE_BLOCK_6\n\nСоздайте `/etc/logstash/logstash.yml`:\n\nCODE_BLOCK_7\n\nЗапускать так:\n\nCODE_BLOCK_8\n\n## Результаты Logstash\n\nПосле внесения описанных изменений в конфигурацию вы можете запустить Logstash, и данные из журнала dpkg будут переданы в Manticore и корректно проиндексированы.\n\nНиже приведена итоговая схема созданной таблицы и пример вставленного документа:\n\nCODE_BLOCK_9\n\nCODE_BLOCK_10" + }, + "is_code_or_comment": false } } diff --git a/manual/chinese/Integration/Filebeat.md b/manual/chinese/Integration/Filebeat.md index b8b726ce80..e305def675 100644 --- a/manual/chinese/Integration/Filebeat.md +++ b/manual/chinese/Integration/Filebeat.md @@ -1,18 +1,18 @@ -# 与 Filebeat 集成 +# 与 Filebeat 的集成 > 注意:与 Filebeat 的集成需要 [Manticore Buddy](../Installation/Manticore_Buddy.md)。如果无法正常工作,请确保已安装 Buddy。 -[Filebeat](https://www.elastic.co/beats/filebeat) 是一个轻量级的日志发送器,用于转发和集中日志数据。安装为代理后,它会监视你指定的日志文件或位置,收集日志事件,并将其转发以进行索引,通常是发送到 Elasticsearch 或 Logstash。 +[Filebeat](https://www.elastic.co/beats/filebeat) 是一个轻量级的记录数据转发和集中工具。安装作为代理后,它会监控您指定的日志文件或位置,收集日志事件,并将其转发以供索引,通常是发送到 Elasticsearch 或 Logstash。 -现在,Manticore 也支持将 Filebeat 用作处理管道。这允许将收集并转换的数据发送到 Manticore,就像发送到 Elasticsearch 一样。目前支持版本为 7.17-9.2。 +现在,Manticore 也支持将 Filebeat 用作处理管道。这允许将收集和转换后的数据像发送到 Elasticsearch 一样发送到 Manticore。目前支持的版本为 7.17-9.2。 ## Filebeat 配置 -配置因你使用的 Filebeat 版本而异。 +配置根据您使用的 Filebeat 版本而异。 ### Filebeat 7.17、8.0、8.1 的配置 -> **重要**:Filebeat 版本 7.17.0、8.0.0 和 8.1.0 在 glibc 2.35+(Ubuntu 22.04 和更高版本使用)中存在已知问题。这些版本可能会因“Fatal glibc error: rseq registration failed”而崩溃。解决方法是添加如下所示的 `seccomp` 配置。 +> **重要**:Filebeat 版本 7.17.0、8.0.0 和 8.1.0 在使用 glibc 2.35+(用于 Ubuntu 22.04 及更高版本的发行版)时存在已知问题。这些版本可能会因“Fatal glibc error: rseq registration failed”而崩溃。为解决此问题,请添加如下所示的 `seccomp` 配置。 ```yaml filebeat.inputs: @@ -43,7 +43,7 @@ setup.template.name: "dpkg_log" setup.template.pattern: "dpkg_log" ``` -**参考**:[Issue #30576](https://github.com/elastic/beats/issues/30576), [PR #30620](https://github.com/elastic/beats/pull/30620) +**参考**:[Issue #30576](https://github.com/elastic/beats/issues/30576),[PR #30620](https://github.com/elastic/beats/pull/30620) ### Filebeat 8.1 - 8.10 的配置 @@ -73,7 +73,7 @@ setup.template.pattern: "dpkg_log" ### Filebeat 8.11 - 8.19 的配置 -从 8.11 版本开始,输出压缩默认启用,因此必须显式设置 `compression_level: 0` 以兼容 Manticore: +从 8.11 版本起,默认启用输出压缩,因此您必须显式设置 `compression_level: 0` 以保证与 Manticore 的兼容: ``` filebeat.inputs: @@ -98,9 +98,9 @@ setup.template.pattern: "dpkg_log" ### Filebeat 9.0+ 的配置 -Filebeat 9.0 引入了重大架构变更,用 `filestream` 替代原有的 `log` 输入类型。从 9.0 版本起,默认文件识别方式改为指纹识别,要求文件至少为 1024 字节([详见 issue #44780](https://github.com/elastic/beats/issues/44780))。为了让 Manticore 兼容任何大小的文件,必须禁用指纹识别。 +Filebeat 9.0 引入了重大架构更改,替换了 `log` 输入类型为 `filestream`。从 9.0 版本开始,默认的文件识别方法也更改为指纹识别,要求文件至少为 1024 字节([参见 issue #44780](https://github.com/elastic/beats/issues/44780))。为了使 Manticore 兼容任意大小的文件,您必须禁用指纹识别。 -以下是 Filebeat 9.0 及其后所有版本所需配置: +以下是 Filebeat 9.0 及之后所有版本所需的配置: ``` filebeat.inputs: @@ -124,14 +124,14 @@ setup.template.name: "dpkg_log" setup.template.pattern: "dpkg_log" ``` -**Filebeat 9.0+ 重要注意事项:** +**针对 Filebeat 9.0+ 的重要说明:** - `type: filestream` 输入替代了旧的 `type: log` -- 必须设置 `prospector.scanner.fingerprint.enabled: false` 来禁用基于指纹的文件识别,确保能正确处理小于 1024 字节的文件 -- filestream 输入需要 `id` 字段,并且该字段必须唯一 +- `prospector.scanner.fingerprint.enabled: false` 设置是**必须的**,用以禁用基于指纹的文件识别,确保对小于 1024 字节的文件可靠处理 +- filestream 输入要求有 `id` 字段,且必须唯一 ## Filebeat 结果 -使用此配置运行 Filebeat 后,日志数据将发送到 Manticore 并正确索引。下面是 Manticore 创建的表的结果模式以及插入文档的示例: +一旦使用此配置启动 Filebeat,日志数据将被发送到 Manticore 并正确建立索引。以下是 Manticore 创建的表的结果模式及插入文档示例: ``` mysql> DESCRIBE dpkg_log; diff --git a/manual/chinese/Integration/Logstash.md b/manual/chinese/Integration/Logstash.md index d6aae76f6f..cfa7fbd1ef 100644 --- a/manual/chinese/Integration/Logstash.md +++ b/manual/chinese/Integration/Logstash.md @@ -1,12 +1,12 @@ # 与 Logstash 的集成 -> 注意:与 Logstash 的集成需要 [Manticore Buddy](../Installation/Manticore_Buddy.md)。如果无法正常工作,请确保已安装 Buddy。 +> 注意:与 Logstash 的集成需要 [Manticore Buddy](../Installation/Manticore_Buddy.md)。如果集成不工作,请确保 Buddy 已安装。 -[Logstash](https://www.elastic.co/logstash) 是一个日志管理工具,可以从各种来源收集数据,实时转换数据,并将其发送到您期望的目标。它通常用作 Elasticsearch(一个开源的分析和搜索引擎)的数据管道。 +[Logstash](https://www.elastic.co/logstash) 是一种日志管理工具,它从各种来源收集数据,实时转换数据,并发送到您想要的目标。它通常用作 Elasticsearch(一个开源分析和搜索引擎)的数据管道。 -现在,Manticore 支持将 Logstash 用作处理管道。这允许收集和转换后的数据像发送到 Elasticsearch 一样发送到 Manticore。目前支持版本为 7.6 及以上。 +现在,Manticore 支持使用 Logstash 作为处理管道。这允许收集和转换后的数据像发送给 Elasticsearch 一样发送给 Manticore。目前,支持的版本是 7.6 到 9.2。 -让我们来看一个用于索引 `dpkg.log` 的简单 Logstash 配置文件示例,`dpkg.log` 是 Debian 包管理器的标准日志文件。该日志本身结构简单,如下所示: +让我们来看看一个用于索引 `dpkg.log` 的简单 Logstash 配置文件示例,`dpkg.log` 是 Debian 包管理器的标准日志文件。该日志本身结构简单,如下所示: ``` 2023-05-31 10:42:55 status triggers-awaited ca-certificates-java:all 20190405ubuntu1.1 @@ -18,7 +18,7 @@ ## Logstash 配置 -以下是一个 Logstash 配置示例: +下面是一个 Logstash 配置示例: ``` input { @@ -43,13 +43,119 @@ output { } ``` -请注意,在继续之前,需要解决一个关键问题:Manticore 不支持 Elasticsearch 的日志模板管理和索引生命周期管理功能。由于这些功能在 Logstash 中默认启用,因此需要在配置中显式禁用它们。此外,输出配置部分的 hosts 选项必须对应 Manticore 的 HTTP 监听端口(默认是 localhost:9308)。 +请注意,在继续之前,需要强调一个关键注意事项:Manticore 不支持 Elasticsearch 的日志模板管理和索引生命周期管理功能。由于这些功能在 Logstash 中默认启用,必须在配置中显式禁用它们。此外,output 配置段中的 hosts 选项必须对应 Manticore 的 HTTP 监听端口(默认是 localhost:9308)。 + +## 针对不同版本的配置 + +配置根据您使用的 Logstash 版本而有所不同。 + +### Logstash 7.17 的配置 + +对于 Logstash 7.17,基本配置相当简单,不需要额外的 ILM 设置: + +``` +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"] + } +} +``` + +运行命令: +```bash +logstash -f logstash.conf +``` + +### Logstash 8.0 - 9.1 的配置 + +从 8.0 版本开始,ILM(索引生命周期管理)和模板管理默认启用,必须显式禁用以兼容 Manticore: + +``` +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 + } +} +``` + +对于 9.0 和 9.1 版本,Logstash 需要以超级用户身份运行。在启动前设置环境变量: + +```bash +export ALLOW_SUPERUSER=1 +logstash -f logstash.conf +``` + +### Logstash 9.2+ 的配置 + +从 9.2 版本开始,推荐通过配置文件来配置超级用户设置,而不是使用环境变量,提供了更持久和便于管理的方案。 + +配置文件(例如 `logstash.conf`): +``` +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 + } +} +``` + +创建 `/etc/logstash/logstash.yml`: +```yaml +allow_superuser: true +``` + +运行命令: +```bash +logstash --path.settings=/etc/logstash -f logstash.conf +``` ## Logstash 结果 -按照上述描述调整配置后,您可以运行 Logstash,dpkg 日志中的数据将传递给 Manticore 并正确索引。 +按照上述方式调整配置后,您可以运行 Logstash,dpkg 日志中的数据将传递给 Manticore 并正确索引。 -以下是创建的表的结果模式和插入文档的示例: +下面是创建的表的结果模式以及插入文档的示例: ``` mysql> DESCRIBE dpkg_log; diff --git a/manual/english/Integration/Logstash.md b/manual/english/Integration/Logstash.md index d294c219e6..57ce2de91b 100755 --- a/manual/english/Integration/Logstash.md +++ b/manual/english/Integration/Logstash.md @@ -4,7 +4,7 @@ [Logstash](https://www.elastic.co/logstash) is a log management tool that collects data from a variety of sources, transforms it on the fly, and sends it to your desired destination. It is often used as a data pipeline for Elasticsearch, an open-source analytics and search engine. -Now, Manticore supports the use of Logstash as a processing pipeline. This allows the collected and transformed data to be sent to Manticore just like to Elasticsearch. Currently, versions 7.6+ are supported. +Now, Manticore supports the use of Logstash as a processing pipeline. This allows the collected and transformed data to be sent to Manticore just like to Elasticsearch. Currently, versions 7.6-9.2 are supported. Let’s examine a simple example of a Logstash config file used for indexing `dpkg.log`, a standard log file of the Debian package manager. The log itself has a simple structure, as shown below: @@ -45,6 +45,112 @@ output { Note that, before proceeding further, one crucial caveat needs to be addressed: Manticore does not support Log Template Management and the Index Lifecycle Management features of Elasticsearch. As these features are enabled by default in Logstash, they need to be explicitly disabled in the config. Additionally, the hosts option in the output config section must correspond to Manticore’s HTTP listen port (default is localhost:9308). +## Version-specific configuration + +Configuration varies depending on which version of Logstash you're using. + +### Configuration for Logstash 7.17 + +For Logstash 7.17, the basic configuration is straightforward and doesn't require additional ILM settings: + +``` +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"] + } +} +``` + +Run with: +```bash +logstash -f logstash.conf +``` + +### Configuration for Logstash 8.0 - 9.1 + +Starting from version 8.0, ILM (Index Lifecycle Management) and template management are enabled by default and must be explicitly disabled for compatibility with Manticore: + +``` +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 + } +} +``` + +For versions 9.0 and 9.1, Logstash requires running as a superuser. Set the environment variable before starting: + +```bash +export ALLOW_SUPERUSER=1 +logstash -f logstash.conf +``` + +### Configuration for Logstash 9.2+ + +From version 9.2, the recommended approach is to configure the superuser setting via a configuration file instead of using environment variables. This provides a more permanent and manageable solution. + +Configuration file (e.g., `logstash.conf`): +``` +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 + } +} +``` + +Create `/etc/logstash/logstash.yml`: +```yaml +allow_superuser: true +``` + +Run with: +```bash +logstash --path.settings=/etc/logstash -f logstash.conf +``` + ## Logstash results After adjusting the config as described, you can run Logstash, and the data from the dpkg log will be passed to Manticore and properly indexed. diff --git a/manual/russian/Integration/Filebeat.md b/manual/russian/Integration/Filebeat.md index fb125829eb..bb7aa5c33f 100644 --- a/manual/russian/Integration/Filebeat.md +++ b/manual/russian/Integration/Filebeat.md @@ -1,18 +1,18 @@ # Интеграция с Filebeat -> ПРИМЕЧАНИЕ: интеграция с Filebeat требует [Manticore Buddy](../Installation/Manticore_Buddy.md). Если она не работает, убедитесь, что Buddy установлен. +> ПРИМЕЧАНИЕ: Для интеграции с Filebeat требуется [Manticore Buddy](../Installation/Manticore_Buddy.md). Если интеграция не работает, убедитесь, что Buddy установлен. -[Filebeat](https://www.elastic.co/beats/filebeat) — это легковесный шиппер для пересылки и централизации логов. Установленный как агент, он отслеживает указанные вами файлы логов или директории, собирает события из логов и пересылает их для индексирования, обычно в Elasticsearch или Logstash. +[Filebeat](https://www.elastic.co/beats/filebeat) — это лёгкий агент для пересылки и централизованного сбора логов. Установленный как агент, он отслеживает указанные вами лог-файлы или места, собирает события логов и пересылает их для индексирования, обычно в Elasticsearch или Logstash. -Теперь Manticore также поддерживает использование Filebeat как конвейера обработки. Это позволяет отправлять собранные и преобразованные данные в Manticore так же, как в Elasticsearch. В настоящее время поддерживаются версии 7.17-9.2. +Теперь Manticore также поддерживает использование Filebeat в качестве конвейеров обработки. Это позволяет отправлять собранные и преобразованные данные в Manticore так же, как в Elasticsearch. В настоящее время поддерживаются версии 7.17-9.2. ## Конфигурация Filebeat -Конфигурация варьируется в зависимости от версии Filebeat, которую вы используете. +Конфигурация зависит от используемой вами версии Filebeat. ### Конфигурация для Filebeat 7.17, 8.0, 8.1 -> **Важно**: версии Filebeat 7.17.0, 8.0.0 и 8.1.0 имеют известную проблему с glibc 2.35+ (используется в Ubuntu 22.04 и новее). Эти версии могут аварийно завершать работу с ошибкой "Fatal glibc error: rseq registration failed". Чтобы исправить это, добавьте конфигурацию `seccomp`, как показано ниже. +> **Важно**: В версиях Filebeat 7.17.0, 8.0.0 и 8.1.0 известна проблема с glibc 2.35+ (используется в Ubuntu 22.04 и новее). Эти версии могут аварийно завершать работу с ошибкой "Fatal glibc error: rseq registration failed". Чтобы исправить это, добавьте конфигурацию `seccomp`, как показано ниже. ```yaml filebeat.inputs: @@ -73,7 +73,7 @@ setup.template.pattern: "dpkg_log" ### Конфигурация для Filebeat 8.11 - 8.19 -Начиная с версии 8.11, сжатие вывода включено по умолчанию, поэтому для совместимости с Manticore необходимо явно задать `compression_level: 0`: +Начиная с версии 8.11, сжатие вывода включено по умолчанию, поэтому для совместимости с Manticore нужно явно указать `compression_level: 0`: ``` filebeat.inputs: @@ -98,9 +98,9 @@ setup.template.pattern: "dpkg_log" ### Конфигурация для Filebeat 9.0+ -Filebeat 9.0 представляет крупные изменения в архитектуре, заменяя тип входа `log` на `filestream`. Начиная с версии 9.0, также изменился метод идентификации файлов по умолчанию на fingerprint, который требует, чтобы файлы были не менее 1024 байт ([см. issue #44780](https://github.com/elastic/beats/issues/44780)). Для совместимости с Manticore и файлами любого размера необходимо отключить fingerprint. +Filebeat 9.0 вводит существенные архитектурные изменения, заменяя тип ввода `log` на `filestream`. Также с версии 9.0 изменён метод идентификации файлов по умолчанию на отпечаток (fingerprint), который требует, чтобы файлы были не менее 1024 байт ([см. issue #44780](https://github.com/elastic/beats/issues/44780)). Для совместимости с Manticore и обработки файлов любого размера необходимо отключить fingerprinting. -Ниже приведена требуемая конфигурация для Filebeat 9.0 и всех последующих версий: +Вот требуемая конфигурация для Filebeat 9.0 и всех последующих версий: ``` filebeat.inputs: @@ -124,14 +124,14 @@ setup.template.name: "dpkg_log" setup.template.pattern: "dpkg_log" ``` -**Важные заметки по Filebeat 9.0+:** -- Вход `type: filestream` заменяет прежний `type: log` -- Параметр `prospector.scanner.fingerprint.enabled: false` **обязателен** для отключения идентификации файлов по fingerprint, обеспечивая корректную обработку файлов размером меньше 1024 байт -- Поле `id` требуется для filestream входов и должно быть уникальным +**Важные замечания для Filebeat 9.0+:** +- Ввод `type: filestream` заменяет устаревший `type: log` +- Настройка `prospector.scanner.fingerprint.enabled: false` **обязательна** для отключения идентификации файлов по отпечатку, что обеспечивает корректную обработку файлов размером меньше 1024 байт +- Поле `id` обязательно для `filestream` и должно быть уникальным ## Результаты Filebeat -Запустив Filebeat с этой конфигурацией, лог-данные будут отправлены в Manticore и корректно проиндексированы. Ниже показана итоговая схема таблицы, созданной Manticore, и пример вставленного документа: +После запуска Filebeat с данной конфигурацией лог-данные будут отправлены в Manticore и корректно индексированы. Ниже приведена итоговая схема таблицы, созданной Manticore, и пример вставленного документа: ``` mysql> DESCRIBE dpkg_log; diff --git a/manual/russian/Integration/Logstash.md b/manual/russian/Integration/Logstash.md index e05b85e536..8c281bf13d 100644 --- a/manual/russian/Integration/Logstash.md +++ b/manual/russian/Integration/Logstash.md @@ -2,11 +2,11 @@ > ПРИМЕЧАНИЕ: Интеграция с Logstash требует [Manticore Buddy](../Installation/Manticore_Buddy.md). Если она не работает, убедитесь, что Buddy установлен. -[Logstash](https://www.elastic.co/logstash) — это инструмент управления журналами, который собирает данные из различных источников, преобразует их на лету и отправляет в нужное место назначения. Он часто используется как конвейер данных для Elasticsearch, открытого аналитического и поискового движка. +[Logstash](https://www.elastic.co/logstash) — это инструмент управления журналами, который собирает данные из разных источников, преобразует их на лету и отправляет в желаемое место назначения. Часто используется как конвейер данных для Elasticsearch, открытого движка аналитики и поиска. -Теперь Manticore поддерживает использование Logstash в качестве конвейера обработки. Это позволяет отправлять собранные и преобразованные данные в Manticore так же, как в Elasticsearch. В настоящее время поддерживаются версии 7.6+. +Теперь Manticore поддерживает использование Logstash в качестве конвейера обработки. Это позволяет передавать собранные и преобразованные данные в Manticore так же, как в Elasticsearch. В настоящее время поддерживаются версии 7.6-9.2. -Рассмотрим простой пример конфигурационного файла Logstash, используемого для индексирования `dpkg.log`, стандартного файла журнала менеджера пакетов Debian. Сам журнал имеет простую структуру, как показано ниже: +Рассмотрим простой пример файла конфигурации Logstash, используемого для индексирования `dpkg.log`, стандартного журнала менеджера пакетов Debian. Сам журнал имеет простую структуру, как показано ниже: ``` 2023-05-31 10:42:55 status triggers-awaited ca-certificates-java:all 20190405ubuntu1.1 @@ -43,7 +43,113 @@ output { } ``` -Обратите внимание, что перед дальнейшими действиями необходимо учесть один важный момент: Manticore не поддерживает управление шаблонами журналов (Log Template Management) и управление жизненным циклом индексов (Index Lifecycle Management) в Elasticsearch. Поскольку эти функции по умолчанию включены в Logstash, их необходимо явно отключить в конфигурации. Кроме того, опция hosts в разделе output конфигурации должна соответствовать HTTP-порту прослушивания Manticore (по умолчанию localhost:9308). +Обратите внимание, что перед дальнейшими действиями необходимо учитывать важный нюанс: Manticore не поддерживает управление шаблонами индексов и управление жизненным циклом индекса (ILM) в Elasticsearch. Поскольку эти функции по умолчанию включены в Logstash, их необходимо явно отключить в конфигурации. Кроме того, параметр hosts в разделе output конфигурации должен соответствовать HTTP-порту прослушивания Manticore (по умолчанию localhost:9308). + +## Конфигурация для разных версий + +Конфигурация зависит от используемой версии Logstash. + +### Конфигурация для Logstash 7.17 + +Для Logstash 7.17 базовая конфигурация проста и не требует дополнительных настроек ILM: + +``` +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"] + } +} +``` + +Запускать так: +```bash +logstash -f logstash.conf +``` + +### Конфигурация для Logstash 8.0 - 9.1 + +Начиная с версии 8.0, ILM и управление шаблонами включены по умолчанию и должны быть явно отключены для совместимости с Manticore: + +``` +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 + } +} +``` + +Для версий 9.0 и 9.1 Logstash требует запуска от имени суперпользователя. Задайте переменную окружения перед запуском: + +```bash +export ALLOW_SUPERUSER=1 +logstash -f logstash.conf +``` + +### Конфигурация для Logstash 9.2+ + +Начиная с версии 9.2, рекомендуется настраивать параметр суперпользователя через конфигурационный файл вместо использования переменных окружения. Это обеспечивает более постоянное и управляемое решение. + +Конфигурационный файл (например, `logstash.conf`): +``` +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 + } +} +``` + +Создайте `/etc/logstash/logstash.yml`: +```yaml +allow_superuser: true +``` + +Запускать так: +```bash +logstash --path.settings=/etc/logstash -f logstash.conf +``` ## Результаты Logstash diff --git a/test/clt-tests/integrations/filebeat/test-integrations-check-filebeat-versions.rec b/test/clt-tests/integrations/filebeat/test-integrations-check-filebeat-versions.rec index e82765304e..76710d70fb 100644 --- a/test/clt-tests/integrations/filebeat/test-integrations-check-filebeat-versions.rec +++ b/test/clt-tests/integrations/filebeat/test-integrations-check-filebeat-versions.rec @@ -2,7 +2,7 @@ set -e ––– output ––– ––– input ––– -apk add --no-cache curl jq > /dev/null 2>&1; echo $? +apt-get update > /dev/null 2>&1 && apt-get install -y curl jq > /dev/null 2>&1; echo $? ––– output ––– 0 ––– input ––– diff --git a/test/clt-tests/integrations/logstash/test-integrations-check-logstash-versions.rec b/test/clt-tests/integrations/logstash/test-integrations-check-logstash-versions.rec index 6ea7013d74..11ab3e54c8 100644 --- a/test/clt-tests/integrations/logstash/test-integrations-check-logstash-versions.rec +++ b/test/clt-tests/integrations/logstash/test-integrations-check-logstash-versions.rec @@ -1,9 +1,5 @@ -––– block: ../../base/start-searchd-with-buddy ––– ––– input ––– -set -b -––– output ––– -––– input ––– -export PATH=/usr/bin:/usr/local/bin:/usr/sbin:/sbin:/bin +set -e ––– output ––– ––– input ––– apt-get update > /dev/null 2>&1 && apt-get install -y curl jq > /dev/null 2>&1; echo $? @@ -34,10 +30,12 @@ TESTED_VERSIONS="7.17 8.18 8.19 9.0 -9.1" +9.1 +9.2" # Check for NEW versions (after latest tested) -LATEST_TESTED_VERSION="9.1" +# WARNING: Also update LOGSTASH_LATEST below when changing this! +LATEST_TESTED_VERSION="9.2" NEW_VERSIONS=$(curl -s "https://hub.docker.com/v2/repositories/library/logstash/tags/?page_size=100" \ | jq -r ".results[].name" \ | grep "^[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*$" \ @@ -54,9 +52,14 @@ function version_compare(v1, v2) { version_compare($0, latest) > 0') if [ -n "$NEW_VERSIONS" ]; then - echo "🆕 NEW Logstash versions detected:" - echo "$NEW_VERSIONS" - echo "❌ Need to test new versions and update the list!" + echo "🆕 NEW Logstash versions detected: $NEW_VERSIONS" + echo "" + echo "📝 Update required:" + echo " 1. test-integrations-check-logstash-versions.rec - Update TESTED_VERSIONS and LATEST_TESTED_VERSION" + echo " 2. test-integrations-test-logstash-versions.rec - Add test for new version" + echo " 3. manual/english/Integration/Logstash.md - Update version range (e.g., 7.6-[NEW_VERSION])" + echo " 4. site repo: blog/integration-of-manticore-with-logstash-filebeat/index.md" + echo "" exit 1 else echo "✅ No new versions found after $LATEST_TESTED_VERSION" @@ -67,6 +70,96 @@ echo "Using tested versions:" echo "$TESTED_VERSIONS" SCRIPT ––– output ––– -🆕 NEW Logstash versions detected: +✅ No new versions found after 9.2 +Using tested versions: +7.17 +8.0 +8.1 +8.2 +8.3 +8.4 +8.5 +8.6 +8.7 +8.8 +8.9 +8.10 +8.11 +8.12 +8.13 +8.14 +8.15 +8.16 +8.17 +8.18 +8.19 +9.0 +9.1 9.2 -❌ Need to test new versions and update the list! +––– input ––– +bash << 'SCRIPT' +# Check documentation versions for Logstash +echo "Checking Logstash version references in documentation..." +echo "" + +# Must match LATEST_TESTED_VERSION above +LOGSTASH_LATEST="9.2" + +# 1. Check manual documentation (local file mounted via workflow) +echo "=== Checking manual documentation ===" +LOGSTASH_MANUAL="/manual/english/Integration/Logstash.md" +if [ -f "$LOGSTASH_MANUAL" ]; then + echo "✓ Checking $LOGSTASH_MANUAL" + FOUND_VERSION=$(grep -o "versions [0-9.–-]* are supported" "$LOGSTASH_MANUAL" | head -1) + if echo "$FOUND_VERSION" | grep -q "${LOGSTASH_LATEST}"; then + echo "✅ Manual: $FOUND_VERSION" + else + echo "❌ Manual must contain version ${LOGSTASH_LATEST}" >&2 + echo " Current: $FOUND_VERSION" >&2 + echo " Update to: versions 7.6-${LOGSTASH_LATEST} are supported" >&2 + exit 1 + fi +else + echo "❌ Manual not found at $LOGSTASH_MANUAL" >&2 + echo "Manual must be mounted via workflow: -v \$(pwd)/manual:/manual" >&2 + exit 1 +fi + +echo "" +echo "=== Checking website blog post ===" + +# 2. Check website blog post +BLOG_URL="https://manticoresearch.com/blog/integration-of-manticore-with-logstash-filebeat/" +echo "✓ Fetching $BLOG_URL" + +# Try curl first, fallback to wget +if command -v curl > /dev/null 2>&1; then + BLOG_CONTENT=$(curl -s "$BLOG_URL") +elif command -v wget > /dev/null 2>&1; then + BLOG_CONTENT=$(wget -qO- "$BLOG_URL") +else + echo "❌ Neither curl nor wget available" >&2 + exit 1 +fi +if [ -z "$BLOG_CONTENT" ]; then + echo "⚠️ WARNING: Blog fetch failed - skipping" >&2 +elif echo "$BLOG_CONTENT" | grep -E "Logstash versions.*(up to |-|–)${LOGSTASH_LATEST}" > /dev/null; then + echo "✅ Blog: contains ${LOGSTASH_LATEST}" +else + BLOG_VERSION=$(echo "$BLOG_CONTENT" | grep -o "Logstash versions [0-9.–-]* " | head -1 | sed 's/Logstash versions //') + echo "⚠️ WARNING: Blog does NOT contain ${LOGSTASH_LATEST} (found: ${BLOG_VERSION})" >&2 + echo " Update: site/content/english/blog/integration-of-manticore-with-logstash-filebeat/index.md" >&2 +fi + +echo "" +echo "✅ Documentation validation complete" +SCRIPT +––– output ––– +Checking Logstash version references in documentation... +=== Checking manual documentation === +✓ Checking /manual/english/Integration/Logstash.md +✅ Manual: versions 7.6-9.2 are supported +=== Checking website blog post === +✓ Fetching https://manticoresearch.com/blog/integration-of-manticore-with-logstash-filebeat/ +✅ Blog: contains 9.2 +✅ Documentation validation complete diff --git a/test/clt-tests/integrations/logstash/test-integrations-test-logstash-versions.rec b/test/clt-tests/integrations/logstash/test-integrations-test-logstash-versions.rec index 493404f823..c99b0105d2 100644 --- a/test/clt-tests/integrations/logstash/test-integrations-test-logstash-versions.rec +++ b/test/clt-tests/integrations/logstash/test-integrations-test-logstash-versions.rec @@ -82,12 +82,21 @@ if [ "$version_major" -ge 8 ]; then ilm_settings="ilm_enabled => false manage_template => false" fi -if [ "$version_major" -ge 9 ]; then +if [ "$version_major" -eq 9 ] && [ "$version_minor" -lt 2 ]; then export ALLOW_SUPERUSER=1 sed -i '259s/^/# /' /usr/share/logstash/logstash-${VERSION}.0/logstash-core/lib/logstash/runner.rb 2>/dev/null || true fi +if [ "$version_major" -gt 9 ] || ([ "$version_major" -eq 9 ] && [ "$version_minor" -ge 2 ]); then + mkdir -p /etc/logstash + cat > /etc/logstash/logstash.yml << LSYML +allow_superuser: true +LSYML + logstash_settings_args="--path.settings=/etc/logstash" +else + logstash_settings_args="" +fi CONFIG_FILE="/tmp/logstash_config_${VERSION}.conf" -if [ "$version_major" -gt 9 ] || ([ "$version_major" -eq 9 ] && [ "$version_minor" -ge 1 ]); then +if [ "$version_major" -eq 9 ] && [ "$version_minor" -eq 1 ]; then cat > "$CONFIG_FILE" << CONF input { file { @@ -186,6 +195,7 @@ timeout $wait_time logstash --path.data="$TEMP_DATA_DIR" \ --log.level=error \ --pipeline.batch.size $batch_size \ $ecs_args \ + $logstash_settings_args \ > /dev/null 2>&1 || true sleep 10 echo "✓ Logstash $VERSION started and processed logs" @@ -603,5 +613,19 @@ timeout 300 bash /tmp/logstash-single-test.sh 9.1 ✓ Structure check for 9.1: passed ✓ Logstash version 9.1 tested successfully ––– input ––– +for i in {1..3}; do wget -q --timeout=60 --tries=1 "https://artifacts.elastic.co/downloads/logstash/logstash-9.2.0-linux-x86_64.tar.gz" -O logstash-9.2.0.tar.gz && gzip -t logstash-9.2.0.tar.gz 2>/dev/null && tar -tzf logstash-9.2.0.tar.gz | grep -q "bin/logstash" && { echo "✓ Logstash 9.2.0 downloaded successfully"; break; } || { [ $i -eq 3 ] && echo "✗ Failed to download Logstash 9.2.0 after 3 attempts" >&2 || rm -f logstash-9.2.0.tar.gz >/dev/null 2>&1; sleep 2; }; done +––– output ––– +✓ Logstash 9.2.0 downloaded successfully +––– input ––– +timeout 300 bash /tmp/logstash-single-test.sh 9.2 +––– output ––– +>>> Testing Logstash version: 9.2 +✓ Log file has 5 lines +✓ Manticore Search available +✓ Logstash 9.2 started and processed logs +✓ Row count check for 9.2: 5 rows +✓ Structure check for 9.2: passed +✓ Logstash version 9.2 tested successfully +––– input ––– rm -f logstash-*.tar.gz ––– output –––