Zabbix ja Google Cloud
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
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:
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 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
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):
Monitoorimisserveri jaoks (mon.planet.zz):
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.