7 Parametry konfiguracyjne wtyczek

Zobacz parametry konfiguracyjne dla wtyczek Zabbix agent 2:

Zasady konfiguracji wtyczek

Ta strona opisuje zasady konfiguracji wtyczek oraz najlepsze praktyki.

Wszystkie wtyczki są konfigurowane przy użyciu parametru Plugins.*, który może być częścią pliku konfiguracyjnego Zabbix agent 2 lub własnego pliku konfiguracyjnego wtyczki. Jeśli wtyczka używa oddzielnego pliku konfiguracyjnego, ścieżka do tego pliku powinna zostać określona w parametrze Include pliku konfiguracyjnego Zabbix agent 2.

Typowy parametr wtyczki ma następującą strukturę:

Plugins.<PluginName>.<Parameter>=<Value>

Dodatkowo istnieją dwie specyficzne grupy parametrów:

  • Plugins.<PluginName>.Default.<Parameter>=<Value> używane do definiowania domyślnych wartości parametrów.

  • Plugins.<PluginName>.<SessionName>.<Parameter>=<Value> używane do definiowania oddzielnych zestawów parametrów dla różnych celów monitorowania za pomocą nazwanych sesji.

Wszystkie nazwy parametrów powinny spełniać następujące wymagania:

  • zaleca się zapisywanie nazw wtyczek wielką literą
  • nazwa parametru powinna zaczynać się wielką literą
  • znaki specjalne nie są dozwolone
  • zagnieżdżenie nie jest ograniczone maksymalnym poziomem
  • liczba parametrów nie jest ograniczona

Na przykład, aby wykonywać aktywne testy, które nie mają interwału aktualizacji Scheduling update interval, natychmiast po ponownym uruchomieniu agenta tylko dla wtyczki Uptime, ustaw Plugins.Uptime.System.ForceActiveChecksOnStart=1 w pliku konfiguracyjnym. Podobnie, aby ustawić niestandardowy limit współbieżnych testów dla wtyczki CPU, ustaw Plugins.CPU.System.Capacity=N w pliku konfiguracyjnym.

Wartości domyślne

Możesz ustawić wartości domyślne dla parametrów związanych z połączeniem (URI, nazwa użytkownika, hasło itp.) w pliku konfiguracyjnym w formacie:

Plugins.<PluginName>.Default.<Parameter>=<Value>

Na przykład: Plugins.Mysql.Default.Username=zabbix, Plugins.MongoDB.Default.Uri=tcp://127.0.0.1:27017 itd.

Jeśli wartość takiego parametru nie zostanie podana w kluczu pozycji ani w parametrach nazwanej sesji, wtyczka użyje wartości domyślnej. Jeśli parametr domyślny również nie jest zdefiniowany, zostaną użyte domyślne wartości zapisane na stałe w kodzie.

Jeśli klucz pozycji nie ma żadnych parametrów, Zabbix agent 2 spróbuje zebrać metrykę przy użyciu wartości zdefiniowanych w sekcji parametrów domyślnych.

Nazwane sesje

Nazwane sesje stanowią dodatkowy poziom parametrów wtyczki i mogą być używane do określania oddzielnych zestawów parametrów uwierzytelniania dla każdej z monitorowanych instancji. Każdy parametr nazwanej sesji powinien mieć następującą strukturę:

Plugins.<PluginName>.Sessions.<SessionName>.<Parameter>=<Value>

Nazwa sesji może być użyta jako parametr klucza pozycji connString zamiast osobnego określania URI, nazwy użytkownika i/lub hasła.

W kluczach pozycji pierwszy parametr może być albo connString, albo URI. Jeśli pierwszy parametr klucza nie pasuje do żadnej nazwy sesji, zostanie potraktowany jako URI. Należy pamiętać, że przekazywanie poświadczeń osadzonych w URI w kluczu pozycji nie jest obsługiwane; zamiast tego należy używać parametrów nazwanej sesji.

Lista dostępnych parametrów nazwanej sesji zależy od wtyczki.

Możliwe jest zastąpienie parametrów sesji przez określenie nowych wartości w parametrach klucza pozycji (zobacz przykład).

