1 Serveris

Pārskats

Zabbix serveris ir Zabbix programmatūras centrālais process.

Serveris veic datu aptaujāšanu un saņemšanu, aprēķina trigerus, sūta paziņojumus lietotājiem. Tas ir centrālais komponents, kuram Zabbix aģenti un starpniekserveri ziņo datus par sistēmu pieejamību un integritāti. Serveris pats var arī attālināti pārbaudīt tīkla pakalpojumus (piemēram, tīmekļa serverus un pasta serverus), izmantojot vienkāršas pakalpojumu pārbaudes.

Serveris ir centrālā krātuve, kurā tiek glabāti visi konfigurācijas, statistikas un darbības dati, un tā ir Zabbix vienība, kas aktīvi brīdinās administratorus, kad kādā no uzraudzītajām sistēmām radīsies problēmas.

Pamata Zabbix servera darbība ir sadalīta trīs atsevišķos komponentos; tie ir: Zabbix serveris, tīmekļa lietotāja saskarne un datubāzes krātuve.

Visa Zabbix konfigurācijas informācija tiek glabāta datubāzē, ar kuru mijiedarbojas gan serveris, gan tīmekļa lietotāja saskarne. Piemēram, kad izveidojat jaunu vienumu, izmantojot tīmekļa lietotāja saskarni (vai API), tas tiek pievienots datubāzes tabulai items. Pēc tam aptuveni reizi minūtē Zabbix serveris vaicā tabulu items, lai iegūtu aktīvo vienumu sarakstu, kas pēc tam tiek saglabāts kešatmiņā Zabbix serverī. Tāpēc var paiet līdz divām minūtēm, līdz jebkuras Zabbix lietotāja saskarnē veiktās izmaiņas parādās jaunāko datu sadaļā.

Servera palaišana

Ja instalēts kā pakotne

Zabbix serveris darbojas kā dēmona process. Serveri var palaist, izpildot:

systemctl start zabbix-server

Tas darbosies lielākajā daļā GNU/Linux sistēmu. Citās sistēmās jums var būt nepieciešams izpildīt:

/etc/init.d/zabbix-server start

Līdzīgi, lai apturētu/pārstartētu/apskatītu statusu, izmantojiet šādas komandas:

systemctl stop zabbix-server
systemctl restart zabbix-server
systemctl status zabbix-server
Palaist manuāli

Ja iepriekš minētais nedarbojas, tas ir jāpalaiž manuāli. Atrodiet ceļu uz zabbix_server bināro failu un izpildiet:

zabbix_server

Ar Zabbix serveris var izmantot šādus komandrindas parametrus:

-c --config <file>              ceļš uz konfigurācijas failu (noklusējums ir /usr/local/etc/zabbix_server.conf)
-f --foreground                 palaist Zabbix serveris priekšplānā
-R --runtime-control <option>   veikt administratīvās funkcijas
-T --test-config                pārbaudīt konfigurācijas failu un iziet
-h --help                       parādīt šo palīdzību
-V --version                    parādīt versijas numuru

Zabbix serveris palaišanas piemēri ar komandrindas parametriem:

zabbix_server -c /usr/local/etc/zabbix_server.conf
zabbix_server --help
zabbix_server -V
Izpildlaika vadība

Izpildlaika vadības opcijas:

