Zabbix – instalacja oraz krótki przegląd funkcjonalności

31 marca 2015

Zabbix jest otwartym (open source) rozwiązaniem klasy enterprise (biznesowej) służącym do monitorowania problemów. Monitoruje parametry sieci, pracę działania serwerów. Używa mechanizmu powiadomień, pozwala skonfigurować powiadomienia e-mail (ale nie tylko) dla praktycznie każdego zdarzenia. Oferuje raporty oraz mechanizmy wizualizacji zebranych danych. Raporty, wykresy, parametry konfiguracyjne są dostępne z poziomu przeglądarki WWW.

Zabbix został udostępniony na licencji GPL General Public License w wersji 2. Jest bezpłatny.

Możliwości Zabbix :

  • Zbieranie danych
  • Wysoce konfigurowalne alarmowanie
  • Przechowywanie danych w bazie
  • Przedstawianie wykresów w czasie rzeczywistym
  • Monitorowanie stron WWW
  • Automatyczne wykrywanie urządzeń sieciowych (automatyczna rejestracja agentów)
  • Użycie wzorców
  • System uprawnień

 Architektura Zabbix :

Serwer Zabbix – Główny komponent mechanizmu monitorowania infrastruktury, do którego agenci zgłaszają informacje o dostępności i integralności oraz statystyki.

Magazyn danych – Wszystkie dane zebrane oraz cała konfiguracja jest przechowywana w bazie danych.

Interfejs webowy – Interfejs bazujący na stronie WWW, służący do przeglądu danych zebranych oraz konfiguracji Zabbix.

Agenci Zabbix – Agenci umieszczeni na monitorowanych urządzeniach, w celu monitorowania zasobów i aplikacji oraz raportowania zebranych danych do serwera Zabbix.

Przykład instalacji serwera Zabbix (system Debian) :

Zabbix : Wersja 2.4

W konsoli wykonujemy :

wget http://repo.zabbix.com/zabbix/2.4/debian/pool/main/z/zabbix-release/zabbix-release_2.4-1+wheezy_all.deb
dpkg -i zabbix-release_2.4-1+wheezy_all.deb

apt-get update

Instalujemy serwer WWW np. Apache oraz serwer baz danych np. MySQL :

apt-get update

apt-get install php5

apt-get install apache2

apt-get install mysql-server

Instalacja serwera Zabbix :

apt-get install zabbix-server-mysql

Instalacja interfejsu webowego Zabbix :

apt-get install zabbix-frontend-php

Zmieniamy wartości parametrów w  /etc/apache2/conf.d/zabbix :

php_value max_execution_time 360
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone Europe/Warsaw

Wykonujemy restart serwera WWW :

service apache2 restart

Kończymy instalację Zabbix :

http://adres_IP_serwera_zabbix/zabbix/setup.php

zabbix_instal_1Klikamy Next.

zabbix_instal_2

Sprawdzamy czy spełnione są wszystkie wymagane ustawienia. Jeśli wszystko jest OK, klikamy Next.

zabbix_instal_3

Tworzymy bazę danych ręcznie. Ustawiamy parametry konfiguracyjne do połączenia się z bazą danych. Sprawdzamy połączenie z bazą danych. Jeśli jest OK :

zabbix_instal_4

Klikamy Next.

zabbix_instal_5

Opcjonalnie można zmienić nazwę hosta oraz port serwera Zabbix. Klikamy Next.

zabbix_instal_6

Sprawdzamy parametry konfiguracyjne. Jeśli nie ma błędów, klikamy Next.

zabbix_instal_7

Utworzony zostanie plik konfiguracyjny w /usr/share/zabbix/conf/zabbix.conf.php .

Aby zakończyć instalację, klikamy Finish.

Logujemy się do interfejsu webowego Zabbix :

http://adres_ip_serwera_zabbix/zabbix/index.php

zabbix_instal_8

Domyślny login :  Admin

Hasło : zabbix

zabbix_instal_8_log_finish

Zmiana hasła domyślnego i języka :

zabbix_instal_9

Po zalogowaniu należy przejść do zmiany hasła domyślnego (zakładka Profil). Można również zmienić język. Dostępny jest język polski.

Użytkownicy i grupy użytkowników

Wszyscy użytkownicy Zabbix uzyskują dostęp do interfejsu poprzez stronę www. Każdy z nich posiada swój login oraz hasło.

Aby skonfigurować użytkownika należy przejść do zakładki Administracja -> Użytkownicy.

zabbix_instal_10

Zabbix po instalacji posiada dwóch użytkowników – ‘Admin‘ i ‘guest‘. Użytkownik ‘guest’ używany jest dla połączeń nieuwierzytelnionych.

Aby dodać nowego użytkownika, wybieramy z listy przewijanej po prawej stronie : Użytkownicy. Klikamy następnie Utwórz użytkownika.

zabbix_instal_11

W formularzu nowego użytkownika, wpisz nazwę użytkownika, wybierz grupę/y do których użytkownik będzie należeć. Wpisz następnie hasło.

