serveris

Pārskats

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

Serveris veic datu aptauju un uztveršanu, aprēķina trigerus un nosū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 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 tas ir Zabbix elements, kas aktīvi brīdina administratorus, kad jebkurā no uzraudzītajām sistēmām rodas problēmas.

Pamata Zabbix servera darbība ir sadalīta trīs atsevišķos komponentos; tie ir: Zabbix serveris, 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 lietotāja saskarne. Piemēram, kad jūs izveidojat jaunu vienumu, izmantojot lietotāja saskarni (vai API), tas tiek pievienots datubāzes items tabulai. Pēc tam aptuveni reizi minūtē Zabbix serveris vaicās items tabulu, 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 pat divām minūtēm, līdz jebkuras Zabbix lietotāja saskarnē veiktās izmaiņas parādās jaunāko datu sadaļā.

Servera darbība

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
Palaišana manuāli

Ja iepriekš minētais nedarbojas, jums tas jāpalaiž manuāli. Atrodiet zabbix_server binārā faila ceļu un izpildiet:

zabbix_server

Ar Zabbix serveris varat izmantot šādus komandrindas parametrus:

-c --config <file>              Ceļš uz konfigurācijas failu (noklusējuma vērtība ir /usr/local/etc/zabbix_server.conf)
-f --foreground                 Palaiž Zabbix serveris priekšplānā
-R --runtime-control <option>   Veic administratīvās funkcijas
-T --test-config                Validē konfigurācijas failu un iziet
-h --help                       Parāda šo palīdzību
-V --version                    Parāda 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:

Option Description Target
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 pēc tā ID.
Ietekmē visas vienuma vērtības, izņemot pirmo un pēdējo vērtību.
target - vienuma ID
diaginfo[=<section>] Savākt diagnostikas informāciju servera žurnāla failā. historycache - vēstures kešatmiņas statistika;
valuecache - vērtību kešatmiņas statistika;
preprocessing - pirmapstrādes pārvaldnieka statistika;
alerting - brīdinājumu pārvaldnieka statistika;
lld - LLD pārvaldnieka statistika;
locks - mutexu saraksts ( BSD sistēmās tas ir tukšs);
connector - statistika par 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 pēc tā nosaukuma vai ID.
Ņemiet vērā, ka aktīvos/gaidstāves mezglus nevar noņemt.
target - mezgla nosaukums vai ID (to var iegūt, izpildot ha_status).
ha_set_failover_delay=delay Iestatīt augstas pieejamības (HA) pārslēgšanās aizkavi.
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 target nav norādīts, konfigurācija tiek pārlādēta 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 laiku, dzinēja palaišanas reižu skaitu, dzinēja ID, akreditācijas datus) visiem hosts. Izmantojiet, lai piespiestu globālu kešatmiņas notīrīšanu, novēršot SNMP problēmas.
housekeeper_execute Sākt housekeeping procedūru.
Tiek ignorēts, ja housekeeping procedūra pašlaik jau notiek.
trigger_housekeeper_execute Sākt trigeru housekeeping procedūru.
Tiek ignorēts, ja trigeru housekeeping procedūra pašlaik jau notiek.
log_level_increase[=<target>] Palielināt žurnāla līmeni, ietekmē visus procesus, ja target nav norādīts.
Nav atbalstīts BSD sistēmās.
process type - visi norādītā tipa procesi (piem., poller).
Skatiet visus servera procesu tipus.
process type,N - procesa tips un numurs (piem., poller,3).
pid - procesa identifikators (1 līdz 65535). Lielākām vērtībām norādiet target kā 'process type,N'.
log_level_decrease[=<target>] Samazināt žurnāla līmeni, ietekmē visus procesus, ja target nav norādīts.
Nav atbalstīts BSD sistēmās.
prof_enable[=<target>] Iespējot profilēšanu.
Ietekmē visus procesus, ja target nav norādīts.
Iespējota profilēšana sniedz informāciju par visiem rwlock/mutex pēc funkcijas nosaukuma.
process type - visi norādītā tipa procesi (piem., 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., history syncer,1).
pid - procesa identifikators (1 līdz 65535). Lielākām vērtībām norādiet target kā 'process type,N'.
scope - rwlock, mutex, processing var izmantot kopā ar procesa tipu un numuru (piem., history syncer,1,processing) vai visiem tipa procesiem (piem., history syncer,rwlock).
prof_disable[=<target>] Atspējot profilēšanu.
Ietekmē visus procesus, ja target nav norādīts.
process type - visi norādītā tipa procesi (piem., history syncer).
Atbalstītie procesu tipi kā profilēšanas mērķi: skatiet prof_enable.
process type,N - procesa tips un numurs (piem., history syncer,1).
pid - procesa identifikators (1 līdz 65535). Lielākām vērtībām norādiet target 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 izstrādāts tā, lai tas darbotos kā lietotājs, kas nav root. Tas darbosies ar jebkuru lietotāju, kas nav root, ar kuru tas tiek palaists. Tāpēc jūs varat palaist serveri kā jebkuru lietotāju, kas nav root, bez jebkādām problēmām.

Ja mēģināsiet to palaist kā root, tas pārslēgsies uz iepriekš noteiktu zabbix lietotāju, kuram jābūt pieejamam jūsu sistēmā. Jūs varat palaist serveri kā root tikai tad, ja attiecīgi modificējat AllowRoot parametru servera konfigurācijas failā.

Ja Zabbix serveris un aģents darbojas vienā un tajā pašā datorā, ieteicams servera palaišanai izmantot citu lietotāju nekā aģenta palaišanai. Pretējā gadījumā, ja abi darbojas kā viens un tas pats lietotājs, aģents var piekļūt servera konfigurācijas failam, un jebkurš Zabbix Admin līmeņa lietotājs var diezgan viegli iegūt, piemēram, datubāzes paroli.

