Облачная платформаAdvanced

Шаблоны файлов конфигурации

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

При построении конвейера обработки журналов в реальном времени или миграции больших данных ручное написание файлов конфигурации Logstash часто занимает много времени и подвержено ошибкам из‑за сложного синтаксиса. Ошибки конфигурации могут даже привести к потере данных. Чтобы решить эту проблему, CSS предоставляет готовые шаблоны конфигураций Logstash для различных основных источников данных, таких как Redis, Elasticsearch, MySQL (JDBC) и Kafka. Используя эти проверенные шаблоны, вы можете быстро настроить автоматические каналы передачи данных от источников данных к кластерам CSS Elasticsearch или OpenSearch, указав только требуемую информацию о подключении. Это существенно снижает операционные затраты и помогает обеспечить надежность конвейеров ingest данных.

Введение в шаблоны

Таблица 1 шаблоны файлов конфигурации Logstash

Имя системного шаблона

Описание

Подробности

redis

Поглощает данные из базы данных Redis в кластер Elasticsearch или OpenSearch.

Redis Template

elasticsearch

Поглощает данные из кластера Elasticsearch или OpenSearch в другой кластер Elasticsearch или OpenSearch.

Elasticsearch Template

jdbc

Поглощает данные из базы данных MySQL или MariaDB через JDBC в кластер Elasticsearch или OpenSearch.

JDBC Template

kafka

Загружает данные из Kafka в кластер Elasticsearch или OpenSearch.

Kafka Template

beats

Загружает данные из Beats в кластер Elasticsearch или OpenSearch.

Beats Template

Redis Template

Загружает данные из базы данных Redis в кластер Elasticsearch или OpenSearch.

# logstash-input-redis
input {
redis {
# Redis data type
data_type => "pattern_channel"
# Redis list or channel name
key => "lgs-*"
host => "xxx.xxx.xxx.xxx"
port => 6379
}
}
filter {
# Removes some metadata fields automatically added by Logstash
mutate {
remove_field => ["@timestamp", "@version"]
}
}
# logstash-output-elasticsearch
output {
elasticsearch {
# Destination cluster node addresses. No need to include the protocol.
hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
# Name of the index that events are written into.
index => "xxx"
# Mandatory fields for a security-mode cluster. (Delete them for a cluster with the security mode disabled.)
# user => "xxx" # Username for accessing the cluster.
# password => "xxx" # Password corresponding to the username.
# If SSL is enabled for the destination cluster, additionally configure the following information:
# ssl => true
# cacert => "/opt/logstash/extend/certs" # Path of the CA certificate used to verify the destination cluster.
# ssl_certificate_verification => false # Whether to enable SSL certificate verification for the destination cluster.
}
}
Table 2 Элементы конфигурации

Элемент конфигурации

Обязательно

Описание

logstash-input-redis

data_type

Да

Типы данных Redis.

Значение может быть:

  • list: Реализует очередь сообщений, потребляя данные из списка Redis с помощью команды блокирующего извлечения (BLPOP).
  • channel: Подписывается на конкретное имя канала с помощью команды SUBSCRIBE.
  • pattern_channel: Подписывается на каналы, соответствующие шаблону, с помощью команды PSUBSCRIBE.

key

Да

Имя списка Redis или канала.

  • Одиночное имя: Введите имя канала (например, log).
  • Подстановочный символ: Используйте подстановочный символ (*) для сопоставления нескольких каналов. Например, log-* указывает все каналы, имя которых начинается с log-.

host

Да

Адрес сервера Redis.

Введите IP-адрес или доменное имя.

порт

No

Порт прослушивания сервера Redis.

logstash-output-elasticsearch

hosts

Yes

Адреса узлов кластера назначения. Можно настроить несколько IP‑адресов.

Value format: ["<Node IP address 1>:<Port number>", "<Node IP address 2>:<Port number>"]

index

Yes

