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

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

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

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

Таблица 1 перечисляет часто используемые шаблоны файлов конфигурации Logstash.

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

Имя

Описание

Подробности

redis

Импортирует данные из базы данных Redis в кластер Elasticsearch.

elasticsearch

Переносит данные между кластерами Elasticsearch.

jdbc

Импортирует данные из JDBC в кластер Elasticsearch.

kafka

Импортирует данные из Kafka в кластер Elasticsearch.

beats

Импортирует данные из Beats в кластер Elasticsearch.

dis

Импортирует данные из DIS в кластер Elasticsearch.

Redis Template

Импортирует данные из базы данных Redis в кластер Elasticsearch.

input {
redis {
data_type => "pattern_channel" # data_type, one of ["list", "channel", "pattern_channel"]
key => "lgs-*" # The name of a Redis list or channel.
host => "xxx.xxx.xxx.xxxx"
port => 6379
}
}
filter {
# Delete some fields added by Logstash.
mutate {
remove_field => ["@timestamp", "@version"]
}
}
output {
elasticsearch {
hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"] # host
# user => "xxxx" # user name, just for security cluster
# password => "xxxx" # password, just for security cluster
index => "xxxxxx" # destination _index
}
}
Table 2 Элементы конфигурации

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

Обязательно

Описание

тип_данных

Да

Тип источника данных. Варианты: список, канал, и pattern_channel.

  • Если параметр установлен в list, используется ключ BLPOP.
  • Если параметр установлен в channel, используется ключ SUBSCRIBE.
  • Если параметр установлен в pattern_channel, используется ключ PSUBSCRIBE.

ключ

Да

Redis list или channel name

Хост

Да

IP-адрес сервера Redis

порт

Нет

Номер порта для подключения.

Значение по умолчанию: 6379.

хосты

Да

Адрес для доступа к кластеру Elasticsearch.

пользователь

Нет

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

Этот параметр требуется только для кластера безопасности.

пароль

Нет

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

Этот параметр требуется только для кластера безопасности.

индекс

Да

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

Можно настроить только один индекс.

Для получения дополнительной информации см. документ Logstash Redis входной Плагин.

Elasticsearch Шаблон

Перемещает данные между кластерами Elasticsearch.

input {
elasticsearch {
# Source ES cluster IP address. When SSL is enabled, please use 7.10.0 and you donot need to add a protocol, otherwise an error is reported.
hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"]
# user => "xxxx" # user name, just for security cluster
# password => "xxxx" # password, just for security cluster
index => "xxxx,xxx,xxx" # List of indexes to be migrated, separate with commas (,)
docinfo => true
# source ES certificate, the cluster on the cloud this value remains the same. Enter the corresponding path when using a custom certificate. Self-built Logstash cluster, You can download the certs file from the ES cluster details page, enter the corresponding path here.
# ca_file => "/rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/certs" # for 7.10.0
# ssl => true # Set to true when SSL is enabled.
}
}
filter {
# Delete some fields added by Logstash.
mutate {
remove_field => ["@timestamp", "@version"]
}
}
output {
elasticsearch {
# Destination ES cluster IP address. When SSL is enabled, please use 7.10.0 and you donot need to add a protocol.
hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"]
# user => "xxx" # user name, just for security cluster
# password => "xxxx" # password, just for security cluster
index => "%{[@metadata][_index]}" # destination _index, this config ensure that the index is consistent with that on the source. You can also specify the index name.
# document_type => "%{[@metadata][_type]}" # destination _type, this config ensure that the document_type is consistent with that on the source.
# document_id => "%{[@metadata][_id]}" # destination _id, if you do not need to retain the original _id, delete this line to improve performance.
# source ES certificate, the cluster on the cloud this value remains the same. Enter the corresponding path when using a custom certificate. Self-built Logstash cluster, You can download the certs file from the ES cluster details page, enter the corresponding path here.
# cacert => "/rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/certs" # for 7.10.0
# ssl => true # Set to true when SSL is enabled.
# ssl_certificate_verification => false # Set to false to ignore the validation server certificate when SSL is enabled.
}
}
Таблица 3 Элементы конфигурации

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

Обязательно

Описание

хосты

Да

Адрес для доступа к целевому кластеру Elasticsearch, в который импортируются данные.

пользователь

Нет

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

Этот параметр требуется только для кластера безопасности.

пароль

Нет

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

Этот параметр требуется только для кластера безопасности.

индекс

Да

Индекс, из которого будут мигрировать данные.

docinfo

