SEC (Simple Event Correlator) installeren en configureren op FreeBSD

Wat is SEC (Simple Event Correlator)?

SEC (Simple Event Correlator) is een krachtige open-source tool voor event-correlatie en real-time log monitoring. De software is platformonafhankelijk en vormt een uitstekend alternatief voor dure commerciële event-correlatieoplossingen of eenvoudige shellscripts.

SEC analyseert logbestanden in realtime en kan automatisch acties uitvoeren wanneer vooraf gedefinieerde gebeurtenissen worden gedetecteerd. Denk hierbij aan het versturen van e-mails, uitvoeren van shellscripts, verzenden van SNMP-traps of het schrijven van meldingen naar bestanden of pipes.

Doordat SEC invoer accepteert via reguliere bestanden, named pipes en standaardinvoer (stdin), kan het eenvoudig worden geïntegreerd met vrijwel iedere applicatie die loggegevens wegschrijft.

Hoe werkt SEC?

De configuratie van SEC bestaat uit één of meerdere tekstbestanden met regels. Iedere regel bevat:

  • een voorwaarde waarop een event moet worden herkend;
  • één of meerdere acties die uitgevoerd moeten worden;
  • optioneel een booleaanse expressie om te bepalen wanneer de regel actief is.

Voor het herkennen van gebeurtenissen gebruikt SEC onder andere:

  • reguliere expressies (RegExp);
  • Perl-subroutines;
  • variabelen en patroonherkenning.

Hierdoor is SEC zeer geschikt voor het monitoren van bijvoorbeeld:

  • HAProxy
  • Apache
  • Nginx
  • Syslog
  • Firewalls
  • Applicatielogs

SEC installeren op FreeBSD

Installeer SEC via de FreeBSD Ports Collection:

cd /usr/ports/sysutils/sec
make install clean

SEC configureren

Maak een configuratiebestand aan:

ee /etc/sec.conf

Onderstaand voorbeeld controleert het HAProxy-logbestand. Wanneer een backend-server de status DOWN of UP krijgt, verstuurt SEC automatisch een e-mailmelding.

type=Single
ptype=RegExp
pattern=Server\s+(\S+)\s+\S+\s+(\S+)(.*)
desc=$0
action=pipe '%t server $1 went $2 $3' /usr/bin/mail -s 'HAProxy: $1 went $2' systeembeheer@markterweele.nl

De reguliere expressie haalt hierbij de volgende gegevens uit het logbestand:

  • $1 – naam van de server
  • $2 – status (UP of DOWN)
  • $3 – overige informatie uit de logregel

SEC starten

Gebruik onderstaande opdracht om SEC te starten en het systeemlogbestand te monitoren.

sec -detach \
-pid=/var/run/sec.pid \
-conf=/etc/sec.conf \
-log=/var/log/sec.log \
-input=/var/log/messages

Betekenis van de opties

OptieBeschrijving
-detachDraait SEC als achtergrondproces.
-confGeeft het configuratiebestand op.
-logLogbestand van SEC zelf.
-pidLocatie van het PID-bestand.
-inputHet logbestand dat bewaakt wordt.

Swatch-configuraties converteren naar SEC

Wanneer je eerder Swatch gebruikte, kun je bestaande configuraties grotendeels automatisch omzetten naar SEC.

Maak hiervoor het script aan:

ee /usr/bin/swatch2sec.pl

Voeg vervolgens het onderstaande Perl-script toe.

#!/usr/bin/perl -w
...

Gebruik het script als volgt:

swatch2sec < ~/.swatchrc > sec.conf

Hiermee wordt een bestaande Swatch-configuratie automatisch vertaald naar een SEC-configuratie.


Opstartscript voor SEC

Maak een init-script aan zodat SEC eenvoudig gestart en gestopt kan worden.

ee /etc/rc.d/rc.sec

Plaats hierin het onderstaande script.

#!/bin/bash
...

Maak het script uitvoerbaar:

chmod 755 /etc/rc.d/rc.sec

Logrotatie configureren

Om te voorkomen dat het logbestand onbeperkt groeit, is het verstandig logrotate te gebruiken.

Kopieer eerst de voorbeeldconfiguratie:

cp /usr/ports/sysutils/logrotate/files/logrotate.conf.sample /etc/logrotate.conf

Open vervolgens het bestand:

ee /etc/logrotate.conf

Wijzig de instellingen bijvoorbeeld naar:

daily
rotate 7
create

Voeg daarna onderstaande configuratie toe zodat SEC na iedere logrotatie automatisch opnieuw wordt gestart.

/var/log/sec.log {
    missingok
    postrotate
        /etc/rc.d/rc.sec restart
    endscript
}

SEC handmatig starten

Start SEC met:

sh /etc/rc.d/rc.sec start

SEC automatisch starten bij het opstarten van FreeBSD

Wil je dat SEC automatisch wordt gestart wanneer FreeBSD opstart?

Open dan:

ee /etc/rc.local

Voeg de volgende regel toe:

sh /etc/rc.d/rc.sec start

Toepassingen van SEC

SEC wordt veel gebruikt voor:

  • realtime log monitoring;
  • event-correlatie;
  • automatische e-mailmeldingen;
  • monitoring van HAProxy;
  • serverbewaking;
  • netwerkmonitoring;
  • security monitoring;
  • systeembeheer en automatisering.

Dankzij de flexibele configuratie is SEC geschikt voor zowel kleine als grote IT-omgevingen.


Meer informatie

Add a Comment

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *