Хранение Логов И Logrotate
Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
правила_разработки:стандарты:хранение_логов_и_logrotate [26.04.2019 10:46] nikolay_carbonsoft1 |
правила_разработки:стандарты:хранение_логов_и_logrotate [20.05.2019 15:18] (текущий) |
||
|---|---|---|---|
| Строка 16: | Строка 16: | ||
| Например: | Например: | ||
| + | <code bash> | ||
| 50 2 * * * root /app/base/usr/local/bin/cron_backup.sh &>>/app/base/var/log/cron_backup.sh.log | 50 2 * * * root /app/base/usr/local/bin/cron_backup.sh &>>/app/base/var/log/cron_backup.sh.log | ||
| + | </code> | ||
| - | //Исключение: если скрипт генерирует излишне объемный вывод, который необходим только при детальном дебаге, то его можно логировать в соответствии с обычными стандартами /var/log/<имя демона>.log и обязательно должен писать о том, что он скрывает вывод (и куда скрывает) в stdout! Например, скрипт /app/asr_billing//usr/local/bin/backup_db_v2.sh выводит все в стандартный вывод, но вывод gbak сохраняет в /var/log/backup_db_v2.sh.log// | + | Исключение: если скрипт генерирует излишне объемный вывод, который необходим только при детальном дебаге, то его можно логировать в соответствии с обычными стандартами /var/log/<имя демона>.log и обязательно должен писать о том, что он скрывает вывод (и куда скрывает) в stdout! Например, скрипт /app/asr_billing//usr/local/bin/backup_db_v2.sh выводит все в стандартный вывод, но вывод gbak сохраняет в /var/log/backup_db_v2.sh.log// |
| 4. Особым случаем является каталог /app/asr_billing/var/log/abonents/<id_абонента>/.. куда дублируется вывод лога событий в воркера по каждому абоненту. Например, /app/asr_billing/var/log/abonents/13/event_1368.log | 4. Особым случаем является каталог /app/asr_billing/var/log/abonents/<id_абонента>/.. куда дублируется вывод лога событий в воркера по каждому абоненту. Например, /app/asr_billing/var/log/abonents/13/event_1368.log | ||
| Строка 25: | Строка 26: | ||
| <font inherit/inherit;;rgb(255, 0, 0);;inherit>**Другие особые случаи этого пункта и другие исключения нужно согласовывать и отражать в текущей странице документации.**</font> | <font inherit/inherit;;rgb(255, 0, 0);;inherit>**Другие особые случаи этого пункта и другие исключения нужно согласовывать и отражать в текущей странице документации.**</font> | ||
| - | ==== Стандарт по logrotate до 2018 года (потом добавим чистку которую НАстраивает Админ 3-6-12 мес): ==== | + | ==== Стандарт по logrotate до 2018 года (потом добавим чистку которую настраивает Админ 3-6-12 мес): ==== |
| 1. Сдвигаем компрессию на 2 месяца, используя опции compress и delaycompress*. При ротейте по дням компрессию не используем*! | 1. Сдвигаем компрессию на 2 месяца, используя опции compress и delaycompress*. При ротейте по дням компрессию не используем*! | ||
| - | 2. Опцию **rotate не используем**. Старые логи не удаляются автоматически | + | 2. Старые логи нельзя удалять автоматически средствами logrotate! Выставляем опцию rotate 99999. |
| 3. где по дням - не гзипуем | 3. где по дням - не гзипуем | ||
| 4. для ежемесячных, формат суффикса без дня: dateformat -%Y%m | 4. для ежемесячных, формат суффикса без дня: dateformat -%Y%m | ||
| + | |||
| + | 5. можно пользоваться только ежедневным и ежемесячным ротированием | ||
| === Пример1. Ежемесячный logrotate: === | === Пример1. Ежемесячный logrotate: === | ||
| - | <code-java> | + | <code> |
| /var/log/firebird/firebird.log { | /var/log/firebird/firebird.log { | ||
| monthly | monthly | ||
| Строка 46: | Строка 49: | ||
| delaycompress | delaycompress | ||
| copytruncate | copytruncate | ||
| + | rotate 99999 | ||
| } | } | ||
| - | </code-java> | + | </code> |
| === Пример2. Ежедневный logrotate: === | === Пример2. Ежедневный logrotate: === | ||
| - | <code-java> | + | <code> |
| /var/log/msgd/msgd.log { | /var/log/msgd/msgd.log { | ||
| daily | daily | ||
| Строка 61: | Строка 65: | ||
| ### ОБЯЗАТЕЛЬНО ИСПОЛЬЗОВАТЬ nocompress ДЛЯ ЕЖЕДНЕВНОГО logrotate | ### ОБЯЗАТЕЛЬНО ИСПОЛЬЗОВАТЬ nocompress ДЛЯ ЕЖЕДНЕВНОГО logrotate | ||
| nocompress | nocompress | ||
| + | rotate 99999 | ||
| } | } | ||
| - | </code-java> | + | </code> |
| ==== Примечания: ==== | ==== Примечания: ==== | ||
| Строка 79: | Строка 84: | ||
| Sync для файлов выключен по умолчанию, минусы перед файлами в конфиге указывать не нужно | Sync для файлов выключен по умолчанию, минусы перед файлами в конфиге указывать не нужно | ||
| - | <code-java> | + | <code> |
| # File syncing capability is disabled by default. This feature is usually not required, | # File syncing capability is disabled by default. This feature is usually not required, | ||
| # not useful and an extreme performance hit | # not useful and an extreme performance hit | ||
| #$ActionFileEnableSync on | #$ActionFileEnableSync on | ||
| - | </code-java> | + | </code> |
| ~~OWNERAPPROVE~~ /*Не удаляйте эту строку и ниже!*/ | ~~OWNERAPPROVE~~ /*Не удаляйте эту строку и ниже!*/ | ||