Нет

Информация о документе.

Значение: true или false.

Если указать этот параметр, включить информацию о документе Elasticsearch в событие, например индекс, тип и ID.

ca_file

Нет

Значение по умолчанию: /rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/certs.

Для облачного кластера Logstash оставьте значение по умолчанию, либо при использовании пользовательского сертификата укажите путь к пользовательскому сертификату.

Для внутреннего кластера Logstash вы можете загрузить сертификат на странице сведений кластера Elasticsearch с включённым SSL. Укажите здесь путь к сертификату.

ssl

Нет

Установите этот параметр в true если SSL включён для исходного кластера Elasticsearch.

хосты

Да

Адрес для доступа к исходному кластеру Elasticsearch, откуда поступают данные.

пользователь

Нет

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

Этот параметр требуется только для кластера безопасности.

пароль

Нет

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

Этот параметр требуется только для безопасного кластера.

индекс

Да

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

Можно настроить только один индекс.

document_type

Нет

  • Этот параметр действителен только когда docinfo установлен в true.
  • Если docinfo установлен в false, удалите этот параметр из файла конфигурации.

document_id

Нет

  • Этот параметр действителен только когда docinfo установлен в true.
  • Если docinfo установлен в false, удалите этот параметр из файла конфигурации.

cacert

Нет

Значение по умолчанию: /rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/certs.

  • Для облачного кластера Logstash, оставьте значение по умолчанию, или при использовании пользовательского сертификата, укажите путь к пользовательскому сертификату.
  • Для собственного кластера Logstash, вы можете загрузить сертификат на странице деталей кластера Elasticsearch с включённым SSL. Укажите путь к сертификату здесь.

ssl

Нет

Установите этот параметр в true если SSL включен для целевого кластера Elasticsearch.

ssl_certificate_verification

Нет

Установите этот параметр в false чтобы включить SSL и игнорировать проверку сертификата сервера.

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

JDBC Template

Импортирует данные из JDBC в кластер Elasticsearch.

input {
jdbc {
# for 7.10.0, jdbc_driver_library => "/rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/jars/mariadb-java-client-2.7.0.jar"
jdbc_driver_library => "xxxxxxxxxxx"
jdbc_driver_class => "org.mariadb.jdbc.Driver"
jdbc_connection_string => "jdbc:mariadb://xxx.xxx.xxx.xxx:xxx/data_base_name"
jdbc_user => "xxxx"
jdbc_password => "xxxx"
statement => "SELECT * from table_name" # This SQL statement determines the data to be input
}
}
filter {
# Delete some fields added by Logstash.
mutate {
remove_field => ["@timestamp", "@version"]
}
}
output {
elasticsearch {
hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"] # host
# user => "xxxx" # user name, just for security cluster
# password => "xxxx" # password, just for security cluster
index => "xxxxxx" # destination _index
}
}
Таблица 4 Элементы конфигурации

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

Обязательно

Описание

jdbc_driver_library

Да

Путь к библиотеке драйвера JDBC.

  • Если версия кластера Logstash 7.10.0, установите этот параметр в /rds/datastore/logstash/v7.10.0/package/logstash-7.10.0/extend/jars/mariadb-java-client-2.7.0.jar.

В настоящее время поддерживаются только эти существующие драйверы. Пользовательская загрузка не поддерживается.

jdbc_driver_class

Да

Класс драйвера JDBC, который будет загружен, например, org.mariadb.jdbc.Driver.

jdbc_connection_string

Да

JDBC строка подключения

jdbc_user

Да

JDBC имя пользователя

jdbc_password

Да

JDBC пароль

оператор

Да

SQL оператор входных данных.

хосты

Да

Адрес для доступа к исходному кластеру Elasticsearch, откуда поступают данные.

пользователь

Нет

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

Этот параметр требуется только для защищённого кластера.

пароль

Нет

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

Этот параметр требуется только для защищённого кластера.

индекс

Да

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

Можно настроить только один индекс.

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

Kafka Template

Импортирует данные из Kafka в кластер Elasticsearch.

input {
kafka{
bootstrap_servers=>"xxx.xxx.xxx.xxx:xxxx"
topics=>["xxxxxxxx"]
group_id=>"kafka_es_test"
auto_offset_reset=>"earliest"
}
}
filter {
# Delete some fields added by Logstash.
mutate {
remove_field => ["@timestamp", "@version"]
}
}
output {
elasticsearch {
hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"] # host
# user => "xxxx" # user name, just for security cluster
# password => "xxxx" # password, just for security cluster
index => "xxxxxx" # destination _index
}
}
Таблица 5 Элементы конфигурации

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

