Уведомления

Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Дек. 15, 2016 14:48:30

VadimK
Зарегистрирован: 2013-07-03
Сообщения: 60
Репутация: +  4  -
Профиль   Отправить e-mail  

Логирование для анализа действий.

Дано: проект на django, vps с 2gb оперативки .

Есть несколько проектов ( каждый на своем vps ) со сложной логикой расчетов. В кратце финансовые расчеты которые зависят от десятков различных правил и настроек.
Очень часто возникают вопросы “а почему тут так подсчитано, а не этак”. В результате приходится вытаскивать к себе копию базы за “проблемный” период и запускать расчет, что бы выяснить почему и как считалось. Со временем все обрастло отладочной информацией и выводом текстовые лог файлы. Но если вопрос приходит по расчету, который был месяца 2-3 назад, то или лог файла уже нет или найти концы в логах не реально.

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

Делать все по взрослому с logstash, elastic и kibana - опыта нет вообще, да и бюджет заказчика не позволит.

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

Офлайн

#2 Дек. 15, 2016 15:38:33

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 1371
Репутация: +  42  -
Профиль   Отправить e-mail  

Логирование для анализа действий.

А как по вашему работают сборщики логов вобще?
Есть центральный сервер с базой данных в нее со всех кустов сыпятся ягоды.
Вы же потом при помощи запросов вытаскиваете что вам нужно!
И ненадо ничего выдумывать!

Давно когдато писал даже заметку
http://kobzarcheg.blogspot.com/2012/10/rsyslog.html
Это не готовый ответ на ваш вопрос - но вполне себе информация к размышлению.

Офлайн

#3 Дек. 16, 2016 03:47:50

VadimK
Зарегистрирован: 2013-07-03
Сообщения: 60
Репутация: +  4  -
Профиль   Отправить e-mail  

Логирование для анализа действий.

Я ведь не просто так написал про ресурсы, бюджет. Плюс логи выполнения логики, где учитываются десятки параметров - это совершенно другое, чем системные логи. Особенно когда у каждого процесса свои параметры, но анализировать их надо вместе.

Теоретически mongodb может подойти, но ее не потяну из за требований к памяти. Поэтому как вариант пока тупо в эластик все гнать, у него вроде как достаточно гибкости для поиска по не структурным данным.


Офлайн

#4 Дек. 16, 2016 10:16:52

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 1371
Репутация: +  42  -
Профиль   Отправить e-mail  

Логирование для анализа действий.

1. Базу для логов можно держать где угодно - хоть на домашнем компе: - Бюджет тут минимален!
(я уже не говорю что у каждого есть куча знакомых где это можно покрутить - в разрезе же фирмы у которой есть свой оффис (пусть и временный) - ето вобще даже не вопрос)

2.

“Плюс логи выполнения логики, где учитываются десятки параметров - это совершенно другое, чем системные логи.”
Опять ошибка! Это абсолютно одно и то же самое! Суть записи лога - это результат выполнения чего либо (не важно успешный или нет - главное результат). Выполняется он системой - функцией - запросом или еще чем-то абсолютно не имеет никакого значения. Все что нужно сделать это ЛОГ сообщение писать в базу!

Имея все логи в одной базе данных путем нехитрых SQL запросов вы можете формировать очень гибкие правила сортировки и вытаскивать инфу в любой форме и группировать их и так далее!
Особенно с учетом того что ЛОГ сообщение вы имеете возможность формировать самостоятельно
и ставить в базе нужные метки предварительно создав структуру.

То чем занимаетесь вы в данный момент очень сильно отличается от решения задачи! Больше похоже на попытку удаления гландов через ушную раковину!
Хотя волне возможно я не до конца понимаю вашу задачу - однако она мне кажется банальной.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version