Де повинен / opt opt ​​пакет писати журнали?


13

Я встановлюю спеціальний пакет для /opt/package_nameзберігання конфігураційних файлів /etc/opt/package_nameі статичних файлів у /var/opt/package_name/static/- все згідно з умовами, запропонованими FHS. [ 1 ] [ 2 ] [ 3 ]

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

  • /var/log/package_name (як системний пакет, навіть якщо це спеціальний пакет)
  • /var/opt/package_name/log(дотримуючись /var/optконвенції - але чи можна це відкрити?)
  • щось ще?

Чи є у вас приклад інструменту аналізу, який сканує / var / log?
sourcejedi

5
Чому не є системою відповідей?
Джошуа

Відповіді:


19

Я б розмістив їх /var/log/package_name; він задовольняє принципу найменшого здивування краще, ніж /var/opt/package_name/log. Я не маю на це цитування; він просто відповідає тому, де я б шукав журнали.

Я також можу відмовитись від написання власних файлів журналів, а замість цього ввійдіть у syslogвідповідний тег та засоби; якщо я шукаю чітку інтеграцію зі встановленими інструментами аналізу, я не вірю, що я можу зробити краще для каналу зв'язку:

  • Кожен загальний інструмент із "аналізом журналу" як перерахована функція вже дивиться syslog.
  • Семантика звільнення та обертання файлів журналу обробляється для мене; Мені не потрібно встановлювати механізм, logrotateщоб сказати мені відпустити файл і відкрити новий. Мені навіть не потрібно розповідати logrotateпро нові файли, які потрібно обертати!
  • Розвантаження журналів на центральні сервери реєстрації передається мені, якщо сайт цього вимагає; Існуючі такі інструменти, як, наприклад, rsyslogбудуть використовуватись у разі потреби, тому мені не доведеться самостійно задумуватися над реалізацією цієї функції.
  • Контролі доступу (POSIX і, наприклад, SELinux) навколо файлів журналу вже обробляються, тому мені не потрібно приділяти стільки уваги семантиці безпеки, що залежить від розповсюдження.

Якщо я не створюю спеціальний бінарний формат для свого журналу і навіть тоді, я віддаю перевагу зручним для системних текстових форматів тексту, подібним до JSON. Мені важко виправдовувати власні окремі файли журналів; інструменти аналізу вже дивляться, syslogяк яструб.


8

Оскільки ви дотримуєтесь FHS-конвенцій для файлів конфігурації вашого пакета, ви повинні бути послідовними та зберігати файли журналу /var/opt/package_name/log.

FHS зазначає:

Змінні дані пакетів в / opt повинні бути встановлені в / var / opt /

а також констатує

Жодні інші файли пакунків не можуть існувати за межами ієрархії / opt, / var / opt та / etc / opt, за винятком тих файлів пакунків, які повинні працювати належним чином у певних місцях дерева дерев. Наприклад, файли блокування пристрою повинні бути розміщені в / var / lock, а пристрої - у / dev.

Якщо файли журналу /var/optне знаходяться в режимі, не заважає пакет працювати належним чином, /var/logа використання натомість явно порушує стандарт.

Незрозуміло, що ви маєте на увазі під "відкриттям цього?" так як ви, звичайно, журнали, скоріш за все, обробляєте користувальницькі інструменти, але якщо припустити, що загальний інструмент призначений для їх обробки, він повинен вивчити стандартне розташування для нерозв’язаних пакетів, як ваш.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.