Opcija Apraksts Mērķis
config_cache_reload Pārlādēt konfigurācijas kešatmiņu. Tiek ignorēts, ja kešatmiņa pašlaik tiek ielādēta.
history_cache_clear=target Notīrīt vēstures kešatmiņu vienumam, kas norādīts ar tā ID.
Ietekmē visas vienuma vērtības, izņemot pirmo un pēdējo vērtību.
target - vienuma ID
diaginfo[=<section>] Apkopot diagnostikas informāciju servera žurnālfailā. historycache - vēstures kešatmiņas statistika
valuecache - vērtību kešatmiņas statistika
preprocessing - priekšapstrādes pārvaldnieka statistika
alerting - brīdinājumu pārvaldnieka statistika
lld - LLD pārvaldnieka statistika
locks - muteksu saraksts (ir tukšs BSD sistēmās)
connector - statistika savienotājiem ar lielāko rindu
ha_status Reģistrēt augstas pieejamības (HA) klastera statusu žurnālā.
ha_remove_node=target Noņemt augstas pieejamības (HA) mezglu, kas norādīts ar tā nosaukumu vai ID.
Ņemiet vērā, ka aktīvos/gaidstāves mezglus nevar noņemt.
target - mezgla nosaukums vai ID (var iegūt, izpildot ha_status)
ha_set_failover_delay=delay Iestatīt augstas pieejamības (HA) pārslēgšanās aizturi.
Tiek atbalstīti laika sufiksi, piemēram, 10s, 1m.
proxy_config_cache_reload[=<target>] Pārlādēt starpniekservera konfigurācijas kešatmiņu. target - ar komatiem atdalīts starpniekserveru nosaukumu saraksts
Ja mērķis nav norādīts, pārlādēt konfigurāciju visiem starpniekserveriem
secrets_reload Pārlādēt noslēpumus no Vault.
service_cache_reload Pārlādēt pakalpojumu pārvaldnieka kešatmiņu.
snmp_cache_reload Pārlādēt SNMP kešatmiņu — notīrīt SNMP dzinēja īpašības (dzinēja laiks, dzinēja palaišanas reizes, dzinēja ID, akreditācijas dati) visiem hostiem. Izmantojiet, lai piespiestu globālu kešatmiņas notīrīšanu SNMP problēmu novēršanas laikā.
housekeeper_execute Sākt tīrīšanas procedūru.
Tiek ignorēts, ja tīrīšanas procedūra pašlaik tiek izpildīta.
trigger_housekeeper_execute Sākt trigeru tīrīšanas procedūru.
Tiek ignorēts, ja trigeru tīrīšanas procedūra pašlaik tiek izpildīta.
log_level_increase[=<target>] Palielināt žurnālošanas līmeni; ietekmē visus procesus, ja mērķis nav norādīts.
Netiek atbalstīts BSD sistēmās.
process type - visi norādītā tipa procesi (piemēram, poller)
Skatiet visus servera procesu tipus.
process type,N - procesa tips un numurs (piemēram, poller,3)
pid - procesa identifikators (1 līdz 65535). Lielākām vērtībām norādiet mērķi kā 'process type,N'.
log_level_decrease[=<target>] Samazināt žurnālošanas līmeni; ietekmē visus procesus, ja mērķis nav norādīts.
Netiek atbalstīts BSD sistēmās.
prof_enable[=<target>] Iespējot profilēšanu.
Ietekmē visus procesus, ja mērķis nav norādīts.
Iespējota profilēšana sniedz detalizētu informāciju par visiem rwlock/mutex pēc funkcijas nosaukuma.
process type - visi norādītā tipa procesi (piemēram, history syncer)
Atbalstītie procesu tipi kā profilēšanas mērķi: alerter, alert manager, availability manager, configuration syncer, discovery manager, escalator, history poller, history syncer, housekeeper, http poller, icmp pinger, ipmi manager, ipmi poller, java poller, lld manager, lld worker, odbc poller, poller, preprocessing manager, preprocessing worker, proxy poller, self-monitoring, service manager, snmp trapper, task manager, timer, trapper, unreachable poller, vmware collector
process type,N - procesa tips un numurs (piemēram, history syncer,1)
pid - procesa identifikators (1 līdz 65535). Lielākām vērtībām norādiet mērķi kā 'process type,N'.
scope - rwlock, mutex, processing var izmantot kopā ar procesa tipu un numuru (piemēram, history syncer,1,processing) vai visiem šī tipa procesiem (piemēram, history syncer,rwlock)
prof_disable[=<target>] Atspējot profilēšanu.
Ietekmē visus procesus, ja mērķis nav norādīts.
process type - visi norādītā tipa procesi (piemēram, history syncer)
Atbalstītie procesu tipi kā profilēšanas mērķi: skatiet prof_enable
process type,N - procesa tips un numurs (piemēram, history syncer,1)
pid - procesa identifikators (1 līdz 65535). Lielākām vērtībām norādiet mērķi kā 'process type,N'.

