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

Efter införandet av Mule 3.7.0 så används log4j2 i tjänsteplattformen.

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.

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.

mule-app-[Appname].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