RSS Feed

‘monitoring’ Category

  1. Zbiorcza aktywacja ulepszeń InsertGT dla wielu podmiotów w BiuroGT

    Styczeń 12, 2013 by 0verlord

    Każdy, kto kiedykolwiek aktualizował Inserta w dowolnym biurze rachunkowym, obił się o problem pt.: zbiorcza aktywacja ulepszeń. A to wszystko jest bardzo proste.

    Ale po kolei. Jeżeli nie mamy do dyspozycji BiuraGT – jest przerypane, bo każdy podmiot trzeba aktualizować i aktywować osobno. Czyli jeżeli biuro rachunkowe korzysta z Inserta, a nie ma biura GT – zasugerujcie im zakup pod groźbą podwyższenia faktury, lub rozliczania aktualizacji na godziny.

    Jeżeli już się biuro ma, sprawa jest prosta i wygląda tak:

    aktualizacja: BiuroGT -> Widok -> bazy danych (lub alt+6) -> nad listą podmiotów będzie „konwersja”. Klikamy, i się robi. Trzeba tylko zadbać o poprawne parametry dla Archiwizatora, bo inaczej nie zrobi się kopia czyli nie zrobi się aktualizacja.

    a teraz punkt główny tego wpisu, tj. aktywacja ulepszeń. Jeżeli nie jest zrobiona, przy podłączeniu do konkretnego podmiotu system „zaproponuje aktywację”. Ale jeżeli podmiotów jest np. 100, klikanie tego ręcznie to masakra – wzywamy na ratunek BiuroGT.

    Zaraz pod opcją „Konwersja” z akapitu wyżej, jest opcja „Synchronizacja licencji”, po kliknięciu której dostajemy takie okno:

    insert gt licencja aktywacja ulepszeń

    I teraz, jeżeli klikniemy po prostu dalej, system będzie miał zapisane stare numery aktywacyjne i nic nie zrobi. Potrzebujemy nowe numery – o ile oczywiście mamy wykupiony abonament na ulepszenia. Załóżmy, że mamy.

    Klikamy w opcję oznaczoną prostokątem, i lądujemy tutaj:

    insert pobieranie numerów

    Klikamy, a jakże, „Pobierz numery aktywacyjne” i numery się pobierają. Jak się pobrały, klikamy ok, i lądujemy na pierwszym ekranie synchronizacji licencji. Tym razem zaznaczamy opcje wg screena i dajemy dalej.

    insert synchro licencji

    Ulepszenia się aktywują z nowymi numerami. Meldujemy w centrali wykonaną misję „Nowy Subiekt”.


  2. monitoring systemu w pasku menu w OSX Lion

    Sierpień 21, 2011 by 0verlord

    Fajnie jest mieć monitoring w pasku menu. Od razu widać, czy coś nam nie żre pamięci, nie zabija sieci, czy też nie dzieją się inne rzeczy.

    Generalnie do czasów Snow Leoparda korzystałem z iStatMenus, były za darmo i były fajne. Po upgrade do Liona, niestety przestały działać, a wersja 3.x niestety jest płatna. Niewiele w sumie, bo 16$, ale zawsze.

    Poszukałem alternatyw i jak na razie tylko jedna jest sensowna, atMonitor, wygląda średnio co prawda, ale działa jak należy. Nie znalazłem też opcji chowania ikony z docka, a szkoda. Z ciekawostek, ma triggery, czyli wyświetla alarmy, jeżeli jakiś wskaźnik pokaże zbyt dużą, zdefiniowaną wcześniej wartość.

    Wygląda toto tak:

    Z płatnych, jest w AppStorze System Monitor. Ten kosztuje niecałe 5$ i wygląda całkiem zacnie. 15 pln to jeszcze nie jest zdzierstwo w biały dzień ;-).

    A z cyklu: „nie tykać, omijać z daleka” jest sobie Magician Monitor.

    Nie chciało mi się dalej szukać, oczywiście można by poszukać wersji z krakowa (błąd celowy, korekta nie poprawiać), no, ale to już jak kto woli.


  3. Tcptrack i Debian Squeeze

    Maj 25, 2011 by 0verlord

    Można się zdziwić, że po upgrade do Squeeze’a tcptrack nie działa. Wyjaśnienie jest tu: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=602232.

    Generalnie chodzi o to, że działająca wersja 1.4.x nie zdążyła wejść do Squeeze’a, a stara nie działa na nowym kernelu. Czyli grave bug i paczka wyleciała ze stabla. Czyli trzeba by sobie zbackportować nowszą wersję z SIDa, bo nawet na backports.debian.org jej nie ma.


  4. Konfiguracja Nagiosa – dziedziczenie

    Kwiecień 18, 2011 by 0verlord

    W sumie, to takie HOWTO, ale nie HOWTO, bo jednak podstawową wiedzę o Nagiosie trzeba mieć, to taki esej o możliwościach konfiguracji Nagiosa. Tym razem będzie o dziedziczeniu i zmiennych.

    Po pierwsze: dziedziczenie.

    Nagios zapewnia całkiem ciekawe możliwości dziedziczenia. Każdy, kto zapoznał się z podstawami templatek (dyrektywa use), wie, że pomiędzy różnymi częściami konfiga można przekazywać wiele parametrów. Dokumentacja o tym nie wspomina, ale można je także nadpisywać. Na przykład:

    definiujemy templatkę ogólną hosta, nic szczególnego, żywcem wyjęta z dokumentacji:
    define host{
    name generic-host ; The name of this host template
    notifications_enabled 1 ; Host notifications are enabled
    event_handler_enabled 1 ; Host event handler is enabled
    flap_detection_enabled 1 ; Flap detection is enabled
    failure_prediction_enabled 1 ; Failure prediction is enabled
    process_perf_data 1 ; Process performance data
    retain_status_information 1 ; Retain status information across program restarts
    retain_nonstatus_information 1 ; Retain non-status information across program restarts
    check_command check_ping!120.0,15%!300.0,60%
    max_check_attempts 10
    notification_interval 0
    notification_period 24x7
    notification_options d,u,r
    contact_groups admins
    register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
    }

    a potem hosta:

    define host{
    use generic-host
    host_name mojhost.pl
    alias alias
    address 1.2.3.4
    parents gateway
    contact_groups admini,mroczniadmini
    }

    Ogólnie dokumentacja mówi o takich szablonach bardziej jako o sposobie, żeby nie w kółko nie pisać tych samych kawałków konfiga i tych samych dyrektyw. Ale sam mechanizm jest bardziej mroczny i przydatny. Jeżeli w templatce zdefiniujemy jakąś dyrektywę, ale jakiś host powinien mieć którąś opcję zdefiniowaną inaczej, można ją nadpisać. Na przykład tak:

    define host{
    use generic-host
    host_name mojhost.pl
    alias alias
    address 1.2.3.4
    parents gateway
    max_check_attempts 20
    contact_groups admini,mroczniadmini
    }

    W tym przypadku, nadpisujemy max_check_attempts. Gdybyśmy tego nie zdefiniowali, obiekt odziedziczyłby predefiniowaną wartość max_check_attempts 10 z definicji templatki (use generic-host.
    To jest proste, zapewne intuicyjnie wiele razy korzystaliście z takiego sposobu – teraz będziecie robić to świadomie ;-).

    Po drugie: zmienne.

    Ten mechanizm można także wykorzystać do przekazywania i nadpisywania zmiennych. W dokumentacji są to custom object variables.
    Poniżej opiszę, jak przekazać community snmp i jednocześnie zachować możliwość nadpisania go dla dowolnego hosta.

    Weźmy np. taką, uproszczoną do minimum, templatkę:
    define host {
    name generic-host
    register 0 # to templatka, więc 0
    _snmp_community blabla
    }

    i hosta wykorzystującego tą templatkę:

    define host {
    host_name testowy
    use generic-host
    _snmp_community bleble
    }

    I teraz, gdzie tutaj sztuczka magiczna?
    Ogólnie mamy dwa razy zdefiniowaną zmienną, _snmp_community (w Nagiosie każda wartość zaczynająca się od podkreślenia, _ to zmienna). Według zasad dziedziczenia ta, która została zdefiniowana ostatnia – wygrywa. Czyli nasz host ma ustawioną zmienną na bleble, a jeżeli nie nadpiszemy tej zmiennej – zostanie blabla. Ayt? 🙂 Tylko jak to teraz wstawić do definicji serwisu?

    Żeby uniknąć duplikacji zmiennych, Nagios automatycznie dodaje każdej prefix, w zależności od miejsca zdefiniowania. _HOST, _SERVICE i _CONTACT, czyli naszą zmienną _snmp_community, możemy w dowolnym innym miejscu konfiga odczytać jako $_HOSTSNMP_COMMUNITY$. Oczywiście trzeba uważać, żeby sobie tej zmiennej nie nadpisać w innym miejscu tej samej sekcji.

    Czyli teraz bierzemy definicję serwisu wykorzystującego community snmp, np. taką, i zamiast wpisywać do check_command po prostu community, wstawiamy tam naszą zmienną, np. tak jak w przykładzie poniżej:

    define service {
    host mojhost
    service_description snmp-uptime
    display_name SNMP System uptime
    check_command check_system_uptime!$_HOSTSNMP_COMMUNITY$
    use generic-service
    notification_interval 0 ;
    }

    W ten sposób ustawiamy community dla hosta tam, gdzie to wynika ze zdrowego rozsądku, tj. w definicji hosta, a serwisy już automagicznie biorą właściwą wartość.

    W następnych postach pokażę jeszcze kilka sztuczek optymalizacyjnych i organizacyjnych, np. jak optymalnie wykorzystać hostgroupsy.


  5. nagiosgraph i poprawiony deb

    Marzec 14, 2011 by 0verlord

    Dzisiaj deweloper poprawił deba z nagiosgraphem, już się instaluje pod Squeezem, i nie plumka o błedną wersję paczki. Konkretnie paczka jest dostępna tu. Wersja 1.4.4-2 instaluje się pod Squeeze, wersja 1.4.4_all pod Lennym.

    Po zainstalowaniu działa od razu, trzeba tylko dodać odpowiednie wpisy do templatki i serwisów. Przy okazji opiszę dokładniej.

    Przydałby się jakiś deweloper Debian obeznany z paczkami i Debian Policy, może by mi wytłumaczył OCKB z tymi wersjami i co się zmieniło w polityce, że nagle _all przestało działać. W każdym razie dobrze, że panowie poprawili nagioagrapha, sporo rypania się z instalację mniej.


  6. nagiosgraph,rrd, nan i brak wartości na grafie

    Styczeń 24, 2011 by 0verlord

    Ot takie coś trafiłem.

    on Jan 24 18:32:20 2011 p1.pl error RRDs::update ERR /var/spool/nagiosgraph/rrd/internal/HTTP___time.rrd: conversion of ‚0,000000’ to float not complete: tail ‚,000000’

    Efektem tego komunikatu jest wyświetlanie pustego wykresu z ostatnimi wartościami typu nan (not a number) czyli ogólnie nic nie wyświetlającego.
    Po dłuższej chwili dłubania wyszło i szukania, że jest to błąd spowodowany ustawieniem localesów (konkretnie wartości LC_NUMERIC) na coś innego niż „C”. U mnie jest pl_PL.UTF-8, ale niestety skrypty perlowe upychające perfdata do rrd niezbyt to rozumieją.

    Sam komunikat wbrew pozorom jest dość jasny – chodzi tutaj o skrypt p1.pl, który w domyślnej instalacji siedzi w /usr/lib/nagios3
    Dodajemy temu skryptu na początku coś w tym stylu:

    BEGIN {
     $ENV{LC_NUMERIC} = 'C';
    }
    

    albo cokolwiek innego ustawiającego LC_NUMERIC na ‚C’ i nagle nan już jest normalną wartością. Eh, uwielbiam takie akcje.

    W każdym razie, ten problem dotyczy wszystkich localesów, w których poprawną miejsce dziesiętne w liczbie jest oznaczane przecinkiem, a nie kropką.


  7. Monitorowanie interfejsu po snmp w Nagiosie

    Styczeń 15, 2011 by 0verlord

    Skryptów sprawdzających to wszystko jest dość sporo. Jeżeli ktoś nie ma potrzeby monitorowania ani rysowania liczby pakietów na interfejsie (pps), może skorzystać z np. check_snmp_int.pl lub jego kolegi check_snmp_netint.pl
    Powyższe skrypty doskonale dają sobie radę z interfejsami i ruchem na nich.

    Natomiast jeżeli ktoś zapragnie monitorować ppsy, w zasadzie zostaje mu tylko kawałek pakietu SNMP4Nagios, który posiada odpowiednie narzędzie – check_if_by_snmp. Narzędzie to ma jeden zasadniczy problem – należy mu podać do monitorowania nie interfejs, tylko index interfejsu, który można sobie wyciągnąć z snmpwalka po tablicy iso.3.6.1.2.1.31.1.1.1.1 np. tak:

    snmpwalk -v 2c -c   iso.3.6.1.2.1.31.1.1.1.1 | grep 
    

    Problem w tym, że indeksy interfejsów nie są stałe i moga się np. zmienić po reboocie, a na pewno zmienią się indeksy interfejsów vlanowych (802.1q) jak je dodamy lub/i odejmiemy.

    Popełniłem banalnie prosty wrapper w bashu do załatwienia tego problemu, wygląda on tak:

    #!/bin/bash 
    
    while getopts "H:C:I:" Option
    do
      case $Option in
        H)  HOSTADDRESS=$OPTARG;;
        C)  COMMUNITY=$OPTARG;;
        I)  IFACE=$OPTARG;;
      esac
    done
    shift $(($OPTIND - 1))
    # Move argument pointer to next.
    
    IFINDEX=`/usr/bin/snmpwalk -v 2c -c $COMMUNITY \
    $HOSTADDRESS iso.3.6.1.2.1.31.1.1.1.1  | grep "$IFACE" | \ 
    cut -d' ' -f1 | cut -d'.' -f12`
    
    /usr/lib/nagios/plugins/check_if_by_snmp -H $HOSTADDRESS -C $COMMUNITY \ 
    -i $IFINDEX -I $IFACE -T -N -L -R /var/lib/nagiosgraph/rrd/
    

    Wrapper pobiera parametry przekazywane do skryptu przez Nagiosa, robi snmpwalka, grepem wyjmuje indeks snmp interfejsu, który podamy jako argument, po czym wstawia go do oryginalnego skryptu z SNMP4Nagios. W ten sposób zawsze będziemy monitorować właściwy interfejs, a nie tylko ten sam indeks.

    Wyjaśnienia wymaga chyba tylko ostatnia linijka i opcja -R, która pokazuje, gdzie skrypt ma zapisywać pliki rrd z perfdata do rysowania wykresów. U mnie, prosto do katalogu nagiosgrapha.

    Nie wiem, dlaczego inne pluginy nie monitorują liczby ppsów, przecież np. w ten sposób da się wykryć na interfejsie ddos, albo inną anomalię ruchu. A tutaj tylko jeden skrypt to robi, i na dodatek lekko bez sensu.

    Oczywiście mój wrapper będzie pewnie niewydajny w przypadku wykonywania wielu checków – pytanie jak bardzo niewydajny i kiedy zabija hosta.


  8. O monitoringu, opinia zewnętrzna.

    Grudzień 31, 2010 by 0verlord

    Znalazłem gdzieś taki sobie opis ogólnego podejścia do monitoringu. Polecam lekturę. Doskonale oddaje to, co ja ostatnio przerabiałem sam.

    W skrócie: nagios + nagiosgraph to jest narzędzie do monitorowania i rysowania wykresów w jednym. Icinga jest interesująca, ale wymaga naprawy interfejsu i jakiegoś czasu na ustabilizowanie się i porzucenie ojca nagiosa.

    .


  9. Nagios i template’y

    Grudzień 29, 2010 by 0verlord

    Mocą Zabbixa była możliwość zarządzania hostami przez dość mocno skomplikowany system template’ów.
    Template, inaczej szablon, służy do określania standardowego zestawu takich samych rzeczy, które mają być wykonane zawsze w przypadku hosta z danej grupy. Natomiast jak się ostatnio dowiedziałem z lektury manuala, Nagios potrafi to robić nie gorzej.

    Do czego przydaje się template? Jeżeli mamy 200 hostów, w których monitorujemy np. SSH na porcie 22, a nagle z powodu nadmiaru skanów potrzebujemy przestawić sshd na port 2223, to warto by też przepiąć monitoring. Jeżeli nie mamy szablonów ze standardowymi usługami, a serwisy definiowane dla każdego hosta z osobna, musimy zmienić 200 wpisów. Jeżeli ktoś jest pracowity – do boju do boju do boju wks. Ja jestem przykładem skrajnego lenia i wolę sobie raczej życie ułatwiać, niż utrudniać.

    Więc definiujemy sobie szablon, w obcym jezyku: template. Szablon może dotyczyć hosta oraz serwisu. Host, to wiadomo co to jest. Serwis (service) to np. sprawdzanie SSH albo pinga. W Nagiosie robi się to tak:

    define host{
            name                            generic-host   
            notifications_enabled           1      
            event_handler_enabled           1   
            flap_detection_enabled          1    
            failure_prediction_enabled      1   
            process_perf_data               1       
            retain_status_information       1   
            retain_nonstatus_information    1 
                    check_command                   check-host-alive
                    max_check_attempts              10
                    notification_interval           0
                    notification_period             24x7
                    notification_options            d,u,r
                    contact_groups                  admins
            register                        0      
            }
    

    Interesuje nas name oraz

    register 0

    . To pierwsze wiadomo, trzeba się jakoś do templatki odwołać. To drugie oznacza, że ta definicja tak na prawdę nie jest hostem, i nie należy tego sprawdzać. Za to należy po tym obiekcie dziedziczyć różne rzeczy. Np. powiadomienia. Albo komendy sprawdzające (check_commands). Zresztą nawet wielkie ostrzeżenie w obcym języku tłumaczy opcję register (DONT REGISTER THIS DEFINITION – ITS NOT A REAL HOST, JUST A TEMPLATE!) .

    Takich szablonów można stworzyć wiele, i wcale nie muszą być aż tak rozbudowane jak ten z domyślnego przykładu.
    Nagios pozwala podłaczać wiele szablonów do jednego hosta. A robi się to np. tak:

    define host{
            use             generic-host,specific-host,mroczny-host
            host_name       hostek.domena.com
            alias           hostek
            address        1.2.3.3
            parents         badbadparent
            contact_groups  plumk
    } 
    

    Kluczem jest tutaj linijka z use. Po przecinku listujemy templatki, które mają być zastosowane do hosta. Niestety jeszcze nie doczytałem, która ma pierwszeństwo w przypadku nachodzenia się poniektórych opcji, ale zaktualizuję wpis, jak się dowiem.
    Ten sam mechanizm działa także dla serwisów.

    Za to w Zabbixie, stackowanie templatek (mądre słowo, oznacza dodawanie wielu szablonów do jednego hosta), zostało wprowadzone dopiero od wersji 1.4.x, i generalnie używanie tego jest mroczne jak używanie samego Zabbixa.


  10. Monitoring sieci cz. 1.2

    Grudzień 27, 2010 by 0verlord

    Z ciekawostek monitoringowych, obejrzałem sobie Icingę. To taki klon na bazie Nagiosa, podobno posiadający wszystko to, czego brakuje nagiosowi. Odpaliłem, spróbowałem, odinstalowałem. Sam nie wiem, czy do tego wrócę, bo jeszcze jest za mało natywnych wtyczek pod ten projekt. Wszystkie są pod Nagiosa ;-)Ale kto wie. Jak się projekt ustabilizje, czemu nie.

    Niby Icinga jest w testingu, niby jest kompatybilna z Nagiosem (to akurat sprawdziłem, Icinga rozmawiała do uruchomionych nagios-nrpe-serverów), natomiast takie rzeczy jak nagiosgrapher nie do końca działają, bo mają w Depends: nagiosa3. Trzeba by przekompilować te paczki, żeby można było takich dodatków używać, a to jest dość słabe, bo dochodzi pilnowanie własnego repo i aktualizacji np. security. Lipa.

    Na pewno ma ładniejsze UI, ale z drugiej strony, nie interfejs powoduje, że narzędzie do monitoringu jest lepsze, czy gorsze. Ma kilka dodatków jak super ekstra wypasiony nowy lepszy UI – icinga-web, albo ifejs dla urządzeń mobilnych (icinga-mobile). Ale to mnie jakoś nie ujęło, bo po defaultowej instalacji wszystko się ładowało i ładowało, i nie bardzo chciało cokolwiek pokazać.
    Generalnie po przejrzeniu konfiguracji usunięciu jednej ścieżki zahardkodowanej na stałe, wszystko ruszyło. Wolno. Nawet przeraźliwie wolno. Interfejs jest przepiękny, animacja mapy przefajna. Prędkość działania już nie.
    Tutaj jednak moc starutkiego UI Nagiosa, pokazuje pazur. Ładuje się w pół sekundy i widać dokładnie to, co trzeba, żeby wiedzieć, co się dzieje w sieci. Ładne, nie zawsze oznacza funkcjonalne jak widać.

    Jest też jedna wisienka do tego tortu – dokumentacja. Niby jest wzięta z Nagiosa, ale jakoś się ją lepiej czytało. I tutoriale jak np. odpalić ndoutils polecam szczerze. W Nagiosie są mało czytelne, długie i przeraźliwie nudne.