Piemērs, kā izmantot izpildlaika vadību, lai pārlādētu servera konfigurācijas kešatmiņu:

zabbix_server -c /usr/local/etc/zabbix_server.conf -R config_cache_reload

Piemēri, kā izmantot izpildlaika vadību, lai pārlādētu starpniekservera konfigurāciju:

# Pārlādēt visu starpniekserveru konfigurāciju:
zabbix_server -R proxy_config_cache_reload

# Pārlādēt Proxy1 un Proxy2 konfigurāciju:
zabbix_server -R proxy_config_cache_reload=Proxy1,Proxy2

Piemērs, kā izmantot izpildlaika vadību, lai notīrītu vēstures kešatmiņu vienumam:

zabbix_server -c /usr/local/etc/zabbix_server.conf -R history_cache_clear=42243

Piemēri, kā izmantot izpildlaika vadību, lai iegūtu diagnostikas informāciju:

# Iegūt visu pieejamo diagnostikas informāciju servera žurnālfailā:
zabbix_server -R diaginfo

# Iegūt vēstures kešatmiņas statistiku servera žurnālfailā:
zabbix_server -R diaginfo=historycache

Piemērs, kā izmantot izpildlaika vadību, lai pārlādētu SNMP kešatmiņu:

zabbix_server -R snmp_cache_reload

Kad SNMPv3 saskarne tiek atjaunināta, izmantojot Zabbix UI, Zabbix vairumā gadījumu automātiski pārlādēs šīs saskarnes jaunos SNMPv3 akreditācijas datus; izmantojiet -R snmp_cache_reload tikai tad, ja aptauja joprojām neizdodas pēc akreditācijas datu izmaiņām (piemēram, engineBoots/engineID neatbilstību vai RFC neatbilstošu ierīču dēļ), vai ja problēmu novēršanas nolūkos nepieciešams piespiedu kārtā notīrīt globālo SNMP kešatmiņu.

Piemērs, kā izmantot izpildlaika vadību, lai aktivizētu housekeeper izpildi:

zabbix_server -c /usr/local/etc/zabbix_server.conf -R housekeeper_execute

Piemēri, kā izmantot izpildlaika vadību, lai mainītu žurnāla līmeni:

# Palielināt žurnāla līmeni visiem procesiem:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase

# Palielināt žurnāla līmeni otrajam poller procesam:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=poller,2

# Palielināt žurnāla līmeni procesam ar PID 1234:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=1234

# Samazināt žurnāla līmeni visiem http poller procesiem:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_decrease="http poller"

Piemērs, kā iestatīt HA pārslēgšanās aizkavi uz minimālajām 10 sekundēm:

zabbix_server -R ha_set_failover_delay=10s
Procesa lietotājs

Zabbix serveris ir paredzēts darbībai kā lietotājam bez root tiesībām. Tas darbosies ar jebkuru lietotāju bez root tiesībām, ar kuru tas ir palaists. Tāpēc serveri varat bez problēmām palaist kā jebkuru lietotāju bez root tiesībām.

Ja mēģināsiet to palaist kā 'root', tas pārslēgsies uz stingri definētu 'zabbix' lietotāju, kuram jābūt izveidotam jūsu sistēmā. Serveri var palaist kā 'root' tikai tad, ja attiecīgi modificējat parametru 'AllowRoot' servera konfigurācijas failā.

Ja Zabbix serveris un aģents darbojas vienā un tajā pašā datorā, ieteicams servera darbināšanai izmantot citu lietotāju nekā aģenta darbināšanai. Pretējā gadījumā, ja abi darbojas ar vienu un to pašu lietotāju, aģents var piekļūt servera konfigurācijas failam, un jebkurš Zabbix administrators ar Admin līmeņa tiesībām var diezgan viegli iegūt, piemēram, datubāzes paroli.

