Skip to content
This repository has been archived by the owner on Aug 10, 2021. It is now read-only.

Logimine

Priit Parmakson edited this page Dec 8, 2017 · 7 revisions

Logimine

Vt ka TARA statistika - kasutusstatistika tootmiseks peetakse eraldi logi.

Nõuded

  1. Logimise peamine eesmärk on teabe kogumine veaolukordade põhjuste väljaselgitamiseks, samuti võimalike rünnete väljaselgitamiseks. Logisid peaks saama kasutada ka teenuse, sh väliste teenuste (DigiDocService, eIDAS konnektorteenus) kasutusstatistika tootmiseks.
  2. Iga sisse- ja väljaminev päring ja selle töötlemise tulemus (vastus) tuleb logida.
  3. Veaolukorrad tuleb logida
  4. Mittevajalik CAS-i logimine peab olema väljalülitatav.
  5. Salasõnu ei logita.

Märkus. Logimise lahenduse eekujuks sobib meile eIDAS sõlme logimine. See on hästi kirjeldatud dokumendis https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/eIDAS-Node+-+Current+release?preview=/46992189/52603172/eIDAS-Node%20Error%20and%20Event%20Logging.pdf. Meie ei jõua nii põhjalikku, kuid eeskujuks kindlasti sobib.

Logifailid

Logifailid kirjutatakse kausta /etc/cas/logs.

cas-<kuupäev>-<tund>-<järjenumber>.log

cas_audit.log ?

cas.log ?

cas-management.log logib teenusehalduri tööriista tegevusi.

perfStats.log ?

tara_authentication-<kuupäev>-<tund>-<järjenumber>.log salvestab sissetulnud HTTP päringu URL-i.

LOG4J2 seadistamine

TARA süsteem võimaldab kasutada välist logimise konfiguratsiooni. Selleks peab application.properties failis ära kirjeldama logging.config parameetri. Näiteks:

logging.config=/opt/tomcat/CAS/log4j2.xml

Väljastpoolt on võimalik seadistada ka XML faili sees kasutatavaid parameetreid. Näiteks kui konfiguratsiooni failis on defineeritud:

<Properties>
    <Property name="cas.log.dir" >/etc/cas/logs</Property>
    <Property name="cas.log.level" >warn</Property>
</Properties>

siis Java virtuaalmasinale on võimalik ette anda –Dcas.log.dir=/teine_koht ja –Dcas.log.level=info. Üks võimalus on muuta ka XML faili, mis taaslaetakse log4j poolt vastavalt monitorInterval seadistatud sekundite jooksul

Logi tasemete seadistamine

LOG4J2 puhul on võimalik seadistada logimise prioriteete (level) vastavalt pakettidele. Pakett on siis source kataloogis olev failistruktuur. Iga Java klass asub omas paketis, millel on ka parent pakett e. ülemkaust. XML failis on võimalik pakette logima seadistada järgnevalt:

<AsyncLogger name="ee.ria" level="${sys:cas.log.level}" />

Kõik alates ee.ria paketis olevad klass failid kirjutavad logi vastavalt cas.log.level seatud tasemele. Kuna eraldi appender-it defineeritud siin ei ole siis kõik logi saadetakse root logisse, millega saab ära defineerida üldkasutatava logimise taseme. Iga eraldiseisva logger-iga saab root logi üle kirjutada. Näiteks kui root logger on seadistatud ERROR logitasemele, siis ee.ria paketi saab logima panna DEBUG tasemel. Logi failidesse jõuavad kogu süsteemi ERROR taseme logid ja ee.ria paketi DEBUG taseme logid, mis võib olla vajalik tuvastamaks probleeme just tellimustööna kirjutatud koodis.

Originaal toote logi saab seadistada org.apereo paketi tasemel, kuna toode kasutab ka väga palju sõltuvusi, siis tuleb seadistada ka kõikide sõltuvuste tasemed vastavalt vajadusele.

Hetkel on LOG4J2 seadistatud nii, et paketi ee.ria.sso.logging logi kirjutatakse eraldi faili. Kõikide RiaAuthenticationService liideses defineeritud meetodite sisend, väljund ja erindid logitakse välja just paketi ee.ria.sso.logging tasemel.

Siin https://logging.apache.org/log4j/2.x/manual/appenders.html on ära kirjeldatud kõikvõimalikud appender-id kuhu on võimalik logikirjeid saata. Kas faili, konsoolile, andmebaasi, JMS süsteemi, jne

Clone this wiki locally