FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Administratör
|
Jag har tittat lite på databaser som är lämpliga för loggning av en större mängd väldigt varierande data. Allt ifrån ett enkel key+value till en större mängd parametrar som alla måste kunnas ställas frågor mot. Därför letar jag framförallt efter något effektivt och schemalöst.
Det finns ett par aspekter jag finner viktiga, i ungefär följande ordning: - Effektivititet i loggningen. Det håller inte att skriva varje request till disk (t ex innodb acid/myisam) direkt om det rör sig om en större mängd. - Enkelt att anpassa och skriva nya frågor mot datan för en hyffsat programmeringskunnig. Råtext-loggning som används map-reduce mot är inte aktuellt. - Effektiva schemaändringar. Enkel anpassning för nya loggnings-typer. Schemalösa databaser löser ju detta i stort automatiskt. - Snabbheten i att ta fram rapporter - Enkelheten/möjligheten att sätta upp en slav att ta backup på och ställa frågor mot för att inte påverkar loggningen i sig - Datastorleken Det enda som jag hittat som stämmer rätt bra på mina krav är MongoDB, schemalöst, enkla frågor, hyffsat efffektivt i både loggning och frågor. Mycket av det som skapats av det största sajterna själva går bort på grund av kompliciteten för antingen implenentation eller för att ställa frågor mot. Annat för att det inte är så effektivt eller enkelt för syftet att endast logga (varierande) data. T ex Cassandra, CouchDB, Tokyo Tyrant osv. faller bort här. Mitt andra val ligger på mysql innodb/xtradb med flush_log_at_trx_commit 0 och utan binlog. Lite mindre effektivt ur alla perspektiv - men enkelheten i frågeställningen med vanlig klassisk SQL är ju lite frestande - även om mongodb verkar enkelt att lära sig. Någon som har några andra alternativ eller gått igenom samma frågeställning?
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Mycket flitig postare
|
Det kanske inte är ett svar på din fråga men det kanske kan duga som en alternativ lösning: har du funderat på att skriva en buffrad logger? Jag skulle tro att de flesta loggingkomponenterna (t.ex. log4net/j) har stöd för det på ett eller annat sätt.
|
|||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Administratör
|
Uppskattar svaret och det kan förvisso hjälpa en liten del att buffra på original-servrarna innan det skickas till loggservern men det förändrar inte behovet av en central effektiv databasmotor nämnvärt om det inte är så att denna har en väldig overkill i varje anslutning eller write (kör du t ex MongoDB eller innodb utan flush vid commit så buffrar du faktiskt skrivningen till disk).
Det kan väl tilläggas att det är central loggning för ett 10-tal servrar jag är ute efter.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Flitig postare
|
Splunk borde fungera. www.splunk.com
|
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Mycket flitig postare
|
Citat:
|
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Administratör
|
Citat:
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Mycket flitig postare
|
Jag hade nog kört på en buffrad lösning, men det beror ju såklart på vad du ska ha det till..
ww.syslog.org/wiki/Main/DatabaseLogging Kanske kan hjälpa dig? |
|||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Administratör
|
Citat:
Jag är alltså ute efter en databas att lagra datan i. Att skriva en egen buffer utanför den kan ju vara aktuellt om databasen implementation är slö/dålig/instabil. Men jag är ute efter en databaslösning för att slippa skriva allt själv eller bygga ihop flertalet halvt inkompatibla lösningar: - Namngivna fält i datastrukturer - ett måste när hundratals olika loggningstyper ska kunna stödjas - Strukturändringar. - Replikering - Smidigt och kompetent frågespråk ovanpå datan Osv. Jag söker alltså inte ett sätt att effektivt gå igenom eller logga till diverse primitiva textformat utan ett databashanteringssystem som är effektivt för syftet. Användningen av datan kommer variera. Ibland kommer det vara ren statistik-rapportering (typ antalet unika ip av request X med parameter 1 Y och parameter 2 Z per dag senaste månaden) och ibland kommer det vara för användning på olika sätt på sajter (topplistor, beteende-analys osv). Så att ha ett system där det är enkelt att både strukturera och att ställa frågor är ett måste. Att dessutom kunna ställa tunga frågor mot en obelastad maskin så det inte påverkar loggningen i sig är också en väldig fördel. Loggningens ursprung kommer också variera. Även antalet och typen av parametrar som är aktuella att logga för detsamma kommer variera (ibland är 10 parametrar intressanta, ibland två). Det jag har fått tips på här är tyvärr mjukvara både innan (syslog-lösningarna) och efter (splunk) datalagringen. Nog för att den uppskattas och splunk verkar riktigt intressant - men det är inte vad jag letar efter.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#9 | |||
|
||||
Mycket flitig postare
|
Citat:
|
|||
![]() |
![]() |
![]() |
#10 | ||
|
|||
Administratör
|
Fast då saknar du t ex ett enkelt underhållt schema - det är snarare så att MySQLs redan träliga schemaändringar fått en extra komplexitet. Jag är inte ute efter att ha något väldigt begränsat format, t ex common log format. Då skulle jag få skriva jobbiga system med timestamps för schemaändringar som dessutom skulle kräva att all ny loggningskod syncades ut mot alla typer av loggningsklienter exakt samtidigt. Samtidigt skulle jag utöver att underhålla schemaändringarna i databasen också behöva flertalet loggfiler eller någon onödigt komplex mappning mellan dom.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
Svara |
Ämnesverktyg | |
Visningsalternativ | |
|
|