Konfigurācijas fails

Detalizētu informāciju par zabbix_server konfigurēšanu skatiet konfigurācijas faila opcijās.

Startēšanas skripti

Skripti tiek izmantoti, lai sistēmas palaišanas/izslēgšanas laikā automātiski palaistu/apturētu Zabbix procesus. Skripti atrodas direktorijā misc/init.d.

Servera procesu tipi un pavedieni

  • agent poller - asinhrons aģenta aptaujātāja process pasīvajām pārbaudēm ar darba pavedienu
  • alert manager - brīdinājumu rindas pārvaldnieks
  • alert syncer - brīdinājumu DB rakstītājs
  • alerter - process paziņojumu sūtīšanai
  • availability manager - process hostu pieejamības atjaunināšanai
  • browser poller - aptaujātājs pārlūka vienumu pārbaudēm
  • configuration syncer - process konfigurācijas datu atmiņā esošās kešatmiņas pārvaldībai
  • configuration syncer worker - process lietotāja makro vērtību atrisināšanai un sinhronizēšanai vienumu nosaukumos
  • connector manager - savienotāju pārvaldnieka process
  • connector worker - process pieprasījumu apstrādei no savienotāju pārvaldnieka
  • discovery manager - pārvaldnieka process ierīču atklāšanai
  • discovery worker - process atklāšanas uzdevumu apstrādei no atklāšanas pārvaldnieka
  • escalator - process darbību eskalācijai
  • ha manager - process augstas pieejamības pārvaldībai
  • history poller - process aprēķināto pārbaužu apstrādei, kurām nepieciešams datubāzes savienojums
  • history syncer - vēstures DB rakstītājs
  • housekeeper - process novecojušu datu (vienumu vēstures un tendenču, lietotāju sesiju, notikumu u.c.), kā arī pēc dzēstiem objektiem palikušo datu noņemšanai
  • http agent poller - asinhrons HTTP aģenta aptaujātāja process HTTP pārbaudēm ar darba pavedienu
  • http poller - tīmekļa uzraudzības aptaujātājs
  • icmp pinger - aptaujātājs icmpping pārbaudēm
  • internal poller - aptaujātājs iekšējām pārbaudēm
  • ipmi manager - IPMI aptaujātāju pārvaldnieks
  • ipmi poller - aptaujātājs IPMI pārbaudēm
  • java poller - aptaujātājs Java pārbaudēm
  • lld manager - zema līmeņa atklāšanas uzdevumu pārvaldnieka process
  • lld worker - zema līmeņa atklāšanas uzdevumu darba process
  • odbc poller - aptaujātājs ODBC pārbaudēm
  • poller - parasts aptaujātājs pasīvajām pārbaudēm
  • preprocessing manager - priekšapstrādes uzdevumu pārvaldnieks ar priekšapstrādes darba pavedieniem
  • preprocessing worker - pavediens datu priekšapstrādei
  • proxy poller - aptaujātājs pasīvajiem starpniekserveriem
  • proxy group manager - starpniekserveru slodzes līdzsvarošanas un augstas pieejamības pārvaldnieks
  • report manager- plānoto atskaišu ģenerēšanas uzdevumu pārvaldnieks
  • report writer - process plānoto atskaišu ģenerēšanai
  • self-monitoring - process iekšējās servera statistikas apkopošanai
  • service manager - process pakalpojumu pārvaldībai, saņemot informāciju par problēmām, problēmu birkām un problēmu atkopšanu no history syncer, task manager un alert manager
  • snmp poller - asinhrons SNMP aptaujātāja process SNMP pārbaudēm ar darba pavedienu (tikai walk[OID] un get[OID] vienumi)
  • snmp trapper - uztvērējs SNMP slazdiem
  • task manager - process citu komponentu pieprasīto uzdevumu attālinātai izpildei (piemēram, problēmas aizvēršana, problēmas apstiprināšana, vienuma vērtības pārbaude tagad, attālināto komandu funkcionalitāte)
  • timer - taimeris uzturēšanas periodu apstrādei
  • trapper - uztvērējs aktīvajām pārbaudēm, slazdiem, starpniekservera saziņai
  • trigger housekeeper - process problēmu un notikumu noņemšanai, ko ģenerējuši trigeri, kuri kopš tā laika ir dzēsti
  • unreachable poller - aptaujātājs nesasniedzamām ierīcēm
  • vmware collector - VMware datu savācējs, kas atbild par datu iegūšanu no VMware pakalpojumiem