Имя индекса, в который записываются события.

  • Один индекс: введите имя индекса, например, my_index.
  • Несколько индексов: используйте динамическое именование (на основе полей события) или настройте несколько условных блоков вывода для маршрутизации событий в разные индексы.

user

No

Username для доступа к целевому кластеру.

Обязательно для security-mode кластера.

password

No

Password для доступа к целевому кластеру.

Обязательно для security-mode кластера.

ssl

No

Включён ли SSL для целевого кластера.

Значение может быть:

  • true: Использует HTTPS для передачи данных.
  • false: Использует HTTP для передачи данных.

cacert

No

Путь к CA certificate, используемому для проверки целевого кластера.

Value format: <certificate path><certificate name>, for example, /opt/logstash/extend/certs.

  • Если назначение представляет собой кластер CSS Elasticsearch или OpenSearch, будет получено certificate name и certificate path сертификата CA по умолчанию. Подробности см. Viewing Default Certificates.
  • Если назначение представляет собой самоуправляемый или сторонний кластер Elasticsearch или OpenSearch, загрузите сертификат безопасности кластера назначения в Logstash и получите certificate name и certificate path. Подробности см. Uploading a Custom Certificate.

ssl_certificate_verification

No

Указывает, включена ли проверка SSL‑сертификата для кластера назначения.

Значение может быть:

  • true (по умолчанию): Использует SSL‑сертификат для проверки кластера назначения.
  • false: Игнорирует проверку SSL‑сертификата.

Для получения дополнительной информации см. Redis input plugin и Elasticsearch output plugin в официальной документации Logstash.

Elasticsearch Template

Загрузка данных из кластера Elasticsearch или OpenSearch в другой кластер Elasticsearch или OpenSearch.

# logstash-input-elasticsearch
input {
elasticsearch {
# Source cluster node addresses. No need to include the protocol.
hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
# Name of the source index to be migrated
index => "xxx,xxx"
docinfo => true
# Mandatory fields for a security-mode cluster. (Delete them for a cluster with the security mode disabled.)
# user => "xxx" # Username for accessing the cluster.
# password => "xxx" # Password corresponding to the username.
# If SSL is enabled for the source cluster, additionally configure the following information:
# ssl => true
# ca_file => "/opt/logstash/extend/certs" # Path of the CA certificate used to verify the source cluster.
}
}
filter {
# Removes some metadata fields automatically added by Logstash
mutate {
remove_field => ["@timestamp", "@version"]
}
}
# logstash-output-elasticsearch
output {
elasticsearch {
# Destination cluster node addresses. No need to include the protocol.
hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
# Target index for writing events. The following configuration retains the source index name, document type, and document IDs.
index => "%{[@metadata][_index]}"
document_type => "%{[@metadata][_type]}"
document_id => "%{[@metadata][_id]}"
# Mandatory fields for a security-mode cluster. (Delete them for a cluster with the security mode disabled.)
# user => "xxx" # Username for accessing the cluster.
# password => "xxx" # Password corresponding to the username.
# If SSL is enabled for the destination cluster, additionally configure the following information:
# ssl => true
# cacert => "/opt/logstash/extend/certs" # Path of the CA certificate used to verify the destination cluster.
# ssl_certificate_verification => false # Whether to enable SSL certificate verification for the destination cluster.
}
}
Table 3 Элементы конфигурации

Элемент конфигурации

Обязательно

Описание

logstash-input-elasticsearch

hosts

Yes

Адреса узлов исходного кластера. Вы можете указать несколько IP‑адресов.

Value format: ["<Node IP address 1>:<Port number>", "<Node IP address 2>:<Port number>"]

index

Yes

Имя исходного индекса, который будет мигрирован.

  • Один индекс: введите имя индекса, например, my_index.
  • Несколько индексов: введите несколько имён индексов, разделяя их запятой (,), например, my_index1,my_index2.
  • Подстановочный символ: используйте символ подстановки (*) для совпадения с несколькими индексами. Например, myindex* обозначает все индексы, имя которых начинается с myindex.

docinfo

No

