LINUXSOFT.cz
Nazwa użytkownika: Hasło:     
    CZ UK PL

> Dohledový systém Zabbix II. - instalace

Po teoretickém úvodu z minulého dílu se pojďme podívat na praktickou část další části seriálu o dohledovém systému Zabbix. V dnešním díle postupnými kroky dojdeme k zprovoznění dohledového systému a ti nedočkaví mohou začít bez zábran experimentovat a pronikat do tajů všeho, co Zabbix nabízí.

26.2.2013 00:00 | Antonín Kolísek | czytane 22652×

RELATED ARTICLES KOMENTARZE   

Než začneme

Před samotnou instalací dohledového systému je nutné zvážit několik hledisek. Nejprve si musíme zodpovědět několik základních otázek. Kolik, co a jak dlouho. Tedy první hledisko je přibližný odhad toho, kolik zařízení budeme sledovat a k tomu odpovídající počet testů na každé zařízení. Dále je nutné mít představu, jak dlouhou historii naměřených dat chceme uchovat. Zmiňované informace mají primární vliv na velikost požadovaných systémových prostředků. Jde především o velikost databáze společně s počtem sledovaných zařízení (čím víc zařízení, tím větší zatížení databáze), která určuje požadovaný fyzický výkon serveru. Na jednoduchém příkladu si nyní ukážeme, jakým způsobem lze alespoň přibližně vypočítat požadavky na velikost databáze a jak si počínat s výběrem hardwaru.

Velikost databáze

Pro odhad požadovaného diskového prostoru musíme znát veškeré informace o konkrétním hostu, počet hostů, počet testů a délku historie. Pokud budeme uvažovat 1000 zařízení u každého budeme sbírat 5 hodnot data budeme sbírat každých 60 vteřin a historii chceme uchovat 30 dnů, výpočet bude následující.

  • historie monitorovaných hodnot
  • položky x hosté = počet hodnot
    5 x 1000 = 5000 hodnot
    5000 / 60 = 83 hodnot za vteřinu
    dny x (položky / čas) x 24 x 3600 x bytů = objem dat
    1 x (5000 / 60) x 24 x 3600 x 50 = 360 MB za den
    (30 * 360) = 10.8 GB za 30 dnů
  • historie trendů (Trends)
  • dny x (položky / 3600) x 24 x 3600 x bytů = objem dat
    30 x (5000 / 3600) x 24 x 3600 x 128 = 460 MB za 30 dnů
  • historie událostí (Events)
  • dny x události x 24 x 3600 x bytů = objem dat
    30 x 1 x 24 x 3600 x 130 = = 336960000 = 337 MB za 30 dnů

Nyní již můžeme vypočítat přibližnou hodnotu potřebného diskového prostoru za 30 dnů součtem Konfigurace + Historie + Trendy + Události to je 10 MB + 1080 MB + 460 MB + 337 MB = 1887 MB. Výpočet je pouze orientační. Musíme brát v úvahu, že v reálném nasazení není u všech hostů stejný počet sledovaných parametrů (tesů) a stejně i délka historie / trendů / událostí může být různá. Pro výpočet je nutné uvažovat vždy mezní hodnoty.

Typ databáze

Výběr databáze závisí na mnoha faktorech. Z praktického hlediska záleží na robustnosti celého řešení, což závisí na velikosti a počtu sledovaných zařízení. Dále také na vlastních zkušenostech s konkrétním typem databáze. Nejpoužívanější databází pro Zabbix je dle zkušeností MySQL. Na tuto databázi se proto zaměříme i v našem seriálu. Pro velmi velké zatížení lze použít i databázi PostrgeSQL V případě výběru jiné databáze je možné vybírat z následujících:

  • IBM DB2 (u verze Zabbix 2.0 zatím jako experimentální)
  • MySQL
  • Oracle
  • PostgreSQL
  • SQLite (SQLite3 u Zabbix 2.0 zatím exmerimentální)

Hardware

Návrh hardwaru pro Zabbix je velmi závislý na velikosti monitorované infrastruktury, tj. na počtu zařízení. Jiné požadavky budou po sledování řádově desítek až stovek zařízení a jiné požadavky pro tisíce a více hostů. Následující tabulka znázorňuje alespoň základní doporučení.

