Добавлена настройка es-discover-node для получения списка узлов elasticsearch

main
svkalinin 2023-03-22 11:15:24 +03:00
parent e1271356b5
commit 23fe77e2d2
2 changed files with 16 additions and 28 deletions

View File

@ -15,7 +15,7 @@
## Опции командной строки
```
Usage of /tmp/go-build847101717/b001/exe/log-processor:
Usage of log-processor:
-config string
Файл настроек (default "config.ini")
-create-config

View File

@ -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)")