1
0
mirror of https://github.com/akpaevj/onecmonitor.git synced 2024-12-04 09:42:22 +02:00
Go to file
2024-06-20 15:39:18 +03:00
.github/workflows Create dotnet.yml 2024-06-20 15:39:18 +03:00
onecmonitor-agent to net 8 2023-12-20 23:56:33 +03:00
onecmonitor-common to net 8 2023-12-20 23:56:33 +03:00
onecmonitor-server to net 8 2023-12-20 23:56:33 +03:00
screenshots + 2023-01-28 19:34:15 +03:00
.gitattributes init 2023-01-27 20:58:44 +03:00
.gitignore + 2023-01-28 01:42:14 +03:00
LICENSE.txt Добавить .gitattributes, .gitignore, README.md и LICENSE.txt. 2023-01-27 20:06:04 +03:00
onecmonitor.sln init 2023-01-27 20:58:44 +03:00
README.md Update README.md 2023-12-22 14:36:30 +03:00

OnecMonitor

Служба экспорта и анализа технологического журнала 1С

Служба решает задачи автоматизации сбора и парсинга действительно больших объемов журнала, в связи с чем, разработка ведется с упором на обеспечение максимальной скорости работы. Хранилищем данных выступает ClickHouse. Процесс сбора технологического журнала представляется под концепцией сеансов, каждый из которых может быть запущен в разных режимах. Сеансу назначается режим сбора, шаблоны logcfg и прикрепляются агенты, которые будут задействованы в сеансе.

Функциональные возможности:

  • Отображение статуса подключения агентов сбора (Включен/Выключен)
  • Управление сбором ТЖ через агентов
  • Создание шаблонов файла logcfg.xml
  • Несколько режимов сеансов сбора технологического журнала:
    • Немедленный запуск - сеанс сбора запускается сразу после создания и выполняется в течение заданного периода
    • Режим мониторинга - сеанс не имеет ограничений по времени, выполняется до момента удаления сеанса из консоли управления
    • Запланированный - сеансу назначается дата и время начала, продолжительность сбора
  • Просмотр данных сбора сеансов
  • Выполнение анализа цепочек событий

Установка и использование:

Сервер

Устанавливается на любом хосте. В зависимости от объемов поступающих с агентов данных, может потреблять значительные ресурсы при парсинге и анализе. Может быть запущен как служба/демон. Пример конфигурационного файла (appsettings.json):

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*",
  "Kestrel": {
    "EndpointDefaults": {
      "Protocols": "Http1AndHttp2"
    }
  },
  "ClickHouse": {
    "Host": "127.0.0.1",
    "Port": 8123,
    "Database": "onecmonitor",
    "User": "default",
    "Password": ""
  },
  "OnecMonitor": {
    "Tcp": {
      "Host": "0.0.0.0",
      "Port": 7001
    },
    "Http": {
      "Host": "0.0.0.0",
      "Port": 7002
    }
  }
}

Где:

  • ClickHouse - параметры подключения к экземпляру clickhouse
  • OnecMonitor
    • Tcp - адрес и порт, по которым сервер будет прослушивать подключающиеся агенты
    • Http - адрес и порт, по которым будет доступна веб-панель консоли управления

Агент

Устанавливается непосредственно на сервера 1С. Ресурсов потребляет совсем немного, так как основная работа по разбору осуществляется на сервере. Так-же может быть запущен как служба/демон. Пример конфигурационного файла (appsettings.json):

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "Agent": {
    "InstanceName": ""
  },
  "TechLog": {
    "LogCfg": "C:\\Program Files\\1cv8\\conf\\logcfg.xml",
    "LogFolder": "C:\\techlog"
  },
  "OnecMonitor": {
    "Host": "127.0.0.1",
    "Port": 7001
  }
}

Где:

  • Agent
    • InstanceName - наименование агента, отображаемое в панели управления серверной части. Если не задано - то hostname
  • TechLog
    • Logcfg - путь к файлу logcfg экземпляра сервера (пользователь, из под которого запущен агент, должен обладать правами на изменение файла)
    • LogFolder - каталог, в который будет осуществляться сбор (автоматически подставляется в logcfg через параметр шаблона)
  • OnecMonitor - адрес и порт, по которым агент будет стучаться к серверной части

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

Состав приложения:

  • onecmonitor-agent - агент, занимающийся управлением сбора, чтением и отправкой данных технологического журнала для дальнейшей обработки на сервере
  • onecmonitor-server - сервер, выполняющий основную работу по разбору данных журнала. Предоставляет доступ к веб-панели управления агентами и просмотра обработанных данных

Приложение позволяет выполнять анализ цепочек событий

Доступные анализы:

  • Анализ управляемых блокировок/взаимоблокировок - отображает waterfall график событий tlock, наглядно показывая, где именно возникла проблема. Удобством анализа является отображение неявно влияющих блокировок на графике (тех, что отсутствуют в WaitConnections, но пересекаются по блокируемым областям с жертвой)
  • Анализ цепочек вызовов (call/scall) - так-же отображает waterfall график. Позволяет увидеть наиболее длительные участки кода

Доступные анализы (и функционал в целом) по мере доработки будут пополняться.