Συλλογή στατιστικών από 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