Έλεγχος για rotation log αρχείου
Christos Ricudis
ricudis at itc.auth.gr
Wed Sep 16 15:38:15 EEST 2009
George Notaras wrote:
> Apollon Oikonomopoulos wrote:
>
>> On 11:23 Wed 16 Sep , Christos Ricudis wrote:
>>
>>> O monos tropos na anixneuseis ti egine, einai na anoikseis ksana to
>>> log file - epeidh o file descriptor ton opoio exeis hdh anoixto den
>>> prokeitai na katalabei xristo sthn periptwsh pou to log file exei
>>> ginei rename h unlink kai oxi truncate - na kaneis mia stat(3), kai
>>> na sygkrineis to mege8os me to (apo8hkeymeno apo to prohgoumeno
>>> iteration ths stat(3)).
>>>
>> Υπάρχει πάντα και το inotify(7) (με τα python-inotify bindings), με το
>> οποίο ο πυρήνας αναλαμβάνει να σε ειδοποιήσει όταν συμβεί κάτι (που
>> έχεις εσύ ορίσει) σε ένα αρχείο (που πάλι έχεις εσύ ορίσει). Και πάλι
>> βέβαια, πρέπει να ξέρεις αν το logrotate κάνει move ή copy + truncate...
>>
>
> Δεν έχω ξανακάνει χρήση του inotify, αν και ακούγεται καλό. Θα το έχω
> υπόψη. Thanks
>
>
>> Το βασικό θέμα όμως είναι, τι ακριβώς θες να κάνεις με τα log files πέρα
>> από το να τα βλέπεις in real time; Αν βασίζεσαι σε κάτι το οποίο κάνει
>> real-time parse τα log files για κάποιο λόγο (όπως κάνουν όλα αυτά τα
>> σκριπτάκια τύπου fail2ban), τότε πρέπει να είσαι προετοιμασμένος και για
>> διάφορα άλλα ενδεχόμενα (από το να γεμίσει ο δίσκος, μέχρι το να ψοφήσει
>> ο syslogd ή να αλλάξει logging format η εφαρμογή της οποίας η έξοδος σε
>> απασχολεί).
>>
>> /Απόλλων
>>
>
> Αυτό που θέλω να κάνω είναι ό,τι κάνει το fail2ban, αλλά με μία
> διαφορετική λογική.
>
> Το fail2ban βάζει την IP του client σε blacklist για N ώρες, όταν αυτός
> έχει προκαλέσει Χ failures. Αυτό είναι χρήσιμο στην περίπτωση που οι
> clients που προκαλούν τα failures είναι λιγοι. Αντίθετα, σε περιπτώσεις
> που γίνονται μαζικά connections από πολλούς clients, η αντίδραση είναι
> πολύ αργή και καθόλου αποτελεσματική στο να μειώσει το load.
>
> Αυτό που θέλω να κάνω είναι να μπαίνει σε blacklist για Ν ώρες η IP όλων
> των clients που προκαλούν έστω κι ένα failure, όταν ο συνολικός ρυθμός
> των failures ξεπεράσει ένα προκαθορισμένο όριο
>
Em eides poy otan h erwthsh diatypwnetai ws "Epanalambanomenes
palindromikes eksanagkasmenes talantwseis sta8erou platous katalhgoun se
stigmiaia anekselegkth eksarsh neyrofysiologikhs drasthriothtas poy
akolou8eitai apo ragdaia ptwsh toy metabolismou, mhpws ftaiei to platos
ths talantwshs?" h *swsth* apanthsh einai "stamata na malakizesai" ?
De xreiazesai tipote poy moiazei me thn "tail -f", kai profanws de
xreiazetai na kaneis matsakwnies prospa8wntas na kaneis detect kanena
rotation. Diabase to man page tou syslog.conf :
Named Pipes
This version of syslogd(8) has support for logging output
to named pipes
(fifos). A fifo or named pipe can be used as a destination for
log messages by
prepending a pipe symbol (‘‘|’’) to the name of the file. This
is handy for
debugging. Note that the fifo must be created with the
mkfifo(1) command
before syslogd(8) is started.
Opote me th mknod dhmiourgeis ena named pipe (p.x. /tmp/named-pipe), kai
sto syslogd.conf sou bazeis apla ena :
auth.notice /var/log/messages.|/tmp/named-pipe
(den eimai sigouros gia to .notice).
Kai meta esy to mono poy exeis na kaneis einai na anoikseis to
/tmp/named-pipe apo thn allh akrh kai na mazeyeis log entries.
Oson afora twra to *kyrio* sou problhma :
O *makran* pio eykolos tropos gia na glytwneis mia kai kalh apo tis
bruteforce SSH blakeies, einai *apla na allakseis listening port ston
ssh daemon*. Den exw dei pote na xtypane opoudhpote allou ektos apo to
22, opote poly apla katargw to 22 kai bazw ton sshd na akouei sto 2200.
Bebaia ayto proypo8etei oti 8a 8ymasai na kaneis p.x. ssh -p 2200 ... h
scp -P 2200 ..., alla aksizei ton kopo.
More information about the Linux-greek-users
mailing list