Jeśli parametr nie jest zdefiniowany dla nazwanej sesji, Zabbix agent 2 użyje wartości zdefiniowanej w domyślnym parametrze wtyczki.

Priorytet parametrów

Wtyczki Zabbix agent 2 wyszukują wartości parametrów związanych z połączeniem w następującej kolejności:

  1. Pierwszy parametr klucza pozycji jest porównywany z nazwami sesji. Jeśli nie zostanie znalezione dopasowanie, jest traktowany jako rzeczywista wartość; w takim przypadku krok 3 zostanie pominięty. Jeśli dopasowanie zostanie znalezione, wartość parametru (zwykle URI) musi być zdefiniowana w nazwanej sesji.
  2. Pozostałe parametry zostaną pobrane z klucza pozycji, jeśli są zdefiniowane.
  3. Jeśli parametr klucza pozycji (na przykład hasło) jest pusty, wtyczka będzie szukać odpowiadającego mu parametru nazwanej sesji.
  4. Jeśli parametr sesji również nie jest określony, zostanie użyta wartość zdefiniowana w odpowiednim parametrze domyślnym.
  5. Jeśli wszystko inne zawiedzie, wtyczka użyje zakodowanej na stałe wartości domyślnej.

Przykład 1

Monitorowanie dwóch instancji „MySQL1” i „MySQL2”.

Parametry konfiguracji:

Plugins.Mysql.Sessions.MySQL1.Uri=tcp://127.0.0.1:3306
Plugins.Mysql.Sessions.MySQL1.User=mysql1_user
Plugins.Mysql.Sessions.MySQL1.Password=unique_password
Plugins.Mysql.Sessions.MySQL2.Uri=tcp://192.0.2.0:3306
Plugins.Mysql.Sessions.MySQL2.User=mysql2_user
Plugins.Mysql.Sessions.MySQL2.Password=different_password

W wyniku tej konfiguracji każda nazwa sesji może być używana jako connString w kluczu pozycji, np. mysql.ping[MySQL1] lub mysql.ping[MySQL2].

Przykład 2

Podanie części parametrów w kluczu pozycji.

Parametry konfiguracji:

Plugins.PostgreSQL.Sessions.Session1.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Sessions.Session1.User=old_username
Plugins.PostgreSQL.Sessions.Session1.Password=session_password

Klucz pozycji: pgsql.ping[session1,new_username,,postgres]

W wyniku tej konfiguracji agent połączy się z PostgreSQL przy użyciu następujących parametrów:

  • URI z parametru sesji: 192.0.2.234:5432
  • Nazwa użytkownika z klucza pozycji: new_username
  • Hasło z parametru sesji (ponieważ zostało pominięte w kluczu pozycji): session_password
  • Nazwa bazy danych z klucza pozycji: postgres

Przykład 3

Zbieranie metryki przy użyciu domyślnych parametrów konfiguracji.

Parametry konfiguracji:

Plugins.PostgreSQL.Default.Uri=tcp://192.0.2.234:5432
Plugins.PostgreSQL.Default.User=zabbix
Plugins.PostgreSQL.Default.Password=password

Klucz pozycji: pgsql.ping[,,,postgres]

W wyniku tej konfiguracji agent połączy się z PostgreSQL przy użyciu parametrów:

  • Domyślny URI: 192.0.2.234:5432
  • Domyślna nazwa użytkownika: zabbix
  • Domyślne hasło: password
  • Nazwa bazy danych z klucza pozycji: postgres

Połączenia

Niektóre wtyczki obsługują zbieranie metryk z wielu instancji jednocześnie. Możliwe jest monitorowanie zarówno instancji lokalnych, jak i zdalnych. Obsługiwane są połączenia TCP i Unix-socket.

Zaleca się skonfigurowanie wtyczek tak, aby utrzymywały połączenia z instancjami w stanie otwartym. Korzyści to mniejsze obciążenie sieci, niższe opóźnienia oraz mniejsze zużycie CPU i pamięci dzięki mniejszej liczbie połączeń. Biblioteka kliencka zajmuje się tym automatycznie.

Okres, przez jaki nieużywane połączenia powinny pozostawać otwarte, można określić za pomocą parametru Plugins.<PluginName>.KeepAlive. Przykład: Plugins.Memcached.KeepAlive