zabbix_instal_12

  • Media (Powiadomienia) :

Domyślnie nowi użytkownicy nie mają żadnych mediów. Mediami nazywane są sposoby powiadomień.

Aby utworzyć powiadomienia, klikamy Dodaj.

zabbix_instal_13
Jako typ można wybrać : Email, Jabber, SMS, skrypt.

Można określić czas oraz poziomy dla których powiadomienia będą aktywne.

  • Dodanie uprawnień :

Domyślnie nowy użytkownik nie ma uprawnień zezwalających na dostęp do hostów.

Aby nadać uprawnienia, klikamy na zakładkę Uprawnienia i wybieramy dany Typ użytkownika (są to tzw. obliczone uprawnienia).

Klikamy następnie Zaktualizuj.
Aby powiadomienia mogły być wysyłane poprzez serwer pocztowy, należy zrobić konfigurację serwera SMTP.

Administracja -> typy mediów :

zabbix_instal_13_typy

 

zabbix_instal_13_smtp

Przykład :

Aby wysyłać maile za pomocą zewnętrznych serwerów pocztowych np. Gmail można posłużyć się skryptem.

Skrypt jest dostępny na stronie https://searchcode.com/codesearch/view/39429804/

Zawartość skryptu gmail.sh :

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Zabbix SMTP Alert script for gmail.
"""

import sys
import smtplib
from email.MIMEText import MIMEText
from email.Header import Header
from email.Utils import formatdate

# Mail Account
MAIL_ACCOUNT = 'your.account@gmail.com'
MAIL_PASSWORD = 'your mail password'

# Sender Name
SENDER_NAME = u'Zabbix Alert'

# Mail Server
SMTP_SERVER = 'smtp.gmail.com'
SMTP_PORT = 587
# TLS
SMTP_TLS = True

def send_mail(recipient, subject, body, encoding='utf-8'):
    session = None
    msg = MIMEText(body, 'plain', encoding)
    msg['Subject'] = Header(subject, encoding)
    msg['From'] = Header(SENDER_NAME, encoding)
    msg['To'] = recipient
    msg['Date'] = formatdate()
    try:
        session = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
        if SMTP_TLS:
            session.ehlo()
            session.starttls()
            session.ehlo()
            session.login(MAIL_ACCOUNT, MAIL_PASSWORD)
        session.sendmail(MAIL_ACCOUNT, recipient, msg.as_string())
    except Exception as e:
        raise e
    finally:
        # close session
        if session:
            session.quit()

if __name__ == '__main__':
    """
    recipient = sys.argv[1]
    subject = sys.argv[2]
    body = sys.argv[3]
    """
    if len(sys.argv) == 4:
        send_mail(
            recipient=sys.argv[1],
            subject=sys.argv[2],
            body=sys.argv[3])
    else:
        print u"""requires 3 parameters (recipient, subject, body)