Определяет, сохранять ли метаданные исходных документов.

Значение может быть:

  • true: Извлекает метаданные в поле @metadata событий.
  • false (default): Извлекает только часть _source документов.

user

No

Имя пользователя для доступа к исходному кластеру.

Обязательно для кластера в режиме безопасности.

password

No

Пароль для доступа к исходному кластеру.

Обязательно для кластера в режиме безопасности.

ssl

No

Указывает, включён ли SSL для исходного кластера.

Значение может быть:

  • true: Использует HTTPS для передачи данных.
  • false: Использует HTTP для передачи данных.

ca_file

No

Путь к сертификату CA, используемому для проверки исходного кластера.

Value format: <certificate path><certificate name>, for example, /opt/logstash/extend/certs.

  • Если источник представляет собой кластер CSS Elasticsearch или OpenSearch, certificate name и certificate path сертификата CA по умолчанию будут получены. Подробности см. Viewing Default Certificates.
  • Если источник представляет собой самостоятельно управляемый или сторонний кластер Elasticsearch или OpenSearch, загрузите сертификат безопасности исходного кластера в Logstash и получите certificate name и certificate path. Подробности см. Uploading a Custom Certificate.

logstash-output-elasticsearch

hosts

Yes

Адреса узлов целевого кластера. Можно настроить несколько IP-адресов.

Value format: ["<Node IP address 1>:<Port number>", "<Node IP address 2>:<Port number>"]

index

Yes

Имя индекса, в который записываются события.

  • Один индекс: введите имя индекса, например, my_index.
  • Несколько индексов: используйте динамическое именование (на основе полей события) или настройте несколько условных блоков вывода для маршрутизации событий в разные индексы.

document_type

No

Тип документа, в который записываются события.

Похожие события должны записываться в документы того же типа.

document_id

No

ID документа, в который записываются события.

Указание существующего ID может привести к перезаписи исторических данных.

Для задач миграции данных рекомендуется установить этот параметр, чтобы предотвратить дублирование данных.

user

No

Имя пользователя для доступа к целевому кластеру.

Обязательно для security-mode cluster.

password

No

Пароль для доступа к кластеру назначения.

Обязательно для security-mode cluster.

ssl

No

Включён ли SSL для кластера назначения.

Значение может быть:

  • true: Использует HTTPS для передачи данных.
  • false: Использует HTTP для передачи данных.

cacert

No

Путь к сертификату CA, используемому для проверки кластера назначения.

Value format: <certificate path><certificate name>, for example, /opt/logstash/extend/certs.

  • Если назначение представляет собой кластер CSS Elasticsearch или OpenSearch, certificate name и certificate path сертификата CA по умолчанию будут получены. Для получения подробной информации см. Viewing Default Certificates.
  • Если назначение представляет собой самостоятельно управляемый или сторонний кластер Elasticsearch или OpenSearch, загрузите сертификат безопасности кластера назначения в Logstash и получите certificate name и certificate path. Для получения подробной информации см. Uploading a Custom Certificate.

ssl_certificate_verification

No

Указывает, включена ли проверка SSL‑сертификата для кластера назначения.

Значение может быть:

  • true (по умолчанию): использует SSL‑сертификат для проверки кластера назначения.
  • false: игнорирует проверку SSL‑сертификата.

Для получения дополнительной информации см. Elasticsearch input plugin и Elasticsearch output plugin в официальной документации Logstash.

JDBC Template

Загрузка данных из базы данных MySQL или MariaDB через JDBC в кластер Elasticsearch или OpenSearch.

