Centralizované uložiště pro logy rubrika: Administrace: Software

4 joker806
položil/-a 7.12.2014

Zdravím,

rád bych se zeptal, jak řešíte centralizované vedení logů z více aplikací a serverů.

Ve firmě jsme začali se Sentry, kam si logujeme chyby a výjimky v aplikacích. To je dobré, protože dává k dispozici dost informací k dohledání problému (stack trace, proměnné prostředí atd.), ale nehodí se k záznamu většího množství zpráv a hlavně se v něm dost špatně hledá dál v historii.

Nově bysme rádi začali centrálně sledovat i běžné logy (různé důležité události v aplikaci, crony, access logy apod.). Hledám tedy řešení, které by bylo schopné zpracovávat klasické řádkové logy a hlavně v nich nějak šikovně vyhledávat.

Zatím mám zkušebně zprovozněný Graylog2, který mi přišel, že je přesně na toto dělaný. Koukal jsem ještě třeba na Logstash + Kibanu. Ta mi ale přijde stavěná spíš pro záznam číselných metrik a grafíků, než textových logů (což nás asi ale čeká v dalším kroku :)). Má s těmito dvěma někdo praktické zkušenosti? Nebo byste doporučili ještě jiné řešení? (Loggly, Splunk, Fluentd, ??)

Také by mě zajímali případně zkušenosti s fyzickým nasazením - stačí vám na vše jeden stroj? Posíláte zprávy napřímo nebo máte vloženou nějakou frontu? Kolik zvládne řádově zpracovat zpráv?

Díky.

odkaz
5 Nehalem
odpověděl/-a 8.12.2014

Dříve jsem také používal Splunk, ale hlavně díky jeho omezení na 500MB za den v free verzi a jeho ceně pro další rozšíření
jsem byl nucen přejít jinam.

Nyní používám kombinaci Lumberjack, Logstash, Redis, ElasticSearch, Kibana, Nagios.

Služby (apache, server logy, daemoni, servery ...) mají na sobě nainstalovaný lumberjack (osekaná, méně žravá verze Logstashe).
Zařízení (switche, firewally, ...) jsou vyčítaná z jednoho serveru, který má na sobě logstash.

Obě tyto instance zasílají logy na Redis (queue), který je dále vyčítán samotnou instancí Logstashe, která slouží jako poslední parser.
Tato instance dle okolnosti dále ukládá eventy buďto do ElastisSearch (indexer), či přímo do Nagiosu (či helpdesku).

Na výčet informací a agregace používám zmíněnou Kibanu. Chce to chvíli si s tím pohrát a pak to ukazuje to, co chcete :)

Takže mám následující:

Apache           -->  Logstash          --> Redis (queue) --> Logstash (Parser)  --> ElasticSearch --> Kibana
Switch (snmp)    <--> Server (Logstash) -->                                      --> Nagios (SMS, Email, Helpdesk, ...)
Firewall (snmp)  <--> 

Nasazeno pro 60 serverů, 400 služeb, 60 zařízení. Chce to poladit ElasticSearch na úrovni nastavení i stroje na kterém běží, dat tam teče hodně. Dále je velice vhodné, možná až nutné mít více shardů elasticsearche, pro redundanci.
Index prohledává realtime "vcuku blesku" :)

Komentáře

  • podhy : Díky za komentář něco podobného totiž v průběhu roku 2015 budeme také vytvářet :-). Měl bych jednu otázku. Ukládáte si logy (surové) ještě někam bokem kdyby vám došlo např. k nějakému problému a nemohli jste je nahrát do elasticu? Jak dlouhé období si v elasticu držíte? 8.12.2014
  • Nehalem : 1) Surové logy si jinam než do ES neukládáme, asi pro to zatím není důvod. 2) Otevřené indexy mám za poslední týden 3) Zavřené indexy mám za poslední rok a když potřebuji, otevřu si je (aby nebraly paměť) 8.12.2014
  • Nehalem : Jen ještě doplním, že Nagios nebere pouze z Logstashe. Z 80% žere hlavně SNMP, Ping,http, requesty a data ze zařízení. Z logstashe bere jen data z logů. Jinak na grafy atd. klasika Cacti :) 8.12.2014
  • joker806 : Supr, díky za vyčerpávající odpověď. Přesně něco takového jsem potřeboval. 9.12.2014

Pro zobrazení všech 7 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.