\t$ zabbix-gmail.sh recipient subject body
"""

 

Należy sprawdzić w pliku konfiguracyjnym  ( /etc/zabbix/zabbix_server.conf ), gdzie serwer Zabbix przechowuje skrypty służące do alarmowania.

Jest to parametr : AlertScriptsPath

np. AlertScriptsPath=/usr/lib/zabbix/alertscripts

Następnie należy przejść do katalogu skryptów :

cd /usr/lib/zabbix/alertscripts

oraz wrzucić pobrany skrypt (gmail.sh).

Po wrzuceniu skryptu, należy nadać odpowiednie uprawnienia :

chmod 755 /usr/lib/zabbix/alertscripts/gmail.sh

Należy zmienić parametry :

MAIL_ACCOUNT = ‘adres_e-mail’
MAIL_PASSWORD = ‘haslo’

Wystarczy jeszcze przejść do konfiguracji mediów użytkownika : Administracja -> Użytkownicy, wybrać użytkownika, przejść do zakładki Media.

Naciskając przycisk Dodaj należy wybrać typ mediów oraz wstawić adres e-mail, na który będą przychodzić powiadomienia :

zabbix_alerts_gmail

Pamiętaj o włączeniu akcji :

Konfiguracja -> Akcje

zabbix_akcje_alerts

Dodawanie nowych hostów do monitorowania :

Należy przejść do zakładki Konfiguracja -> Hosty :

zabbix_instal_16_add_host

Aby dodać nowy host, klikamy Utwórz host.

W zakładce Host należy wprowadzić przynajmniej :

– Nazwę hosta

– Grupę

– Adres IP hosta monitorowanego

– Skonfigurować przynajmniej jeden interfejs

zabbix_host_1

Po zakończeniu konfiguracji, należy przejść do zakładki Szablony.

Zakładka Szablony umożliwia połączenie szablonów z hostem.

zabbix_instal_18_new_host_szablon

Szablon to zbiór elementów, które można w wygodny sposób przydzielać do hostów.

Elementami mogą być :

  • pozycje – jest to pojedyncza informacja, który chcemy uzyskiwać z hosta
  • wyzwalacze – są to wyrażenia logiczne, które definiują próg problemu
  • wykresy – jak sama nazwa wskazuje 🙂
  • aplikacje – zgrupowanie pozycji w logiczne zbiory
  • ekrany
  • niskopoziomowe reguły wykrywania
  • scenariusze sieci www – jedno lub więcej zapytań HTTP, sprawdzających dostępność strony www

Należy wybrać odpowiedni szablon i nacisnąć przycisk Dodaj. Szablonów można wybrać klika. Używane są często dla konkretnych usług lub aplikacji.

zabbix_instal_18_new_host_szablon2

zabbix_instal_18_new_host_szablon3

Po kliknięciu Dodaj, urządzenie monitorowane powinno być widoczne na liście hostów skonfigurowanych.

zabbix_instal_18_new_host_szablon4

W czasie konfiguracji hosta, należy ustawić przez jaki interfejs będzie się komunikował serwer Zabbix z hostem. Zalecane jest wybranie interfejsu agenta. Jeżeli wybrano taką metodę komunikacji, należy na hoście zainstalować agenta Zabbix.

Przykład instalacji agenta Zabbix (system Debian) :

Ściągamy paczkę z repozytoriami :

 wget http://repo.zabbix.com/zabbix/2.4/debian/pool/main/z/zabbix-release/zabbix-release_2.4-1+wheezy_all.deb
dpkg -i zabbix-release_2.4-1+wheezy_all.deb 

Wykonujemy :

 apt-get update 

Instalujemy agenta :

 apt-get install zabbix-agent 

Przechodzimy do pliku konfiguracyjnego :

 nano /etc/zabbix/zabbix_agentd.conf 

Konfigurujemy parametry :

Server=podajemy_adres_ip_serwera_zabbix

Hostname

ListenPort=10050

LogFile=/tmp/zabbix_agentd.log

Po zakończeniu konfiguracji, należy zrestartować agenta :

 service zabbix-agent restart 

Logujemy się ponownie na serwer Zabbix. Sprawdzamy w zakładce : Konfiguracja -> Hosty czy serwer Zabbix komunikuje się z agentem (jeśli jest zielony kwadracik z literą Z w polu Dostępność to komunikacja istnieje) :

zabbix_instal_18_new_host_szablon5

Można przejść do zakładki Monitorowanie -> Zdarzenia i zobaczyć czy jakieś zdarzenia wystąpiły :

zabbix_monitorowanie_zdarzenia2

W Zabbix istnieje kilka typów zdarzeń. Zdarzenia przedstawione na powyższym print screen to zdarzenia wyzwalaczy (OK→PROBLEM→OK).

Wyzwalacze są wyrażeniami logicznymi, które przetwarzają dane zebrane przez elementy (pojedyncza informacja, którą chcemy uzyskiwać z hosta, metryka danych) i przedstawiają aktualny stan monitorowanego hosta.

Można zdefiniować próg, przy którym będzie określany odpowiedni stan systemu. Mogą być tzw. dane “akceptowalne” lub “nieakceptowalne”.

Stany wyzwalaczy :

OK – normalny stan wyzwalacza

PROBLEM – określa że coś się dzieje niedobrego np. zbytnio mało wolnej pamięci RAM w systemie.

W Zabbix istnieje możliwość obejrzenia wykresów. Dzięki nim można śledzić zachodzące zmiany danych, korelować problemy, wykrywać czy coś zaczyna się dziać lub prezentować coś, co może stać się problemem. Zabbix udostępnia wbudowane proste wykresy jak i jest możliwość tworzenia własnych wykresów.

Należy przejść do zakładki : Monitorowanie – Wykresy

Przykładowe wykresy :

zabbix_wykresy_cpu load

zabbix_wykresy_cpu jumps

zabbix_wykresy_disk_space_usage

zabbix_wykresy_memory_usage

zabbix_wykresy_network

Tworzenie mapy infrastruktury :

Ciekawą funkcjonalnością w Zabbix jest tworzenie map. Na mapie można umieścić hosty, grupy hostów, wyzwalacze, obrazy oraz inne mapy.

W pierwszej kolejności należy przygotować “szkielet” mapy. Przechodzimy do Konfiguracja -> Mapy.

Następnie klikamy na utwórz mapę. Wypełniamy wartości :

zabbix_mapa1

Po wypełnieniu, klikamy Dodaj.

Urządzenia reprezentacyjne dodajemy poprzez naciśniecie + obok nazwy Ikona. Podobnie postępujemy przy łączeniu urządzeń.

Przykład utworzonej mapy sieci :

zabbix_mapa2

Źródło wiedzy :

https://www.zabbix.com/documentation/3.0/pl/manual

markos
Specjalizuję się w systemach komputerowych Windows oraz Linux. Oprócz wykonywanej pracy w zawodzie, informatyka jest moją pasją.

Dodaj komentarz

avatar
  Subscribe  
Powiadom o