abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 21:11 | Nová verze

Po půl roce vývoje od vydání verze 8.0.0 byla vydána verze 9.0.0 překladačové infrastruktury LLVM (Wikipedie). Přehled novinek v poznámkách k vydání: LLVM, Clang, Extra Clang Tools, LLD a Libc++. Vývojáři zdůrazňují podporu "asm goto", díky které lze pomocí Clangu přeložit například Linux pro x86_64 (CONFIG_JUMP_LABEL=y).

Ladislav Hagara | Komentářů: 8
včera 14:00 | Nová verze

Bylo vydáno Eclipse IDE 2019-09 aneb Eclipse 4.13. Představení novinek na YouTube. Vydána byla také nová verze 7 online IDE Eclipse Che.

Ladislav Hagara | Komentářů: 0
včera 11:11 | Nová verze

Byla vydána verze 24.0 svobodného softwaru OBS Studio (Open Broadcaster Software, Wikipedie) určeného pro streamování a nahrávání obrazovky počítače. Přehled novinek na GitHubu nebo pomocí krátkých videí na Twitteru.

Ladislav Hagara | Komentářů: 3
včera 11:00 | Komunita

Microsoft představil a pod licencí SIL Open Font License (OFL) na GitHubu zveřejnil font Cascadia Code. Font je určen především pro zobrazování textu v emulátorech terminálu a vývojových prostředích (Přehled fontů s pevnou šířkou).

Ladislav Hagara | Komentářů: 17
18.9. 21:11 | Zajímavý software

Souborový systém exFAT se běžně používá na paměťových médiích jako karty SDXC, ale z licenčních důvodů jej nebylo možné začlenit do Linuxu, ačkoliv v roce 2013 unikl ovladač od Samsungu, jak shrnuje článek na Linux Weekly News. Park Ju Hyung nedávno vzal novější verzi ovladače od Samsungu a založil na ní vlastní projekt exfat-linux, který je k dispozici uživatelům.

Fluttershy, yay! | Komentářů: 11
18.9. 05:55 | Pozvánky

Dnes a zítra pořádá Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) ve spolupráci se studentským portálem Security Outlines konferenci CyberCon Brno 2019. Sledovat ji lze také online.

Ladislav Hagara | Komentářů: 0
18.9. 04:44 | Nová verze

Byla vydána Java 13 / JDK 13. Nových vlastností (JEP - JDK Enhancement Proposal) je 5. Nová Java / JDK vychází každých 6 měsíců.

Ladislav Hagara | Komentářů: 2
18.9. 03:33 | Komunita

Mozilla.cz informuje (en), že Mozilla postupně zrychlí pravidelné vydávaní nových verzí Firefoxu na 4 týdny. Aktuálně jsou vydávány nové verze Firefoxu každých 6 až 8 týdnů.

Ladislav Hagara | Komentářů: 13
17.9. 18:44 | Nová verze

MojeFedora.cz informuje (en) o vydání betaverze Fedory 31, tj. dalšího mezníku na cestě k plánovanému vydání Fedora 31 na konci října. K dispozici je v edicích Workstation a Server. Můžete také vyzkoušet jeden ze spinů, labů nebo verzi pro ARM.

Ladislav Hagara | Komentářů: 0
17.9. 17:00 | Nová verze

Byl vydán CentOS Linux 7 (1908) vycházející z Red Hat Enterprise Linuxu 7.7. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 1
Kdy jste naposledy viděli počítač s připojeným běžícím CRT monitorem?
 (20%)
 (4%)
 (9%)
 (38%)
 (27%)
 (2%)
Celkem 179 hlasů
 Komentářů: 20, poslední dnes 13:17
Rozcestník

Dotaz: Efektivní parsování logu

13.9. 10:42 Jirka
Efektivní parsování logu
Přečteno: 402×
Dobrý den.
Hledám možnost, jakou bych efektivně mohl parsovat logy za nějaké konkrétní časové období.
Existuje nějaký "jednoduchý" způsob, jak z logu vysypat všechno, např. ze dne 01.09.2019 v čase 09:00 - 10:15 ?

Vzorový řádek z logu
194.xxx.17x.yyy - - [13/Sep/2019:09:51:27 +0200] "GET /nejaky-obsah-bla-bla-bla/ HTTP/2.0" 301 275 "https://www.domena.cz/nejaky-obsah-bla-bla-bla" "Mozilla/5.0 (Linux; Android 6.0.1; Redmi 3S Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.132 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/238.0.0.41.116;]"

Děkuji.

Odpovědi