Při větším počtu hostů dochází k většímu zatížení databáze. V takovém případě je vhodné použít pro datové úložiště velmi rychlé disky, např. s rozhraním RAID10. V případě velkého zatížení databáze a velmi velkého počtu sledovaných zařízení (řádově tisíce) je vhodné rozložit provoz na nezávislé servery a oddělit fyzicky databázi, Zabbix server a webový server. V reálném nasazení, kdy je potřeba sledovat rozsáhlou infrastrukturu, je vhodné a často přímo nutné přikročit k distribuovanému monitoringu a využít režimu proxy nebo nodů.

Příprava systému

K provozování Zabbixu je nutné připravit operační systém tak, aby obsahoval potřebné programové vybavení. V našem případě se zaměřím na použití distribuce CentOS. Všechny kroky jsou platné pro RHEL GNU/Linux (Red Hat Enterprise Linux) který je v komerční sféře zřejmě nejvíce zastoupený. U jiných distrubucí by se postupovalo obdobnými kroky, jen by bylo použito jiného správce balíčků a jiných repozitářů pro instalaci programů. Názvy požadovaných aplikací jsou obdobné většinou ve všech distribucích GNU/Linux, proto nebude obtížné zužitkovat následující informace v jakékoli jiné distribuci. Odpovídající verze požadovaných aplikací je vhodné vždy kontrolovat s aktuálními požadavky viz dokumentace. Nebudu zde proto uvádět čísla verzí, ale jen názvy požadovaných aplikací viz následující výčet.

  • Apache - httpd
  • MySQL - mysql-server, mysql-libs, (myslq-devel)
  • PHP - php, php-bcmath, php-gd, php-mysql, php-mbstring
  • Gettext - gettext, gettext-devel, gettext-libs
  • Gd - gd
  • XMLlib - libxml2

Výše uvedené balíčky jsou nutné pro úspěšné provozování dohledového systému Zabbix. Dále následuje seznam doporučených aplikací, které nejsou pro základní provoz nezbytně vyžadované. Pokud chceme, aby Zabbix nabízel i pokročilejší metody monitoringu (SNMP, IPMI, SSH,Web monitoring ...), bude nutné zajistit přítomnost také následujících balíčků:

  • OpenIPMI - (OpenIPMI-devel), OpenIPMI-libs
  • libssh2 - libssh2, (libssh2-devel)
  • libcurl - curl, libcurl, (libcurl-devel)
  • net-snmp - net-snmp, (net-snmp-devel), net-snmp-libs, net-snmp-utils

Veškeré *-devel balíčky nainstalujeme jen v případě, že budeme Zabbix kompilovat ze zdrojových souborů, s čímž v našem případě počítáme. Ukážeme si zde všechny způsoby instalace. Instalaci / aktualizaci požadovaných součástí provedeme podle následujících kroků. Je možné, že pro splnění závislostí bude nutné instalovat i jiné balíčky, o což se postará nástroj pro správu balíčků.

    shell> yum install httpd php gd php-bcmath php-mbstring php-gd php-mysql mysql mysql-libs mysql-server libssh2 libcurl net-snmp-* ntpdate curl curl-libs gettext gettext-libs libxml2 OpenIPMI-libs libssh2

V případě, že budeme kompilovat Zabbix ze zdrojových kódů, nainstalujeme potřebné devel balíčky a kompilační nástroje. Z hlediska bezpečnosti je někdy nežádoucí, aby produkční server obsahoval kompilační nástroje. V takovém případě je možné, s ohledem na bezpečnost a máme-li tuto možnost, sestavit balíček na jiném serveru. Případně můžeme použít již připravené balíčky z externích repozitářu. Pro náš případ, kdy chci názorně popsat i manuální sestavení a instalaci Zabbixu, můžeme zmíněné "malé" bezpečnostní riziko akceptovat. Kompilátor jazyka C, nástroje pro kompilaci a devel balíčky nainstalujeme následovně.

    shell> yum install mysql-devel zlib-devel glibc-devel curl-devel net-snmp-devel gnutls-dev libssh2-devel gcc automake make libidn-devel openssl-devel OpenIPMI-devel

Pokud chceme, aby byl Zabbix s podporou notifikace pomocí služby Jabber, bude nutné naistalaovat balíky iksemel iksemel-devel, které je nutné instalovat z EPEL repozitáře.

fping

