Konfigurere rsyslog på Centos 6

Sat 02 March 2013

I forbindelse med oppsett, konfigurasjon og testing av logstash trenger vi en måte å få shippet loggene våre rundt på.

0: Alternativer
Det er mange måter å skyffle logger rundt på. Man kan bruke logstash agent med forskjellige varianter av "shipper.conf". Som tar inn rsyslog lokalt, og dytter det ut på en redis kø, eller at man bruker filinput lokalt for så å dytte det ut på køen.

Jeg har nå testet begge disse variantene men det virket som det var veldig ressurskrevende og hele logstash agenten min kræsjet ettet x-antall timer.

1: RSyslog generelt
RSyslog finner du på de fleste linux distribusjoner. Om den ikke er installert kan du installere den via pakkesystemet ditt.

Vi installerer rsyslog på begge maskinene våre, host1 og host2. Målet vårt er å shippe logger fra host1 til host2. På host2 skal vi kjøre logstash, elasticsearch og e.v.t kibana. Oppsettet av alle disse komponentene har jeg allerede dokumentert i andre artikler.


Rsyslog konfigurasjonen finner du i "/etc/rsyslog.conf" eller "/etc/rsyslog.d/*.conf"

2: RSyslog konfigurasjon

Host1 - Rsyslog konfigurasjon som avvikker fra defaultsettings:

# Forward to logserver via UDP, for TCP use @@
*.* @xx.xx.xxx.xx:514

Host2 - Rsyslog konfigurasjon som avvikker fra defaultsettings:


# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

alternativt over TCP


# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

Husk som alltid å åpne port i brannmuren, i dette tilfellet port 514.

3: Verifiser at ting fungerer
Vi må ta omstart av Rsyslog på begge hostene. Vi tar host2 først, deretter host1.

På host 2:

# service rsyslog restart

# tail -f /var/log/messages

På host 1:

# service rsyslog restart

Du skal nå se at tail på host 2 skriver ut en linje om at du har restartet rsyslog på host1.

Hurra! Det virker...

4: Veien videre
Vi har nå fått verifisert at loggene våre flyter fra host1 til host2 via rsyslog. Vi må nå sørge for at de applikasjonene vi ønsker å ha monitorere faktisk logger til rsyslog.

Aktuelle applikasjoner kan være

  • apache
  • ssh
  • flexlm
  • mail
  • cron
  • egenutviklet programvare

Hvordan man skal konfigurere de forskjellige applikasjonene vil variere, men jeg satser på å komme med et eksempel på apache ganske så snart.

Når vi vet at alle logger vi ønsker å ha kontroll på flyter fra host1 til host2 kan vi konfigurere logstash til å bruke syslog som input, og vi skal være i mål.

Tagged as : serveradministrasjon