Hantering av loggar i SKLTP (ARKIVERA)
Loggning sker till fil samt till ActiveMQ om man konfigurerat för detta, se nedan.
NTjP förvaltningen använder Logstash / Kibana för översikt och analys av loggar. Kontakta NTjP förvaltningen för mer information.
Konfiguration av loggning till ActiveMQ
Se SKLTP Commons - Instruktioner för driftspersonal
Konfiguration av log4j
Identifiera klienters ip adress
Med nedanstående exempel kan man med en konfiguration i log4j.xml få ut klienters ip adresser. Notera att ändringen slår direkt i runtime utan omstart, vilket gör den lätt att slå på och av vid behov.
Följande konfiguration i applikationens log4j.xml, typiskst under <mule_home>/apps/[Appname]/classes/log4j.xml.
<!-- SSL/TLS handshake problem detection: find client IP. Set level to DEBUG and search logs for lines like (containing the string "SSL_NULL_WITH_NULL_NULL"): 2014-04-22 10:40:53,269 DEBUG org.mule.transport.http.HttpServerConnection - Closing: 1999d1e4[SSL_NULL_WITH_NULL_NULL: Socket[addr=/10.211.55.11,port=53039,localport=20000]] using an expression like: grep 'org.mule.transport.http.HttpServerConnection - Closing' mule-app-vp.log | grep 'SSL_NULL_WITH_NULL_NULL' Note: closing connections with successful SSL/TLS connections look like: 2014-04-22 10:54:18,498 DEBUG org.mule.transport.http.HttpServerConnection - Closing: 28f58f69[TLS_DHE_DSS_WITH_AES_128_CBC_SHA: Socket[addr=/127.0.0.1,port=54999,localport=20000]] Ref: JIRA MIG-72 --> <logger name="org.mule.transport.http.HttpServerConnection"> <level value="DEBUG"/> </logger>
Ger följande loggar i applikationsloggar, tex mule-app-vp.log.
2014-04-22 16:55:47,332 DEBUG org.mule.module.logging.DispatchingLogger - Closing: 27eff65d[SSL_NULL_WITH_NULL_NULL: Socket[addr=/172.16.0.6,port=50929,localport=20000]] 2014-04-22 16:55:47,334 ERROR org.mule.module.logging.DispatchingLogger - Caught exception in Exception Strategy: Received fatal alert: certificate_unknown javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174) at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1839) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1019) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1203) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:818) at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75) at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:50) at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:78) at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:106) at org.mule.transport.http.HttpServerConnection.readLine(HttpServerConnection.java:219) at org.mule.transport.http.HttpServerConnection.readRequest(HttpServerConnection.java:185) at org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:155) at org.mule.work.WorkerContext.run(WorkerContext.java:311) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)
Med följande grep kommando kan man identifiera förekomster i logfiler, där -B 1 definierar antalet rader innan den aktuella raden man sökt på, i detta fallet 1 rad före.
grep certificate_unknown -B 1 mule-app-vp.log 2014-04-22 16:55:47,332 DEBUG org.mule.module.logging.DispatchingLogger - Closing: 27eff65d[SSL_NULL_WITH_NULL_NULL: Socket[addr=/172.16.0.6,port=50929,localport=20000]] 2014-04-22 16:55:47,334 ERROR org.mule.module.logging.DispatchingLogger - Caught exception in Exception Strategy: Received fatal alert: certificate_unknown
Exempel på att lista unika ip adresser i mule-app-vp.log
grep certificate_unknown -B 1 mule-app-vp.log | grep -oE "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | sort | uniq 33.33.33.1 33.33.33.2