При построении конвейера обработки журналов в реальном времени или миграции больших данных ручное написание файлов конфигурации Logstash часто занимает много времени и подвержено ошибкам из‑за сложного синтаксиса. Ошибки конфигурации могут даже привести к потере данных. Чтобы решить эту проблему, CSS предоставляет готовые шаблоны конфигураций Logstash для различных основных источников данных, таких как Redis, Elasticsearch, MySQL (JDBC) и Kafka. Используя эти проверенные шаблоны, вы можете быстро настроить автоматические каналы передачи данных от источников данных к кластерам CSS Elasticsearch или OpenSearch, указав только требуемую информацию о подключении. Это существенно снижает операционные затраты и помогает обеспечить надежность конвейеров ingest данных.
Имя системного шаблона | Описание | Подробности |
|---|---|---|
redis | Поглощает данные из базы данных Redis в кластер Elasticsearch или OpenSearch. | |
elasticsearch | Поглощает данные из кластера Elasticsearch или OpenSearch в другой кластер Elasticsearch или OpenSearch. | |
jdbc | Поглощает данные из базы данных MySQL или MariaDB через JDBC в кластер Elasticsearch или OpenSearch. | |
kafka | Загружает данные из Kafka в кластер Elasticsearch или OpenSearch. | |
beats | Загружает данные из Beats в кластер Elasticsearch или OpenSearch. |
Загружает данные из базы данных Redis в кластер Elasticsearch или OpenSearch.
# logstash-input-redisinput {redis {# Redis data typedata_type => "pattern_channel"# Redis list or channel namekey => "lgs-*"host => "xxx.xxx.xxx.xxx"port => 6379}}filter {# Removes some metadata fields automatically added by Logstashmutate {remove_field => ["@timestamp", "@version"]}}# logstash-output-elasticsearchoutput {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.}}
Элемент конфигурации | Обязательно | Описание |
|---|---|---|
logstash-input-redis | ||
data_type | Да | Типы данных Redis. Значение может быть:
|
key | Да | Имя списка Redis или канала.
|
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 | Имя индекса, в который записываются события.
|
user | No | Username для доступа к целевому кластеру. Обязательно для security-mode кластера. |
password | No | Password для доступа к целевому кластеру. Обязательно для security-mode кластера. |
ssl | No | Включён ли SSL для целевого кластера. Значение может быть:
|
cacert | No | Путь к CA certificate, используемому для проверки целевого кластера. Value format: <certificate path><certificate name>, for example, /opt/logstash/extend/certs.
|
ssl_certificate_verification | No | Указывает, включена ли проверка SSL‑сертификата для кластера назначения. Значение может быть:
|
Для получения дополнительной информации см. Redis input plugin и Elasticsearch output plugin в официальной документации Logstash.
Загрузка данных из кластера Elasticsearch или OpenSearch в другой кластер Elasticsearch или OpenSearch.
# logstash-input-elasticsearchinput {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 migratedindex => "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 Logstashmutate {remove_field => ["@timestamp", "@version"]}}# logstash-output-elasticsearchoutput {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.}}
Элемент конфигурации | Обязательно | Описание |
|---|---|---|
logstash-input-elasticsearch | ||
hosts | Yes | Адреса узлов исходного кластера. Вы можете указать несколько IP‑адресов. Value format: ["<Node IP address 1>:<Port number>", "<Node IP address 2>:<Port number>"] |
index | Yes | Имя исходного индекса, который будет мигрирован.
|
docinfo | No | Определяет, сохранять ли метаданные исходных документов. Значение может быть:
|
user | No | Имя пользователя для доступа к исходному кластеру. Обязательно для кластера в режиме безопасности. |
password | No | Пароль для доступа к исходному кластеру. Обязательно для кластера в режиме безопасности. |
ssl | No | Указывает, включён ли SSL для исходного кластера. Значение может быть:
|
ca_file | No | Путь к сертификату CA, используемому для проверки исходного кластера. Value format: <certificate path><certificate name>, for example, /opt/logstash/extend/certs.
|
logstash-output-elasticsearch | ||
hosts | Yes | Адреса узлов целевого кластера. Можно настроить несколько IP-адресов. Value format: ["<Node IP address 1>:<Port number>", "<Node IP address 2>:<Port number>"] |
index | Yes | Имя индекса, в который записываются события.
|
document_type | No | Тип документа, в который записываются события. Похожие события должны записываться в документы того же типа. |
document_id | No | ID документа, в который записываются события. Указание существующего ID может привести к перезаписи исторических данных. Для задач миграции данных рекомендуется установить этот параметр, чтобы предотвратить дублирование данных. |
user | No | Имя пользователя для доступа к целевому кластеру. Обязательно для security-mode cluster. |
password | No | Пароль для доступа к кластеру назначения. Обязательно для security-mode cluster. |
ssl | No | Включён ли SSL для кластера назначения. Значение может быть:
|
cacert | No | Путь к сертификату CA, используемому для проверки кластера назначения. Value format: <certificate path><certificate name>, for example, /opt/logstash/extend/certs.
|
ssl_certificate_verification | No | Указывает, включена ли проверка SSL‑сертификата для кластера назначения. Значение может быть:
|
Для получения дополнительной информации см. Elasticsearch input plugin и Elasticsearch output plugin в официальной документации Logstash.
Загрузка данных из базы данных MySQL или MariaDB через JDBC в кластер Elasticsearch или OpenSearch.
# logstash-input-jdbcinput {jdbc {# Path of the JDBC driver packagejdbc_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 synchronizationstatement => "select * from table_name"}}filter {# Removes some metadata fields automatically added by Logstashmutate {remove_field => ["@timestamp", "@version"]}}# logstash-output-elasticsearchoutput {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.}}
Элемент конфигурации | Обязательно | Описание |
|---|---|---|
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)
|
jdbc_driver_class | Yes | Имя класса драйвера.
|
jdbc_connection_string | Да | Строка подключения к базе данных.
|
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 | Имя индекса, в который записываются события.
|
user | No | Имя пользователя для доступа к кластеру назначения. Обязательно для кластера в режиме безопасности. |
password | No | Пароль для доступа к целевому кластеру. Обязательно для кластера в режиме безопасности. |
ssl | No | Указывает, включён ли SSL для целевого кластера. Значение может быть:
|
cacert | No | Путь к сертификату CA, используемому для проверки целевого кластера. Value format: <certificate path><certificate name>, for example, /opt/logstash/extend/certs.
|
ssl_certificate_verification | Нет | Указывает, включена ли проверка SSL‑сертификата для кластера назначения. Значение может быть:
|
Для получения дополнительной информации см. Jdbc input plugin и Elasticsearch output plugin в официальной документации Logstash.
Загружайте данные из Kafka в кластер Elasticsearch или OpenSearch.
# logstash-input-kafkainput {kafka {# Kafka broker addressesbootstrap_servers => "xxx.xxx.xxx.xxx:xxx"# Kafka topics to subscribe totopics => ["xxx"]# Consumer group ID for offset trackinggroup_id => "kafka_es_test"# Offset reset policyauto_offset_reset => "earliest"}}filter {# Removes some metadata fields automatically added by Logstashmutate {remove_field => ["@timestamp", "@version"]}}# logstash-output-elasticsearchoutput {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.}}
Элемент конфигурации | Обязательно | Описание |
|---|---|---|
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 для подписки.
|
group_id | Yes | Идентификатор группы потребителей для отслеживания смещения |
auto_offset_reset | Yes | Политика сброса смещения. Значение может быть:
|
logstash-output-elasticsearch | ||
hosts | Yes | Адреса узлов кластера назначения. Можно настроить несколько адресов. Value format: ["<Node IP address 1>:<port number>", "<Node IP address 2>:<port number>"]. |
index | Yes | Имя индекса, в который записываются события.
|
user | No | Username для доступа к целевому кластеру. Обязательно для security-mode кластера. |
password | No | Password для доступа к целевому кластеру. Обязательно для security-mode кластера. |
ssl | No | Включён ли SSL для целевого кластера. Значение может быть:
|
cacert | No | Путь к сертификату CA, используемому для проверки целевого кластера. Value format: <certificate path><certificate name>, for example, /opt/logstash/extend/certs.
|
ssl_certificate_verification | No | Указывает, включена ли проверка SSL‑сертификата для кластера получателя. Значение может быть:
|
Для получения дополнительной информации см. Kafka input plugin и Elasticsearch output plugin в официальной документации Logstash.
Приём данных из Beats в кластер Elasticsearch или OpenSearch.
Элемент конфигурации | Обязательно | Описание |
|---|---|---|
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>"] |
индекс | Да | Имя индекса, в который записываются события.
|
user | No | Имя пользователя для доступа к целевому кластеру. Обязательно для кластера в режиме безопасности. |
password | No | Пароль для доступа к целевому кластеру. Обязательно для кластера в режиме безопасности. |
ssl | No | Указывает, включён ли SSL для целевого кластера. Значение может быть:
|
cacert | No | Путь к сертификату CA, используемому для проверки кластера назначения. Value format: <certificate path><certificate name>, for example, /opt/logstash/extend/certs.
|
ssl_certificate_verification | No | Указывает, включена ли проверка SSL‑сертификата для кластера назначения. Значение может быть:
|
Для получения дополнительной информации см. Beats input plugin и Elasticsearch output plugin в официальной документации Logstash.