Zabbix ja Google Cloud

From ICO wiki
Jump to navigationJump to search

Juri Kononov A31


Sissejuhatus

Selle kirjatises paneme Zabbix Serveri ja sidume teda kahe kliendiga, kus jooksevad teenusserverid. Serverite platsiks 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)


f1-micro
Mälu: 0.60 GB
CPU arv: 1 tk.


f1-micro
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 kättesaadavust serveritel.

NB! selles näites reaalne domeini nimi 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 domeini 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"
        }
    

    Zabbixi Server Paigaldus

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

    Lisame source.lists faili kirjed:

    sudo 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õti, et server usaldaks allikat:

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

    Installime Zabbix serveri ja vajalike pakette. NB! Veenduge, et serverisse ei ole varakult installitud Apache2 või MySQL-server pakke, see võib tekkitada probleeme. NB! Instaleerimise käigus sa pead sisestama MySQL-Serveri root kasutaja parooli, kindlaste jätta seda meetde või pane kuhugi kirja:

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

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

    sudo apt-get update
    sudo 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, selleks hetkeks teil on veateade, mis ütleb, et libc6 on vana versiooni. Selle probleemi lahendamiseks käivitage käsk:

    sudo apt-get -f install
    

    Järgmisena, muudame Zabbix serveri settinguid:

    nano /etc/zabbix/zabbix_server.conf
    

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

    DBName=zabbix
    DBUser=zabbix
    DBPassword=sinu_parool_on_siis
    

    Järgmisena pakkime lahti SQL backupid.

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

    Ühendame MySQL Serveriga

    mysql -u root -p
    

    JA tekkitame kasutaja ja andmebaasi mida varem kirjeldasime zabbix_server.confis:

    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 paar PHP seadet:

    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 serviri 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
    sudo 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 alias.

    cp /usr/share/doc/zabbix-frontend-php/examples/apache.conf /etc/apache2/conf-available/zabbix.conf
    sudo a2enconf zabbix.conf
    sudo a2enmod alias
    sudo 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 agenti 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õti, et server usaldaks allikat:

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

    agenti

    apt-get update
    apt-get install zabbix-agent
    

    Mõndates Google Cloud Nodides 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 veebiliidesses

  • 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, kuvab uus aken
  • Muudame agenti IP ja Hostname (peab olema sama mis konfi failis oli määratud)
  • Kui on vaja masinaid juurde teha, kuda mingi varesem masin ja all vali "Clone"
    Kuna kasutame Google Cloude VM, mesinad veel ei ilmu Monitoorimisserveris.

    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 agentid saavad ü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, aga Google Cloud eripärade pärase see protsess võib natuke raskemaks 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