Elastic + filebeat + ТЖ 1С

Публикация № 1073101

Администрирование - Администрирование данных 1С - Журнал регистрации

Рассмотрим как можно обрабатывать удобно большой объем информации с простой структурой. Это удобно для анализа логов ТЖ, поскольку типовыми механизмами он невозможен.

Официальный сайт эластика https://www.elastic.co/.
По ссылке https://www.elastic.co/downloads/ необходимо закачать и установить
1. elasticsearch
2. filebeat
3. kibana

Рассмотрим что для чего используется.
Elasticsearch это поисковый движок, он хранит данные.
Filebeat вычитывает файлы логов маркируя прочитанные и отправляет в elasticsearch.
Kibana это интерфейс к elasticsearch, который отображает данные и позволяет быстро находить нужные по отборам.

Запуск инструментов

Запуск filebeat
"D:\distrib\filebeat-7.0.0-windows-x86_64\filebeat.exe" -c "D:\distrib\filebeat-7.0.0-windows-x86_64\filebeat.yml" -path.home "D:\distrib\filebeat-7.0.0-windows-x86_64" -path.data "C:\ProgramData\filebeat" -path.logs "C:\ProgramData\filebeat\logs"
Проверка настроек filebeat
D:\distrib\filebeat-7.0.0-windows-x86_64\filebeat.exe test config -c D:\distrib\filebeat-7.0.0-windows-x86_64\filebeat.yml

Установка elasticsearch в виде сервиса
d:\distrib\elasticsearch-7.0.0\bin\elasticsearch-service.bat install

Запуск kibana выполняется файлом kibana.bat из папки bin корневого каталога.

Механизм работы:
Filebeat вычитывает файлы логов маркируя прочитанные и отправляет в elasticsearch с указанием в какой индекс ложить.
Если индекса нет он создается, если индекс есть в него добавляются новые записи.
Структура индекса создается по шаблону, который filebeat передает elasticsearch.
Сам шаблон filebeat берет из настроек fields.yml, так же можно указать свой шаблон.
Если в elasticsearch уже есть шаблон то по умолчанию он не обновляется (настройка setup.template.overwrite).
Для принудительного обновления шаблона необходимо выставить настройку setup.template.overwrite: true.
Так же можно самому создать шаблон напрямую в elasticsearch чтобы он подхватывался при создании индекса.
После создания индекса и шаблона необходимо задать правила парсинга сообщения ТЖ для разбора и заполнения полей индекса.

Настройка

Filebeat
Filebeat может обрабатывать каталоги и файлы.
Файлы читает построчно и гарантирует что прочитанное сообщение будет отправлено по крайней мере один раз и без потери данных.
Каждый файл обрабатывается отдельно.
Данные о прочитанных файлах хранятся в реестре.
По каждому файлу хранится уникальный идентификатор.
Это необходимо т.к. файл может быть переименован или перемещен.
Уникальные идентификаторы хранятся в реестре, поэтому возможен его рост при чтении большого количества файлов.
Более подробно описано в https://www.elastic.co/guide/en/beats/filebeat/7.0/how-filebeat-works.html.

# настраиваем сбор логов ТЖ
#=========================== Filebeat inputs =============================
filebeat.inputs:
- type: log

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    #- /var/log/*.log
    # Обращаем внимание на формат, \*\* будет смотреть в подкаталог, когда \* не будет
    - d:\logs1С\*\*.log

#-------------------------- Elasticsearch output ------------------------------

output.elasticsearch:
# Array of hosts to connect to.
hosts: ["localhost:9200"]

# Имя индекса, если нет то создается новый
index: "onectj-%{+yyyy.MM.dd}"

# Разделим на индексы по типам сообщений
# Без разделения все будет ложиться в один индекс описанный выше
indices:
- index: "onectj-call-%{+yyyy.MM.dd}"
when.contains:
message: "SCALL"
- index: "onectj-conn-%{+yyyy.MM.dd}"
when.contains:
message: "conn"

