From 23fe77e2d2c8e625754c07cb4407e1398e40e318 Mon Sep 17 00:00:00 2001 From: svkalinin Date: Wed, 22 Mar 2023 11:15:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA?= =?UTF-8?q?=D0=B0=20es-discover-node=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=BA=D0=B0=20=D1=83=D0=B7=D0=BB=D0=BE=D0=B2=20elasticse?= =?UTF-8?q?arch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- log-processor.go | 42 +++++++++++++++--------------------------- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index c5242a5..1385b82 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ ## Опции командной строки ``` -Usage of /tmp/go-build847101717/b001/exe/log-processor: +Usage of log-processor: -config string Файл настроек (default "config.ini") -create-config diff --git a/log-processor.go b/log-processor.go index 32517be..9350617 100644 --- a/log-processor.go +++ b/log-processor.go @@ -3,28 +3,7 @@ // Версия: 1.0.0 // Автор: Сергей Калинин svk@nuk-svk.ru https://git.nuk-svk.ru/svk/ // ---------------------------------------------------------------------- -// Использование log-processor: -// -dict-file string -// Файл со словарём (DICT_FILE) (default "1Cv8.lgf") -// -dir-in string -// Каталог для исходных файлов (DIR_IN) (default "in") -// -dir-log string -// Каталог для лога работы (DIR_LOG) (default "log") -// -dir-out string -// Каталог для обработанных файлов (DIR_OUT) (default "out") -// -dir-temp string -// Каталог для временных файлов (TEMP) (default "/tmp") -// -log-file-ext string -// Расширение файлов с журналами (обрабатываемых логов) (LOG_FILE_EXT) (default ".lgp") -// -object-types string -// Список типов объектов для выборки разделённый запятой (OBJECT_TYPES) (default "1,2,3,4,5,6,7,8") -// -out-format string -// Выводить данные в формате JSON (OUT_FORMAT) (default "json") -// -send-to-es -// Отправлять данные в ElasticSearch (SEND_TO_ES) -// ------------------------------------------------------------------------- -// ELASTICSEARCH_URL="https://user:pass@elastic:9200" - +// Лицензия: GPL(v3) //------------------------- ------------------------------------------------ package main @@ -73,6 +52,7 @@ var ( EsIndexPrefix string EsIndexName string EsSkipVerify bool + EsDiscoverNode bool Debug bool OutFormat string WriteOutFile bool @@ -230,6 +210,8 @@ logFileExtention=.lgp [ElasticSearch] ; Включене отправки данных в ElasticSearch sendToEs=false +; Получать список узлов кластера ElasticSearch +esDiscoverNode=true ; Адрес сервера ElasticSearch esUrl=https://elastic:9200 ; Пользователь для подключсения к ElasticSearch @@ -1026,13 +1008,13 @@ func esConnect() *opensearch.Client { Transport: &http.Transport{ MaxIdleConns: 10, MaxIdleConnsPerHost: 10, - ResponseHeaderTimeout: 60 * time.Second, + ResponseHeaderTimeout: 300 * time.Second, IdleConnTimeout: 1 * time.Millisecond, DisableKeepAlives: true, // ForceAttemptHTTP2: true, MaxConnsPerHost: 20, DialContext: (&net.Dialer{ - Timeout: 60 * time.Second, + Timeout: 300 * time.Second, // KeepAlive: 10 * time.Millisecond, }).DialContext, TLSClientConfig: &tls.Config{InsecureSkipVerify: EsSkipVerify}, @@ -1045,8 +1027,12 @@ func esConnect() *opensearch.Client { log.Println("cannot initialize", err) os.Exit(1) } + // Получение списка узлов кластера для параллельной работы + // вставка данных будет идти через все узлы + if EsDiscoverNode { + EsClient.DiscoverNodes() + } - EsClient.DiscoverNodes() if err != nil { log.Println("Ошибка получения списка узлов кластера ES:", err) os.Exit(1) @@ -1161,6 +1147,7 @@ func readConfigFile(fileName string) { SendToEs = cfg.Section("ElasticSearch").Key("sendToEs").MustBool() if SendToEs { + EsDiscoverNode = cfg.Section("ElasticSearch").Key("esDiscoverNode").MustBool() EsUrl = cfg.Section("ElasticSearch").Key("esUrl").String() EsUser = cfg.Section("ElasticSearch").Key("esUser").String() EsPassword = cfg.Section("ElasticSearch").Key("esPassword").String() @@ -1259,8 +1246,9 @@ func main() { flag.StringVar(&EsUser, "es-user", "", "Имя пользователя Elastic Search (ELASTICSEARCH_USER)") flag.StringVar(&EsPassword, "es-password", "", "Пароль пользователя Elastic Search (ELASTICSEARCH_PASSWORD)") flag.StringVar(&EsIndexPrefix, "es-index-prefix", "", "Префикс имени индекса Elastic Search (ELASTICSEARCH_INDEX_PREFIX)") - flag.IntVar(&EsBulkRecordsQuantity, "es-bulk-quantity", 10, "Количество записей в одном запросе для пакетной вставки") - flag.BoolVar(&EsBulk, "es-bulk", false, "Пакетная вставка записей в Elastic Search") + flag.BoolVar(&EsDiscoverNode, "es-discover-node", false, "Получать список узлов кластера ElasticSearch") + // flag.IntVar(&EsBulkRecordsQuantity, "es-bulk-quantity", 10, "Количество записей в одном запросе для пакетной вставки") + // flag.BoolVar(&EsBulk, "es-bulk", false, "Пакетная вставка записей в Elastic Search") flag.BoolVar(&EsSkipVerify, "es-skip-verify", false, "Пропустить проверку сертификатов при подключении к Elastic Search") flag.BoolVar(&WriteOutFile, "write-out-file", false, "Запись обработанных данных в файл") flag.StringVar(&OutFormat, "out-format", "csv", "Формат данных на выходе (csv, json) (OUT_FORMAT)")