Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: DownFall в Nov 20, 2010, 10:41



Титла: Iptables Logrotate
Публикувано от: DownFall в Nov 20, 2010, 10:41
Има ли вариант да вържа лога на iptables с logrotate например?
Целта ми е да не се получава твърдя голям лог файл :) В момента всичко каквото се случва го записва в един файл и за нула време той става огромен :( Целта ми е например на всеки 24ч. или ако надвиши 100 MB да започва на чисто, а стария да се съхрани отделно, за да мога да го преровя ако ми трябва нещо.

Другото което ме интересува, както споменах, всичко ми се записва в един файл. По-рано днес го преименувах и създадох нов файл, празен. iptables явно не го харесва него, защото не иска да записва нищо там :D Има ли вариант да рестартирам firewalla без да рестартирам машината?

Благодаря предварително.


Титла: Re: Iptables Logrotate
Публикувано от: kikicha в Nov 21, 2010, 00:56
service iptables restart  [_]3


Титла: Re: Iptables Logrotate
Публикувано от: Acho в Nov 21, 2010, 06:45
Down, колега, ама нито си казал коя е дистрибуцията ти, нито какъв firewall ползваш, нито как го запускаш/спираш, нито кой е лог файла, който ти се препълва. Или какъв е левела за запис на събитията във файла (info, warning, debug etc.) Ако ги знаеш тия неща, хубаво е да се споменат. Всичко това ще помогне за по-точен отговор, както и за добър съвет, как да си го оптимизираш и да ти логва само това, което искаш, и в кой файл да бъде.


Титла: Re: Iptables Logrotate
Публикувано от: DownFall в Nov 21, 2010, 12:33
service iptables restart  [_]3
-bash: service: command not found

Down, колега, ама нито си казал коя е дистрибуцията ти, нито какъв firewall ползваш, нито как го запускаш/спираш, нито кой е лог файла, който ти се препълва. Или какъв е левела за запис на събитията във файла (info, warning, debug etc.) Ако ги знаеш тия неща, хубаво е да се споменат. Всичко това ще помогне за по-точен отговор, както и за добър съвет, как да си го оптимизираш и да ти логва само това, което искаш, и в кой файл да бъде.
Debian 5, iptables 1.4.2

За да тествам добавям просто правило от типа
-A INPUT -j LOG --log-level 4

В syslog-ng.conf за лог файл съм посочил
destination df_iptables { file("/var/www/logs/iptables.log"); };

Въпросите ми бяха по-скоро:

1. Има ли вариант, вместо /var/www/logs/iptables.log да бъде /usr/sbin/rotatelogs /var/www/logs/iptables_%Y-%m-%d.log 86400 - при apache процедирам по този начин и съм доста доволен..

2. След като променя името на лог файла, по какъв начин мога да презаредя конфигурацията, без да се налага рестарт на системата?


Титла: Re: Iptables Logrotate
Публикувано от: shadowx в Nov 22, 2010, 11:23
Лично аз бих ползвал logrotate ...все пак затова е правен. (конфигурационите му фаилове са в /etc/logrotate или /etc/logrotate.d )
Но и с елементарен баш скрипт и crontab пак може.... А относно рестарт-а , това не го разбрах .... рестарт на линукс се прави само за подмяна на ядро... иначе невиждам смисъл (знам, че може да се смени ядро без рестарт но нехаресвам ksplice :D )


Титла: Re: Iptables Logrotate
Публикувано от: ROKO__ в Nov 22, 2010, 11:47
Лично аз бих ползвал logrotate ...все пак затова е правен. (конфигурационите му фаилове са в /etc/logrotate или /etc/logrotate.d )
Но и с елементарен баш скрипт и crontab пак може.... А относно рестарт-а , това не го разбрах .... рестарт на линукс се прави само за подмяна на ядро... иначе невиждам смисъл (знам, че може да се смени ядро без рестарт но нехаресвам ksplice :D )

Аз съм пробвал по метода на OpenSUSE "kexec"


Титла: Re: Iptables Logrotate
Публикувано от: gat3way в Nov 22, 2010, 12:11
Това с рестарта е защото когато logrotate затрие (премести) текущия лог файл, syslogd няма как да знае какво е станало и продължава да пише в същият файлов дескриптор. Файловите дескриптори не са асоцирани с имена на файлове, а с inodes, така че syslogd няма как да продължи да пише в новия лог файл и всички събития по-нататък престават да се логват. Та поради тази причина или трябва да му се прати SIGHUP, или да се правят разни изпълнения, от сорта на копиране на лог файла в архивен такъв и truncate-ване на "текущия".

Най-лесното е да сложиш една postrotate клауза в конфигурацията, която да ти вика killall -HUP syslogd или нещо от сорта.