Zabbix ja Google Cloud

From ICO wiki
Jump to navigationJump to search

Juri Kononov A31
14.01.2015

Sissejuhatus

Selle kirjutises paigaldame Zabbix Serveri ja seome selle kahe kliendiga, kus töötavad teenusserverid. Serverite platvormiks kasutame GoogleCloud VM.
mon.planet.zz - monitoorimisserver (Ubuntu 14.10, f1-micro)
apollo.planet.zz - esimene teenusserver (Debian, g1-small)
bravo.planet.zz - teine server (Ubuntu 12.02, g1-small)

Otsustasin oma projekti jaoks, et monitoorimisserveri jaoks piisab Google Cloud Serverist paketiga f-micro ja teenusserveriteks (veebipõhised serverid) g1-small.
f1-micro
Mälu: 0.60 GB
CPU arv: 1 tk.


g1-small
Mälu: 1.70 GB
CPU arv: 1 tk.


Zabbix on lihtne mugav ja multifunktsionaalse monitoorimistarkvara mis on ka vabavara. Konkreetse näite põhjal seadistame Zabbixi selleks, et jälgida koormust (CPU, Mälu, Võrk) ja serverite kättesaadavust.

NB! selles näites reaalne domeeninimi on asendatud planet.zz'iga

Google Cloud Serveri ettevalmistus

  • Logige oma Google kasutajaga või registreerige uus
  • Kuvage järgmine leht: https://console.developers.google.com/
  • Tehke Uus Project, vajutades "Create Project"
  • Valige tehtud project kuvatud nimekirjast
  • Vasakus pool menüüst valige "Compute" -> "Compute Engine" -> "VM Instances"
  • Looge serverid vastavalt teie vajadusele, selle näite jaoks kasutame ühte f1-micro ja kahte g1-small serveri
    Projecti maksumuse arvutamiseks võib abiks olla "Google Cloud Platform Pricing Calculator": https://cloud.google.com/products/calculator/

    Selleks, et serveriga ühendust saada vajuta serveri vastas oleva SSH märgi peale. Avab uus veebilehitseja aken, kus on SSH session.

    Google Cloud DNS Seadistamine ja kirjete lisamine

    Kuidas seadistada Google Cloud DNS nullist saate lugeda siin:

  • https://cloud.google.com/dns/?hl=en
  • https://cloud.google.com/dns/update-name-servers
  • https://cloud.google.com/dns/docs
    Niimodi näeb Google SDK päring meie näite põhjal (P.S. selles näites reaalne domeeni nimi on asendatud planet.zz iga) Additions:
    [
        {
            "kind": "dns#resourceRecordSet",
            "name": "planet.zz.",
            "rrdatas": [
                "222.155.6.64"
            ],
            "ttl": 86400,
            "type": "A"
        },
        {
            "kind": "dns#resourceRecordSet",
            "name": "planet.zz.",
            "rrdatas": [
                "1 aspmx.l.google.com.",
                "5 alt1.aspmx.l.google.com.",
                "5 alt2.aspmx.l.google.com.",
                "10 alt3.aspmx.l.google.com.",
                "10 alt4.aspmx.l.google.com."
            ],
            "ttl": 86400,
            "type": "MX"
        },
        {
            "kind": "dns#resourceRecordSet",
            "name": "planet.zz.",
            "rrdatas": [
                "ns-cloud-e1.googledomains.com.",
                "ns-cloud-e2.googledomains.com.",
                "ns-cloud-e3.googledomains.com.",
                "ns-cloud-e4.googledomains.com."
            ],
            "ttl": 21600,
            "type": "NS"
        },
        {
            "kind": "dns#resourceRecordSet",
            "name": "planet.zz.",
            "rrdatas": [
                "ns-cloud-e1.googledomains.com. dns-admin.google.com. 4 21600 3600 1209600 300"
            ],
            "ttl": 21600,
            "type": "SOA"
        },
        {
            "kind": "dns#resourceRecordSet",
            "name": "apollo.planet.zz.",
            "rrdatas": [
                "23.252.162.151"
            ],
            "ttl": 86400,
            "type": "A"
        },
        {
            "kind": "dns#resourceRecordSet",
            "name": "bravo.planet.zz.",
            "rrdatas": [
                "230.251.133.15"
            ],
            "ttl": 21600,
            "type": "A"
        },
    
        {
            "kind": "dns#resourceRecordSet",
            "name": "mon.planet.zz.",
            "rrdatas": [
                "144.145.122.245"
            ],
            "ttl": 86400,
            "type": "A"
        },
        {
            "kind": "dns#resourceRecordSet",
            "name": "www.planet.zz.",
            "rrdatas": [
                "14.15.6.4"
            ],
            "ttl": 86400,
            "type": "A"
        }
    ]
    [
        {
            "kind": "dns#resourceRecordSet",
            "name": "planet.zz.",
            "rrdatas": [
                "14.15.6.4"
            ],
            "ttl": 86400,
            "type": "A"
        },
        {
            "kind": "dns#resourceRecordSet",
            "name": "planet.zz.",
            "rrdatas": [
                "1 aspmx.l.google.com.",
                "5 alt1.aspmx.l.google.com.",
                "5 alt2.aspmx.l.google.com.",
                "10 alt3.aspmx.l.google.com.",
                "10 alt4.aspmx.l.google.com."
            ],
            "ttl": 86400,
            "type": "MX"
        }
    

    Zabbix Serveri Paigaldus

    Ühendame mon.planet.zz serveriga (SSH nupp paremal pool serverite nimekirjas)

    Lisame source.lists faili kirjed:

    nano /etc/apt/sources.list
    

    sources.list lõppu:

    # Zabbix Application PPA
    deb http://ppa.launchpad.net/tbfr/zabbix/ubuntu precise main
    deb-src http://ppa.launchpad.net/tbfr/zabbix/ubuntu precise main
    

    Lisame PPA võtme, et server usaldaks allikat:

    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C407E17D5F76A32B
    

    Installime Zabbix serveri ja vajalikud paketid. NB! Veenduge, et serverisse ei ole varasemalt installitud Apache2 või MySQL-server pakke, see võib probleeme tekitada. NB! Instaleerimise käigus sa pead sisestama MySQL-Serveri root kasutaja parooli, kindlaste jäta see meelde või pane kuhugi kirja:

    apt-get update
    apt-get install zabbix-server-mysql php5-mysql zabbix-frontend-php
    

    Mõndades Google Cloud Nodedes ei saa kasutada võõraid PPA servereid. Selleks, et ilma PPA serverita installida teenust kasutan:

    apt-get update
    apt-get install php5-mysql
    cd /tmp
    wget http://repo.zabbix.com/zabbix/2.4/ubuntu/pool/main/z/zabbix/zabbix-server-mysql_2.4.3-1+trusty_amd64.deb
    wget http://repo.zabbix.com/zabbix/2.4/ubuntu/pool/main/z/zabbix/zabbix-frontend-php_2.4.3-1+trusty_all.deb
    dpkg -i zabbix-server-mysql_2.4.3-1+trusty_amd64.deb
    dpkg -i zabbix-frontend-php_2.4.3-1+trusty_all.deb
    

    Kui te installite Zabbix Serveri Debian OS-i siis, siis tuleb teil veateada, mis ütleb, et libc6 on vana versiooniga. Selle probleemi lahendamiseks käivitage käsk:

    apt-get -f install
    

    Järgmisena, muudame Zabbix serveri sätteid:

    nano /etc/zabbix/zabbix_server.conf
    

    zabbix_server.conf-i failis leia järgmised read ja vaheta sinu jaoks sobivaks

    DBName=zabbix
    DBUser=zabbix
    DBPassword=sinu_parool_on_siis
    

    Järgmisena pakime lahti SQL backupid.

    cd /usr/share/zabbix-server-mysql/
    gunzip *.gz
    

    Ühendame MySQL Serveriga

    mysql -u root -p
    

    Tekitame kasutaja ja andmebaasi mis sai varem zabbix_server.confis kirjeldatud:

    create user 'zabbix'@'localhost' identified by 'sinu_parool_on_siis';
    create database zabbix;
    grant all privileges on zabbix.* to 'zabbix'@'localhost';
    flush privileges;
    exit;
    

    Impordime SQL Dumpid:

    mysql -u zabbix -p zabbix < schema.sql
    mysql -u zabbix -p zabbix < images.sql
    mysql -u zabbix -p zabbix < data.sql
    

    Muudame mõne PHP sätte:

    nano /etc/php5/apache2/php.ini
    

    php.ini failis leia ja muuda järgmised kirjed:

    post_max_size = 16M
    max_execution_time = 300
    max_input_time = 300
    date.timezone = "Europe/Riga"
    

    Veenduge, et teie serveri TimeZone on sama mis selles konfiguratsiooni failis.

    Kopeerime conf faili näidisfailist ja muudame:

    cp /usr/share/doc/zabbix-frontend-php/examples/zabbix.conf.php.example /etc/zabbix/zabbix.conf.php
    nano /etc/zabbix/zabbix.conf.php
    

    zabbix.conf.php

    $DB['DATABASE'] = 'zabbix';
    $DB['USER'] = 'zabbix';
    $DB['PASSWORD'] = 'sinu_parool_on_siis'
    

    Kopeerime Apache config faili apache kausta ja loome aliase.

    cp /usr/share/doc/zabbix-frontend-php/examples/apache.conf /etc/apache2/conf-available/zabbix.conf
    a2enconf zabbix.conf
    a2enmod alias
    service apache2 restart
    

    Muudame failis /etc/default/zabbix-server START=yes -iks

    nano /etc/default/zabbix-server
    

    Käivitame server

    service zabbix-server start
    

    Zabbixi Agenti Paigaldus

    Installime agendi apollo.planet.zz ja bravo.planet.zz serveritesse

    Lisame source.lists faili kirjed:

    nano /etc/apt/sources.list
    

    sources.list lõppu:

    # Zabbix Application PPA
    deb http://ppa.launchpad.net/tbfr/zabbix/ubuntu precise main
    deb-src http://ppa.launchpad.net/tbfr/zabbix/ubuntu precise main
    

    Lisame PPA võtme, et server usaldaks allikat:

    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C407E17D5F76A32B
    

    agenti

    apt-get update
    apt-get install zabbix-agent
    

    Mõndades Google Cloud Nodedes ei saa kasutada võõraid PPA servereid. Selleks, et ilma PPA serverita installida teenust kasuta:

    apt-get update
    cd /tmp
    wget http://repo.zabbix.com/zabbix/2.4/ubuntu/pool/main/z/zabbix/zabbix-agent_2.4.3-1+trusty_i386.deb
    dpkg -i zabbix-agent_2.4.3-1+trusty_i386.deb
    apt-get -f install
    

    Muudame agenti kofiguratsioone:

    nano /etc/zabbix/zabbix_agentd.conf
    

    zabbix_agentd.conf failis leida ja asendada sobivaks:

    Server=mon.planet.zz
    Hostname=siia_pange_õige_masina_hostname_ilma_planet.zz
    

    Agentide Seadistamine Zabbix Serveri veebiliideses

  • Kuvame veebiliides aadressil: http://planet.zz/zabbizx
  • Logime Sisse. Kasutajanimi: admin Parool: zabbix
  • Üleval menüüs "Configuration" -> "Hosts" -> "Zabbix Servers"
  • Seal vajutame Zabbix Serveri peale, avaneb uus aken
  • Muudame agendi IP ja Hostname (peab olema sama mis confi failis oli määratud)
  • Kui on vaja masinaid juurde teha, kuva mingi varasem masin ja all vali "Clone"
    Kuna kasutame Google Cloude VM, tuleb mõningad muudatused veel läbi viia, et masinad ilmuksid monitooringuserveris.

    Google Cloud Firewall Settings

    Nüüd me peame avama pordid selleks, et tenused saaksid omavahel ühendust.
    Agent masinate jaoks (apollo.planet.zz ja bravo.planet.zz):

  • 1. Google Developer Consolis VM Instances nimekirjas klikime vastava serveri võrgu adapteri peale (vaikimise nimi on "default")
  • 2. Firewall rules alla vajutame "Create new"
  • 3. "Name" ja "Discription" paneme Zabbix-Agent "Protocols & Ports": tcp:10050
  • 4. Vajutame "Save". Ühe minuti jooksul avatakse port.

    Monitoorimisserveri jaoks (mon.planet.zz):
  • 1. Google Developer Consolis VM Instances nimekirjas klikime vastava serveri võrgu adapteri peale (vaikimise nimi on "default")
  • 2. Firewall rules alla vajutame "Create new"
  • 3. "Name" ja "Discription" paneme Zabbix-Agent "Protocols & Ports": tcp:10051
  • 4. Vajutame "Save". Ühe minuti jooksul avatakse port.

    Maksimum viie minuti jooksul saavad agendid ühendust Zabbix serveriga. Saate kontrollida seda veebiliideses: http://mon.planet.zz/zabbix

    Kokkuvõte

    Zabbix on mugav ja lihtne monitoorimistarkvara väga lihtsa paigaldamisega ja seadistamisega. Google Cloud eripärade pärast võib see protsess natuke keerulisemaks minna. Selles artiklis aga lahendasime enamus neid eripärasid ära.

    Viited

  • https://www.zabbix.com/documentation/2.4/
  • https://cloud.google.com/compute/docs/instances
  • https://cloud.google.com/compute/docs/quickstart
  • https://cloud.google.com/dns/docs