# logstash-input-jdbc
input {
jdbc {
# Path of the JDBC driver package
jdbc_driver_library => "/opt/logstash/extend/jars/mariadb-java-client-2.7.0.jar"
jdbc_driver_class => "org.mariadb.jdbc.Driver"
jdbc_connection_string => "jdbc:mariadb://xxx.xxx.xxx.xxx:xxx/database_name"
jdbc_user => "xxx"
jdbc_password => "xxx"
# SQL query statement, used to determine the scope of data synchronization
statement => "select * from table_name"
}
}
filter {
# Removes some metadata fields automatically added by Logstash
mutate {
remove_field => ["@timestamp", "@version"]
}
}
# logstash-output-elasticsearch
output {
elasticsearch {
# Destination cluster node addresses. No need to include the protocol.
hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
# Name of the index that events are written into.
index => "xxx"
# Mandatory fields for a security-mode cluster. (Delete them for a cluster with the security mode disabled.)
# user => "xxx" # Username for accessing the cluster.
# password => "xxx" # Password corresponding to the username.
# If SSL is enabled for the destination cluster, additionally configure the following information:
# ssl => true
# cacert => "/opt/logstash/extend/certs" # Path of the CA certificate used to verify the destination cluster.
# ssl_certificate_verification => false # Whether to enable SSL certificate verification for the destination cluster.
}
}
Table 4 Элементы конфигурации

Элемент конфигурации

Обязательно

Описание

logstash-input-jdbc

jdbc_driver_library

Yes

Путь к пакету драйвера JDBC.

Драйверы JDBC для MariaDB и MySQL предустановлены для кластеров Logstash в CSS.

Value format: <Default certificate path>jars/<Driver name> (for example, /opt/logstash/extend/jars/mariadb-java-client-2.7.0.jar)

  • Для пути сертификата по умолчанию см. Viewing Default Certificates.
  • Имя драйвера:
    • Драйвер MariaDB: mariadb-java-client-2.7.0.jar и mariadb-java-client-2.4.0.jar
    • Драйвер MySQL (поддерживается только кластерами Logstash, образ которых не старше x.x.x_26.1.0_xxx): mysql-connector-j-9.4.0.jar, mysql-connector-java-8.0.16.jar, и mysql-connector-java-8.0.30.jar

jdbc_driver_class

Yes

Имя класса драйвера.

  • Для MariaDB укажите в этом поле org.mariadb.jdbc.Driver.
  • Для MySQL укажите com.mysql.cj.jdbc.Driver.

jdbc_connection_string

Да

Строка подключения к базе данных.

  • If the MariaDB driver is used, the value format is jdbc:mariadb://<Database access address>:<Listening port>/<Database name>.
  • If the MySQL driver is used, the value format is jdbc:mysql://<Database access address>:<Listening port>/<Database name>.

jdbc_user

Да

Имя пользователя базы данных

jdbc_password

Да

Пароль пользователя

statement

Да

SQL‑запрос, используемый для определения объёма синхронизации данных.

logstash-output-elasticsearch

hosts

Yes

Адреса узлов кластера назначения. Можно настроить несколько IP‑адресов.

Value format: ["<Node IP address 1>:<Port number>", "<Node IP address 2>:<Port number>"]

index

Yes

Имя индекса, в который записываются события.

  • Один индекс: введите имя индекса, например, my_index.
  • Несколько индексов: используйте динамическое именование (на основе полей события) или настройте несколько условных блоков вывода для маршрутизации событий в разные индексы.

user

No

Имя пользователя для доступа к кластеру назначения.

Обязательно для кластера в режиме безопасности.

password

No

Пароль для доступа к целевому кластеру.

Обязательно для кластера в режиме безопасности.

ssl

No

Указывает, включён ли SSL для целевого кластера.

Значение может быть:

  • true: Использует HTTPS для передачи данных.
  • false: Использует HTTP для передачи данных.

cacert

No

Путь к сертификату CA, используемому для проверки целевого кластера.

Value format: <certificate path><certificate name>, for example, /opt/logstash/extend/certs.

  • Если получатель — кластер CSS Elasticsearch или OpenSearch, certificate name и certificate path сертификата CA по умолчанию будут получены. Подробнее см. Viewing Default Certificates.
  • Если получатель — самоуправляемый или сторонний кластер Elasticsearch или OpenSearch, загрузите сертификат безопасности кластера получателя в Logstash и получите certificate name и certificate path. Подробнее см. Uploading a Custom Certificate.

