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

Що демон насправді робить із директивою

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

Останній випадок типовий для пакетного встановлення, і він пояснює, чому двоє адміністраторів не погоджуються щодо місця журналу. Один читає журнал юніта, інший файл, який демон ніколи не писав.

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

log обрізає, log-append ні

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

Якщо ротація перейменує файл, поки демон далі пише в старий дескриптор, новий файл лишиться порожнім, а використання диска й далі зростатиме в перейменованому. Надішліть процесу сигнал відкрити знову або ротуйте стратегією копіюй-і-обрізай та прийміть вікно копіювання.

Каталог, власник і дозволи є частиною проєкту. Демон може після запуску працювати як непривілейований користувач, а каталог, створений root під час встановлення, тоді може бути незаписуваним. Підготуйте його через пакування або процес розгортання, замість виправляти дозволи під час інциденту.

Менеджер служб тримає другу копію

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

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

Підтвердіть вибір тестом, який навмисно провалюється. Запустіть демон із нечитабельним сертифікатом і перевірте, який потік фіксує помилку.

Докладність не те саме, що придатна для використання деталь

Вищий рівень verb додає більше рядків, а після певної межі рядків, які ніхто не читає. Рівень 3 — розумний стали режим для більшості розгортань, тоді як рівень 4 і вище пасує обмеженому розслідуванню з відомим питанням. Придушення повторів зменшує шум, але не повинно приховувати, як часто подія повторюється. Встановіть рівень, який можете витримати, і піднімайте його лише для названого розслідування з кінцем.

Зберігайте ідентичність інстансу та часові мітки в записі. Повторне з’єднання виглядає точно як перше, коли файл доповнюється місяцями, а назви інстансу бракує.

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

Ротація, зберігання та сигнали, що перезавантажують

Визначте термін зберігання разом із власником диска і встановіть його до того, як том вирішить за вас. Сигнал перезавантаження не є командою обслуговування журналу: надсилання неправильного перезапускає тунель і від’єднує кожного користувача. Запишіть процедуру повторного відкриття поруч із правилом ротації, щоб вони не розійшлися.

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

Схожі статті