Servera žurnālfailu var izmantot, lai novērotu šos procesu tipus.

Servera žurnālfails tiek izveidots ar lasīšanas-rakstīšanas atļaujām tikai faila īpašniekam. Papildus tam fails ir lasāms īpašnieka grupai. Visas pārējās atļaujas ir liegtas.

Dažādus Zabbix servera procesu tipus var uzraudzīt, izmantojot iekšējo zabbix[process,<type>,<mode>,<state>] vienumu.

Vēstures sinhronizētāja transakciju statistika

Vēstures sinhronizētāja procesa nosaukums parāda detalizētu statistiku par vēstures sinhronizētāja transakcijām:

205182 ?        S      0:00  zabbix_server: history syncer #2 [processed 0 values, 0+0 triggers in 0.000021 (0.000000,0.000000,0.000000,0.000000,0.000000) sec, idle 1 sec]
205183 ?        S      0:00  zabbix_server: history syncer #3 [processed 18 values, 7+0 triggers in 0.002612 (0.001108,0.000000,0.000000,0.001208,0.000014) sec, idle 1 sec]
205184 ?        S      0:00  zabbix_server: history syncer #4 [processed 0 values, 0+0 triggers in 0.000027 (0.000000,0.000000,0.000000,0.000000,0.000000) sec, idle 1 sec]

Sadaļā "A+B trigeri":

  • A - trigeri, kas apstrādāti vēstures vērtību dēļ;
  • B - trigeri, kas apstrādāti taimeru dēļ.

Laiki sadaļā "processed...in N (<timings>) sec" ir:

  • Laiks, kas pavadīts, ierakstot vienumu vērtības datubāzē;
  • Laiks, kas pavadīts, atjauninot vienumu datus (stāvokli, kļūdas, hosta inventāru utt.);
  • Laiks, kas pavadīts, saglabājot tendenču datus datubāzē;
  • Laiks, kas pavadīts, aprēķinot trigerus;
  • Laiks, kas pavadīts, apstrādājot notikumus un darbības.
Housekeeping procedūra

housekeeper process periodiski noņem novecojušus datus (vienumu vēsturi un tendences, lietotāju sesijas, notikumus utt.), kā arī datus, kas palikuši pēc dzēstiem objektiem. Tas darbojas ciklos, kuru biežumu un vienā ciklā dzēšamo ierakstu limitu nosaka HousekeepingFrequency un MaxHousekeeperDelete. Visi dati, kas netiek noņemti vienā ciklā, tiek pārcelti uz nākamo. Automātisko housekeeping var iespējot un konfigurēt sadaļā Administration > Housekeeping.

Lai noņemtu datus, kas palikuši pēc dzēstiem objektiem, housekeeper process izmanto uzdevumus no housekeeper tabulas, kas tiek aizpildīta ikreiz, kad objekts tiek dzēsts. Piemēram, dzēšot hostu, Zabbix dzēš arī tā vienumus, bet ne to vēsturi, tendences vai problēmas. Tā vietā datubāzes trigeri aizpilda housekeeper tabulu ar uzdevumiem, kas sastāv no šiem laukiem:

  • housekeeperid - uzdevuma ID
  • object - objekta tips (0 - vienums; 1 - trigeris; 2 - pakalpojums; 3 - atklātais hosts; 4 - atklātais pakalpojums)
  • objectid - objekta ID (palīdz housekeeper atrast ar objektu saistītos datus)