Konfigurācijas fails

Skatiet konfigurācijas faila opcijas, lai iegūtu informāciju par zabbix_server konfigurēšanu.

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.

Server process types and threads

  • agent poller - asinhrons poller process for passive checks with a worker thread;
  • alert manager - alert queue manager;
  • alert syncer - alert DB writer;
  • alerter - process for sending notifications;
  • availability manager - process for host availability updates;
  • browser poller - poller for browser item checks;
  • configuration syncer - process for managing in-memory cache of configuration data;
  • configuration syncer worker - process for resolving and synchronizing user macro values in item names;
  • connector manager - manager process for connectors;
  • connector worker - process for handling requests from the connector manager;
  • discovery manager - manager process for discovery of devices;
  • discovery worker - process for handling discovery tasks from the discovery manager;
  • escalator - process for escalation of actions;
  • ha manager - process for managing high availability;
  • history poller - process for handling calculated checks requiring a database connection;
  • history syncer - history DB writer;
  • housekeeper - process for removing outdated data (item history and trends, user sessions, events, etc.), as well as data left behind by deleted objects;
  • http agent poller - asinhrons poller process for HTTP checks with a worker thread;
  • http poller - web monitoring poller;
  • icmp pinger - poller for icmpping checks;
  • internal poller - poller for internal checks;
  • ipmi manager - IPMI poller manager;
  • ipmi poller - poller for IPMI checks;
  • java poller - poller for Java checks;
  • lld manager - manager process of low-level discovery tasks;
  • lld worker - worker process of low-level discovery tasks;
  • odbc poller - poller for ODBC checks;
  • poller - normal poller for passive checks;
  • preprocessing manager - manager of preprocessing tasks with preprocessing worker threads;
  • preprocessing worker - thread for data preprocessing;
  • proxy poller - poller for passive proxies;
  • proxy group manager - manager of proxy load balancing and high availability;
  • report manager- manager of scheduled report generation tasks;
  • report writer - process for generating scheduled reports;
  • self-monitoring - process for collecting internal server statistics;
  • service manager - process for managing services by receiving information about problems, problem tags, and problem recovery from history syncer, task manager, and alert manager;
  • snmp poller - asinhrons poller process for SNMP checks with a worker thread (walk[OID] and get[OID] items only);
  • snmp trapper - trapper for SNMP traps;
  • task manager - process for remote execution of tasks requested by other components (e.g., close problem, acknowledge problem, check item value now, remote command functionality);
  • timer - timer for processing maintenances;
  • trapper - trapper for active checks, traps, proxy communication;
  • trigger housekeeper - process for removing problems and events generated by triggers that have since been deleted;
  • unreachable poller - poller for unreachable devices;
  • vmware collector - VMware data collector responsible for data gathering from VMware services.

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

Servera žurnāla fails tiek izveidots ar lasīšanas un rakstīšanas atļaujām tikai faila īpašniekam. Papildus tam failu var lasīt īpašnieka grupa. Visas pārējās atļaujas ir liegtas.

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

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 triggers":

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

Laiki formātā processed...in N (<timings>) sec ir:

  • Laiks, kas pavadīts vienumu vērtību ierakstīšanai datubāzē;
  • Laiks, kas pavadīts vienumu datu atjaunināšanai (stāvoklis, kļūdas, hosta inventārs u. c.);
  • Laiks, kas pavadīts tendenču iztukšošanai uz datubāzi;
  • Laiks, kas pavadīts trigeru aprēķināšanai;
  • Laiks, kas pavadīts notikumu un darbību apstrādei.
Tīrīšanas procedūra

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

Lai noņemtu datus, kas palikuši pēc dzēstiem objektiem, housekeeper process paļaujas uz uzdevumiem 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 šādiem laukiem:

  • housekeeperid - uzdevuma ID
  • object - objekta tips (0 - vienums; 1 - trigeris; 2 - pakalpojums; 3 - atklāts hosts; 4 - atklāts 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 ar objektu saistītos datus; šo pārbaudi veic housekeeper process.

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

  • Vienumiem (tostarp LLD noteikumiem) - 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 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 trigera. Tā izpildes biežumu kontrolē ProblemHousekeepingFrequency.

Līdz brīdim, kad tiek sākta trigera tīrīšanas procedūra, problēmas, ko izraisījuši trigeri, kas kopš tā laika ir dzēsti, joprojām var ģenerēt pakalpojumu problēmas un piešķirt tās pakalpojumiem. Ja jūsu konfigurācijā ir daudz pakalpojumu statusa aprēķina noteikumu, kas balstīti uz bieži atklātiem/neaizklātiem trigeriem, apsveriet iespēju palielināt tīrīšanas 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 tīrīšanas 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/atjaunošanās notikums netiks noņemts, ja tas ir saistīts ar atvērtu problēmu. Kad housekeeper noņem novecojušus objektus, tas vispirms noņem problēmas, pēc tam notikumus.

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

Atbalstītās platformas

Ņemot vērā drošības prasības un servera darbības kritiski svarīgo raksturu, UNIX ir vienīgā operētājsistēma, kas var konsekventi nodrošināt nepieciešamo veiktspēju, kļūdu toleranci un noturību. Zabbix darbojas uz tirgū vadošajām versijām.

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.

Lokāle

Ņemiet vērā, ka serverim ir nepieciešama UTF-8 lokāle, lai dažus teksta vienumus varētu pareizi interpretēt. Lielākajai daļai mūsdienu Unix tipa sistēmu UTF-8 lokāle ir noklusējuma iestatījums, tomēr dažās sistēmās tā var būt jāiestata īpaši.