ssl_certificate_verification

Нет

Указывает, включена ли проверка SSL‑сертификата для кластера назначения.

Значение может быть:

  • true (по умолчанию): Использует SSL‑сертификат для проверки кластера назначения.
  • false: Игнорирует проверку SSL‑сертификата.

Для получения дополнительной информации см. Jdbc input plugin и Elasticsearch output plugin в официальной документации Logstash.

Kafka Template

Загружайте данные из Kafka в кластер Elasticsearch или OpenSearch.

# logstash-input-kafka
input {
kafka {
# Kafka broker addresses
bootstrap_servers => "xxx.xxx.xxx.xxx:xxx"
# Kafka topics to subscribe to
topics => ["xxx"]
# Consumer group ID for offset tracking
group_id => "kafka_es_test"
# Offset reset policy
auto_offset_reset => "earliest"
}
}
filter {
# Removes some metadata fields automatically added by Logstash
mutate {
remove_field => ["@timestamp", "@version"]
}
}
# logstash-output-elasticsearch
output {
elasticsearch {
# Destination cluster node addresses. No need to include the protocol.
hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
# Name of the index that events are written into.
index => "xxx"
# Mandatory fields for a security-mode cluster. (Delete them for a cluster with the security mode disabled.)
# user => "xxx" # Username for accessing the cluster.
# password => "xxx" # Password corresponding to the username.
# If SSL is enabled for the destination cluster, additionally configure the following information:
# ssl => true
# cacert => "/opt/logstash/extend/certs" # Path of the CA certificate used to verify the destination cluster.
# ssl_certificate_verification => false # Whether to enable SSL certificate verification for the destination cluster.
}
}
Table 5 Элементы конфигурации

Элемент конфигурации

Обязательно

Описание

logstash-input-kafka

bootstrap_servers

Да

Адреса брокеров Kafka. Можно настроить несколько адресов.

Value format: "<Kafka broker IP address 1>:<port number>, <Kafka broker IP address 2>:<port number>"

topics

Yes

Топики Kafka для подписки.

  • Один топик: введите имя топика, например, [log].
  • Несколько топиков: введите несколько имён топиков и разделите их запятой (,), например, [log1,log2].

group_id

Yes

Идентификатор группы потребителей для отслеживания смещения

auto_offset_reset

Yes

Политика сброса смещения.

Значение может быть:

  • earliest: Начать потребление с самых ранних доступных сообщений.
  • latest: Начните потребление из самых последних сообщений.
  • none: Сообщить об ошибке, если для группы потребителей не найдено предыдущего смещения.
  • anything else: Выбрасывает исключение потребителю.

logstash-output-elasticsearch

hosts

Yes

Адреса узлов кластера назначения. Можно настроить несколько адресов.

Value format: ["<Node IP address 1>:<port number>", "<Node IP address 2>:<port number>"].

index

Yes

Имя индекса, в который записываются события.

  • Один индекс: введите имя индекса, например, my_index.
  • Несколько индексов: используйте динамическое именование (на основе полей события) или настройте несколько условных блоков вывода для маршрутизации событий в разные индексы.

user

No

Username для доступа к целевому кластеру.

Обязательно для security-mode кластера.

password

No

Password для доступа к целевому кластеру.

Обязательно для security-mode кластера.

ssl

No

Включён ли SSL для целевого кластера.

Значение может быть:

  • true: Использует HTTPS для передачи данных.
  • false: Использует HTTP для передачи данных.

cacert

No

Путь к сертификату CA, используемому для проверки целевого кластера.

Value format: <certificate path><certificate name>, for example, /opt/logstash/extend/certs.

  • Если получатель является кластером CSS Elasticsearch или OpenSearch, будет получено certificate name и certificate path сертификата CA по умолчанию. Подробности см. Viewing Default Certificates.
  • Если получатель является самостоятельно управляемым или сторонним кластером Elasticsearch или OpenSearch, загрузите сертификат безопасности кластера получателя в Logstash и получите certificate name и certificate path. Подробности см. Uploading a Custom Certificate.

