Realaus laiko stebėjimo nustatymas naudojant „Ganglia“ tinklams ir „Linux“ serverių klasteriams


Nuo tada, kai sistemos administratoriai buvo atsakingi už serverių ir mašinų grupių valdymą, tokie įrankiai kaip programų stebėjimas buvo jų geriausi draugai. Jūs tikriausiai susipažinsite su tokiais įrankiais kaip „Icinga“ ir „Centreon“. Nors tai yra sunkūs stebėjimo veiksniai, naujiems vartotojams gali būti šiek tiek sunku juos nustatyti ir visiškai pasinaudoti jų funkcijomis.

Šiame straipsnyje mes supažindinsime jus su stebėjimo sistema „Ganglia“, kuri yra lengvai keičiama ir leidžia realiuoju laiku peržiūrėti įvairiausias „Linux“ serverių ir grupių sistemos metrikas (plius grafikai).

„Ganglia“ leidžia nustatyti tinklelius (vietas) ir grupes (serverių grupes), kad būtų geriau organizuota.

Taigi galite sukurti tinklą, susidedantį iš visų nuotolinėje aplinkoje esančių mašinų, tada grupuoti tas mašinas į mažesnius rinkinius, remiantis kitais kriterijais.

Be to, „Ganglia“ žiniatinklio sąsaja yra optimizuota mobiliesiems įrenginiams, taip pat leidžia eksportuoti duomenis en .csv ir .json formatais.

Mūsų bandymo aplinką sudarys centrinis „CentOS 7“ serveris (IP adresas 192.168.0.29), kuriame įdiegsime „Ganglia“, ir „Ubuntu 14.04“ mašina (192.168.0.32) - langelis, kurį norime stebėti per „Ganglia“ žiniatinklio sąsają.

Šiame vadove „CentOS 7“ sistema bus nurodyta kaip pagrindinis mazgas, o „Ubuntu“ dėžutė - kaip stebima mašina.

„Ganglia“ diegimas ir konfigūravimas

Norėdami įdiegti stebėjimo įrankius pagrindiniame mazge, atlikite šiuos veiksmus:

1. Įjunkite EPEL saugyklą, tada iš ten įdiekite „Ganglia“ ir susijusias komunalines paslaugas:

# yum update && yum install epel-release
# yum install ganglia rrdtool ganglia-gmetad ganglia-gmond ganglia-web 

Aukščiau nurodytame etape įdiegti paketai kartu su pačiomis programomis - ganglijomis - atlieka šias funkcijas:

  1. rrdtool , „Round-Robin“ duomenų bazė, yra įrankis, naudojamas duomenų kitimui laikui bėgant kaupti ir rodyti naudojant grafikus.
  2. ganglia-gmetad yra demonas, kuris renka stebėjimo duomenis iš norimų stebėti kompiuterių. Tuose kompiuteriuose ir pagrindiniame mazge taip pat būtina įdiegti ganglijus-gmondus (patį stebėjimo demoną):
  3. ganglia-web pateikia žiniatinklio sąsają, kurioje matysime stebimų sistemų istorinius grafikus ir duomenis.

2. Nustatykite „Ganglia“ žiniatinklio sąsajos (/ usr/share/ganglia) autentifikavimą. Mes naudosime pagrindinį „Apache“ numatytą autentifikavimą.

Jei norite ištirti pažangesnius saugos mechanizmus, žr. „Apache“ dokumentų skyrių „Patvirtinimas ir autentifikavimas“.

Norėdami pasiekti šį tikslą, sukurkite vartotojo vardą ir priskirkite slaptažodį, kad galėtumėte pasiekti „Apache“ saugomą šaltinį. Šiame pavyzdyje sukursime vartotojo vardą pavadinimu adminganglia ir priskirsime pasirinktą slaptažodį, kuris bus saugomas /etc/httpd/auth.basic (nedvejodami pasirinkite kitą katalogą ir (arba) failą vardas - tol, kol „Apache“ turi skaitymo teises į tuos išteklius, viskas bus gerai):

# htpasswd -c /etc/httpd/auth.basic adminganglia

Prieš tęsdami du kartus įveskite adminganglia slaptažodį.

3. Pakeiskite /etc/httpd/conf.d/ganglia.conf taip:

Alias /ganglia /usr/share/ganglia
<Location /ganglia>
    AuthType basic
    AuthName "Ganglia web UI"
    AuthBasicProvider file
    AuthUserFile "/etc/httpd/auth.basic"
    Require user adminganglia
</Location>

4. Redaguokite /etc/ganglia/gmetad.conf:

Pirmiausia naudokite „gridname“ direktyvą, po kurios aprašomas tinklelio, kurį nustatote, pavadinimas:

gridname "Home office"

