Kategoria: Logging & Syslog

  • (TK) Protokół Syslog**

    (TK) Protokół Syslog**

    Wstęp teoretyczny

    • Oprócz podstawowej opcji przeglądania komunikatów systemowych za pomocą komendy [show logging], konsoli bądź połączenia zdalnego VTY, istnieje możliwość automatycznego przesyłania wszystkich wygenerowanych przez system IOS komunikatów systemowych, na zdalny serwer Syslog. Tym samym administrator sieci zyskuje możliwość przechowywania oraz wyświetlania wszystkich komunikatów systemowych dotyczących wszystkich urządzeń sieciowych, w jednym miejscu, w łatwy sposób generując na ich podstawie np. diagramy czy statystyki.
    • W celu przesyłania komunikatów systemowych protokół Syslog wykorzystuje połączenie UDP na porcie 514.

    Konfiguracja protokołu Syslog

    Podstawowa konfiguracja Synlog

    Konfiguracja komunikatów systemowych (SysLog)

    (config)# logging host {nazwa-DNS / adresy-IP} [wartość]

    Określa adres IP bądź nazwę DNS serwera Syslog (Opcjonalnie istnieje możliwość dodania większej liczby serwerów Syslog w celu uzyskania nadmiarowości).
    * brak – Określa adres serwera Syslog bez dodatkowych opcji (Jest to opcja domyślna).
    * transport {tcp port 1-65535 / udp port 1-65535}(udp port 514) – Określa protokół (TCP / UDP) oraz port warstwy czwartej wykorzystywany w komunikacji z serwerem Syslog.
    * prefer – Określa preferowany serwer Syslog (W przypadku użycia większej liczby komend [logging host]).
    * xml – Rozpoczyna wysyłanie komunikatów (logging-ów) w formacie XML.
    * discriminator – Przypisuje regułę filtracji komunikatów systemowych, przed wysłaniem ich do serwera Syslog (Filtracja wiadomości systemowych została opisana w artykule: Konfiguracja logów systemowych).
    * sequence-num-session – Dodaje numer ID sesji do wysyłanych komunikatów systemowych.
    * session-id {hostname / ipv4 / ipv6 / string text} – Dodaje identyfikator urządzenia do wysyłanych komunikatów systemowych.

    (config)# logging trap {0-7 / nazwa-poziomu}

    Określa poziom komunikatów systemowych wysyłanych na serwer Syslog.

    (config)# logging facility {local0-7 / sys10-14}(local0-7)

    Wszystkie komunikaty wysyłane na serwer Syslog, domyślnie przynależą do kategorii „local7”, tym samym wiadomości z wielu urządzeń sieciowych trafiają do jednego katalogu. Aby to zmienić należy np. ustawić jedną kategorie zarezerwowaną dla przełączników a inną dla ruterów.

    (config)# logging source-interface interfejs

    Określa interfejs źródłowy względem wysyłanych komunikatów systemowych do serwera Syslog.

    Konfiguracja komunikatów systemowych (SNMP)

    (config)# logging history {0-7(Poziom loginów) / nazwa-poziomu}

    Określa poziom komunikatów systemowych zapisywanych w pliku historii a następnie przesyłanych do serwera SNMP.

    (config)# logging history size 0-500(0)

    Określa limit wiadomości przetrzymywanych w pliku historii.

    Ograniczanie liczby komunikatów wysyłanych na serwer Syslog

    (config)# ip access-list logging interval 0-2147483647(Milisekundy)*

    Ogranicza liczbę pakietów (Logging) przetwarzanych przez procesor urządzenia, do określonej liczby pakietów na jedną milisekundę.

    (config)# logging rate-limit [wartość] 1-10000(10)(Sekundy) [except {0-7 / nazwa-poziomu}]

    Wprowadza limit wysyłanych do serwera Syslog, komunikatów systemowych. Ograniczając ich liczbę do podanej w komendzie wartości (Komunikatów na sekundę). Opcjonalna wartość (Except) określa jakich poziomów (Severity) nie będzie dotyczyło dane ograniczenie (Limit). Wartość określa dany poziom (Severity) oraz wszystkie niższe poziomy (Np. 4 oznacza zakres od 4 do 7).
    * brak – Brak dodatkowych opcji (Jest to opcja domyślna).
    * all – Dotyczy wszystkich poziomów komunikatów (po użyciu tej wartości opcja „except” jest zbędna).
    * console {non / all} – Dotyczy jedynie wiadomości wysyłanych na konsole.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji wskazanego interfejsu sieciowego.

    (config-if)# no logging event [link-status / subif-link-status]

    Aby zapobiec wysyłaniu na serwer Syslog niepotrzebnych komunikatów związanych z stanem interfejsów sieciowych, istnieje możliwość zablokowania tych wiadomości z poziomu określonego interfejsu bądź wielu interfejsów sieciowych.

    Pozostałe tematy związane z protokołem Logging & Syslog

  • (K) Konfiguracja logów systemowych**

    (K) Konfiguracja logów systemowych**

    Konfiguracja podstawowa

    Konfiguracja Logging-ów na konsoli

    Podstawowa konfiguracja logging-ów na konsoli

    (config)# logging console {0-7 / wartość}

    Określa poziom komunikatów systemowych, jaki będzie wyświetlany na linii konsoli CLI (zarówno konsola jak i połączenia zdalne nie są zalecanymi metodami przeglądania komunikatów systemowych).
    * emergencies (0) – Urządzenie nie nadaje się do użytkowania.
    * alerts (1) – Istnieje potrzebna natychmiastowa interwencja.
    * critical (2) – Sytuacja krytyczna, wymaga interwencji.
    * errors (3) – Wykryto błędy.
    * warnings (4) – Ostrzeżenie systemowe.
    * notifications (5) – Zwykłe, ale ważne informacje.
    * informational (6) – Komunikaty informacyjne o zdarzeniach.
    * debugging (7) – Komunikaty związane z debugowaniem.

    (config)# logging buffered [4096-2147483647(bity) / {0-7(Poziom loginów) / nazwa-poziomu} / xml]

    Aktywuje funkcję zapisywania komunikatów systemowych w pamięci ulotnej urządzenia lokalnego (Opcja ta nie jest domyślnie włączona w systemie IOS).
    * 4096-2147483647 – Określa ilość pamięci zarezerwowanej względem przetrzymywanych komunikatów systemowych (domyślnie system rezerwuje w tym celu 4096 bitów co pozwala zapisać około 50 komunikatów).
    * {0-7 / nazwa-poziomu} – Określa poziom komunikatów systemowych zapisywanych w pamięci ulotnej urządzenia.
    * xml – Włącza funkcję wyświetlania komunikatów systemowych w formacie XML.

    (config)# default logging buffered

    Przywraca domyślną konfigurację komunikatów systemowych względem konsoli CLI.

    (config)# logging count

    Aktywuje automatyczny licznik zapisywanych komunikatów systemowych (Bez jednoczesnego nadpisywania ustawień związanych z wyświetlaniem czasu service timestamps”).

    # show logging

    Wyświetla informacje dotyczące konfiguracji komunikatów systemowych.

    Konfiguracja logging-ów informujących o próbie logowania do systemu IOS

    (config)# login on-success [{log / trap}] [every 1-65535]

    Umożliwia monitorowanie procesu logowania do systemu ISO, informując o pozytywnym jego zakończeniu. Pod-komenda „log” zapisuje w pamięci urządzenia oraz wyświetla na konsoli CLI potwierdzenie o zalogowaniu się użytkownika, „trap” generuje wiadomość protokołu SNMP, natomiast „etery” określa częstotliwość w wysyłaniu powiadomień.

    (config)# login on-failure [{log / trap}] [every 1-65535]

    Umożliwia monitorowanie procesu logowania do systemu ISO, informując o negatywnym jego zakończeniu. Pod-komenda „log” zapisuje w pamięci urządzenia oraz wyświetla na konsoli potwierdzenie o niezalogowaniu się użytkownika, „trap” generuje wiadomość protokołu SNMP, natomiast „etery” określa częstotliwość w wysyłaniu powiadomień.

    # show logging

    Wyświetla informacje dotyczące konfiguracji komunikatów systemowych.

    Konfiguracja logging-ów względem innych protokołów

    (config)# ntp logging

    Aktywuje generowanie komunikatów systemowych, związanych z protokołem NTP.

    (config)# ip ssh logging events

    Aktywuje generowanie komunikatów systemowych, związanych z protokołem SSH.

    (config)# router ospf ASN

    Przechodzi do poziomu konfiguracji protokołu OSPF.

    (config-router)# log-adjacency-changes

    Aktywuje generowanie komunikatów systemowych, związanych z protokołem OSPF.

    Konfiguracja nieulotnej bazy logging-ów (Persistent)

    (config)# logging persistent [wartość]

    Zapisuje komunikaty systemowe w pamięci nie ulotnej. (Opcja ta nie jest domyślnie włączona w systemie Cisco IOS). Opcjonalne pod-komendy oznaczają:
    * filesize 8192-2142715904(bajty) – Określa rozmiar pojedynczego pliku zawierającego komunikaty.
    * size 16384-2142715904(bajty) – Określa wielkość przestrzeni zarezerwowanej na potrzeby komunikatów.
    * protected – Zapobiega nieautoryzowanej manipulacji na zawartości zapisanych komunikatów systemowych.
    * immediate – Natychmiastowo zapisuje występujące komunikaty systemowe w pamięci nie ulotnej.
    * notify – Informuje o aktywacji funkcji „persistent”.
    * url – Określa lokalizację zapisywanych komunikatów systemowych.

    # show logging

    Wyświetla informacje dotyczące konfiguracji komunikatów systemowych.

    Filtrowanie logging-ów

    (config)# logging discriminator nazwa-filtra {wartość} {drops / includes} wartość(Słowo kluczowe filtracji np. numer poziomu komunikatów systemowych 1,5) [Kolejna wartość filtrująca]

    Tworzy nową regułę umożliwiającą filtrację komunikatów systemowych (Drop), tudzież regułę umożliwiającą przepuszczanie jedynie wskazanych komunikatów systemowych (Includes). Poniższe wartości określają kryterium na podstawie którego będą filtrowane komunikaty systemowe:
    * msg-body – Filtruje komunikaty systemowe po zawartości komunikatu.
    * facility – Filtruje komunikaty systemowe po unikalnym kodzie błędu.
    * severity – Filtruje komunikaty systemowe po wadze poziomu (severity).
    * mnemonics
    * rate-limit

    (config)# logging {host adres-IP / consol / monitor} discriminator nazwa-filtra

    Przypisuje stworzoną regułę filtracji komunikatów systemowych, do konsoli, połączenia zdalnego bądź serwera syslog.

    # show logging | include nazwa-filtra

    Wyświetla konfigurację funkcji “discriminator“, wraz z komunikatami przez nią zablokowanymi.

    # show logging

    Wyświetla informacje dotyczące konfiguracji komunikatów systemowych, w tym informacje dotyczące funkcji “discriminator“.

    Konfiguracja logging-ów na interfejsie Management-owym

    (config)# logging source-interface interfejs vrf Mgmt-intf

    Wartość „Mgmt-intf” zależy od lokalnej konfiguracji systemu Cisco IOS.
    Wyświetlanie komunikatów systemowych (Cisco IOS)

    Konfiguracja logging-ów na terminalu zdalnym

    (config)# terminal [no] monitor

    Wyłącza / Włącza funkcję wysyłania logging-ów systemowych na konsole zdalną (Komenda jest dostępna jedynie z poziomu konfiguracji zdalnej np. poprzez połączenie SSH bądź Telnet).

    (config)# logging monitor {0-7 / nazwa-poziomu}

    Określa poziom komunikatów systemowych wysyłanych na konsole zdalną SSH bądź połączenie Telnet.

    (config)# line vty 0-924 4-924(Zakres konfigurowanych linii VTY)

    Przechodzi do poziomu konfiguracji linii zdalnej.

    (config-line)# logging synchronous

    Blokuje wyświetlanie komunikatów systemowych podczas przeglądania wydruku komendy Show oraz w czasie wprowadzania innych komend z poziomu konsoli CLI.

    # show logging

    Wyświetla informacje dotyczące konfiguracji komunikatów systemowych.

    Konfiguracja opcjonalna

    Czas systemowy w logging-ach

    Zmiana ustawień związanych z wyświetlaniem czasu komunikatów systemowych, może nadpisać cześć wcześniejszej konfiguracji związanej z komunikatami systemowymi (W tym np. filtrowanie logging-ów).

    Konfiguracja czasu w komunikatach systemowych (Logging-ów)

    (config)# service timestamps log datetime localtime [show-timezone] [msec] [year]

    Dodaje do wyświetlanych komunikatów systemowych, aktualny czas pobrany z urządzenia lokalnego localtime, wyświetlając oprócz obecnej godziny, milisekundy msec, rok year oraz skonfigurowaną strefę czasową show-timezone.

    (config)# service timestamp log uptime

    Dodaje do wyświetlanych komunikatów systemowych informację o czasie, jaki upłynął od ostatniego zrestartowania urządzenia (Zamiast czasu pobranego z urządzenia lokalnego localtime).

    (config)# [no] service sequence-number

    Wyłącza / Włącza funkcją dodawania numeru sekwencyjnego do komunikatów systemowych (Zamiast czasu urządzenia lokalnego bądź czasu jaki upłynął od restartu systemu IOS). Numer ten wzrasta z każdym wyświetlonym komunikatem systemowym.

    (config)# logging count

    Włącza automatyczny licznik zapisywanych komunikatów systemowych (Bez nadpisywania czasu wystąpienia komunikatu systemowego).

    # show logging

    Wyświetla informacje dotyczące konfiguracji komunikatów systemowych.

    Konfiguracja komunikatów debagujących (Debug)

    (config)# service timestamps debug datetime localtime [show-timezone] [msec] [year]

    Dodaje do wyświetlanych komunikatów debagujących, aktualny czas pobrany z urządzenia lokalnego localtime, wyświetlając oprócz obecnej godziny, milisekundy msec, rok year oraz skonfigurowaną strefę czasową show-timezone.

    (config)# service timestamp debug uptime

    Dodaje do wyświetlanych komunikatów debagujących informację o czasie, jaki upłynął od ostatniego zrestartowania urządzenia (Zamiast czasu pobranego z urządzenia lokalnego localtime).

    # show logging

    Wyświetla informacje dotyczące konfiguracji komunikatów systemowych.

    Komendy Show & Clear

    Komendy SHOW

    # show running-config | include logging

    Wyświetla komendy konfiguracyjne względem funkcji logging-ów systemowych.

    # show logging

    Wyświetla wszystkie zapisane w pamięci komunikaty systemowe, wraz z ustawieniami protokołu Syslog oraz Logging.

    # show logging xml

    Wyświetla wszystkie zapisane w pamięci komunikaty systemowe, w postaci formatowania XML.

    Komendy CLEAR

    # clear logging

    Usuwa historie logging-ów z pamięci urządzenia.

    Pozostałe tematy związane z protokołem Logging & Syslog

  • (T) Teoria logów systemowych**

    (T) Teoria logów systemowych**

    Budowa wiadomości Systemowych

    • Przykładowy komunikat systemu Cisco IOS: 00:30:29 %SYS5CONFIG_I Configured from Console by Console.
    • Niezależnie od poziomu komunikatu systemowego, jego budowa jest taka sama, i zawiera następujące informacje:
      • Czas, który upłynął od ostatniego zrestartowania urządzenia bądź dokładną datę z godziną (00:30:29).
      • Kategorię błędu definiującą funkcję bądź moduł dotyczący zdarzenia (%SYS).
      • Wagę błędu (severity) z zakresu od 0 do 7 (5).
      • Rodzaj błędu określony unikalnym hasłem (CONFIG_I).
      • Zrozumiały dla człowieka opis błędu (Configured from Console by Console).
    • Poszczególne komunikaty systemu IOS posiadają przypisaną wagę (severity), określającą priorytet zdarzenia jakie zaszło na urządzeniu. Każdy poziom (priorytet) posiada swój numer ID oraz nazwę, a są one następujące:
    Poziom Nazwa poziomu Opis poziomu Definicja Syslog Przykładowe komunikaty poziomu
    0 Emergencies Urządzenie nie nadaje się do użytku LOG_EMERG System nie mógł być załadowany
    1 Alerts Potrzebna natychmiastowa interwencja LOG_ALERT Za wysoka temperatura
    2 Critical Sytuacja krytyczna LOG_CRIT Błąd alokacji pamięci
    3 Errors Błędy LOG_ERR Włączenie bądź wyłączenie interfejsu
    4 Warnings Ostrzeżenia LOG_WARNING Zapisano plik przy użyciu SNMP
    5 Notifications Zwykłe, ale ważne informacje LOG_NOTICE Interfejs został włączony
    6 Informational Komunikaty informacyjne LOG_INFO Lista ACL zablokowała pakiet
    7 Debugging Komunikaty związane z debugowaniem LOG_DEBUG Komunikaty debugowania

    Poziomy komunikatów systemowych

    Pozostałe tematy związane z protokołem Logging & Syslog