Multitail – barvičky v logu Domina

Pokud provozujete Domino server na Linuxu, jistě sledujete výstup z logu přes nějakého telnetového klienta, jako je PuTTY.
Log si pak necháváte zobrazit typicky pomocí příkazu tail -f /var/log/domino/notes.log. Výstupem je pak klasické bílé písmo na černém pozadí, což je nepřehledné a špatně se v tom hledají informace. Obzvláště když vám log běží na druhém monitoru, uvítali byste jistě lepší vypovídací schopnosti toho výpisu.

Řešení existuje, jmenuje se Multitail. Pokud zavoláte klasický tail přes tuto utilitku, zobrazí vám log barevně, a to podle konfigurace.

Multitail v praxi

Multitail v praxi (kliknutím zvětšíte)

Program můžete stáhnout zde. Je to klasický rpm balíček, provozujeme Domino na SLES. Instalátor vám vytvoří konfigurační soubor v /etc/multitail.conf, kde jsou pro každý typ logu definována barevná schémata. Konfigurační soubor si otevřete pro editaci třeba přes mcedit a vložte novou sekci colorscheme pro domino.

multitail.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# domino
colorscheme:domino:IBM Lotus Domino
#cs_re:blue|blue,,bold:..:..:..
#cs_re_s:,,bold:..:..:.. [^ ]* ([A-z0-9]*)
cs_re:red,,inverse:(.*error.*)?(.*Error.*)?(.*Entry not found in index.*)?(.* .nable.*)?(.*arning.*)?(.*not listed in Domino Directory)?
cs_re:magenta,,inverse:.*ATTEMPT TO ACCESS DATABASE .* was denied.*
cs_re:red,,bold:(Jiri Krakora)?(.*krakora@.*)?
cs_re:yellow:( [a-zA-Z0-9]+ [a-zA-Z0-9]+/[a-zA-Z0-9]+/Alliance/CZ)+
cs_re:magenta,,bold:([a-zA-Z0-9_\.-]+@[a-zA-Z0-9_\.-]+)
cs_re:green,,bold:(added [0-9]+ document\(s\))?
cs_re:red,,bold:(deleted [0-9]+ document\(s\))?
cs_re:white,,bold:(updated [0-9]+ document\(s\))?
cs_re:cyan:(.*Replicator.*)?(.* Closed session for .*)?
cs_re:cyan,,bold:(.*Pushing.*)?(.*Pulling.*)?
cs_re:cyan,,inverse:(.* Opened session for .*)?
cs_re:green:.*SMTP Server.*
cs_re:magenta:.*emote console.*
cs_re:yellow,,inverse:(^sh.*)?(^tell.*)?(^restart.*)?(^dbcache.*)?(^load.*)?(^set.*)?(^stop.*)?(^start.*)?(^trace.*)?
cs_re:yellow:.*Admin Process: .*
cs_re:red:(.*Agent Manager: .*)?(.*AMgr: .*)?
cs_re:red,white:.*Agent printing: .*
cs_re:blue,,bold:.*Router.*
cs_re:white,,bold:^ .*
cs_re:green:(.*tarted.*)?(.*oaded.*)?(.*nitialized.*)?(.*Done.*)?(.*done.*)?

Jak sami vidíte, schéma se definuje pomocí klasických unix-like regulárních výrazů, nic složitého.

Každá definice je umístěna na svém řádku, uvozena je řetězcem cs_re:, který je povinný. Následuje definice barvy písma, těch je osm – blue, red, yellow, white, magenta, green, cyan, . Další je tučnost textu a definice inverze – tedy zda se z barvy písma má stát barva pozadí. Pak dvojtečka a samotný regulární výraz, který ovlivňuje výběr.
Mám tam dva řádky, které definují mé jméno v organizační struktuře a v e-mail adrese a organizační strukturu firmy jako takovou. Mé jméno se ve výpisu zobrazí výraznou červenou  barvou, jakékoliv jméno v hierarchickém formátu zase žlutě. Ostatní e-mail adresy budou zvýrazněny modře. To jen na ukázku, co všechno to dovede, samozřejmě si to změňte, nebo smažte – já se asi ve vašem logu vyskytovat nebudu. :-)

Pak stačí zavolat místo

tail -f /var/log/domino/notes.log

příkaz

multitail -cS domino /var/log/domino/notes.log

K tomu se také hodí jednoduchý skriptík, abyste nemuseli neustále psát tak dlouhý příkaz. Vytvořte si /usr/local/bin/tail-log, do kterého vepište následující kód.

multi-tail
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/sh
. /etc/profile
DOMINO_LOG='-cS domino /var/log/domino/notes.log'
SYSTEM_LOG='-cS syslog /var/log/messages'
MYCMD=`which multitail`
MYCMD="${MYCMD} -s 2 "
case $1 in
"domino")<->MYCMD="${MYCMD} ${DOMINO_LOG}" ;;
"system")<->MYCMD="${MYCMD} ${SYSTEM_LOG}" ;;
"all")<---->for i in "${DOMINO_LOG}" "${SYSTEM_LOG}" ; do
<------><------> MYCMD="${MYCMD} ${i}"
<------><------>done
<------><------>;;
*)<>echo "Usage: `basename $0` ( domino | system | all )"
<------>exit 0
<------>;;
esac
eval $MYCMD

Pak je potřeba udělat ho spustitelným –> chmod 755 /usr/local/bin/tail-log, no a pak můžete spouštět log domina pohodlně:

tail-log domino

Komentování je uzavřeno.