Zabbix využívá rozšířenou verzi programu ping. Program fping nemusí být obsažen v některých distribucích. Stejně jak to je i v našem případě při použití CentOS. Je nutné proto aplikaci nainstalovat do systému ručně, případně použít externí repozitář EPEL. Pro manuální instalaci balíčku budeme postupovat následovně.

    shell> rpm -Uvh ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el6/en/x86_64/dag/RPMS/fping-3.4-1.el6.rf.x86_64.rpm

Po instalaci nastavíme oprávnění. V tomto kroku je nutné založit i uživatele a skupinu.

    shell> chmod 4710 /usr/sbin/fping
    shell> groupadd zabbix
    shell> useradd -g zabbix zabbix
    shell> chgrp zabbix /usr/sbin/fping

Přesný čas

Sledovaná data by byla k ničemu, kdyby neodpovídala skutečnosti. Je proto nutné zajistit přesný čas na serveru, na kterém provozujeme Zabbix. O čas se stará démon ntpd, kterého je proto nutné natsavit. Je možné použít alternativní způsob nástrojem ntp-date a přidat do plánovače úloh cron následující řádek:

    00 12 * * * /sbin/ntpdate tik.cesnet.cz > /dev/null

Bezpečnost především

Zabbix potřebuje pro svoji činost otevřené porty 10051, dále pak port 80 pro webové rozhraní. Dále je v některých případech nutné upravit nastavení SELinux pokud jej konkrétní distribuce používá nebo úplně v krajním případě deaktivovat.

  • v případě použití standartních portů upravíme /etc/services
  • shell> echo "zabbix_agent 10050/tcp" >> /etc/services
    shell> echo "zabbix_server 10051/tcp" >> /etc/services

  • upravíme pravidla pro firewall
  • shell> iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    shell> iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT
    shell> service iptables save

  • SELinux přepneme do tolerantního řežimu nebo jej deaktivujeme úpravou souboru /etc/sysconfig/selinux změnou nastavení SELINUX=permissive, povolíme přístup k portu 10051 a nstavíme pravidla pro fping. Pokud systém neobsahuje nástroj semanage) je nutné jej doinstalovat.
  • shell> yum install policycoreutils-python
    shell> semanage port -a -t http_port_t -p tcp 10051

  • vytvoříme soubor zabbix_fping z následujícím obsahem
  • module zabbix_fping 1.0;
    require {
        type initrc_tmp_t;
        type ping_t;
        class file read;
    }
    allow ping_t initrc_tmp_t:file read;
    
  • sestavíme a nainstalujeme modul
  • shell> checkmodule -M -m -o zabbix_fping.mod zabbix_fping
    shell> semodule_package -o zabbix_fping.pp -m zabbix_fping.mod
    shell> semodule -i zabbix_fping.pp

Instalace

Možností jak nainstalovat Zabbix je několik. V případě použití balíčku se nemusíme starat o instalaci dalších programů pro splnění závislosti a o základní nastavení systému. Další výhodou je automatická aktualizace a úprava konfiguračních souborů. Administrátor se tak nemusí téměř o nic starat. My si ukážeme také možnost sestavit Zabbix ze zdrojových kódů, což je vhodné například v případě, kdy repozitáře nenabízí konkrétní verzi a nebo dohledový systém nenabízí vůbec. Nicméně i zde se budeme držet předpokladu, že používáme CentOS/RHEL.

Použití repozitářů

Nejednodušší možností je použít již sestavených balíčku pro danou architekturu (i386 / x86_64) a odpovídající verzi distribuce. V takovém případě máme dvě možnosti. Můžeme použít repozitáře EPEL nebo ZabbixZone. V žádném případě nekombinujeme oba repozitáře. V případě, že potřebujeme mít v systéme nastavené oba dva, je nutné použít priorit případně Zabbix v EPEL repozitáři zakázat.

EPEL (Extra Packages for Enterprise Linux)

  • přidáme externí repozitář do systému
  • shell> rpm -Uvh http://mirror.karneval.cz/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

  • nainstalujeme odpovídající balíčky
  • shell> yum install zabbix20 zabbix20-agent zabbix20-server zabbix20-server-mysql zabbix20-web zabbix20-web-mysql

ZabbixZone

  • přidáme externí repozitář do systému
  • shell> rpm --import http://repo.zabbixzone.com/centos/RPM-GPG-KEY-zabbixzone
    shell> rpm -Uv http://repo.zabbixzone.com/centos/zabbixzone-release-0.0-1.noarch.rpm

  • nainstalujeme odpovídající balíčky
  • shell> yum install zabbix zabbix-agent zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql

Manuální instalace

Manuální instalace není příliš žádoucí v případě distribuce založené na balíčcích. Někdy to je ale jediná možnost, jak konkrétní nástroj provozovat. Je možné také RPM balíček vytvořit ručně, tím se tento seriál nebude zabývat, protože by byl překročen rámec seriálu. Pro lepší orientaci a administraci dohledového systému Zabbix uvádím možnost ruční instalace. Celý proces se skládá z několika kroků.

Příprava

  • nejprve stáhneme zdrojový soubor ze stránek www.zabbix.com
  • shell> cd /tmp
    shell> wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.4/zabbix-2.0.4.tar.gz

  • rozbalíme archív
  • shell> tar -xzf zabbix-2.0.4.tar.gz

Sestavení a instalace

  • provedeme konfiguraci s podporou MySQL, SSH2, OpenIPMI, SNMP, IPv6, CURL
  • shell> cd /tmp/zabbix-2.0.4
    shell> ./configure --sysconfdir=/etc/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-openipmi --with-ssh2

  • sestavíme a nainstalujeme
  • shell> make
    shell> make install
    - pokud jsme ještě nezaložili skupinu a oprávnění je na to správná doba shell> groupadd zabbix
    shell> useradd -g zabbix zabbix
    shell> mkdir /etc/zabbix /etc/zabbix/externalscripts
    shell> chown -R zabbix /etc/zabbix
    shell> chgrp zabbix /usr/sbin/fping

Nastavení

  • nastavíme automatický start služeb
  • shell> cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
    shell> cp misc/init.d/fedora/core/zabbix_server /etc/init.d/

  • upravíme v /etc/init.d/zabbix_server a /etc/init.d/zabbix_agentd následující řádky
  • BASEDIR=/usr/local
    FULLPATH=$BASEDIR/sbin/$BINARY_NAME

  • nastavíme runlevel požadovaných služeb
  • shell> chkconfig --add zabbix_server
    shell> chkconfig --add zabbix_agentd
    shell> chkconfig --level 345 zabbix_server on
    shell> chkconfig --level 345 zabbix_agentd on
    shell> chkconfig --level 345 httpd on
    shell> chkconfig --level 345 mysqld on

Založení databáze

Založení databáze je stejné pro všechny metody instalace. Databázi je nutné nastavit ručně i v případě použití instalačních balíčku. Předpokládejme, že máme databázi (v našem případě MySQL) funkční a známe uživatele root. V případě, že se jedná o čistou instalaci, je nutné nejprve při prvním spuštění MySQL založit uživatele root.

    shell> /usr/bin/mysqladmin -u root password 'new-password'
    shell> service mysqld start

V případě běžící MySQL databáze pokračujeme v tvorbě databáze pro Zabbix.

    shell> mysql -u<username> -p<password>
    mysql> CREATE database zabbix character set utf8;
    mysql> GRANT DROP,INDEX,CREATE,SELECT,INSERT,UPDATE,ALTER,DELETE ON zabbix.* TO zabbix@localhost IDENTIFIED BY "password";
    mysql> quit;
    shell> mysql -u zabbix -p <password> zabbix < database/mysql/schema.sql
    shell> mysql -u zabbix -p <password> zabbix < database/mysql/images.sql
    shell> mysql -u zabbix -p <password> zabbix < database/mysql/data.sql

Nastavení webserveru

V případě použití balíčku dojde k nastavení webového serveru (Apache) automaticky. Je důležité dát jen pozor na umístění webového frontendu, který se nachází v /usr/share/zabbix. Pokud instalujeme Zabbix ručně, umístíme frontend dle vlastního nastavení webserveru. Pokud se jedná o čistou instalaci a webový server není ještě nastavený, konfigurace může být následující.

    shell> cp -r frontends/php /var/www/html/zabbix
    shell> chown -R apache:apache /var/www/html/zabbix/conf