13.9. 11:17 Peter Golis | skóre: 58 | Bratislava
Rozbalit Rozbalit vše Re: Efektivní parsování logu
Pre tento typ prípadu je ideál to mať v DB, a dáta vyťahovať selectom.
13.9. 11:22 Jirka
Rozbalit Rozbalit vše Re: Efektivní parsování logu
Že bych jako syslog nebo nginx logy ukládal do DB ?
...to fakt ne ;-)


Děkuji.
13.9. 12:42 rich
Rozbalit Rozbalit vše Re: Efektivní parsování logu
Ale moznost to je...
https://www.rsyslog.com/doc/v8-stable/tutorials/database.html
Jinak opravdu "jednoduchy" zpusob je awk, grep atd.
13.9. 13:24 Peter Golis | skóre: 58 | Bratislava
Rozbalit Rozbalit vše Re: Efektivní parsování logu
Problém je ale ako potom zložiť dopyt typu SELECT blah FROM SystemEvents WHERE FromHost=:hostname AND DeviceReportedTime between "...:..." AND "...:..." .
13.9. 23:41 Miloslav Ponkrác
Rozbalit Rozbalit vše Re: Efektivní parsování logu
Na některých pomalejších strojích, kde je málo požadavků mám log v databázi, a nemohu si to vynachválit.

Je rozložen do několika tabulek, aby to bylo kratší.

Například je tabulka hodnot UserStringů a v logu je jenom id. Po několika letech provozu mám asi 1000 různých UserStringů a už to nepřibývá. Log je díky tomu velice malý.

Tam kde to lítá, je samozřejmě log v databázi skoro nesmysl.
13.9. 11:31 Ivan
Rozbalit Rozbalit vše Re: Efektivní parsování logu
Tohle dela Splunk anebo ELK. Tezko rict jak "jednoduchy" je takovy tool zacit pouzivat.

wamba avatar 13.9. 13:52 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Efektivní parsování logu

Vždycky si můžeš napsat script v nějakým jazyce. Např. v Perlu 6

use v6.c;
constant %months = %(<Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec> Z=> 1..12);

sub tag-by-DateTime ($log-line) {
    $log-line
    andthen .match: rx{
        '[' $<day>= \d **2
        '/' $<month-string>= \w **3
        '/' $<year>= \d **4
        ':' $<hour>= \d **2
        ':' $<minute>= \d **2
        ':' $<sec>= \d **2
        ' '<[+-]> \d ** 4
        ']'
    }
    andthen %(.hash, "month" => %months{$<month-string>})
    andthen DateTime.new: |$_
}

sub MAIN (
    :$file = '/var/log/httpd/access_log',
    :$from = DateTime.now.earlier(:1day).Str,
    :$to   = DateTime.now.Str,
) {
    my @log = lines $file.IO;

    @log
    andthen .map: {tag-by-DateTime($_) => $_}\
    andthen .grep: {.key ~~ DateTime.new($from) .. DateTime.new($to)}\
    andthen .map: *.value.put
}
a pak
perl6 ./read-log-by-date-abc.p6 -file=/var/log/httpd/access_log  -from=2016-08-21T12:50:00 -to=2016-08-21T13:37:00

Pár poznámek:

  • je to napsáno jen tak narychlo,
  • nejvíce kódu zabírá parsování data a času je lepší si najít knihovnu, která to udělá za tebe. (tz ignoruji)
  • nepředpokládá, že řádky jsou seřazeny podle data, tedy na velkých souborech to bude zbytečně pomalé.
  • například následující: :$to = DateTime.now.Str, je hodně neelegantní atp.
This would have been so hard to fix when you don't know that there is in fact an easy fix.
13.9. 14:48 OldFrog {Ondra Nemecek} | skóre: 31 | blog: Žabákův notes | Praha
Rozbalit Rozbalit vše Re: Efektivní parsování logu
Pokud používáte systemd, tak něco umí journalctl:
journalctl --since= --until= ...
To logování do databáze taky nemusí být špatný nápad, jsou i specializované řešení pro tento účel.
-- OldFrog
13.9. 23:37 Miloslav Ponkrác
Rozbalit Rozbalit vše Re: Efektivní parsování logu
Program nebo skript, který by provedl požadované bych napsal za pár minut. Rozhodně rychlejší než hledat nějaký nástroj.

Možná bych si to během programování předvysypal grepem na řetězec [01/Jun/2019:
14.9. 13:04 Kit | skóre: 43 | Brno
Rozbalit Rozbalit vše Re: Efektivní parsování logu
Pro tyto účely používám AWK. Umí filtrovat a parsovat vstup i formátovat výstup. Když je třeba, zvládne porovnat záznamy mezi sebou i agregovat data.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
14.9. 15:51 MP
Rozbalit Rozbalit vše Re: Efektivní parsování logu
Graylog + logy v jsonu a na nejaky awk apod si ani nevzpomenete pro bezne pouziti.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.