Table of Contents

Diagnostika logov

Klucove slova: mantis log downloader mantisLogDownloader driverBugReport driver bug report

Zaloha logov na strojceku sa nachadza na ceste

/opt/emtest/var/log/

Vo formate:

driverBugReport_DATUM_ZALOHY.tgz

Logy su ulozene v suborovej strukture:

Zaloha obsahuje:

Systemove logy

Logy hardverovych prostriedkov

Logy platnobneho terminalu

Logy vozidlovej aplikacie

Statisticke zaznamy

Log Downloader

Autor sluzby: Matej Turcel
Konzultant: J. Sipikal, K. Turcelova

Skript z Mantisu/Helpdesku ziskava informacie o novych bugoch, na zaklade ktorych stahuje zo strojcekov logy (vo formate tgz) a pridava ich na Mantis k tomu-ktoremu bugu ako prilohu.
Pri necakanom ukonceni a opatovnom spusteni skript pokracuje v stahovani rozstahovanych logov a uploade dostahovanych, pricom si uchova tiez ID posledneho spracovaneho bugu. Nemalo by teda vadit ak bude skript nasilne ukonceny.

Umiestnenie a vlastnosti sluzby:

  1. Sluzba je spustena na servri 192.168.99.130 alebo pomocou domeny servis.dopravnakarta.sk. Server je umiestneny v telecom cloud-e
  2. Login a heslo poskytne IT oddelenie.
  3. Sluzba sa spusta automaticky po starte pomocou skriptu /etc/systemd/system/mantislogdownloader.service

Zdrojove subory sa nachadzaju v git repozitari s nazvom: mantislogdownloader.git. Link na git wiki

Deployment / instalacia

Skript musi bezat na serveri z ktoreho je pristup na strojceky (napr. 192.168.99.130).

Potrebny je Python 3.4.3 a vyssie a nainstalovane zavislosti.
Instalacia zavislosti - spustenim skriptu install.sh (musi byt spusteny ako root).

Na instalaciu zavislosti je potrebny Python package installer - pip3. Pokial nie je dostupny, skript install.sh sa ho pokusi nainstalovat, to sa ale nemusi vzdy podarit (lebo na to je potrebny modul ensurepip pre Python3 ktory tiez nemusi byt dostupny).
Instalacia pip3 - nainstalovat balik python3-pip.

Adresarova struktura

logdldr/
doc/
  util/
  pdf/
  src/
data/
  partial/
    [zlozky jednotlivych bugov, napr. "9744_10.12.196.1_20160907051621\"]
      [archiv s logmi daneho bugu, napr. "driverBugReport_20160907-05_16_21.tar.gz"]
  finished/
  failed/
    pack/
    download/
    upload/
var/
  logdldr.log
[mantis/]
install.sh
logdldr.py

Zlozky/subory potrebne pre beh programu su vytvorene automaticky.

Konfiguracia

Subor logdldr/config.py obsahuje rozne nastavenia, od adries, uctov a hesiel cez nazvy lokalnych priecinkov a suborov po “backoff strategy” pri preruseni spojenia.

Spustanie

Prepinace, argumenty:

Ked sa skript spusti bez prepinaca -d a v skorych stadiach (tj. spracovanie argumentov, vytvorenie priecinkov, …) nedojde k chybe, na konzole nie je nijaky vystup a skript bezi az do ukoncenia (napr. Ctrl+C).
Pri spusteni viacerych instancii naraz budu vsetky pokracovat v stahovani rozstahovanych logov, preto by nemalo bezat viac instancii naraz.
Chyby ktore nastanu pocas behu su logovane do suboru var/logdldr.log, niektore tiez na Mantis ako poznamky k bugom (napr. ak sa nepodari stiahnut logy).

Ukoncenie

Pri prvom SIGINT/Ctrl+C sa prestanu preberat z Mantisu nove bugy a caka sa na dokoncenie spracovania zacatych.
Pri druhom SIGINT/Ctrl+C sa skript okamzite ukonci.
V oboch pripadoch sa na stderr (pokial stderr je konzola) vypise informacna hlaska.

Implementacia

Diagramy

Class

Activity

Sequential

Popis tried

Menej podstatne triedy a wrapper triedy vynechane.
(S) za nazvom triedy znaci, ze existuje iba jedna instancia triedy