timeout: 60

# Нас интересует преобразование логов при обработке в эластике
# для этого необходимо указать pipeline (https://www.elastic.co/guide/en/beats/filebeat/6.4/elasticsearch-output.html) 
# который будет обрабатывать лог в эластике.
# В эластике необходимо настроить этот pipeline.
# Более подробно описано здесь
# https://www.elastic.co/guide/en/beats/filebeat/7.0/configuring-ingest-node.html
pipeline: "onectj_pipeline"

# загружать шаблон индекса в эластик, если шаблон есть он не перезаписывается
setup.template.enabled: true
# имя шаблона искомого в эластике для разбора индекса
setup.template.name: "onectj"
# паттерн шаблона
setup.template.pattern: "onectj-*"

#============================== Setup ILM =====================================

# Изменение имени индекса по умолчанию будет игнорироваться
# если включена ILM (управление жизненным циклом индекса).
# Можно либо доработать ILM либо отключить
# Более подробно описано здесь
# https://www.elastic.co/guide/en/beats/filebeat/7.0/ilm.html#setup-ilm-overwrite-option
# filebeat 7.0+
setup.ilm.enabled: false
#setup.lim.overwrite: true

Elasticsearch
Для его настройки используем kibana, точнее ее консоль.

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

PUT _template/onectj
{
  "index_patterns": ["onectj-*"],
  "settings": {
    "number_of_shards": 1
  },
  "mappings": {
      "properties": {
        /*добавляем поля*/
        "num_min": {
          "type": "integer"
        }
        ,"num_sec": {
          "type": "integer"
        }
        ,"ten_thousandth_second": {
          "type": "integer"
        }
        ,"duration": {
          "type": "integer"
        }
        ,"event1c": {
          "type": "text"
        }
        ,"level_event": {
          "type": "text"
        }
        ,"process_name": {
          "type": "text"
        }
        ,"usr": {
          "type": "text"
        }
        ,"context": {
          "type": "text"
        }
        ,"process1c": {
          "type": "text"
        }
        ,"ClientID_name": {
          "type": "text"
        }
        ,"ClientID": {
          "type": "text"
        }
        ,"computerName": {
          "type": "text"
        }
        /*можно добавить группу полей*/
        /*"onec": {
             "properties": {
                  "num_min": {
                    "type": "long"
                  }
                  ,"num_sec": {
                    "type": "long"
                  }
                  ,"ten_thousandth_second": {
                    "type": "text"
                  }
                  ,"duration": {
                    "type": "text"
                  }
          }*/
        }
    }
  }
}

Посмотреть существующий шаблон можно по команде

# получим шаблон индекса ТЖ
GET /_template/onectj

Чтобы просмотреть все шаблоны команда будет похожая

