Elastic + filebeat + ТЖ 1С

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

База данных - Журнал регистрации

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

Официальный сайт эластика 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
22
.yml 11,12Kb 22 Скачать
Команды elastic

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

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

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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 240 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 240 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 2829 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 240 23.06.19 19:32 Сейчас в теме
(5) Это не описывал в статье.
Посмотрите по (6) описание в доке https://www.elastic.co/guide/en/beats/filebeat/7.0/filebeat-reference-yml.html
13. Darklight 30 09.12.19 14:02 Сейчас в теме
Интересная статья, но не для начинающих (всё-таки основы тут не разбираются - нужно вникакать в принципы описания взаимодействий filebeat и elasticserach по другим статьям - не про разбор 1С ТЖ).

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

Так же жаль, что не уделили времени в статье обработке событий, разделённых на несколько строк. Ну, в (8),(9) конечно дали намёк - что нужно включить обработку таких строк в filebeat и определять перенос строки - когда начало перенесённой строки не совпадает с партерном описания времени (то это перенесённая строка - хотя это и не совсем надёжно). Но всё- равно стоило бы это описать в статье - ибо для 1C ТЖ это рядовая ситуация и не самая простая при обработке ТЖ классическими путём
9. Repich 556 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 48 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 240 08.08.19 19:57 Сейчас в теме
(10) Для журнала регистрации есть сервис который его разбирает и складывает в эластик.
Сервис написан, но находится в процессе отладки.
Пример прилагаю в скриншоте.
При интересе пишите в личку могу отправить.
Прикрепленные файлы:
12. EGOLEGE 30.10.19 05:39 Сейчас в теме
14. EliasShy 48 10.12.19 07:57 Сейчас в теме
Добрый день.
Спасибо за статью - очень ценная информация.

