Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

...

I den nationella tjänsteplattformen används en Apache Cassandra databas för att hantera loggposter, och den kontrollerande Webb-applikationen (log-analyzer) ifråga hanterar såväl aktiv övervakning som passiv loggning och aggregering av statistikräknare (sk. aktuellt läge), se vidare skltpservices på Google CodeGitHub.

Exempel på en implementation som använder Apache Camel för att läsa av en meddelandekö kan se ut enligt (fragment):

Info
iconfalse

...

CamelContext camel = new DefaultCamelContext();

camel.addComponent("activemq", ActiveMQComponent.activeMQComponent("failover:(tcp://localhost:61616)"));

 

Consumer consumer = camel.getEndpoint("activemq:SOITOOLKIT.LOG.STORE").createConsumer(new Processor() {

@Override

public void process(Exchange exchange) throws Exception {

try {

// Java LogEvent class generated from XSD, unmarshal with JAXB

LogEvent le = unmarshal((String)exchange.getIn().getBody());

// do something

storeLogEvent(le);

} catch (Exception e) {

log.error("Unable to store log event", e);

throw e;

}

}

});

consumer.start();

...

Konkret logklient - log analyzer

Installation

Applikationen log-analyzer är en web applikation (war)

...

...

Konfiguration

Applikationen log-analyzer har defaultinställningar som överlagras genom att definiera en fil med namnet config.properties i katalogen ${user.home}/.log-analyzer/. 

 

Följande parametrar finns definierade och kan överlagras:

Kodblock
# comma separated list #log.mq.instances=failover:(tcp://localhost:61616) log

.

mq.instances= # log directory,  # should also have a sub-directory named 'archived' to archive rotating log files # log

.

directory =

.

  # disable log store (Cassandra) # if set to true then all below is out of scope. log.storeDisabled=false   # # Below is only of relevance when "log.storeDisabled=false" # # comma separated list log.store.instances=localhost:9160 log.store.clusterName=SKLTP #log.store.clusterName=Test Cluster # time to live in days log.store.payloadTTL=7 # time to live in days for meta information log.store.metaTTL=30 # time to live in days for weekly counters log.store.weeklyCounterTTL=340 # level of logging to stdout/console console.logLevel = WARN # timeout in millis log.store.timeout = 60000 # counter domains log.store.counterDomains = \ urn:riv:crm:carelisting, urn:riv:ehr:accesscontrol, urn:riv:insuranceprocess:healthreporting:RegisterMedicalCertificate, \ urn:riv:insuranceprocess:healthreporting, urn:riv:eservicesupply, urn:riv:informatics:terminology, \ urn:riv:processdevelopment:infections, urn:riv:crm:scheduling, urn:riv:druglogistics:dosedispensing:, \ urn:riv:inera:se.apotekensservice:axs:, urn:riv:inera:se.apotekensservice:or:, urn:riv:inera:se.apotekensservice:folk:, \ urn:riv:inera:se.apotekensservice:lf:, urn:riv:inera:se.apotekensservice:expo: # timeout in seconds analyze.timeout = 15