[comment]: # ({cbb57ea2-cbb57ea2})
# 1 Server

[comment]: # ({/cbb57ea2-cbb57ea2})

[comment]: # ({d54fc79c-0e549571})
#### Omówienie

Serwer Zabbix jest centralnym procesem oprogramowania Zabbix.

Serwer wykonuje odpytywanie i przechwytywanie danych, oblicza wyzwalacze, wysyła powiadomienia do użytkowników.
Jest centralnym komponentem, do którego agent i proxy Zabbix zgłaszają dane o dostępności i integralności systemów.
Serwer może również zdalnie sprawdzać usługi sieciowe (takie jak serwery WWW i serwery poczty) przy użyciu prostych testów usług.

Serwer jest centralnym repozytorium, w którym przechowywane są wszystkie dane konfiguracyjne, statystyczne i operacyjne, a także elementem Zabbix, który aktywnie powiadamia administratorów, gdy w którymkolwiek z monitorowanych systemów wystąpią problemy.

Działanie podstawowego serwera Zabbix jest podzielone na trzy odrębne komponenty; są to: serwer Zabbix, frontend WWW i magazyn bazy danych.

Wszystkie informacje konfiguracyjne dla Zabbix są przechowywane w bazie danych, z którą współpracują zarówno serwer, jak i frontend WWW.
Na przykład, gdy tworzysz nową pozycja za pomocą frontend WWW (lub API), jest ona dodawana do tabeli items w bazie danych.
Następnie, mniej więcej raz na minutę, serwer Zabbix będzie odpytywał tabelę items o listę aktywnych pozycji, która następnie jest przechowywana w pamięci podręcznej wewnątrz serwera Zabbix.
Dlatego wprowadzone w frontend Zabbix zmiany mogą pojawić się w sekcji najnowszych danych dopiero po upływie nawet dwóch minut.

[comment]: # ({/d54fc79c-0e549571})

[comment]: # ({c20247df-c20247df})
#### Uruchamianie serwera

[comment]: # ({/c20247df-c20247df})

[comment]: # ({ec500727-1314fd6f})
##### Jeśli zainstalowano z pakietu

Serwer Zabbix działa jako proces demona.
Serwer można uruchomić, wykonując:

```bash
systemctl start zabbix-server
```

To zadziała w większości systemów GNU/Linux.
W innych systemach może być konieczne uruchomienie:

```bash
/etc/init.d/zabbix-server start
```

Podobnie, aby zatrzymać/uruchomić ponownie/sprawdzić stan, użyj następujących poleceń:

    systemctl stop zabbix-server
    systemctl restart zabbix-server
    systemctl status zabbix-server

[comment]: # ({/ec500727-1314fd6f})

[comment]: # ({3563f7d5-bbb4c5d8})
##### Uruchamianie ręczne

Jeśli powyższe nie działa, musisz uruchomić go ręcznie.
Znajdź ścieżkę do pliku binarnego `zabbix_server` i wykonaj:

```bash
zabbix_server
```

Możesz używać następujących parametrów wiersza poleceń z serwerem Zabbix:

```bash
-c --config <file>              Ścieżka do pliku konfiguracyjnego (domyślnie /usr/local/etc/zabbix_server.conf)
-f --foreground                 Uruchom serwer Zabbix na pierwszym planie
-R --runtime-control <option>   Wykonaj funkcje administracyjne
-T --test-config                Sprawdź poprawność pliku konfiguracyjnego i zakończ
-h --help                       Wyświetl tę pomoc
-V --version                    Wyświetl numer wersji
```

Przykłady uruchamiania serwera Zabbix z parametrami wiersza poleceń:

```bash
zabbix_server -c /usr/local/etc/zabbix_server.conf
zabbix_server --help
zabbix_server -V
```

[comment]: # ({/3563f7d5-bbb4c5d8})

[comment]: # ({326c3758-a339702b})
##### Sterowanie w czasie działania

Opcje sterowania w czasie działania:

|Option|Description|Target|
|--|------|------|
|`config_cache_reload`|Ponownie wczytaj pamięć podręczną konfiguracji. Ignorowane, jeśli pamięć podręczna jest obecnie wczytywana.| |
|`history_cache_clear=target`|Wyczyść pamięć podręczną historii dla pozycji określonej przez jej ID.<br>Dotyczy wszystkich wartości pozycji, z wyjątkiem pierwszej i ostatniej wartości.|**target** - ID pozycji|
|`diaginfo[=<section>]`|Zbierz informacje diagnostyczne w pliku dziennika serwera.|`historycache` - statystyki pamięci podręcznej historii;<br>`valuecache` - statystyki pamięci podręcznej wartości;<br>`preprocessing` - statystyki menedżera przetwarzania wstępnego;<br>`alerting` - statystyki menedżera alertów;<br>`lld` - statystyki menedżera LLD;<br>`locks` - lista mutexów (jest pusta w systemach *BSD*);<br>`connector` - statystyki dla konektorów z największą kolejką.|
|`ha_status`|Zapisz status klastra wysokiej dostępności (HA) do dziennika.| |
|`ha_remove_node=target`|Usuń węzeł wysokiej dostępności (HA) określony przez nazwę lub ID.<br>Pamiętaj, że nie można usuwać węzłów aktywnych/standby.|**target** - nazwa lub ID węzła (można je uzyskać, uruchamiając `ha_status`).|
|`ha_set_failover_delay=delay`|Ustaw opóźnienie przełączenia awaryjnego wysokiej dostępności (HA).<br>Obsługiwane są [sufiksy czasu](/manual/appendix/suffixes), np. 10s, 1m.| |
|`proxy_config_cache_reload[=<target>]`|Ponownie wczytaj pamięć podręczną konfiguracji proxy.|**target** - lista nazw proxy rozdzielona przecinkami.<br>Jeśli nie określono target, ponownie wczytana zostanie konfiguracja wszystkich proxy.|
|`secrets_reload`|Ponownie wczytaj sekrety z Vault.| |
|`service_cache_reload`|Ponownie wczytaj pamięć podręczną menedżera usług.| |
|`snmp_cache_reload`|Ponownie wczytaj pamięć podręczną SNMP — wyczyść właściwości silnika SNMP (engine time, engine boots, engine id, credentials) dla wszystkich hostów. Użyj, aby wymusić globalne wyczyszczenie pamięci podręcznej podczas rozwiązywania problemów z SNMP.| |
|`housekeeper_execute`|Uruchom procedurę [housekeeping](/manual/web_interface/frontend_sections/administration/housekeeping).<br>Ignorowane, jeśli procedura housekeeping jest obecnie w toku.| |
|`trigger_housekeeper_execute`|Uruchom procedurę housekeeping dla wyzwalaczy.<br>Ignorowane, jeśli procedura housekeeping dla wyzwalaczy jest obecnie w toku.<br>Do czasu uruchomienia procedury housekeeping dla wyzwalaczy problemy spowodowane przez wyzwalacze, które zostały już usunięte, mogą nadal generować problemy usług i przypisywać je do usług. Jeśli Twoja konfiguracja obejmuje wiele reguł [obliczania statusu](/manual/it_services/service_tree#service-configuration) usług opartych na często wykrywanych/niewykrywanych wyzwalaczach, rozważ zwiększenie częstotliwości procedury housekeeping przez dostosowanie parametru konfiguracji serwera [`ProblemHousekeepingFrequency`](/manual/appendix/config/zabbix_server#problemhousekeepingfrequency).| |
|`log_level_increase[=<target>]`|Zwiększ poziom logowania, wpływa na wszystkie procesy, jeśli target nie jest określony.<br>Nieobsługiwane w systemach *BSD*.|**process type** - wszystkie procesy określonego typu (np. `poller`).<br>Zobacz wszystkie [typy procesów serwera](#server-process-types-and-threads).<br>**process type,N** - typ procesu i numer (np. `poller,3`).<br>**pid** - identyfikator procesu (`1` do `65535`). Dla większych wartości określ target jako 'process type,N'.|
|`log_level_decrease[=<target>]`|Zmniejsz poziom logowania, wpływa na wszystkie procesy, jeśli target nie jest określony.<br>Nieobsługiwane w systemach *BSD*.|^|
|`prof_enable[=<target>]`|Włącz profilowanie.<br>Wpływa na wszystkie procesy, jeśli target nie jest określony.<br>Włączone profilowanie dostarcza szczegółów wszystkich rwlock/mutex według nazwy funkcji.|**process type** - wszystkie procesy określonego typu (np. `history syncer`)<br>Obsługiwane typy procesów jako targety profilowania: `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`.<br>**process type,N** - typ procesu i numer (np. `history syncer,1`).<br>**pid** - identyfikator procesu (`1` do `65535`). Dla większych wartości określ target jako 'process type,N'.<br>**scope** - `rwlock`, `mutex`, `processing` można użyć z typem procesu i numerem (np. `history syncer,1,processing`) lub ze wszystkimi procesami danego typu (np. `history syncer,rwlock`).|
|`prof_disable[=<target>]`|Wyłącz profilowanie.<br>Wpływa na wszystkie procesy, jeśli target nie jest określony.|**process type** - wszystkie procesy określonego typu (np. `history syncer`).<br>Obsługiwane typy procesów jako targety profilowania: zobacz `prof_enable`.<br>**process type,N** - typ procesu i numer (np. `history syncer,1`).<br>**pid** - identyfikator procesu (`1` do `65535`). Dla większych wartości określ target jako 'process type,N'.|

[comment]: # ({/326c3758-a339702b})

[comment]: # ({7b268db5-1cb7f51c})
Przykład użycia kontroli w czasie działania do przeładowania pamięci podręcznej konfiguracji serwera:

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

Przykłady użycia kontroli w czasie działania do przeładowania konfiguracji proxy:

```bash
# Przeładuj konfigurację wszystkich proxy:
zabbix_server -R proxy_config_cache_reload
    
# Przeładuj konfigurację Proxy1 i Proxy2:
zabbix_server -R proxy_config_cache_reload=Proxy1,Proxy2
```

Przykład użycia kontroli w czasie działania do wyczyszczenia pamięci podręcznej historii dla pozycji:

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

Przykłady użycia kontroli w czasie działania do zebrania informacji diagnostycznych:

```bash
# Zbierz wszystkie dostępne informacje diagnostyczne w pliku dziennika serwera:
zabbix_server -R diaginfo

# Zbierz statystyki pamięci podręcznej historii w pliku dziennika serwera:
zabbix_server -R diaginfo=historycache
```

Przykład użycia kontroli w czasie działania do przeładowania pamięci podręcznej SNMP:

```bash
zabbix_server -R snmp_cache_reload
```

::: noteimportant
Gdy interfejs SNMPv3 jest aktualizowany za pomocą interfejsu użytkownika Zabbix, Zabbix w większości przypadków automatycznie przeładuje nowe poświadczenia SNMPv3 dla tego interfejsu; używaj `-R snmp_cache_reload` tylko wtedy, gdy odpytywanie nadal kończy się niepowodzeniem po zmianie poświadczeń (na przykład z powodu niespójności engineBoots/engineID lub urządzeń niezgodnych z RFC), albo gdy trzeba wymusić globalne wyczyszczenie pamięci podręcznej SNMP na potrzeby rozwiązywania problemów.
:::

Przykład użycia kontroli w czasie działania do wyzwolenia wykonania housekeepera:

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

Przykłady użycia kontroli w czasie działania do zmiany poziomu logowania:

```bash
# Zwiększ poziom logowania wszystkich procesów:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase

# Zwiększ poziom logowania drugiego procesu pollera:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=poller,2

# Zwiększ poziom logowania procesu o PID 1234:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=1234

# Zmniejsz poziom logowania wszystkich procesów http poller:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_decrease="http poller"
```

Przykład ustawienia opóźnienia przełączenia awaryjnego HA na minimalne 10 sekund:

```bash
zabbix_server -R ha_set_failover_delay=10s
```

[comment]: # ({/7b268db5-1cb7f51c})

[comment]: # ({141af812-b4f10179})
##### Użytkownik procesu

Serwer Zabbix jest przeznaczony do uruchamiania jako użytkownik inny niż root.
Będzie działać jako dowolny użytkownik niebędący rootem, jako który został uruchomiony.
Możesz więc uruchomić serwer jako dowolny użytkownik niebędący rootem bez żadnych problemów.

Jeśli spróbujesz uruchomić go jako 'root', przełączy się na zakodowanego na stałe użytkownika 'zabbix', który musi być [obecny](/manual/installation/install) w Twoim systemie.
Możesz uruchomić serwer jako 'root' tylko wtedy, gdy odpowiednio zmodyfikujesz parametr 'AllowRoot' w pliku konfiguracyjnym serwera.

Jeśli serwer Zabbix i [agent](agent) są uruchomione na tym samym komputerze, zaleca się używanie innego użytkownika do uruchamiania serwera niż do uruchamiania agenta.
W przeciwnym razie, jeśli oba są uruchomione jako ten sam użytkownik, agent może uzyskać dostęp do pliku konfiguracyjnego serwera, a każdy użytkownik na poziomie Admin w Zabbix może dość łatwo pobrać na przykład hasło do bazy danych.

[comment]: # ({/141af812-b4f10179})

[comment]: # ({822335b2-0a81f475})
##### Plik konfiguracyjny

Szczegóły dotyczące konfiguracji `zabbix_server` można znaleźć w opcjach [pliku konfiguracyjnego](/manual/appendix/config/zabbix_server).

[comment]: # ({/822335b2-0a81f475})

[comment]: # ({5d50d9d1-49247ffc})
##### Skrypty startowe

Skrypty są używane do automatycznego uruchamiania/zatrzymywania procesów Zabbix podczas uruchamiania/zamykania systemu.
Skrypty znajdują się w katalogu misc/init.d.

[comment]: # ({/5d50d9d1-49247ffc})

[comment]: # ({0852cf44-9f05badb})
#### Typy procesów i wątki serwera

-   `agent poller` - asynchroniczny proces pollera dla kontroli pasywnych z wątkiem roboczym;
-   `alert manager` - menedżer kolejki alertów;
-   `alert syncer` - zapisujący alerty do bazy danych;
-   `alerter` - proces wysyłania powiadomień;
-   `availability manager` - proces aktualizacji dostępności hostów;
-   `browser poller` - poller dla kontroli pozycji przeglądarki;
-   `configuration syncer` - proces zarządzania pamięciową pamięcią podręczną danych konfiguracyjnych;
-   `configuration syncer worker` - proces rozwiązywania i synchronizowania wartości makr użytkownika w nazwach pozycji;
-   `connector manager` - proces menedżera dla konektorów;
-   `connector worker` - proces obsługujący żądania od menedżera konektorów;
-   `discovery manager` - proces menedżera wykrywania urządzeń;
-   `discovery worker` - proces obsługujący zadania wykrywania od menedżera wykrywania;
-   `escalator` - proces eskalacji działań;
-   `ha manager` - proces zarządzania wysoką dostępnością;
-   `history poller` - proces obsługujący kontrole obliczane wymagające połączenia z bazą danych;
-   `history syncer` - zapisujący historię do bazy danych;
-   `housekeeper` - proces usuwania nieaktualnych danych (historii i trendów pozycji, sesji użytkowników, zdarzeń itp.), a także danych pozostawionych przez usunięte obiekty;
-   `http agent poller` - asynchroniczny proces pollera dla kontroli HTTP z wątkiem roboczym;
-   `http poller` - poller monitorowania WWW;
-   `icmp pinger` - poller dla kontroli icmpping;
-   `internal poller` - poller dla kontroli wewnętrznych;
-   `ipmi manager` - menedżer pollera IPMI;
-   `ipmi poller` - poller dla kontroli IPMI;
-   `java poller` - poller dla kontroli Java;
-   `lld manager` - proces menedżera zadań niskopoziomowego wykrywania;
-   `lld worker` - proces roboczy zadań niskopoziomowego wykrywania;
-   `odbc poller` - poller dla kontroli ODBC;
-   `poller` - standardowy poller dla kontroli pasywnych;
-   `preprocessing manager` - menedżer zadań przetwarzania wstępnego z wątkami roboczymi przetwarzania wstępnego;
-   `preprocessing worker` - wątek przetwarzania danych wstępnego;
-   `proxy poller` - poller dla pasywnych proxy;
-   `proxy group manager` - menedżer równoważenia obciążenia i wysokiej dostępności proxy;
-   `report manager`- menedżer zadań generowania raportów zaplanowanych;
-   `report writer` - proces generowania raportów zaplanowanych;
-   `self-monitoring` - proces zbierania wewnętrznych statystyk serwera;
-   `service manager` - proces zarządzania usługami poprzez odbieranie informacji o problemach, tagach problemów i odzyskiwaniu po problemach z history syncer, task manager i alert manager;
-   `snmp poller` - asynchroniczny proces pollera dla kontroli SNMP z wątkiem roboczym (tylko pozycje `walk[OID]` i `get[OID]`);
-   `snmp trapper` - trapper dla pułapek SNMP;
-   `task manager` - proces zdalnego wykonywania zadań żądanych przez inne komponenty (np. zamknięcie problemu, potwierdzenie problemu, sprawdzenie wartości pozycji teraz, funkcja zdalnego polecenia);
-   `timer` - timer przetwarzający konserwacje;
-   `trapper` - trapper dla kontroli aktywnych, pułapek i komunikacji z proxy;
-   `trigger housekeeper` - proces usuwania problemów i zdarzeń wygenerowanych przez wyzwalacze, które zostały później usunięte;
-   `unreachable poller` - poller dla niedostępnych urządzeń;
-   `vmware collector` - kolektor danych VMware odpowiedzialny za zbieranie danych z usług VMware.

Plik dziennika serwera można wykorzystać do obserwowania tych typów procesów.

Od Zabbix 7.4.6 plik dziennika serwera jest tworzony z uprawnieniami odczytu i zapisu wyłącznie dla właściciela pliku. Dodatkowo plik jest czytelny dla grupy właściciela. Wszystkie pozostałe uprawnienia są zabronione.

Różne typy procesów serwera Zabbix można monitorować za pomocą wewnętrznej [pozycji](/manual/config/items/itemtypes/internal) `zabbix[process,<type>,<mode>,<state>]`.

[comment]: # ({/0852cf44-9f05badb})

[comment]: # ({d57cc8df-1737f6e5})
##### Statystyki transakcji synchronizatora historii

Tytuł procesu synchronizatora historii wyświetla szczegółowe statystyki dotyczące transakcji synchronizatora historii:

```bash
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]
```

W sekcji "A+B triggers":

-   A - wyzwalacze przetworzone na podstawie wartości historii;
-   B - wyzwalacze przetworzone na podstawie timerów.

Czasy w `processed...in N (<timings>) sec` to:

-   Czas spędzony na zapisywaniu wartości pozycji do bazy danych;
-   Czas spędzony na aktualizowaniu danych pozycji (stan, błędy, inwentarz hosta itp.);
-   Czas spędzony na zapisywaniu trendów do bazy danych;
-   Czas spędzony na obliczaniu wyzwalaczy;
-   Czas spędzony na przetwarzaniu zdarzeń i działań.

[comment]: # ({/d57cc8df-1737f6e5})

[comment]: # ({56afbd4a-cdd68340})
#### Obsługiwane platformy

Ze względu na wymagania bezpieczeństwa oraz krytyczny charakter działania serwera, UNIX jest jedynym systemem operacyjnym, który może konsekwentnie zapewniać wymaganą wydajność, odporność na awarie i niezawodność.
Zabbix działa na wiodących na rynku wersjach systemu.

Serwer Zabbix jest testowany na następujących platformach:

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

::: noteclassic
Zabbix może działać również na innych systemach operacyjnych typu Unix.
:::

[comment]: # ({/56afbd4a-cdd68340})

[comment]: # ({eef646bb-982e2546})
#### Ustawienia regionalne

Należy pamiętać, że serwer wymaga ustawień regionalnych UTF-8, aby niektóre tekstowe pozycje mogły być poprawnie interpretowane.
Większość nowoczesnych systemów typu Unix ma domyślnie ustawienia regionalne UTF-8, jednak istnieją systemy, w których może być konieczne ich jawne skonfigurowanie.

[comment]: # ({/eef646bb-982e2546})