Подскажите, какими настройками Filebeat удалось его заставить сообщение формировать не по концу строки, а полное - т.е. чтобы начиналось с маркера времени?
16. pashamak 240 10.12.19 18:15 Сейчас в теме
(14)Для многострочных событий используйте мультилайн, он описан выше
15. pashamak 240 10.12.19 15:59 Сейчас в теме
Если речь о скрине выше то это отдельный сервис написанный на .net. Он ставится отдельно и сам все разбирает.
Если речь про ТЖ то с работы pipeline не покажу.
Смотрите в строну нескольких регулярок.
18. EliasShy 48 19.12.19 14:09 Сейчас в теме
Коллеги. Настроили filebeat + ES и все прочее - собирается замечательно.
Но, при продолжительной работе не считывает следующий час (только после остановки сервиса filebeat) - может кто-то сталкивался?
19. pashamak 240 03.02.20 13:09 Сейчас в теме
20. EliasShy 48 07.02.20 10:48 Сейчас в теме
(19) Разобрались уже. Часовые логи ТЖ обрабатываются с задержкой полтора-два часа
21. user597855_platonov92 17.02.20 18:53 Сейчас в теме
Добрый день!
Большое спасибо за подробную статью!
Есть вопрос по добавлению даты создания лога. В ТЖ дата пишется частично в названии файла "20021318.log" и остальная часть идет в строке самого файла "03:59.817001-0 *************". Каким образом можно объединить эти значения и преобразовать в дату для дальнейшего использования в фильтрах?
serg_infostart; +1 Ответить
23. pashamak 240 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 4 25.02.20 11:16 Сейчас в теме
Добрый день! Статья хорошая только вот есть одна загвоздка. Я новичек в ES и прошу вашей помощи. Вроде все делал по вашей статье но никак не получается вывести Available fields в Дисковере. Сортировка только по стандартным полям. В чем может быть проблема?
Прикрепленные файлы:
24. pashamak 240 25.02.20 11:46 Сейчас в теме
(22) По скрину доступные поля уже есть в дискавере. Переформулирйте вопрос.
25. EZSuleyman 4 25.02.20 12:50 Сейчас в теме
Хотелось бы фильтровать логи по юзеру или по событию а данных полей у меня нет, поковырялся с разбором сообщений. Теперь он выдает поле usr но пустые строки(
Прикрепленные файлы:
26. pashamak 240 25.02.20 15:06 Сейчас в теме
(25)Проверьте отрабатывает ли выделение пользователя. Например, в сообщении примера этого поля нет.
27. EZSuleyman 4 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 240 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 230 10.05.20 12:02 Сейчас в теме
Здравствуйте! Спасибо за статью. Не подскажете в чем может быть "беда": застрял на шаге "Create index pattern": в упор не видит никаких индексов типа "onec*", притом что в консоли все добавлено как в статье. "Загуглил" все что можно, не получается добавить индекс( ЧЯДНТ?
30. pashamak 240 11.05.20 07:18 Сейчас в теме
(29) Перед созданием паттерна необходимо создать сам индекс. Он создается либо вручную либо автоматически после обработки записей filebeat.
31. artkor 230 11.05.20 09:53 Сейчас в теме
(30) Спасибо. А где почитать про это (желательно с примерами) если Вы в курсе? Я пока "чайник" в этих вопросах)
33. user1316125 05.04.23 10:37 Сейчас в теме
Здравствуйте, отличная статья, очень помогла разобраться с ТЖ. Правда, я делаю выгрузку через Logstash, им же в фильтрах разбиваю строки grok'ом. Такой вопрос, можно ли штатное поле log.file.path как то дополнительно разбить, выделить только первую часть пути, например, "
D:\logs1c\exp", чтоб иметь возможность сортировки по папке "exp*" (для каждой базы хочу создать отдельную папку под ТЖ)?
34. pashamak 240 05.04.23 17:00 Сейчас в теме
Добрый день.
Не встречал подобное.
Можно файлы в подкаталогах искать.
Посмотрите в документации https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.html.
Оставьте свое сообщение

См. также

Выгрузка журнала регистрации 1С в ClickHouse с помощью Vector

Журнал регистрации Внешние источники данных Абонемент ($m)

Данное решение предназначено для выгрузки журнала регистрации из 1С 8.2 - 8.3 (формат журнала LGF/LGP) в ClickHouse. Одной из отличительных особенностей данного решения является возможность подключения экспортера ЖР к системам мониторинга.

1 стартмани

10.11.2022    6407    32    axilab    17    

54

Loggie. Детальное логирование изменений данных в 1С

Журнал регистрации Платформа 1С v8.3 Абонемент ($m)

Расширение для платформы 1С (с режимом совместимости не менее 8.3.11), детализирующее изменение данных констант, справочников, документов, регистров сведений и накоплений. Для каждого изменения объекта или поля его Табличной Части запоминается состояние до и после, при условии их наличия.

1 стартмани

02.09.2022    5036    10    MrWonder    15    

28

LogEvent - просмотр журнала регистрации

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

LogEvent - утилита просмотра журнала регистрации сервера 1С предприятия в формате SQLite.

1 стартмани

09.05.2022    3093    5    arcadics    1    

6

Использование Clickhouse для работы с журналом регистрации

Журнал регистрации Платформа 1С v8.3 Абонемент ($m)

В данной статье я опишу свой опыт внедрения ClickHouse для анализа журнала регистрации.

1 стартмани

03.02.2022    8141    35    Segate    31    

39

LogosFor1C. Подсистема сквозного логирования на клиенте и сервере в разные приемники

Журнал регистрации Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Позволяет задать несколько настроек логирования и использовать изолированно друг от друга. При этом настройки не нужно хранить в переменной. Eсть возможность добавления своих способов логирования. Распространяется в виде расширения и конфигурации.

1 стартмани

11.11.2021    7652    12    cprit    17    

38

Парсер технологического журнала (golang + redis + elasticsearch)

Технологический журнал Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

На просторах интернета, в том числе на данном ресурсе содержится разнообразное количество инструментов, позволяющих читать, трансформировать логи технологического журнала. Инструмент, который я описываю в данной статье, - является альтернативным вариантом, реализованным на стеке технологий Goroutines (golang) + Redis + Elasticsearch.

1 стартмани

07.01.2021    12711    8    Shmell    14    

52

Поиск неиспользуемых экспортных методов (процедур и функций) общих модулей

Поиск данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка "Поиск неиспользуемых экспортных методов общих модулей" предназначена для выполнения поиска неиспользуемых экспортных методов (процедур и функций) общих модулей в конфигурациях, разработанных на платформе "1С: Предприятие 8.х".

1 стартмани

27.10.2020    8601    8    tezin    29    

15

Поиск пересекающихся ссылок на комбинации объектов с ограничением области поиска по метаданным

Поиск данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка ищет все объекты базы, в которых одновременно присутствуют перечисленные элементы. Построена на базе типовой обработки Все функции - Стандартные - Поиск ссылок на объект, но позволяет накладывать отбор не по одному объекту, а по нескольким, что позволяет настраивать поиск по комбинациям условий. И ограничивать область поиска.

1 стартмани

12.03.2020    16292    21    sapervodichka    18    

87

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

Журнал регистрации Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

09.03.2020    8860    13    pashamak    5    

8

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

Мониторинг Анализ и проектирование ИТ-систем Бесплатно (free)

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

13.01.2020    12804    Scorpion4eg    8    

63

Скрипт powershell - контроль размера файлов журнала регистрации 1С на сервере

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

Скрипт powershell, который отправляет на указанную почту информацию о свободном месте на дисках сервера (где запускается данный скрипт) и информацию о размерах файлов журнала регистрации 1С (+ прикреплен файл 1CV8Clst).

1 стартмани

11.10.2019    7240    2    GG_Dots    0    

4

Сложнейшая загрузка журнала регистрации в ElasticSearch (или делаем настоящий ETL)

Журнал регистрации Платформа 1С v8.3 Россия Абонемент ($m)

Году в 2017ом возникло (наверное странное на тот момент) желание перегрузить журнал регистраций 1С в ELK. Чтобы журналы место на диске не съедали, 1С программисты забыв поставить фильтр сервер не подвешивали, все журналы лежали в одном месте да и можно было безопасно туда ответственных пользователей пускать, чтобы сами смотрели кто какой документ поправил.На предложение написать выгрузку сразу из 1С программисты благополучно забили ("ой на это минимум месяц", "у нас срочные бизнес-фичи" и т.д. и т.п.). Зато попалась статья от Aleksey.Bochkov (https://infostart.ru/public/182820/). Ну и решили мы все это запилить без 1С программистов. Во что влезаем я тогда еще не понимал. А вылилось почти в год допилок (хорошо хоть в фоновом режиме) в цельный ETL с использованием C#, T-SQL и прочими делами.

1 стартмани

27.09.2019    21046    6    DonAlPatino    34    

51

Сценарное сравнение данных (версия 1.5.12)

Поиск данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Прикладное решение Сценарное сравнение данных (ССД) предназначено для автоматизации процесса поиска расхождений в данных.

1 стартмани

18.08.2019    13315    27    sertak    23    

24

Поиск объектов метаданных при несовпадении заголовка окна с синонимом

Поиск данных Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Внешняя обработка, позволяющая ускорить поиск объекта метаданных открытой формы.

1 стартмани

24.06.2019    9552    4    Неопределено    11    

17

Запуск встроенного в платформу механизма История данных для ленивых

Журнал регистрации Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

В последних версиях платформы 1С появился замечательный механизм Истории данных. Если кратко, механизм позволяет сохранять историю, просматривать, сверять и самое приятное, это восстанавливать любую версию объекта. А самое главное, чтобы это заработало, не нужно продумывать, писать и поддерживать тонны кода, все уже сделано за нас... Возникает вопрос: Как запустить встроенный в платформу механизм Истории данных ничего не кодируя?

1 стартмани

24.05.2019    19663    27    _root    13    

18

Подсистема для выгрузки, быстрого поиска и анализа журнала регистрации 1С в Elasticsearch

Журнал регистрации Поиск данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Elasticsearch - это opensource решение для очень быстрого поиска данных в больших массивах информации. Использование этого решения позволит решить проблемы с поиском и анализом больших объемов информации журнала регистрации. Протестировано на платформах начиная с 8.3.10.2580.

5 стартмани

15.05.2019    21047    35    Nikolo17    14    

41

Сравниваем Управление торговлей 11.4 и Бухгалтерию предприятия 3.0 (Комплексная автоматизация 2) после обмена

Закрытие периода Анализ учета Поиск данных Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Абонемент ($m)

Вам приходилось проверять результаты корректности данных после переноса из УТ в БП? Если "ДА", то Вы знаете какое это "приятное дело". Данная обработка была написана для того, чтобы это стало менее "приятно". И осталось больше времени для других дел.

3 стартмани

07.12.2018    15001    42    RomikR    15    

17

Мониторинг активности пользователя

Журнал регистрации Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Абонемент ($m)

Расширение предназначено для мониторинга активности пользователей, фиксирует какие окна открывал и когда пользователь в программе. Автоматически завершает работу не активных пользователей, что позволяет экономить системные ресурсы. Есть отчет об Активности пользователей по часам с возможностью отбора по конкретному пользователю. Расширение для типовых конфигураций 1С на управляемых формах в режиме совместимости 8.3.12.

1 стартмани

26.10.2018    13557    85    xan333    8    

36

Нестандартные подсистемы: Живая вода

Поиск данных Корректировка данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

В БСП есть все, чтобы справиться с проблемой «Битых ссылок», но почему-то так и не реализовали возможность сохранять версию объекта перед удалением. Решил исправить эту досадную несправедливость и создать подсистему с кодовым названием «Живая вода».

1 стартмани

11.10.2018    20897    4    dsdred    14    

34

Поиск и восстановление битых ссылок (Объект не найден)

Поиск данных Корректировка данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Групповая обработка ссылок вида Объект не найден (502:37855254002e11eb11e73b8f36150d9e) заполняется максимально просто копированием и вставкой из буфера: 1) Выделяет уникальные идентификаторы (далее УИ); 2) Ищет ссылки на объекты базы по УИ; 3) Создаёт пустые объекты с указанным УИ; 4) Регистрирует найденные ссылки для обмена данными. Работает на любых продуктах 8.3. Проверялась на 1С:ERP Управление предприятием 2 (2.4.3.167)