Tada naudokite „data_source“, po kurio aprašomasis klasterio (serverių grupės) pavadinimas, apklausos intervalas sekundėmis ir pagrindinio bei stebimų mazgų IP adresas:

data_source "Labs" 60 192.168.0.29:8649 # Master node
data_source "Labs" 60 192.168.0.32 # Monitored node

5. Redaguokite /etc/ganglia/gmond.conf.

a) Įsitikinkite, kad sankaupos blokas atrodo taip:

cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}

b) „udp_send_chanel“ bloke pakomentuokite „mcast_join“ direktyvą:

udp_send_channel   {
  #mcast_join = 239.2.11.71
  host = localhost
  port = 8649
  ttl = 1
}

c) Galiausiai pakomentuokite „mcast_join“ ir susieti direktyvas „udp_recv_channel“ bloke:

udp_recv_channel {
  #mcast_join = 239.2.11.71 ## comment out
  port = 8649
  #bind = 239.2.11.71 ## comment out
}

Išsaugokite pakeitimus ir išeikite.

6. Atidarykite 8649/udp prievadą ir leiskite PHP scenarijams (paleisti per „Apache“) prisijungti prie tinklo naudojant reikiamą „SELinux“ loginę reikšmę:

# firewall-cmd --add-port=8649/udp
# firewall-cmd --add-port=8649/udp --permanent
# setsebool -P httpd_can_network_connect 1

7. Paleiskite iš naujo „Apache“, „gmetad“ ir „gmond“. Be to, įsitikinkite, kad jie įjungti įkrovos metu:

# systemctl restart httpd gmetad gmond
# systemctl enable httpd gmetad httpd

Šiuo metu turėtumėte sugebėti atidaryti „Ganglia“ žiniatinklio sąsają adresu http://192.168.0.29/ganglia ir prisijungti naudodamiesi prisijungimo duomenimis iš 2 žingsnio.

8. „Ubuntu“ pagrindiniame kompiuteryje „CentOS“ įdiegsime tik ganglijus-monitorių, kuris atitiktų ganglijus-gmondus:

$ sudo aptitude update && aptitude install ganglia-monitor

9. Redaguokite /etc/ganglia/gmond.conf failą stebimame laukelyje. Tai turėtų sutapti su tuo pačiu failu pagrindiniame mazge, išskyrus tai, kad turi būti įgalintos komentuojamos klasterio eilutės, udp_send_channel ir udp_recv_channel:

cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}

udp_send_channel   {
  mcast_join = 239.2.11.71
  host = localhost
  port = 8649
  ttl = 1
}

udp_recv_channel {
  mcast_join = 239.2.11.71 ## comment out
  port = 8649
  bind = 239.2.11.71 ## comment out
}

Tada iš naujo paleiskite paslaugą:

$ sudo service ganglia-monitor restart

10. Atnaujinkite žiniatinklio sąsają ir turėtumėte galėti peržiūrėti abiejų kompiuterių statistiką ir diagramas namų biuro tinklelio/laboratorijų klasterio viduje (naudodami išskleidžiamąjį meniu šalia „Namų biuro tinklelis“ pasirinkite klasterį, mūsų atveju - „Labs“):

Naudodamiesi meniu skirtukais (paryškintais aukščiau) galite pasiekti daug įdomios informacijos apie kiekvieną serverį atskirai ir grupėmis. Naudodamiesi skirtuku Palyginti šeimininkus, galite netgi palyginti visų grupių serverių statistiką.

Paprasčiausiai pasirinkite serverių grupę naudodami įprastą išraišką ir galėsite greitai palyginti jų našumą:

Viena iš man asmeniškai patraukliausių funkcijų yra mobiliesiems pritaikyta santrauka, kurią galite pasiekti naudodami skirtuką „Mobilus“. Pasirinkite grupę, kuri jus domina, ir tada atskirą pagrindinį kompiuterį:

Santrauka

Šiame straipsnyje mes pristatėme „Ganglia“ - galingą ir keičiamo dydžio stebėjimo sprendimą tinklams ir serverių grupėms. Nesivaržykite įdiegti, tyrinėti ir žaisti su „Ganglia“ tiek, kiek jums patinka (beje, jūs netgi galite išbandyti „Ganglia“ demonstracinėje versijoje, pateiktoje projekto oficialioje svetainėje.

Tuo metu jūs taip pat sužinosite, kad kelios žinomos kompanijos tiek IT pasaulyje, tiek nenaudoja „Ganglia“. Yra daugybė svarių priežasčių, be tų, kuriomis mes pasidalijome šiame straipsnyje, o naudojimo paprastumas ir grafikai kartu su statistika (malonu pavadinti veidą, ar ne?) Turbūt yra viršuje.

Bet ne tik imkitės žodžio, išbandykite ir patys, jei turite klausimų, naudodamiesi žemiau esančia komentaro forma, nedvejodami nuleiskite mums eilutę.