Лучшие практики для архивации журнала веб-сервера (Linux + Nginx)

Где я работаю в данный момент, мы должны управлять частью Linux нашей фермы сервера, которая является чуть более чем 300 серверами Linux. Это включает главным образом HP Proliants, сопровождаемый 3850 IBM, некоторыми блейдами IBM, VMware ESX и некоторый KVM для наших внутренних серверов управления.

сапожник

Мы посмотрели на сапожника, но проблему, там был то, что сапожник является очень конкретной Шляпой RHEL/Red. Мы должны поддерживать RHEL и SLES по крайней мере, и Ubuntu является следующей.

марионетка

Мы действительно рассматривали марионетку, однако позже отклонил его, поскольку это зависит от Ruby, что означает, что обновление Ruby, мог потенциально повредить нашу систему управления.

hotwire

Hotwire - то, что мы используем (разработанный внутренне, но открытый исходный код), и делали так в течение последних нескольких лет. Это во-первых материально-технические ресурсы системы, которые будут созданными, что означает инвентаризировать центр обработки данных, стойку, аппаратные средства, операционную систему, сеть, и т.д., и во-вторых выполняют быструю сборку и развертывается. После того как система создается, автоматериально-технические ресурсы hotwire сохраняют материально-технические ресурсы в синхронизации, в то время как cfengine поддерживает их. Hotwire знает о серверном оборудовании, говоря с данными SMBIOS/DMI в BIOS с помощью python-dmidecode.

Бонусные очки - то, что это - объединения материально-технические ресурсы и процесс сборки в один, таким образом, существует меньше для управления, и особенность живых материально-технических ресурсов является замечательной, как мы знаем, не совсем ли что-то правильно.

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

cfengine

Мы используем cfengine потому что кроме него и марионетку, нет ничего иного. Это на самом деле - хороший инструмент, но "хороший" только как функция того, насколько хороший Ваши политики - при установке опасных политик, затем маленькая ошибка может нанести большой ущерб. Например, политикой, мы не "изменяем" файлы, мы или заменяем их, или мы не делаем. Также все замененные файлы имеют заголовок, который делает любого человека, редактирующего его, знают, что это будет заменено в следующий раз, когда это работает (это каждый час выполняется через крон).

Конфигурация и все файлы, выставленные cfengine к серверам, также сохранены в SCM, и использующий рычаги постфиксации, если это возможно, мы проверяем синтаксис и если это перестало работать, то фиксация отклоняется. Это легко для хороших приложений, таких как Apache, но не настолько легкое для большинства корпоративных приложений.

2
задан 3 July 2009 в 03:03
1 ответ

Сделайте это с logrotate, просто скажите это, что Вы хотите...

/var/log/nginx/*.log {
    daily
    dateext
    missingok
    rotate 7305 # 2 decades
    olddir /var/log/nginx/old
    compress
    delaycompress
    notifempty
    create 644 nginx root
    sharedscripts
    postrotate
      if [ -f /var/run/nginx.pid ]; then
        kill -USR1 `cat /var/run/nginx.pid`
      fi
    endscript
}

Я не использую nginx, таким образом, я использовал пример, я нашел для постповорачивания... Если у Вас уже есть logrotate сценарий, запустите с изменения этого.

Ключевые роли:

  • "ежедневно" означает каждый день. Вы могли сделать еженедельный или основанный на размере, но это не взаимодействует как красиво с "dateext".
  • "dateext" означает, что даст повернутым файлам журнала имя на основе даты вместо простого числа; тем путем это не должно переименовывать каждый файл журнала каждый день, и можно сказать дату файла журнала с названия файла
  • "вращайтесь 7305" - это - два десятилетия. Сохраните более или менее... logrotate, действительно предпочитает иметь своего рода пенсию, но можно установить ее смехотворно высоко.
  • "olddir" должен быть в той же файловой системе, но это сохранит журналы в отдельном dir, таким образом, можно будет выяснить то, что продолжается
  • "delaycompress" и "создают" справку, удостоверяются, что она работает с программным обеспечением, которое не хочет работать с нею
7
ответ дан 3 December 2019 в 09:13
  • 1
    Большой ответ. Я искал журнал - поворачивают сценарий. –  The Pixel Developer 4 November 2009 в 15:37
  • 2
    Для тех, которые используют эту конфигурацию: nginx.pid файл может быть в/opt/nginx/logs и logrotate doesn' t принимают 36 525 вращений. –   3 January 2010 в 23:11
  • 3
    @lackey: Вы знаете макс., которое logrotate примет для вращений? Я могу зафиксировать.:) –  freiheit 4 January 2010 в 21:45
  • 4
    @freiheit, я смотрел на источник, и rotateCount является интервалом, поэтому возможно, 32767? Не уверенный, хотя, ничто в странице справочника. (Несколько месяцев назад я попробовал 1500, который действительно принимал logrotate.) –   5 January 2010 в 22:09
  • 5
    @lackey, Хорошо, I' ve ударил его вниз к 20 годам (7305); that' s все еще далеко за пределами любого вероятного времени жизни сервера, но под 2^13. –  freiheit 25 January 2010 в 23:30

Теги

Похожие вопросы