luktom.net
  • blog
  • kontakt
  • english





Icinga2 i monitorowanie podłączenia hostów przy użyciu cluster-zone

24 sie, 2017
Sieci komputerowe
Brak komentarzy
Odsłony : 3458

Dzisiejszy post będzie o tym, jak należy poprawnie konfigurować Icingę2 w celu monitorowania stanu hosta (UP/DOWN). Temat niby trywialny i powinno działać od razu, ale jak się okazuje – a poświęciłem na jego zgłębienie kilka dobrych godzin – dokumentacja nie jest wystarczająco precyzyjna, a podobnych pytań o to jak to poprawnie skonfigurować znalazłem w sieci mnóstwo (niestety bez rozwiązań).

Nakreślmy więc problem:

  • Mamy Icinga2 w konfiguracji z wieloma strefami, jedna strefa master i po jednej strefie na każdego hosta.
  • Korzystamy z podejścia top-down, zalecanego w dokumentacji Icingi2, a więc konfiguracja jest synchronizowana z mastera do poszczególnych hostów obsługujących każdy swoją strefę.
  • W ramach definicji obiektu danego hosta używamy cluster-zone jako check_command celem zbadania połączenia z danej strefy do mastera – choćby dlatego, że poszczególne hosty są za firewallem i nie możemy ich bezpośrednio pingować z mastera.

Co więc może pójść nie tak?

Otóż okazuje się, że taka (aż się prosi, aby dopisać „domyślna”) konfiguracja się nie sprawdzi tzn. jeśli nastąpi awaria hosta to Icinga2 nie zareaguje wywołując alert – jedyną reakcją będzie oznaczenie checka cluster-zone jako late check. To jednak nie powoduje alertów.

Dzieje się tak dlatego, że domyślne w konfiguracji top-down takowy check wykonuje się… na hoście, którego badamy! Stąd, gdy host ulega awarii to nie jest w stanie zgłosić rezultatu checka do mastera.

Aby uzyskać poprawne zachowanie czyli alert w momencie, gdy host ulega awarii musimy ręcznie wymusić wywołanie checka cluster-zone na… masterze. W praktyce sprowadza się to do dodania następującej konfiguracji (czy to w szablonie hosta, czy też bezpośrednio w obiekcie hosta):

check_command = "cluster-zone"
vars.cluster_zone = name
zone = "master"

Gdzie master to oczywiście nazwa naszej strefy mastera (może być różna, w zależności od konfiguracji).

Jednak to nie wszystko. Ustawienie strefy wyłącznie w konfiguracji szablonu hosta powoduje, że wszystkie usługi od niego zależne… też wykonają się na masterze! Konieczna jest więc modyfikacja szablonu usługi i ustawienie w niej:

zone = host.name

Powyższa konfiguracja daje nam następujące efekty:

  • Wszystkie checki usług będą się wykonywała tak jak powinny, czyli na wskazanym hoście.
  • Checki związane ze sprawdzeniem czy host jest UP wykonają się na masterze, co sprawi że:
  • W przypadku awarii hosta master poprawnie zgłosi ten fakt i umożliwi powiadomienia.

Mam nadzieję, że tym wpisem oszczędziłem komuś czasu na rozwiązywanie podobnych problemów :)



Tagi :   cluster-zoneicinga2monitoring

Powiązane wpisy

  • The Dude – genialny monitor sieci

  • Dodaj komentarz

    Click here to cancel reply

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>





    Łukasz Tomaszkiewicz

    Łukasz Tomaszkiewicz

    Pasjonat chmury, szczególnie AWSa, który nieustannie automatyzuje powtarzające się czynności i optymalizuje procesy, przy okazji wdrażając dobre praktyki dotyczące bezpieczeństwa. Jego szerokie doświadczenie w zakresie tworzenia oprogramowania, projektowania baz danych, a także wirtualizacji serwerów i zarządzania infrastrukturą w chmurze pozwala mu spojrzeć przekrojowo na współczesny stack technologiczny.

    W wolnym czasie fotograf, sporadycznie piszący blogger :) a także regularny prelegent na krakowskich grupach związanych z IT.

    Wyznawca Vim'a :)

    Kategorie

    • Ansible
    • AWS
    • C#
    • Chatboty
    • Cloud
    • Daj się poznać 2017
    • Docker
    • Inne
    • Linux
    • Open source
    • Organizacyjne
    • Prelekcje
    • Sieci komputerowe
    • SQL Server
    • Windows
    • Windows Server
    • Wirtualizacja

    Najczęściej czytane

    • Creating single node VSAN cluster
    • SQL Server – walidacja numerów PESEL i NIP
    • Konfiguracja serwera DHCP na routerach Cisco
    • Aktywacja routingu IP w Windows 7 / Windows Server 2008
    • Konwersja maszyn wirtualnych z ESXi do Hyper-V przy użyciu SCVMM 2012
    • Jak podłączyć program R do SQL Servera?

    Tagi

    .net ai ansible asp.net mvc aws aws cli bot builder bot framework c# centos certyfikaty chatbot chatboty cisco cmd docker dsp2017 esxi hyperv kontenery konteneryzacja linux mvc nlp openvpn plssug pobieranie powershell prelekcje rancher redhat router sieci smogbot sql server ssd ssl vmware vsphere windows windows mobile windows server wirtualizacja wit.ai wrzuta

    Copyright © 2006-2018 by Łukasz Tomaszkiewicz. Wszelkie prawa zastrzeżone