1 стартмани

17.08.2018    27563    211    sapervodichka    4    

32

Поиск документов по представлению

Обработка документов Поиск данных Универсальные функции Управляемые формы Конфигурации 1cv8 Абонемент ($m)

В этой публикации описан способ поиска документов по представлению. Очень полезен бывает, когда вы получаете отчет со списком документов, с которыми вам потом нужно что-то сделать, например перепровести пачкой, или ещё чего. Как обычно в своём стиле, не претендуя на нетленку, выкладываю странный, но бесплатный и работающий код с пояснениями. Вы можете использовать его где хотите, и делать с ним что хотите.

1 стартмани

04.05.2018    16012    22    GOshaSaveiko    13    

14

История работы пользователей

Поиск данных Платформа 1С v8.3 Управляемые формы 1С:ERP Управление предприятием 2 Россия Абонемент ($m)

Подключаемая обработка для просмотра истории работы конкретного пользователя

1 стартмани

17.07.2017    27310    79    PerlAmutor    18    

31

Обработка данных + загрузка из табличного документа + удаление объектов + поиск и замена значений (управляемые формы)

Универсальные обработки Чистка данных Поиск данных Загрузка и выгрузка в Excel Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Простая и удобная обработка позволяет быстро выполнять множество операций над объектами базы данных с помощью запроса и скрипта обработки результата. Может загружать данные табличных документов во временные таблицы для последующей загрузки или для выборки данных по сложным условиям. Встроены обработки "Удаление объектов" и "Поиск и замена значений", в них можно передавать результаты запросов. Есть возможность сохранения скриптов и полученных результатов обработки. Часто использую для переноса данных между конфигурациями, когда результаты запроса в одной конфигурации загружаю этой же обработкой в другой. Скрипты с примерами прилагаются. Файлы xml открываются с закладки "Запрос, скрипт", файлы xmlf содержат все таблицы которые есть в обработке на момент сохранения, загружаются по кнопке "Загрузить все настройки". Примеры скриптов выложены в доступе

