Συλλογή στατιστικών από background service με signal
nk
eos at eos.gr
Wed Oct 24 11:19:46 EEST 2012
George Notaras wrote:
> Ένα background service τυπώνει στατιστικά στοιχεία στο logfile/syslog
> όταν δεχτεί τα signals USR1 και USR2 (διαφορετικά στατιστικά το κάθε ένα).
>
> Ποιος είναι ο αποτελεσματικότερος τρόπος να συλλεγούν αυτά τα στατιστικά
> και να μπουν σε μια database, πχ rrd file;
>
> Καταλήγω μόνο στη λύση των 2 βημάτων:
>
> 1) Αποστολή signal --> τα στατιστικά αποθηκεύονται στο Logfile σε Ν γραμμές.
> 2) Parsing των Ν τελευταίων γραμμών από το logfile.
>
> Μου φαίνεται λίγο μπακαλίστικο κι έχει μερικά μειονεκτήματα όπως αυτά:
>
> α) Κανονικά στο Βήμα 2 θα πρέπει να βεβαιωθεί ότι με το Βήμα 1 πρόλαβαν
> να τυπωθούν τα νέα στατιστικά στο log.
> β) Γεμίζει το log με άχρηστα data, τα οποία αποθηκεύονται ούτως η άλλως
> σε db.
>
> Υπάρχει κάποιος καλύτερος τρόπος; Για παράδειγμα, θα μπορούσε ένα script
> να στείλε το SIGUSR1 και να παρέμβει με κάποιο τρόπο ώστε να πάρει αυτό
> τα data αντί να γραφτούν αυτά στο log;
>
Οσον αφορα στη συλλογη απ το logfile ενα
#!/bin/bash
LC_ALL=C
tail -f $logfile | grep --line-buffered $serv_ident | $procc_mech
μαλλον λυνει το μισο προβλημα, το αλλο μισο (ή σωστοτερα ολοκληρο)
λυνεται στελνοντας απ ευθειας απ το background service σου
(παραμετροποιειται; μπορεις να το πειραξεις;) τα log entries στο
μηχανισμο επεξεργασιας
Thanks
More information about the Linux-greek-users
mailing list