Inteligentní logování: Porovnání verzí

Z Wiki UnArt Slavičín
Skočit na navigaciSkočit na vyhledávání
mBez shrnutí editace
Bez shrnutí editace
 
(Není zobrazena jedna mezilehlá verze od stejného uživatele.)
Řádek 14: Řádek 14:


V části zdroj nás zajimá zdroj logů ať už lokální nebo síťový. Lokální je viz defaultní nastavení ale nás spíše zajímá siťový zdroj.
V části zdroj nás zajimá zdroj logů ať už lokální nebo síťový. Lokální je viz defaultní nastavení ale nás spíše zajímá siťový zdroj.
Příklad siťového zdroje logů by vypadal nějak takhle:
Příklad nastavení kdy server přijímá všechny logy ze sítě. Server Defaultně naslouchá na portu 514 protokolu UDP.


  source server1 {
  source server1 {
   udp(ip(10.143.0.5) port(513) max-connections(300));
   udp();
  };
  };
Je ale možné nastavit server tak, aby naslouchal i na protokolu TCP. Dále možné nastavit port na kterém bude naslouchat a maximální počet aktuálních spojení. Ještě jde nastavit IP adresu na které bude sever naslouchat.
source server1-tcp {
  tcp(ip(192.168.1.1) port(514) max-connections(300));
};


V části filtr je se nastavuje jaké zprávy bude server přijímat, resp. logovat. Tohle je obsáhlejší téma, takže vše najdete také na [http://www.balabit.com/network-security/syslog-ng/ oficiálních stránkách].
V části filtr je se nastavuje jaké zprávy bude server přijímat, resp. logovat. Tohle je obsáhlejší téma, takže vše najdete také na [http://www.balabit.com/network-security/syslog-ng/ oficiálních stránkách].
Řádek 26: Řádek 34:
   level(info...emerg);
   level(info...emerg);
  }
  }
Příklad filtru který přijme všechny zprávy pouze od IP adresy 10.143.0.22.
filter onlyone ip {
  host("10.143.0.22");
}
Poslední částí je cíl. Pokud log projde filtrem, tak se bude ukládat na místo zadané v této části. Je mnoho způsobů jak [http://www.campin.net/newlogcheck.html ukládat] logy. Mezi nejzajímavější patří do souboru nebo do databáze.
Poslední částí je cíl. Pokud log projde filtrem, tak se bude ukládat na místo zadané v této části. Je mnoho způsobů jak [http://www.campin.net/newlogcheck.html ukládat] logy. Mezi nejzajímavější patří do souboru nebo do databáze.


Řádek 58: Řádek 73:
   destination(server1);
   destination(server1);
  };
  };
Pokud chcete posílat logy na tento logovací server po síti z nějakého jiného serveru tak část destination na serveru server1 bude vypadat nějak takhle:
destination from-server1 {
  udp("10.143.0.1");
};


Další zdroj informací: [http://sial.org/howto/logging/syslog-ng/].
Další zdroj informací: [http://sial.org/howto/logging/syslog-ng/].

Aktuální verze z 1. 3. 2008, 19:04

V téměř každé standardní linuxové distribuci je je použitý jako logovací démon syslog. Tento démon spravuje všechny logy od od programu jež posílají své logy na zařízení /dev/log. Samotná správa démona ale není nijak jednoduchá a pokud chcete rozdělit logy do různých souborů na základě zdroje (tj. třeba IP adresa) je to skoro nemožné bez externího programu. Možným řešením je použít démona syslog-ng, který všechny tyto problémy řeší.

Postup při instalaci je jednoduchý. Pro Debian a jeho deriváty naistalujen syslog-ng

apt-get install syslog-ng

Po instalaci bude zastaralý démon syslog odinstalovaný. Konfigurační soubor pro syslog-ng najdeme v /etc/syslog-ng/syslog-ng.conf Základní rozdělení a logováni lze pochopit z defaulního nastavení. Pokud ne, tak odkazuji na oficiální stránky. Celé logování je rozděleno do základních tří částí.

  • zdroj (source)
  • filtr (filter)
  • cíl (destination)


V části zdroj nás zajimá zdroj logů ať už lokální nebo síťový. Lokální je viz defaultní nastavení ale nás spíše zajímá siťový zdroj. Příklad nastavení kdy server přijímá všechny logy ze sítě. Server Defaultně naslouchá na portu 514 protokolu UDP.

source server1 {
  udp();
};

Je ale možné nastavit server tak, aby naslouchal i na protokolu TCP. Dále možné nastavit port na kterém bude naslouchat a maximální počet aktuálních spojení. Ještě jde nastavit IP adresu na které bude sever naslouchat.


source server1-tcp {
  tcp(ip(192.168.1.1) port(514) max-connections(300));
};


V části filtr je se nastavuje jaké zprávy bude server přijímat, resp. logovat. Tohle je obsáhlejší téma, takže vše najdete také na oficiálních stránkách.

Příklad filtru který přijme všechny zprávy dle priority od info až po emerg.

filter notdebug {
  level(info...emerg);
}

Příklad filtru který přijme všechny zprávy pouze od IP adresy 10.143.0.22.

filter onlyone ip {
  host("10.143.0.22");
}


Poslední částí je cíl. Pokud log projde filtrem, tak se bude ukládat na místo zadané v této části. Je mnoho způsobů jak ukládat logy. Mezi nejzajímavější patří do souboru nebo do databáze.


  • do souboru

Logy se budou ukládat do souboru zadaným v cestě.

destination server1 {
  file("/var/log/server/server1.log");
};

Pro nadšence viz dokumentace.... popíšu jindy.

destination server1-smart { 
  file("/var/log/server/HOSTS/$HOST/$YEAR/$MONTH/$DAY/$FACILITY$YEAR$MONTH$DAY"
  owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes)); 
};
  • do databáze

Pro ukládání do databáze je možné využít program sqlsyslog. Pravidlo pak může vypadat nějak takhle.

destination server1-database { 
  program("/usr/local/sbin/sqlsyslogd -u sqlsyslogd -t logs sqlsyslogd -p");
};

Nakonec je potřeba určit samotné logovací pravidlo.

log {
  source(server1);
  filter(notdebug);
  destination(server1);
};

Pokud chcete posílat logy na tento logovací server po síti z nějakého jiného serveru tak část destination na serveru server1 bude vypadat nějak takhle:

destination from-server1 {
  udp("10.143.0.1");
}; 


Další zdroj informací: [1].


--Sevcik.roman 00:53, 25. 2. 2008 (CET)