1 стартмани

19.04.2017    29537    248    fxmike    8    

30

Поиск и восстановление битых ссылок (обычная и управляемая форма) 8.2-8.3

Универсальные обработки Поиск данных Корректировка данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Обработка для поиска и восстановления битых ссылок (Объект не найден). Адаптирована для конфигураций на обычных и управляемых формах 8.2 - 8.3

1 стартмани

08.04.2017    55383    772    Xershi    66    

40

Мониторинг баз данных 1С. Автоматизация обновления конфигураций

Журнал регистрации Инструменты администратора БД Обмен между базами 1C Россия Абонемент ($m)

Если вы сталкивались с обновлением большого количества баз в рамках РИБ, то данная программа позволяет автоматизировать плановые обновления конфигурации, платформы на различном количестве физических\виртуальных серверов. Также администратор видит выполнение бекапов SQL информационных баз. Программа полезна, если у вас на поддержке большое количество РИБ 1С.

1 стартмани

05.04.2017    19661    12    vlkvlkvlk    6    

9

Удобный просмотр изменений объектов пользователями

Журнал регистрации Платформа 1С v8.3 Абонемент ($m)

Быстрый и удобный просмотр всех изменений объекта в разрезе пользователей в хронологическом порядке.

1 стартмани

01.11.2016    14417    15    TreeDogNight    11    

15

Журнал регистрации в MongoDB