Piemēram, dzēšot hostu ar diviem vienumiem un vienu trigeri, housekeeper tabula tiek aizpildīta šādi:

+---------------+--------+----------+
| housekeeperid | object | objectid |
+---------------+--------+----------+
|             1 |      1 |    28724 |
|             2 |      0 |    59396 |
|             3 |      0 |    59397 |
+---------------+--------+----------+

Datubāzes trigeri aizpilda housekeeper tabulu, nepārbaudot, vai pastāv ar objektu saistīti dati; šo pārbaudi veic housekeeper process.

Katrs uzdevums rada vienu vai vairākas housekeeper darbības, kas ir atkarīgas no objekta tipa:

  • Vienumiem (ieskaitot LLD kārtulas) - noņem datus no visām vēstures un tendenču tabulām (history, history_str, history_log, history_uint, history_text, history_bin, history_json, trends, trends_uint), kurās ir šo vienumu vērtības. Tāpat pārbauda problems tabulu un noņem novecojušus iekšējos notikumus, kas saistīti ar šiem vienumiem.

  • Trigeriem - pārbauda ar notikumiem saistītās tabulas (problem, event_symptom, event_recovery, events) un noņem novecojušus notikumus, kas ir saistīti ar šiem trigeriem, kā arī paziņo service manager procesam par noņemtajiem notikumiem.

Atsevišķs trigger housekeeper process veic šaurāku uzdevumu — noņem problēmas un notikumus, kuriem nav zināma avota trigeris. Tā palaišanas biežumu kontrolē ProblemHousekeepingFrequency.

Līdz trigger housekeeping procedūras palaišanai problēmas, ko izraisījuši vēlāk dzēsti trigeri, joprojām var ģenerēt pakalpojumu problēmas un piesaistīt tās pakalpojumiem. Ja jūsu vidē ir daudz pakalpojumu statusa aprēķināšanas kārtulu, kas balstītas uz bieži atklātiem/slēptiem trigeriem, apsveriet iespēju palielināt housekeeping procedūras biežumu, pielāgojot servera konfigurācijas parametru ProblemHousekeepingFrequency.

  • Pakalpojumiem - pārbauda problems tabulu un noņem novecojušus pakalpojumu notikumus, kā arī novecojušas pakalpojumu problēmas, tādējādi tās atrisinot housekeeping izpildes laikā.

  • Tīkla atklāšanai - noņem novecojušus atklāšanas notikumus no problems tabulas.

Housekeeper noņem tikai tos notikumus, kas nav saistīti ar problēmām. Piemēram, novecojis problēmas/atkopšanas notikums netiks noņemts, ja tas ir saistīts ar atvērtu problēmu. Kad housekeeper noņem novecojušas entītijas, tas vispirms noņem problēmas un pēc tam notikumus.

Tabulas, kas izmanto partition režīmu (TimescaleDB particionētās tabulas), tiek izlaistas; tiek apstrādātas tikai tabulas, kas izmanto regular režīmu.

Atbalstītās platformas

Drošības prasību un servera darbības kritiski svarīgā rakstura dēļ UNIX ir vienīgā operētājsistēma, kas spēj pastāvīgi nodrošināt nepieciešamo veiktspēju, kļūdu noturību un darbības nepārtrauktību. Zabbix darbojas tirgū vadošajās versijās.

Zabbix serveris ir testēts šādās platformās:

  • Linux
  • Solaris
  • AIX
  • HP-UX
  • Mac OS X
  • FreeBSD
  • OpenBSD
  • NetBSD
  • SCO Open Server

Zabbix var darboties arī citās Unix tipa operētājsistēmās.

Lokalizācija

Ņemiet vērā, ka serveris pieprasa UTF-8 lokalizāciju, lai daži teksta vienumi varētu tikt pareizi interpretēti. Lielākajā daļā mūsdienu Unix tipa sistēmu UTF-8 lokalizācija ir iestatīta pēc noklusējuma, tomēr ir sistēmas, kurās tā ir jānorāda īpaši.