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

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

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

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

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

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

Имя

Описание

Подробности

redis

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

elasticsearch

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

jdbc

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

kafka

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

beats

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

dis

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

Шаблон Redis

Импортирует данные из базы данных 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
}
}
Таблица 2 Элементы конфигурации

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

Обязательный

Описание

data_type

Да

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

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

ключ

Да

Redis list или channel name

host

Да

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.

hosts

Да

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

user

Нет

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

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

password

Нет

Пароль для доступа к кластеру 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 если для целевого кластера Elasticsearch включён SSL.

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 ввод Плагин.

Шаблон Kafka

Импортирует данные из 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.

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

hosts

Да

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

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

Нет

Имя пользователя для доступа к кластеру 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.

Эндпоинт

Да

Адрес Data API региона, в котором находится DIS.

ak

Да

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

sk

Да

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

регион

Да

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

project_id

Да

ID проекта региона.

Для получения деталей см. .

group_id

Да

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

client_id

Нет

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

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

auto_offset_reset

Нет

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

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

хосты

Да

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

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

Нет

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

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

пароль

Нет

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

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

индекс

Да

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

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

Beats Template

Импортирует данные из 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 Плагин.