Обязательно

Описание

bootstrap_servers

Да

IP-адрес и номер порта экземпляра Kafka

темы

Да

Список тем для подписки

group_id

Да

Идентификатор группы, к которой принадлежит потребитель.

auto_offset_reset

Да

Начальное смещение в Kafka.

  • самый ранний: Автоматически сбрасывать смещение к самому раннему смещению.
  • самый последний: Автоматически сбрасывать смещение к самому последнему смещению.
  • нет: Сообщать об исключении потребителю, если предыдущее смещение для группы потребителей не найдено.
  • что‑нибудь ещё: Система бросает исключение потребителю.

хосты

Да

Address for accessing the source Elasticsearch cluster where data comes from.

пользователь

Нет

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

Этот параметр требуется только для кластера безопасности.

пароль

Нет

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

Этот параметр требуется только для кластера безопасности.

индекс

Да

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

Можно настроить только один индекс.

Для получения дополнительной информации см. документ Logstash Плагин входных данных Kafka.

Шаблон DIS

Импортирует данные из DIS в кластер Elasticsearch.

input {
dis {
streams => ["YOUR_DIS_STREAM_NAME"]
endpoint => "https://dis.xxxxx.myhuxxxoud.com" # xxxxx should be replaced by your region name
ak => "YOUR_ACCESS_KEY_ID"
sk => "YOUR_SECRET_KEY_ID"
region => "YOUR_Region"
project_id => "YOUR_PROJECT_ID"
group_id => "YOUR_APP_ID"
client_id => "YOUR_CLIENT_ID"
auto_offset_reset => "earliest"
}
}
filter {
# Delete some fields added by Logstash.
mutate {
remove_field => ["@timestamp", "@version"]
}
}
output {
elasticsearch {
hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"] # host
# user => "xxxx" # user name, just for security cluster
# password => "xxxx" # password, just for security cluster
index => "xxxxxx" # destination _index
}
}
Таблица 6 Элементы конфигурации

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

Обязательно

Описание

потоки

Да

Имя DIS‑потока.

Введённое имя DIS‑потока должно совпадать с именем потока, указанным при создании DIS‑потока в консоли DIS.

endpoint

Да

Адрес Data API региона, где размещён DIS.

ak

Да

Ключ доступа пользователя (AK).

sk

Да

Секретный ключ пользователя (SK).

регион

Да

Регион, где поддерживается DIS.

project_id

Да

Идентификатор проекта региона.

Для подробностей см. .

group_id

Да

DIS App name, используемое для идентификации группы потребителей. Значение может быть любой строкой символов.

client_id

Нет

Client ID, который идентифицирует потребителя в группе потребителей.

Если для потребления запускается несколько pipelines или Logstash instances, установите для этого параметра разные значения. Например, значение instance 1 равно client1, а значение instance 2 равно client2.

auto_offset_reset

Нет

Позиция, с которой данные начинают потребляться из потока. Параметры следующие:

  • earliest: Данные потребляются с самого раннего.
  • latest: Данные потребляются из последнего.

хосты

Да

Адрес для доступа к исходному кластеру Elasticsearch, откуда поступают данные.

пользователь

Нет

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

Этот параметр требуется только для кластера безопасности.

пароль

Нет

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

Этот параметр требуется только для кластера безопасности.

индекс

Да

Индекс, в который будут перемещены данные.

Можно настроить только один индекс.

Beats Шаблон

Импортирует данные из Beats в кластер Elasticsearch.

input {
beats {
port => 5044 # port
}
}
filter {
# Delete some fields added by Logstash.
mutate {
remove_field => ["@timestamp", "@version"]
}
}
output {
elasticsearch {
hosts => ["http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200", "http://xxx.xxx.xxx.xxx:9200"] # host
# user => "xxxx" # user name, just for security cluster
# password => "xxxx" # password, just for security cluster
index => "xxxxxx" # destination _index
}
}
Таблица 7 Элементы конфигурации

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

Обязательно

Описание

порт

Да

Номер порта 5044 используется для подключения и индексирования Elasticsearch через Beats.

хосты

Да

Адрес для доступа к исходному кластеру Elasticsearch, откуда поступают данные.

пользователь

Нет

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

Этот параметр требуется только для кластера безопасности.

пароль

Нет

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

Этот параметр требуется только для кластера безопасности.

индекс

Да

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

Можно настроить только один индекс.

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