ssl_certificate_verification

No

Указывает, включена ли проверка SSL‑сертификата для кластера получателя.

Значение может быть:

  • true (по умолчанию): использует SSL‑сертификат для проверки кластера получателя.
  • false: игнорирует проверку SSL‑сертификата.

Для получения дополнительной информации см. Kafka input plugin и Elasticsearch output plugin в официальной документации Logstash.

Beats Template

Приём данных из Beats в кластер Elasticsearch или OpenSearch.

# logstash-input-beats
input {
beats {
# Logstash listening port, used for receiving data from Filebeat or Metricbeat.
port => 5044
}
}
filter {
# Removes some metadata fields automatically added by Logstash
mutate {
remove_field => ["@timestamp", "@version"]
}
}
# logstash-output-elasticsearch
output {
elasticsearch {
# Destination cluster node addresses. No need to include the protocol.
hosts => ["xxx.xxx.xxx.xxx:9200", "xxx.xxx.xxx.xxx:9200"]
# Name of the index that events are written into.
index => "xxx"
# Mandatory fields for a security-mode cluster. (Delete them for a cluster with the security mode disabled.)
# user => "xxx" # Username for accessing the cluster.
# password => "xxx" # Password corresponding to the username.
# If SSL is enabled for the destination cluster, additionally configure the following information:
# ssl => true
# cacert => "/opt/logstash/extend/certs" # Path of the CA certificate used to verify the destination cluster.
# ssl_certificate_verification => false # Whether to enable SSL certificate verification for the destination cluster.
}
}
Table 6 Элементы конфигурации

Элемент конфигурации

Обязательно

Описание

logstash-input-beats

порт

Да

Порт прослушивания Logstash, используемый для получения данных от Filebeat или Metricbeat.

Убедитесь, что этот порт (например, 5044) не занят другими процессами и разрешён правилами группы безопасности кластера Logstash.

logstash-output-elasticsearch

хосты

Да

Адреса узлов целевого кластера. Можно указать несколько IP‑адресов.

Value format: ["<Node IP address 1>:<Port number>", "<Node IP address 2>:<Port number>"]

индекс

Да

Имя индекса, в который записываются события.

  • Один индекс: введите имя индекса, например, my_index.
  • Несколько индексов: используйте динамическое именование (на основе полей события) или настройте несколько условных блоков вывода для маршрутизации событий в разные индексы.

user

No

Имя пользователя для доступа к целевому кластеру.

Обязательно для кластера в режиме безопасности.

password

No

Пароль для доступа к целевому кластеру.

Обязательно для кластера в режиме безопасности.

ssl

No

Указывает, включён ли SSL для целевого кластера.

Значение может быть:

  • true: Использует HTTPS для передачи данных.
  • false: Использует HTTP для передачи данных.

cacert

No

Путь к сертификату CA, используемому для проверки кластера назначения.

Value format: <certificate path><certificate name>, for example, /opt/logstash/extend/certs.

  • Если назначение представляет собой кластер CSS Elasticsearch или OpenSearch, certificate name и certificate path сертификата CA по умолчанию будут получены. Для получения подробной информации см. Viewing Default Certificates.
  • Если назначение представляет собой самостоятельно управляемый или сторонний кластер Elasticsearch или OpenSearch, загрузите сертификат безопасности кластера назначения в Logstash и получите certificate name и certificate path. Для получения подробной информации см. Uploading a Custom Certificate.

ssl_certificate_verification

No

Указывает, включена ли проверка SSL‑сертификата для кластера назначения.

Значение может быть:

  • true (default): Использует SSL‑сертификат для проверки кластера назначения.
  • false: Игнорирует проверку SSL‑сертификата.

Для получения дополнительной информации см. Beats input plugin и Elasticsearch output plugin в официальной документации Logstash.