Starpniekserveris

Pārskats

Zabbix starpniekserveris ir process, kas var apkopot uzraudzības datus no vienas vai vairākām uzraudzītām ierīcēm un nosūtīt šo informāciju Zabbix serverim, būtībā darbojoties servera vārdā. Visi apkopotie dati tiek lokāli buferēti un pēc tam pārsūtīti Zabbix serverim, kuram pieder starpniekserveris.

Starpniekservera izvietošana nav obligāta, taču tā var būt ļoti noderīga, lai sadalītu viena Zabbix servera slodzi. Ja datus apkopo tikai starpniekserveri, servera apstrādei ir nepieciešams mazāk CPU resursu un diska I/O.

Zabbix starpniekserveris ir ideāls risinājums attālu atrašanās vietu, filiāļu un tīklu centralizētai uzraudzībai, ja tajos nav vietējo administratoru.

Zabbix starpniekserverim ir nepieciešama atsevišķa datubāze.

Ņemiet vērā, ka Zabbix starpniekservera atbalstītās datubāzes ir SQLite, MySQL un PostgreSQL.

Skatiet arī:

Darbojošs starpniekserveris

Ja instalēts kā pakotne

Zabbix starpniekserveris darbojas kā dēmona process. Starpniekserveri var palaist, izpildot:

systemctl start zabbix-proxy

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

/etc/init.d/zabbix-proxy start

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

systemctl stop zabbix-proxy
systemctl restart zabbix-proxy
systemctl status zabbix-proxy
Startēt manuāli

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

zabbix_proxy

Ar Zabbix starpniekserveri varat izmantot šādus komandrindas parametrus:

Parameter Description
-c --config <config-file> Ceļš uz konfigurācijas failu.
-f --foreground Palaist Zabbix starpniekserveri 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 palīdzības informāciju un iziet.
-V --version Parādīt versijas numuru.

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

zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf
zabbix_proxy --help
zabbix_proxy -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.
Aktīvais Zabbix starpniekserveris izveidos savienojumu ar Zabbix serveri un pieprasīs konfigurācijas datus.
Pasīvais Zabbix starpniekserveris pieprasīs konfigurācijas datus no Zabbix servera nākamreiz, kad serveris izveidos savienojumu ar starpniekserveri.
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 starpniekservera žurnāla failā. historycache - vēstures kešatmiņas statistika;
preprocessing - pirmapstrādes pārvaldnieka statistika;
locks - mutexu saraksts (sistēmās BSD tas ir tukšs).
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 reižu skaits, dzinēja ID, akreditācijas dati) visiem hosts. Izmantojiet, lai piespiestu globālu kešatmiņas notīrīšanu, novēršot SNMP problēmas.
housekeeper_execute Palaist housekeeping procedūru. Tiek ignorēts, ja 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ēram, poller).
Skatiet visus starpniekservera 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 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 rwlocks/mutexiem pēc funkcijas nosaukuma.
process type - visi norādītā tipa procesi (piemēram, history syncer).
Skatiet visus starpniekservera procesu tipus.
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 target 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 target nav norādīts.
process type - visi norādītā tipa procesi (piemēram, history syncer).
Skatiet visus starpniekservera procesu tipus.
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 target kā 'process type,N'.

Ja procesa tips ir norādīts kā izpildlaika vadības target, komanda attiecas tikai uz šī tipa aktīvajiem procesiem. Ja pašlaik nav aktīvs neviens norādītā tipa process, komanda atgriež kļūdu:

zabbix_proxy -R log_level_increase='data sender'
Cannot redirect signal: "data sender" process does not exist

Izpildlaika vadības izmantošanas piemērs, lai pārlādētu starpniekservera konfigurācijas kešatmiņu:

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

Izpildlaika vadības izmantošanas piemērs, lai notīrītu vienuma vēstures kešatmiņu:

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

Izpildlaika vadības izmantošanas piemēri diagnostikas informācijas savākšanai:

# Savākt visu pieejamo diagnostikas informāciju starpniekservera žurnāla failā:
zabbix_proxy -R diaginfo

# Savākt vēstures kešatmiņas statistiku starpniekservera žurnāla failā:
zabbix_proxy -R diaginfo=historycache

Izpildlaika vadības izmantošanas piemērs, lai pārlādētu SNMP kešatmiņu:

zabbix_proxy -R snmp_cache_reload

Kad SNMPv3 interfeiss tiek atjaunināts, izmantojot Zabbix lietotāja saskarni, vairumā gadījumu Zabbix automātiski pārlādēs šī interfeisa jaunos SNMPv3 akreditācijas datus; izmantojiet -R snmp_cache_reload tikai tad, ja aptauja joprojām neizdodas pēc akreditācijas datu maiņas (piemēram, engineBoots/engineID neatbilstību vai ierīču, kas neatbilst RFC, dēļ), vai arī tad, ja nepieciešams piespiest globālu SNMP kešatmiņas notīrīšanu problēmu novēršanai.

