Вхід у текстовий файл чи базу даних?


25

Коли я повинен використовувати базу даних для ведення журналу та коли текстові файли?
Я бачу, що веб-сервери та веб-рамки (які ваш додаток використовує внутрішньо) зазвичай (завжди?) Запити і помилки журналу в текстові файли за замовчуванням. Але я бачу, що люди, які розробляють свою програму навколо цих серверів і фреймворків, іноді входять у базу даних (навіть основну БД програми, а не якусь зовнішню).
Також, можливо, є різниця між журналами налагодження та журналами аудиту - я читав цю класифікацію десь на цьому сайті.



Це може допомогти занадто stackoverflow.com/questions/3458813/…
Мухаммед Раджа


Хоча ви не повинні реєструвати конфіденційну інформацію, деякі системи можуть вимагати її, і це хороший випадок для входу в базу даних. Іноді розробники ненароком записують конфіденційну інформацію. Щоб запобігти цій аварії, багато розробників додатків будуть входити в базу даних, тому такі речі, як номери соціального страхування в повідомленнях журналу, не сидять у текстовому файлі в простому тексті на 13 різних серверах.
Грег Бургхардт

Відповіді:


16

Взагалі кажучи, реєстрація в текстовому файлі набагато швидша, ніж реєстрація в базі даних. Це головний аспект ведення лісозаготівлі, який потрібно враховувати.

Причина, коли ви входите в БД, швидше за все, тому, що ви хочете запитувати результати - пошук конкретної інформації журналу простіший у БД, особливо якщо ви реєструєте контекстну інформацію, яка може бути використана для групування записів журналу разом. Також зазвичай простіше отримати доступ до центральної БД, ніж файл журналу на сервері, який може бути захищеним та недоступним.

Ідеальним буде локальний логін у файл, а потім переміщення цих даних у БД для перевірки, якщо це потрібно після цього.

Зараз аудит - це зовсім інший звір. Хоча він за принципом схожий з веденням журналу, аудит, як правило, потрібно зберігати протягом тривалого часу (на відміну від файлів журналів, які використовуються для налагодження чи трасування, які можуть бути видалені за примхою). Аудити є, щоб показати важливу інформацію. Ви реєструєте набагато менше інформації про аудит і рідше, ніж звичайний журнал, тому продуктивність не викликає занепокоєння. З цієї причини видно переваги написання цієї інформації про аудит до центральної БД.


1
Ще одна домовленість, яку я бачив, полягає в тому, щоб журнали записувались локально спочатку, а потім виштовхувались у БД якимись фоновими завданнями.
Роббі Ді

@RobbieDee Мені подобається ця ідея. У мене є такий собі дублюючий запитання: чи звичайно файли журналів обмеженої тривалості (наприклад, лише за останні 30 днів), але оскільки журнали заносяться в базу даних (наприклад, щотижня), то всі журнали зберігаються в базі даних => файли журналу діють як буфер, і всі операції з читання виконуються в базі даних? Оскільки запис у БД затягується, про продуктивність не хвилюється, чи не так.
Аль-ун

9

Існує не один розмір, який підходить для всіх підходів і для стійкості, іноді ви хочете використовувати кілька підходів. Беручи свій приклад, ви можете заховати журнали налагодження у файлі та зберігати журнали аудиту в БД.

Застосування панірувальних сухарів

Плюси: Легко реалізувати і видно користувачеві відразу

Мінуси: інформація зберігається лише під час роботи програми

Текстовий файл

Плюси: простий у виконанні

Мінуси: Необхідно переконатися, що блокування файлів не відбувається. Що робити, коли на диску накопичується дисковий простір?

Журнал подій

Плюси: простий у виконанні

Мінуси: Журнал подій може стати повноцінним, якщо його не налаштовано правильно, або старі журнали можуть бути втрачені через політику збереження / закриття.

База даних

Плюси: простий у виконанні

Мінуси: Більше трафіку БД. Як зафіксувати втрату БД або іншу проблему з БД?

Повідомлення (MQ)

Плюси: Вогонь і забудь

Мінуси: ще один шар піде не так. Вимагає налаштування


Можливо, ви також хочете включити демона syslog та протокол SNMP.
gbjbaanb

@gbjbaanb Насправді - деякі ОС мають вбудовану функціональність - це, звичайно, не вичерпний список. Системи з високою доступністю можуть також надсилати SMS, коли вони знижуються.
Роббі Ді

2

Журнали аудиту повинні забезпечувати повну простежуваність операцій протягом більш тривалого часу для цілей аудиту, з метою повного виправдання вмісту вашої бази даних.

У деяких випадках (наприклад, фінансові додатки) ці журнали, можливо, повинні забезпечити дотримання законодавчих вимог, таких як збереження (в деяких країнах протягом 10 років) або незмінність. Оскільки ці журнали повинні виправдовувати вміст db на рівні програми, звичайна практика зберігати їх у db, де доступ можна контролювати, щоб уникнути несанкціонованої зміни.

Інші журнали , такі як журнали моніторингу або журнали безпеки, часто мають справлятися з обмеженнями продуктивності та обсягу. Як правило, вони записуються у файл, тому що записувати швидше (без управління накладними транзакціями) простіше архівувати в автономному режимі та простіше інтегруватись із зовнішніми інструментами моніторингу SIEM .

Слід зазначити, що, хоча ці журнали можуть використовуватися для демонстрації надійності журналів аудиту (наприклад, відсутність несанкціонованого доступу), вони, як правило, мають менші обмеження щодо збереження (наприклад, від 6 місяців до 2 років для правоохоронних цілей для телекомунікаційних журналів) якщо взагалі якесь обмеження.


1

Однією з багатьох причин використовувати db для ведення журналу налагодження є коли у вас немає доступу до програми чи веб-сервера для перегляду переглядача подій або текстових файлів

Журнали аудиту відрізняються від журналів налагодження в контексті веб-додатків, оскільки в деяких додатках вам може знадобитися показати їх кінцевому користувачеві, щоб вони могли зайти в базу даних для легкого пошуку.

Ви також можете використовувати інструменти DB для фільтрації та легкого перегляду.


Запис у файли журналів сервера - не єдиний варіант для систем з високою сумісністю. Ці журнали часто записуються на клієнтський пристрій, а потім натискаються на підтримку у разі виникнення проблеми. Висока одночасність може також зробити це непридатним для запису в єдину базу даних.
Роббі Ді

@RobbieDee Це так і для веб-серверів та веб-додатків? тому що ОП просить, я вірю
Мухаммед Раджа
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.