Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: judovana 30. 10. 2013, 12:09:46
-
Zdravim!
Mejme aplikaci, rikejme ji treba icedtea-web... Ta ma nativniho klienta jako NPAPI plugin v C++, a dalsiho klienta v jave. Prunik funkci klientu je 0, a casto to funguje tak ze dokonce C++ cast pousti tu javovskou, komunikace prez pajpy, a javovska casto bezi sama. Logovani celeho projektu je hruza, ale pracuje se na tom :)
Rad bych do toho dodelal linux-like logovacy backend, aby kazdy linuxak, kdyz mu to spadne, a on koukne "do loguu", aby tam ty chybycky mel. Priapdne kdyz pisne adminovy ze mu to nejede, tak aby i admin se nekam mohl kouknout a ty chyby videt (muze mit nastavenou globalni politiku).
Kdyz jsem nad ficurkou zacal dumat, zjistil jsem, ze vlastne ani nevim kam by to logovat melo. Puvodne jsem si to predstavoval jako soubory ve /varl/log/icedtea-web/$USER/konkretni-rotovnay-log-soubor(y) - tam by se mohl kouknout admin i (pouze opravneny) uzivatel. Ohledne tohodle pristupu uz jen tolik ze nevim jak do nej zapsat spravne (z obou java i C casti). Ohledne fylozofie... nekolik lidi me zdrbalo ze takhle se to nedela. Tak shanim nazory jak se to teda DNES :o) dela.
-
A co tak to posielat cez sietove rozhranie a logovat to pomocou tretej aplikacie? Standardne sa to myslim robi cez UDP port 514.
Na odposluch ti potom staci nieco ako:
(nc -l -p 514 -u >/var/log/app.log&) &
-
Vubec bych se nebranil to posilat pres UDP komukoliv :)) Jen nevim komu a kde to pak skonci....
-
To zalezi od konkretnej infrastruktury, kazdopadne to cele moze bezat na jednom stroji...
-
Ted nevim jestli si rozumime. Ja bych nerad tu "aplikaci treti strany" psal. To to rovnou muzu hazet do souboru do houmu :(. To nema linux by default nejaky logovaci backend??? /me confused
-
a jeproboha nejaky duvod, proc nepouzit klasicky syslog-ng?
-
syslog-ng priznam se neznam, ale duvod proc nepouzit syslogd, byl ze nezvladal logovani "podle uzivatele". Anebo tomu proste nerozumima pujdu se zase zakopat do sveta javy adoufat ze log4j udela vsecko za mne :(
-
Rekl bych, ze syslog-ng toho zvladne daleko vic. Umi filtrovat logy dle vseho, na co si jen spomenes...
-
hm.. vysledne soubory ale zase budou mit read permission jen pro roota ne?
-
v syslog-ng sa da dastavit pod akym uzivatelom, skupinou a s akymi pravami sa log subory ulozia.
-
mozes vyskusat http://logentries.com (http://logentries.com) (zalozil to jeden Cech a Ir) a tam mozes dat pristup vsetkym adminom. Ty chlapci si na logy vazne experti.
-
Pre co najflexibilnejsie logovanie odporucam logovat do syslogu.
"man 3 syslog" pre C/C++ a https://en.wikipedia.org/wiki/Java_logging_frameworks pre Javu
Syslog demona potom nakonfigurovat podla potreby (napriklad rsyslog vie logovat do suborov, do MySQL databazy, ci posielat na iny stroj)... to uz v aplikacii nemusis riesit, z aplikacie len posielas spravy do syslogu a nechas na konfiguraciu syslog demona, co s tym potom spravi.
Pripadne je mozne konfiguraciou urcit, ci sa ma logovat do syslogu, do lokalneho suboru, do stderr, alebo vobec (napriklad snmpd ma taketo moznosti logovania), ale ten syslog z toho vychadza najuniverzalnejsie.
-
Vetsinu toho co pises uz icedtea-web umi (dokonce hodne presne tak jak to pises:) ). A prave se resi (krom stdout/err, file) ten treti - systemovy...
syslog - bylo by to nejlepsi reseni(neb je prakticky vsude), ale nekolik veci (podle me) neumi:
- logovat do souboru /var/log/icedtea-web/usernam , kde navic soubor/adresar username bude vlastnen uzivatelem a bude 6(7)00
- nekolika radkove logmessages
c, i java api syslogu znam.
-
syslog - bylo by to nejlepsi reseni(neb je prakticky vsude), ale nekolik veci (podle me) neumi:
- logovat do souboru /var/log/icedtea-web/usernam , kde navic soubor/adresar username bude vlastnen uzivatelem a bude 6(7)00
- nekolika radkove logmessages
Opravdu potrebujes, aby logy mohl mazat i uzivatel a neches to nechat na adminovi?
Nestacilo by aby uzivetele mohli cist loge pres sudo?
Popr. muzes udelat adresare /var/log/icedtea-web/username/ s suid bitem na skupine a logovat do souboru v tom adresari.
Pak ten log soubor muze mit prava 440 a stejne si uzivatele nebudou moct cist logu soubory navzajem.
-
Asi jsem se zeptal spatne a melo to byt spis:
"kde, jakozto pokrocili uzivatele, hledate logy od aplikace (desktopove, klientske.. ci jak se tomu ted rika) ktera najednou zacla padat ? "
-
koukni na logstash/kibana - bezi to pod elasticsearchem, vizualizuje to data do grafů a milion dalších věcí