Izpildlaika vadības izmantošanas piemērs, lai aktivizētu housekeeper izpildi:

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

Izpildlaika vadības izmantošanas piemēri žurnāla līmeņa maiņai:

# Palielināt visu procesu žurnāla līmeni:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_increase

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

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

# Samazināt visu http poller procesu žurnāla līmeni:
zabbix_proxy -c /usr/local/etc/zabbix_proxy.conf -R log_level_decrease="http poller"
Procesa lietotājs

Zabbix starpniekserveris ir paredzēts darbībai kā lietotājam, kas nav root lietotājs. Tas darbosies kā jebkurš lietotājs, kas nav root lietotājs un ar kura tiesībām tas tiek palaists. Tāpēc starpniekserveri varat palaist kā jebkuru lietotāju, kas nav root lietotājs, bez problēmām.

Ja mēģināsiet to palaist kā root lietotāju, tas pārslēgsies uz kodā fiksēto lietotāju zabbix, kuram jābūt jūsu sistēmā. Starpniekserveri kā root lietotāju varat palaist tikai tad, ja attiecīgi modificējat parametru AllowRoot starpniekservera konfigurācijas failā.

Konfigurācijas fails

Noklusējuma ceļš uz konfigurācijas failu ir atkarīgs no operētājsistēmas un Zabbix instalēšanas metodes:

  • Instalācijai no avota kodiem: /usr/local/etc/zabbix_proxy.conf, vai kā noteikts ar kompilēšanas laikā mainīgajiem --sysconfdir vai --prefix.
  • Instalācijai no pakotnēm: /etc/zabbix/zabbix_proxy.conf.

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

Starpniekservera procesu veidi un pavedieni

  • agent poller - asinhrons pollera process pasīvajām pārbaudēm ar darba pavedienu;
  • apm manager - pārvaldnieka process lietojumprogrammu veiktspējas uzraudzībai (APM);
  • apm worker - process lietojumprogrammu veiktspējas uzraudzības (APM) uzdevumu apstrādei no apm manager;
  • availability manager - process hostu pieejamības atjaunināšanai;
  • browser poller - polleris pārlūkprogrammas vienumu pārbaudēm;
  • configuration syncer - process konfigurācijas datu atmiņas kešatmiņas pārvaldībai;
  • data sender - starpniekservera datu sūtītājs;
  • discovery manager - pārvaldnieka process ierīču atklāšanai;
  • discovery worker - process atklāšanas uzdevumu apstrādei no discovery manager;
  • history syncer - vēstures datubāzes rakstītājs;
  • housekeeper - process novecojušas vienumu vēstures noņemšanai;
  • http agent poller - asinhrons pollera process HTTP pārbaudēm ar darba pavedienu;
  • http poller - tīmekļa uzraudzības polleris;
  • icmp pinger - polleris icmpping pārbaudēm;
  • internal poller - polleris iekšējām pārbaudēm;
  • ipmi manager - IPMI pollera pārvaldnieks;
  • ipmi poller - polleris IPMI pārbaudēm;
  • java poller - polleris Java pārbaudēm;
  • odbc poller - polleris ODBC pārbaudēm;
  • poller - parastais polleris 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;
  • self-monitoring - process iekšējās servera statistikas apkopošanai;
  • snmp poller - asinhrons pollera process SNMP pārbaudēm ar darba pavedienu (tikai walk[OID] un get[OID] vienumiem);
  • snmp trapper - trapperis SNMP trapu apstrādei;
  • supervisor - koordinē servera procesu un pavedienu palaišanu un apturēšanu, kā arī uzrauga to gatavību;
  • task manager - process citu komponentu pieprasītu uzdevumu attālai izpildei (piemēram, problēmas aizvēršanai, problēmas apstiprināšanai, vienuma vērtības tūlītējai pārbaudei un attālās komandas funkcionalitātei);
  • telemetry query poller - polleris telemetrijas vaicājumu vienumu pārbaudēm;
  • trapper - trapperis aktīvajām pārbaudēm, trapēm un saziņai ar starpniekserveri;
  • unreachable poller - polleris nesasniedzamām ierīcēm;
  • vmware collector - VMware datu savācējs, kas atbild par datu apkopošanu no VMware pakalpojumiem.

Šos procesu veidus var novērot starpniekservera žurnālfailā.

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

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

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.

