-
Notifications
You must be signed in to change notification settings - Fork 8
Logimine
Vt ka TARA statistika - kasutusstatistika tootmiseks peetakse eraldi logi.
- 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.
- Iga sisse- ja väljaminev päring ja selle töötlemise tulemus (vastus) tuleb logida.
- Veaolukorrad tuleb logida
- Mittevajalik CAS-i logimine peab olema väljalülitatav.
- 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 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.
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
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