GET /_template/*

Для удаления шаблона используется команда

# удалим шаблон
DELETE _template/onectj*


Внимание!!!
Изменение шаблона делается по аналогии с добавлением.
Но если изменился тип поля то он обновится только в новом индексе либо при переиндексации существующего.

После создания шаблона определим правила разбора сообщения на поля индекса.

Внимание!!!
В индексе отображаются только заполненные поля.
Т.е. если поле есть в шаблоне, но не заполняется правилами оно не будет отображаться при просмотре индекса.

При создании правил допускается указание нескольких правил списком, при этом отработает первое подходящее.

# установим шаблон разбора сообщений ТЖ
PUT _ingest/pipeline/onectj_pipeline
{
 "description" : "onec tj pipeline",
 "processors": [
    {
      "grok": {
        "field": "message",
        "patterns": ["%{NUMBER:num_min}:%{BASE10NUM:num_sec}-%{WORD:duration},%{WORD:event1c},%{WORD:level_event}"]
      }
    },  
    {
        "grok": {
          "field": "message",
          "patterns": [
            "process=%{WORD:process1c}"
          ],
          "on_failure": [
            {
              "set": {
                "field": "process1c",
                "value": ""
              }
            }
          ]
        }
    },  
    {
        "grok": {
          "field": "message",
          "patterns": [
            "Usr=%{WORD:usr}"
          ],
          "on_failure": [
            {
              "set": {
                "field": "usr",
                "value": ""
              }
            }
          ]
        }
    },  
    {
        "grok": {
          "field": "message",
          "patterns": [
            "Context=%{WORD:context}"
          ],
          "on_failure": [
            {
              "set": {
                "field": "context",
                "value": ""
              }
            }
          ]
        }
    }
  ]
}

Отладить выражения для разбора можно следующим образом

# проверим шаблон разбора сообщений ТЖ
POST _ingest/pipeline/_simulate
{
  "pipeline": {
  "description" : "parse multiple patterns",
  "processors": [
    {
      "grok": {
        "field": "message",
        "patterns": ["%{NUMBER:num_min}:%{BASE10NUM:num_sec}-%{WORD:duration},%{WORD:event1c},%{WORD:level_event},process=%{WORD:process_name}"]
      }
    },  
    {
        "grok": {
          "field": "message",
          "patterns": [
            "process=(%{DATA:process},|%{GREEDYDATA:process})"
          ],
          "on_failure": [
            {
              "set": {
                "field": "process",
                "value": ""
              }
            }
          ]
        }
    }
  ]
},
"docs":[
  {
    "_source": {
      "message": "16:40.991013-1,SCALL,0,process=ragent,ClientID=248,Interface=0459eaa0-589f-4a6d-9eed-c1a7461c8e3f,IName=IClusterRegistry,Method=18,CallID=915855,MName=getServersList"
    }
  }
  ]
}


Kibana

Для просмотра индексов в kibana необходимо создать паттерн их отображения.


Для этого зайдем в паттерны индексов и создадим новый.



Укажем маску для группировки нескольких индексов.



Выберем поле хранящее время события



Создадим паттерн индекса.
Теперь выбрав этот паттерн можно будет просматривать индексы.



Отладка

Для анализа проблем обработки в elasticsearch используем журнал filebeat.

#================================ Logging =====================================

# Sets log level. The default log level is info.
# Available log levels are: error, warning, info, debug
logging.level: debug
logging.to_files: true
logging.files:
  path: "d:\\distrib\\filebeat-7.0.0-windows-x86_64\\logs"
  name: filebeat

Указываем уровень регистрируемых ошибок, включаем журнал. При желании можно указать свой каталог логов.
В случае ошибок они отобразятся в логах
Например
 

#2019-06-07T09:40:14.117+0700	DEBUG	[elasticsearch]	elasticsearch/client.go:532	Bulk item insert failed (i=0, status=500): {"type":"exception","reason":"java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: Provided Grok expressions do not match field value: [ОбщийМодуль.ГлобальныйМодуль.Модуль : 10 : ТекущийРежим = ПолучитьБлокировкуУстановкиСоединений();']","caused_by":{"type":"illegal_argument_exception","reason":"java.lang.IllegalArgumentException: Provided Grok expressions do not match field value: [ОбщийМодуль.ГлобальныйМодуль.Модуль : 10 : ТекущийРежим = ПолучитьБлокировкуУстановкиСоединений();']","caused_by":{"type":"illegal_argument_exception","reason":"Provided Grok expressions do not match field value: [ОбщийМодуль.ГлобальныйМодуль.Модуль : 10 : ТекущийРежим = ПолучитьБлокировкуУстановкиСоединений();']"}},"header":{"processor_type":"grok"}}

Данная ошибка говорит об отсутствии в паттерне шаблона условия для разбора сообщения.
Сообщение не загрузилось.
Пример сообщений журнала.

Скачать файлы

Наименование Файл Версия Размер
Настройки filebeat версии 7.0

.yml 11,12Kb
18.06.19
12
.yml 11,12Kb 12 Скачать
Команды elastic

.txt 4,77Kb
18.06.19
10
.txt 4,77Kb 10 Скачать
Шаблон json

.json 1,01Kb
20.06.19
10
.json 1,01Kb 10 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Kluch 19.06.19 17:40 Сейчас в теме
Хорошая статья.
А как указать, что нужно загружать шаблон индекса из файла json. Вроде есть такая возможность, но что-то не получается:

setup.template.json.enabled: true
setup.template.json.name: "onectj"
setup.template.json.path: ${path.config}/my_template.json

И есть ли возможность также указать файл с pipeline в настройках?
Чтобы не вызывать:
PUT _template/onectj
PUT _ingest/pipeline/onectj_pipeline
3. pashamak 175 20.06.19 06:04 Сейчас в теме
(1) Добрый день.
Спасибо!
По документации имя pipeline нужно указывать в настройках, о его загрузке из настроек речи нет.
Подробнее здесь https://www.elastic.co/guide/en/beats/filebeat/7.0/elasticsearch-output.html.

К шаблону предъявляются требования.
В логах есть ошибка загрузки шаблона?

Пример двух разных ошибок некорректного разбора шаблона:

2019-06-20T09:44:23.605+0700 ERROR pipeline/output.go:100 Failed to connect to backoff(elasticsearch(http://localhost:9200)): Connection marked as failed because the onConnect callback failed: Error loading Elasticsearch template: could not unmarshal json template: json: cannot unmarshal array into Go value of type map[string]interface {}

2019-06-20T09:56:59.672+0700 ERROR pipeline/output.go:100 Failed to connect to backoff(elasticsearch(http://localhost:9200)): Connection marked as failed because the onConnect callback failed: Error loading Elasticsearch template: could not unmarshal json template: invalid character '}' after top-level value
(1)

Приложил пример шаблона приведенного в статье.
У меня после удаления шаблона в эластике он загрузился из json корректно.
Прикрепленные файлы:
onectj.json
4. Kluch 21.06.19 13:10 Сейчас в теме
(3) Добрый день.
В логах в консоли как я понимаю пишет: Template already exists and will not be overwritten и загружает шаблон по умолчанию.
Ошибки в моем шаблоне нет, через PUT _template он загружается.

Логи в файл тоже не собираются (выводятся на экран в консоли).

Думаю проблема в задании путей. Что-то не пойму как их указывать?
"E:\\ELK_Stack_7.0.0\\filebeat-7.0.0\\logs" - с двумя слешами
"E:\ELK_Stack_7.0.0\filebeat-7.0.0\logs" - с одним слешем
E:\ELK_Stack_7.0.0\filebeat-7.0.0\logs - без кавычек
${path.config}/logs - или может так?

В секции filebeat.inputs работает так:

paths:
- D:\Logs_ELK\*.log
7. pashamak 175 23.06.19 19:30 Сейчас в теме
(4) Проблема в существовании шаблона, он его не может обновить без включенной настройки замены.
Можно (1 ) удалить существующий шаблон или (2) указать замену шаблон в настройках.
1. DELETE _template/[имя шаблона]
2. Описано здесь https://www.elastic.co/guide/en/beats/filebeat/7.0/configuration-template.html
setup.template.overwrite
A boolean that specifies whether to overwrite the existing template. The default is false.
2. starik-2005 2199 19.06.19 21:25 Сейчас в теме
В последнее время инструменты для линуха стали появляться в винде и винда становится похожа на линух. Ну а консольку можно через подсистему линуха засунуть к мелкомягким - и будет все хорошо.
5. ALex_1C_8 21.06.19 15:15 Сейчас в теме
Может не внимательно читал, но я так и не понял. Как решаете проблему многострочных событий в ТЖ.
6. Kluch 21.06.19 16:31 Сейчас в теме
(5) По идее есть настройка в разделе filebeat.inputs:
multiline.pattern:

Например:

multiline.pattern: '(\d\d:\d\d)\.(\d+)-(\d+)'
8. pashamak 175 23.06.19 19:32 Сейчас в теме
(5) Это не описывал в статье.
Посмотрите по (6) описание в доке https://www.elastic.co/guide/en/beats/filebeat/7.0/filebeat-reference-yml.html
13. Darklight 22 09.12.19 14:02 Сейчас в теме
Интересная статья, но не для начинающих (всё-таки основы тут не разбираются - нужно вникакать в принципы описания взаимодействий filebeat и elasticserach по другим статьям - не про разбор 1С ТЖ).

Вот, я так и не смог разобраться - как формируется дата события - части времени берутся из строки события ТЖ и помещаются в заданные для них поля индекса. Но, во-первых, там нет полного времени ни даты ни часа - это всё находится в имени файла, а оно в filebeat тут никак не разбирается. А, во-вторых, так и не понятно - как потом формируется timestamp записи в Elasticsearch (поле - которое указывается при создании паттерна индекса в kibana)? Можете это подробнее пояснить?

Так же жаль, что не уделили времени в статье обработке событий, разделённых на несколько строк. Ну, в (8),(9) конечно дали намёк - что нужно включить обработку таких строк в filebeat и определять перенос строки - когда начало перенесённой строки не совпадает с партерном описания времени (то это перенесённая строка - хотя это и не совсем надёжно). Но всё- равно стоило бы это описать в статье - ибо для 1C ТЖ это рядовая ситуация и не самая простая при обработке ТЖ классическими путём
9. Repich 507 31.07.19 10:17 Сейчас в теме
(5)
input {
file {

codec => multiline {
pattern => "^(0[0-9]|1[0-9]|2[0-3]|[0-9]):[0-5][0-9]"
negate => true
what => "previous"
}
17. EliasShy 50 11.12.19 07:00 Сейчас в теме
(9) это настройка для logstash насколько понимаю
для filebeat будет

multiline.pattern: '^[0-9][0-9]:[0-9][0-9][.][0-9][0-9][0-9][0-9][0-9][0-9]'
multiline.match: after
multiline.negate: true

Только после чтения документации понимаешь почему after и почему negate - по-наитию сначала ставил before и negate false
10. serge_focus 4 08.08.19 14:43 Сейчас в теме
Привет

А для файлового ЖР у Вас есть pipeline и Настройка.yml?
Хочу перевести ЖР в старый формат
11. pashamak 175 08.08.19 19:57 Сейчас в теме
(10) Для журнала регистрации есть сервис который его разбирает и складывает в эластик.
Сервис написан, но находится в процессе отладки.
Пример прилагаю в скриншоте.
При интересе пишите в личку могу отправить.
Прикрепленные файлы:
12. EGOLEGE 30.10.19 05:39 Сейчас в теме
14. EliasShy 50 10.12.19 07:57 Сейчас в теме
Добрый день.
Спасибо за статью - очень ценная информация.

Подскажите, какими настройками Filebeat удалось его заставить сообщение формировать не по концу строки, а полное - т.е. чтобы начиналось с маркера времени?
16. pashamak 175 10.12.19 18:15 Сейчас в теме
(14)Для многострочных событий используйте мультилайн, он описан выше
15. pashamak 175 10.12.19 15:59 Сейчас в теме
Если речь о скрине выше то это отдельный сервис написанный на .net. Он ставится отдельно и сам все разбирает.
Если речь про ТЖ то с работы pipeline не покажу.
Смотрите в строну нескольких регулярок.
18. EliasShy 50 19.12.19 14:09 Сейчас в теме
Коллеги. Настроили filebeat + ES и все прочее - собирается замечательно.
Но, при продолжительной работе не считывает следующий час (только после остановки сервиса filebeat) - может кто-то сталкивался?
19. pashamak 175 03.02.20 13:09 Сейчас в теме
20. EliasShy 50 07.02.20 10:48 Сейчас в теме
(19) Разобрались уже. Часовые логи ТЖ обрабатываются с задержкой полтора-два часа
21. user597855_platonov92 17.02.20 18:53 Сейчас в теме
Добрый день!
Большое спасибо за подробную статью!
Есть вопрос по добавлению даты создания лога. В ТЖ дата пишется частично в названии файла "20021318.log" и остальная часть идет в строке самого файла "03:59.817001-0 *************". Каким образом можно объединить эти значения и преобразовать в дату для дальнейшего использования в фильтрах?
23. pashamak 175 25.02.20 11:43 Сейчас в теме
(21) Вижу следующие пути решения
1. Через переменные yml можно передавать в pipeline данные. При передаче даты можно с нее брать день и время с файла. Более подробно не вспомню как это делается. Здесь немного о переменных https://www.elastic.co/guide/en/elasticsearch/reference/7.x/settings.html
2. Написать скрипт и вытаскивать дату с транзакции если она есть
3. Ставить текущую дату поскольку журнал разбирается в потоке
22. EZSuleyman 25.02.20 11:16 Сейчас в теме
Добрый день! Статья хорошая только вот есть одна загвоздка. Я новичек в ES и прошу вашей помощи. Вроде все делал по вашей статье но никак не получается вывести Available fields в Дисковере. Сортировка только по стандартным полям. В чем может быть проблема?
Прикрепленные файлы:
24. pashamak 175 25.02.20 11:46 Сейчас в теме
(22) По скрину доступные поля уже есть в дискавере. Переформулирйте вопрос.
25. EZSuleyman 25.02.20 12:50 Сейчас в теме
Хотелось бы фильтровать логи по юзеру или по событию а данных полей у меня нет, поковырялся с разбором сообщений. Теперь он выдает поле usr но пустые строки(
Прикрепленные файлы:
26. pashamak 175 25.02.20 15:06 Сейчас в теме
(25)Проверьте отрабатывает ли выделение пользователя. Например, в сообщении примера этого поля нет.
27. EZSuleyman 26.02.20 16:20 Сейчас в теме
(26)Я тестировал и проверил, видимо kibana не хочет брать русскоязычные символы. Так например
POST _ingest/pipeline/_simulate
{
  "pipeline": {
  "description" : "parse multiple patterns",
  "processors": [
    {
      "grok": {
        "field": "message",
        "patterns": ["%{NUMBER:num_min}:%{BASE10NUM:num_sec}-%{WORD:duration},%{WORD:event1c},%{WORD:level_event},process=%{WORD:process_name},Usr=%{WORD:usr}"]
      }
    },  
    {
        "grok": {
          "field": "message",
          "patterns": [
            "process=(%{DATA:process},|%{GREEDYDATA:process})"
          ],
          "on_failure": [
            {
              "set": {
                "field": "process",
                "value": ""
              }
            }
          ]
        }
    }
  ]
},
"docs":[
  {
    "_source": {
      "message": "16:40.991013-1,SCALL,0,process=ragent,Usr=Administrator,ClientID=248,Interface=0459eaa0-589f-4a6d-9eed-c1a7461c8e3f,IName=IClusterRegistry,Method=18,CallID=915855,MName=getServersList"
    }
  }
  ]
}
Показать


Но если только заменить Administrator на Администратор то выдает ошибку:

{
  "docs" : [
    {
      "error" : {
        "root_cause" : [
          {
            "type" : "illegal_argument_exception",
            "reason" : "Provided Grok expressions do not match field value: [16:40.991013-1,SCALL,0,process=ragent,Usr=Администратор,ClientID=248,Interface=0459eaa0-589f-4a6d-9eed-c1a7461c8e3f,IName=IClusterRegistry,Method=18,CallID=915855,MName=getServersList]"
          }
        ],
        "type" : "illegal_argument_exception",
        "reason" : "Provided Grok expressions do not match field value: [16:40.991013-1,SCALL,0,process=ragent,Usr=Администратор,ClientID=248,Interface=0459eaa0-589f-4a6d-9eed-c1a7461c8e3f,IName=IClusterRegistry,Method=18,CallID=915855,MName=getServersList]"
      }
    }
  ]
}
Показать


Уже и с кодировками игрался, не знаю в чем проблема((
Кстати с контекстом та же беда. Вроде все последовательно делал, изучал.
28. pashamak 175 29.02.20 11:58 Сейчас в теме
(27)Используйте свой формат, поскольку предполагаемый, к сожалению, не работает с кириллицей.
Список обозначений и их соответствие регулярным выражениям можно посмотреть здесь https://github.com/elastic/elasticsearch/blob/7.5/libs/grok/src/main/resources/patterns/grok-patterns.
Ниже привел пример своего формата "MyUserName".
Ссылка на описание в документации
https://www.elastic.co/guide/en/elasticsearch/reference/master/grok-processor.html, раздел "Custom patterns".
Прикладываю скрин с результатом теста.

POST _ingest/pipeline/_simulate
{
  "pipeline": {
  "description" : "parse multiple patterns",
  "processors": [
    {
      "grok": {
        "field": "message",
        "patterns": ["%{NUMBER:num_min}:%{BASE10NUM:num_sec}-%{WORD:duration},%{WORD:event1c},%{WORD:level_event},process=%{WORD:process_name}"]
      }
    },
    {
        "grok": {
          "field": "message",
          "patterns": [
            "Usr=%{MyUserName:usr}"
          ],
          "pattern_definitions" : {
          "MyUserName" : "[а-яА-Яa-zA-Z]*"
        }
        }
    }
  ]
},
"docs":[
  {
    "_source": {
      "message": "16:40.991013-1,SCALL,0,process=ragent,Usr=Админ,ClientID=248,Interface=0459eaa0-589f-4a6d-9eed-c1a7461c8e3f,IName=IClusterRegistry,Method=18,CallID=915855,MName=getServersList"
    }
  }
  ]
}
Показать
Прикрепленные файлы:
29. artkor 129 10.05.20 12:02 Сейчас в теме
Здравствуйте! Спасибо за статью. Не подскажете в чем может быть "беда": застрял на шаге "Create index pattern": в упор не видит никаких индексов типа "onec*", притом что в консоли все добавлено как в статье. "Загуглил" все что можно, не получается добавить индекс( ЧЯДНТ?
30. pashamak 175 11.05.20 07:18 Сейчас в теме
(29) Перед созданием паттерна необходимо создать сам индекс. Он создается либо вручную либо автоматически после обработки записей filebeat.
31. artkor 129 11.05.20 09:53 Сейчас в теме
(30) Спасибо. А где почитать про это (желательно с примерами) если Вы в курсе? Я пока "чайник" в этих вопросах)
Оставьте свое сообщение

См. также

Журнал регистрации в эластике с использованием службы без использования 1С (.net + elastic)

Журнал регистрации v8 Абонемент ($m)

При большом количестве записей в ЖР типовыми средствами он просматривается тяжело либо при просмотре зависает намертво. Для просмотра ЖР есть различные обработки, которые надо запускать под 1С. В этой публикации предлагается отдельная служба фоново и незаметно работающая на сервере, не требующая использования 1С.

1 стартмани

09.03.2020    2562    7    pashamak    0    

Часовой на страже логов

Практика программирования Инструментарий разработчика Бесплатно (free)

При поддержке решений, которые установлены у большого количества пользователей на различных системах, очень важно вовремя получать подробную информацию о возникших проблемах. О том, как собирать логи и анализировать полученные данные в трекере ошибок Sentry на конференции Infostart Event 2019 Inception рассказал Андрей Крапивин.

13.01.2020    6492    Scorpion4eg    8