205276 ?        S      0:00  zabbix_proxy: history syncer #1 [processed 1 values in 0.001179 (0.001167,0.000000) sec, idle 1 sec]
205277 ?        S      0:00  zabbix_proxy: history syncer #2 [processed 0 values in 0.000022 (0.000000,0.000000) sec, idle 1 sec]

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

  • Laiks, kas pavadīts, rakstot vienuma vērtības datubāzē.
  • Laiks, kas pavadīts, atjauninot vienuma datus (stāvokli, kļūdas).
Tīrīšanas procedūra

Zabbix starpniekserverim ir housekeeper process, kas noņem novecojušu vienumu vēsturi un tendences. Tas darbojas ciklos, kuru biežumu nosaka HousekeepingFrequency, bet dzēšanas ierobežojumu vienā ciklā nosaka ProxyLocalBuffer un ProxyOfflineBuffer. Atšķirībā no Zabbix servera tīrīšanas procedūras, starpniekservera housekeeper process neizmanto housekeeper tabulu — tas dzēš visus novecojušos datus vienu reizi katrā tīrīšanas ciklā.

Atbalstītās platformas

Zabbix starpniekserveris darbojas uz tā paša atbalstīto platformu saraksta kā Zabbix serveris.

Atmiņas buferis

Atmiņas buferis ļauj saglabāt jaunus datus (vienumu vērtības, tīkla atklāšanu, automātisku hostu reģistrāciju) buferī un augšupielādēt tos Zabbix serverī, nepiekļūstot datubāzei. Atmiņas buferis starpniekserverim tika ieviests Zabbix 7.0 versijā.

Instalācijās pirms Zabbix 7.0 apkopotie dati pirms augšupielādes Zabbix serverī tika saglabāti datubāzē. Šajās instalācijās šāda darbība arī pēc jaunināšanas uz Zabbix 7.0 paliek noklusējuma darbība.

Lai nodrošinātu optimālu veiktspēju, ieteicams konfigurēt atmiņas bufera izmantošanu starpniekserverī. To var izdarīt, mainot ProxyBufferMode vērtību no disk (esošām instalācijām iepriekš iestatītā noklusējuma vērtība) uz hybrid (ieteicams) vai memory. Ir jāiestata arī atmiņas bufera lielums (parametrs ProxyMemoryBufferSize).

Hibrīdajā režīmā buferis ir aizsargāts pret datu zudumu, nosūtot nenosūtītos datus uz datubāzi, ja starpniekserveris tiek apturēts, buferis ir pilns vai dati ir pārāk veci. Kad visas vērtības ir nosūtītas uz datubāzi, starpniekserveris atkal sāk izmantot atmiņas buferi.

Atmiņas režīmā tiks izmantots atmiņas buferis, taču nav aizsardzības pret datu zudumu. Ja starpniekserveris tiek apturēts vai atmiņa tiek pārpildīta, nenosūtītie dati tiks atmesti.

Hibrīdais režīms (ProxyBufferMode=hybrid) tiek izmantots visās jaunajās instalācijās kopš Zabbix 7.0.

Papildu parametri, piemēram, ProxyMemoryBufferSize un ProxyMemoryBufferAge, attiecīgi nosaka atmiņas bufera lielumu un maksimālo datu vecumu buferī.

Ņemiet vērā, ka konfliktējošas konfigurācijas gadījumā starpniekserveris izvadīs kļūdu un neizdosies startēt, piemēram, ja:

  • ProxyBufferMode ir iestatīts uz hybrid vai memory un ProxyMemoryBufferSize ir 0.
  • ProxyBufferMode ir iestatīts uz hybrid vai memory un ProxyLocalBuffer nav 0.

Lokāle

Ņemiet vērā, ka starpniekserverim 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.

Rindu aprēķins apkopes laikā

Zabbix starpniekserveris nav informēts par apkopes periodiem; skatiet Rindu aprēķins apkopes laikā, lai iegūtu detalizētu informāciju.

Zabbix lietotāja saskarnes izmantošana aiz starpniekservera

Ja Zabbix lietotāja saskarne darbojas aiz starpniekservera, starpniekservera konfigurācijas failā ir jāpārraksta sīkfaila ceļš, lai tas atbilstu reversā starpniekservera ceļam. Skatiet tālāk sniegtos piemērus. Ja sīkfaila ceļš netiek pārrakstīts, lietotājiem, mēģinot pieteikties Zabbix lietotāja saskarnē, var rasties autorizācijas problēmas.

NGINX konfigurācijas piemērs
# ..
location / {
# ..
proxy_cookie_path /zabbix /;
proxy_pass http://192.168.0.94/zabbix/;
# ..
Apache konfigurācijas piemērs
# ..
ProxyPass "/" http://host/zabbix/
ProxyPassReverse "/" http://host/zabbix/
ProxyPassReverseCookiePath /zabbix /
ProxyPassReverseCookieDomain host zabbix.example.com
# ..