Журнал регистрации Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Хранение "журнала регистрации" в nosql базе. 1) Java-api 2) MongoDB 3) доработать конфу в нужных местах

1 стартмани

27.10.2016    19781    12    sockor    4    

19

Универсальный поиск объектов по глобальному уникальному идентификатору (ГУИД, GUID)

Универсальные обработки Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Универсальная обработка поиска объектов информационной базы по глобальному уникальному идентификатору (ГУИД, GUID) или по его части.

1 стартмани

06.09.2016    47478    126    Dzenn    9    

11

Инструменты: v81_82_83: об./упр. формы. Отключение пользователей: файловый, кл-сервер. Запуск/Вход под другим польз-м. Поиск ссылок на объект СКД. Консоль запр. Отладка ВПФ и ОЗТЧ. Гр.печать, Перепровед-е немоноп-е и др.(Один архив)

Поиск данных Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Система компоновки данных Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

06.09.2016    28016    108    Светлый ум    159    

25

Сокращение журнала регистрации 1С: 8.3

Журнал регистрации Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Работа с журналом регистрации в 1С: 8.3 изменилась по сравнению с 8.2. Рассмотрим варианты автоматического и ручного обрезания журнала регистрации.

1 стартмани

06.04.2016    184041    565    solary    43    

184

Замена дублей средствами SQL (MS SQL, УФ, 8.2, 8.3)

Чистка данных Поиск данных Обработка справочников Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Универсальная подсистема из 2-х справочников для выполнения замены дублей справочников средствами MS SQL (реализация на управляемых формах).

3 стартмани

02.02.2016    22020    91    v.krivenko    15    

16

Нечеткий поиск в справочнике. Версия 1.02

Поиск данных Обработка справочников Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Для целей автоматического сопоставления справочников из разных баз данных при загрузке табличных частей документов была написана эта функция, к которой в итоге был прикручен визуальный интерфейс. На практике вполне оправдала себя и позволила за разумное время автоматически заполнять большие документы.

1 стартмани

19.01.2016    18690    62    sleeping07    18    

20

Поиск и удаление дублей, замена ссылок с отключаемым контролем записи 8.3 УФ из БСП 2.2

Чистка данных Поиск данных БСП (Библиотека стандартных подсистем) Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Работает только в управляемом режиме. На конфигурациях с версией БСП не ниже 2.2.5.36. Предназначена для поиска и устранения дублирующихся элементов. Сравнение производится по произвольным полям объекта. Возможно установить произвольный отбор. В отличие от типовой обработки из состава БСП, в обработке существует возможность отключить контроль записи (ОбменДанными.Загрузка = Истина).

1 стартмани

27.10.2015    36165    446    chibor    20    

14

Журналирование изменений свойств объектов

Журнал регистрации Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 1С:Управление производственным предприятием Абонемент ($m)

Доработка подойдет для любой конфигурации, где дополнительные свойства объектов хранятся в регистре сведений ЗначенияСвойствОбъектов

2 стартмани

22.08.2015    20888    5    echo77    1    

20

Просмотр документов, измененных задним числом

Журнал регистрации Платформа 1С v8.3 1С:Управление торговлей 10 Россия Абонемент ($m)

Редактирование документов в 1С, проведенных задним числом, бывает необходимо для исправления ошибок в учете, но также является распространенным способом воровства в магазине. Поэтому важно максимально ограничить работу задним числом.

2 стартмани

12.08.2015    35811    65    ПерваяСистема    17    

14

Монитор журнала регистрации

Журнал регистрации Инструменты администратора БД WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Позволяет в режиме реального времени отслеживать активность пользователей, накапливать и оповещать о возникновении ошибок, которые попадают в журнал регистрации

2 стартмани

29.06.2015    50124    164    andy23    51    

133

Получение даты и времени создания объекта (по УИД)

Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Кто и Когда создал документ? Когда сделали дубль товара? Данная обработка - сразу отвечает на вопрос Когда? Дата создания объекта (любая ссылка) - находит дату создания по уникальному идентификатору (UID) ссылки. + 21.12.2022 добавлена вставка обработки как "Дополнительной обработки" в конфигурации на БСП.

1 стартмани

21.03.2015    33607    134    Serg O.    24    

38

Универсальный поиск документов

Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Для обычных и управляемых форм. Версия 1.15 Создана на 1С8.3, но в режиме совместимости с 8.2.16. Итоговые таблицы одинаковы на обоих закладках

1 стартмани

06.01.2015    26682    40    mack198109    10    

8