NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: EugeneSG on June 22, 2020, 05:42:45 PM

Title: Исторические данные
Post by: EugeneSG on June 22, 2020, 05:42:45 PM
Доброго времени суток!
Появилась у меня необходимость анализировать данные по производительности мониторируемых объектов за несколько лет.
Как реализовать? Просто поднять DefaultDCIRetentionTime до 1095?
NetXMS не загнется? Или есть другие варианты?
Title: Re: Исторические данные
Post by: EugeneSG on June 23, 2020, 01:36:56 PM
Не проходите мимо!
Задача горящая :)
Title: Re: Исторические данные
Post by: Filipp Sudanov on June 24, 2020, 01:00:47 AM
Если загнется, то не сам NetXMS, а база данных :)

Один из вариантов - делать парные DCI - один с небольших сроком хранения - несколько месяцев и более частым временем сбора. А второй - с редким временем сбора (он может, например, скриптом брать значения из первого DCI усреднять или еще как-то) и уже этот DCI хранить много лет.
Title: Re: Исторические данные
Post by: Evgeniy Skoropadskiy on June 24, 2020, 07:45:18 AM
Вот это да!
Т.е. данная система не рассчитана на хранение данных за несколько лет?
А как же тогда Вы предлагаете анализировать рост нагрузки и т.д. за года?
Или это система только для "оповещений"?
Может есть какие-то механизмы-идеи о создании "архивной базы" (идея с двумя DCI прямо скажем не о чем)?
Как пример: "выгружать" данные в тот же Elastic Search?
Title: Re: Исторические данные
Post by: Victor Kirhenshtein on June 29, 2020, 10:58:30 AM
У нас есть возможность создавать fan-out драйвера для параллельной выгрузки данных в другую базу. Сейчас есть драйвер для InfluxDB, но можно сделать и для других баз. Если требуется хранить и анализировать данные за несколько лет то я бы предложил переход на TimescaleDB. Он позволит нормально работать с оперативными данными, и в нем есть встроенные механизмы архивации и анализа исторических данных. У нас есть несколько клиентов на поддержке на TimescaleDB и результаты в целом очень хорошие.
Title: Re: Исторические данные
Post by: EugeneSG on June 29, 2020, 11:45:21 AM
Отлично!!!
Главное, что есть варианты!!!
Простой (на первый взляд) вариант это перейти на TimescaleDB и просто изменить параметр DefaultDCIRetentionTime? Я парвильно понял?
Сложный - это разработать драйвер для другого сервера БД, или этого же но уже архивная БД и еще придется разрабатывать инструмент анализа так же? Например в случае того же Elasticsearch это будет Kibana?
Title: Re: Исторические данные
Post by: Victor Kirhenshtein on June 29, 2020, 11:52:58 AM
Quote from: EugeneSG on June 29, 2020, 11:45:21 AM
Простой (на первый взляд) вариант это перейти на TimescaleDB и просто изменить параметр DefaultDCIRetentionTime? Я парвильно понял?

да

Quote from: EugeneSG on June 29, 2020, 11:45:21 AM
Сложный - это разработать драйвер для другого сервера БД, или этого же но уже архивная БД и еще придется разрабатывать инструмент анализа так же? Например в случае того же Elasticsearch это будет Kibana?

Это отдельная архивная БД. Оперативные данные останутся как есть, просто будут писаться параллельно в архивную базу. Инструменты для анализа тоже зависят от архивной базы. С точки зрения NetXMS сервера это записал данные и забыл, прочитать через сервер их уже нельзя.
Title: Re: Исторические данные
Post by: EugeneSG on June 29, 2020, 12:01:43 PM
Понял! Огромное СПАСИБО за ответы!!!