Vytvoříme /etc/httpd/conf.d/zabbix.conf s následujícím obsahem:

    Alias /zabbix /var/www/html/zabbix
    
    <Directory "/var/www/html/zabbix">
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    
        php_value max_execution_time 600
        php_value memory_limit 256M
        php_value post_max_size 64M
        php_value upload_max_filesize 10M
        php_value max_input_time 600
        php_value date.timezone Europe/Prague
        php_value mbstring.func_overload  7
    </Directory>
    
    <Directory "/var/www/html/zabbix/conf">
        Order deny,allow
        Deny from all
        <files *.php>
            Order deny,allow
            Deny from all
        </files>
    </Directory>
    
    <Directory "/var/www/html/zabbix/api">
        Order deny,allow
        Deny from all
        <files *.php>
            Order deny,allow
            Deny from all
        </files>
    </Directory>
    
    <Directory "/var/www/html/zabbix/include">
        Order deny,allow
        Deny from all
        <files *.php>
            Order deny,allow
            Deny from all
        </files>
    </Directory>
    
    <Directory "/var/www/html/zabbix/include/classes">
        Order deny,allow
        Deny from all
        <files *.php>
            Order deny,allow
            Deny from all
        </files>
    </Directory>
    
    

Především hodnoty pro nastavení PHP (php_value) jsou nutné pro úspěšný provoz Zabbixu. Nyní můžeme restartovat webový server a pokračovat v instalaci.

    shell> services httpd restart

Konfigurace Zabbix serveru a agenta

Editujeme konfigurační soubory zabbix_server.conf a zabbix_agentd.conf. My jsme zvolili umístění konfiguračních souboru při sestavování zdrojových kódů volbou --sysconfdir=/etc/zabbix. Při instalaci z balíčků nebo ponecháním výchozí cesty nalezneme konfigurační soubory v /usr/local/etc/zabbix.

  • v souboru zabbix_agentd.conf upravíme tyto řádky
  • Server=127.0.0.1
    DebugLevel=2

  • v souboru zabbix_server.conf toho bude trošku víc
  • ExternalScripts=/etc/zabbix/externalscripts
    DebugLevel=2
    FpingLocation=/usr/sbin/fping
    DBHost=127.0.0.1
    DBName=zabbix
    DBUser=zabbix
    DBPassword=password
    DBSocket=/var/lib/mysql/mysql.sock

  • spustíme oba procesy a zjistíme, jestli běží. V záporném případě je nutné obrátit pozornost na chyby zapsané v souborech /tmp/zabbix_agentd.log a /tmp/zabbix_server.log
  • shell> service zabbix_server start && service zabbix_agentd start
    shell> ps -A | grep zabbix

Instalace webového rozhraní

Posledním krokem instalačního procesu je instalace webového rozhraní. Všechny kroky probíhají přes libovolný webový prohlížeč. Celý proces je velmi jednoduchý viz následující obrazovky.



  • kontrola požadovaných součástí a nastavení PHP


  • nastavení a kontrola přístupu k databázi


  • nastavení portu a ip adresy/jména Zabbix serveru


  • po rekapitulaci nastavení úspěšně dokončíme instalaci




  • nyní se můžeme po úspešné instalaci přihlásit do dohledového systému. Výchozí účet administrátora je uživatel=admin heslo=zabbix.

Rekapitulace

V dnešní části seriálu jsme se úspěšně dostali do stavu, kdy můžeme začít experimentovat s dohledovým systémem Zabbix. Veškeré nastavení je pouze základní. Pro reálné nasazení je nutné často velmi zdlouhavého ručního ladění parametrů a to jak databáze, tak serverového procesu. V příštím díle se podíváme na základní popis prostředí, aby bylo možné pomalými kroky pronikat do tajů monitoringu.

Odkazy

1. Zabbix domovské stránky : http://www.zabbix.com

2. Zabbix dokumentace : http://www.zabbix.com/documentation.php

3. Zabbix - Požadavky : https://www.zabbix.com/documentation/2.0/manual/installation/requirements

4. Zabbix - Instalace : https://www.zabbix.com/documentation/2.0/manual/installation/install

5. EPEL : http://fedoraproject.org/wiki/EPEL

6. ZabbixZone : http://repo.zabbixzone.com


KOMENTARZE
VPS na testovanie Zabbixu 21.3.2013 23:34 martin luter
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4850x
2. FreeBSD
Download: 9044x
3. PCLinuxOS-2010
Download: 8541x
4. alcolix
Download: 10916x
5. Onebase Linux
Download: 9631x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 6219x

1. xinetd
Download: 2382x
2. RDGS
Download: 937x
3. spkg
Download: 4692x
4. LinPacker
Download: 9918x
5. VFU File Manager
Download: 3173x
6. LeftHand Mała Księgowość
Download: 7171x
7. MISU pyFotoResize
Download: 2775x
8. Lefthand CRM
Download: 3540x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 3089x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz