en-us	#### Adding host  Information about configured hosts in Zabbix is available in *Data collection → Hosts* and *Monitoring* → *Hosts*. There is already one pre-defined host, called "Zabbix server", but we want to learn adding another.  To add a new host, click on *Create host*. This will present us with a host configuration form.\ ![](../../../assets/en/manual/quickstart/new_host.png)  All mandatory input fields are marked with a red asterisk.  The bare minimum to enter here is:  ***Host name***  -   Enter a host name. Alphanumerics, spaces, dots, dashes and     underscores are allowed.  ***Host groups***  -   Select one or several existing groups by clicking *Select* button or     enter a non-existing group name to create a new group.  ::: noteclassic All access permissions are assigned to host groups, not individual hosts. That is why a host must belong to at least one group. :::  ***Interfaces: IP address***  -   Although not a required field technically, a host interface is necessary for collecting certain metrics. To use Zabbix agent passive checks, specify the agent's IP or DNS in this field. Note that you should also specify Zabbix server's IP or DNS in the Zabbix agent configuration file 'Server' directive. If Zabbix agent and Zabbix server are installed on the same machine, you need to specify the same IP/DNS in both places.  [Other options](/manual/config/hosts/host#configuration) will suit us with their defaults for now.  When done, click *Add*. Your new host should be visible in the host list.  ![](../../../assets/en/manual/quickstart/host_list.png){width="600"}  The Availability column contains indicators of host availability per each interface. We have defined a Zabbix agent interface, so we can use the agent availability icon (with 'ZBX' on it) to understand host availability:  -   ![icon\_zbx\_gray.png](../../../assets/en/manual/quickstart/icon_zbx_gray.png) -     host status has not been established; no metric check has happened     yet -   ![icon\_zbx\_green.png](../../../assets/en/manual/quickstart/icon_zbx_green.png) -     host is available, a metric check has been successful -   ![icon\_zbx\_red.png](../../../assets/en/manual/quickstart/icon_zbx_red.png) -     host is unavailable, a metric check has failed (move your mouse     cursor over the icon to see the error message). There might be some     error with communication, possibly caused by incorrect interface     credentials. Check that Zabbix server is running, and try refreshing     the page later as well.
uk	#### Додавання вузла мережі  Інформація про налаштовані вузли мережі в Zabbix доступна в *Збір даних → Вузли мережі* та *Моніторинг* → *Вузли мережі*. Уже існує один попередньо визначений вузол мережі під назвою "Zabbix server", але ми хочемо навчитися додавати інший.  Щоб додати новий вузол мережі, натисніть *Створити вузол мережі*. Це надасть нам форму конфігурації вузла мережі.\ ![](../../../assets/en/manual/quickstart/new_host.png)  Усі обов’язкові поля для введення позначені червоною зірочкою.  Мінімальний набір для введення сюди такий:  ***Ім'я вузла мережі***  -   Введіть ім'я вузла мережі. Допускаються буквено-цифрові символи, пробіли, крапки, тире та підкреслення.  ***Групи вузлів мережі***  -   Виберіть одну або кілька існуючих груп, натиснувши кнопку *Вибрати*, чи введіть неіснуючу назву групи, щоб створити нову групу.  ::: noteclassic Усі права доступу призначені групам вузлів мережі, а не окремим вузлам мережі. Тому вузол мережі повинен належати хоча б до однієї групи. :::  ***Інтерфейси: IP-адреса***  -   Технічно поле не є обов’язковим, але для збору певних показників необхідний інтерфейс вузла мережі. Щоб використовувати пасивні перевірки агента Zabbix, вкажіть у цьому полі IP або DNS агента. Зауважте, що ви також повинні вказати IP або DNS сервера Zabbix у директиві 'Server' файлу налаштування агента Zabbix. Якщо агент Zabbix і сервер Zabbix встановлено на одній машині, вам потрібно вказати однакові IP/DNS в обох місцях.  [Інші параметри](/manual/config/hosts/host#configuration) наразі підійдуть нам із стандартними значеннями.  Після завершення натисніть *Додати*. Ваш новий вузол мережі має бути видимим у списку вузлів мережі.  ![](../../../assets/en/manual/quickstart/host_list.png){width="600"}  Стовпець "Доступність" містить індикатори доступності вузла мережі для кожного інтерфейсу. Ми визначили інтерфейс агента Zabbix, тому ми можемо використовувати піктограму доступності агента (з 'ZBX' на ньому), щоб зрозуміти доступність вузла мережі:  -   ![icon\_zbx\_gray.png](../../../assets/en/manual/quickstart/icon_zbx_gray.png) - статус вузла мережі не встановлено; жодної перевірки показників ще не було -   ![icon\_zbx\_green.png](../../../assets/en/manual/quickstart/icon_zbx_green.png) - вузол мережі доступний, перевірка показників пройшла успішно -   ![icon\_zbx\_red.png](../../../assets/en/manual/quickstart/icon_zbx_red.png) - вузол мережі недоступний, перевірка показників не вдалася (наведіть курсор миші на піктограму, щоб побачити повідомлення про помилку). Можливо, виникла якась помилка під час зв’язку, спричинена неправильними обліковими даними інтерфейсу. Перевірте, чи працює сервер Zabbix, і спробуйте оновити сторінку пізніше.

en-us	#### Adding item  All items are grouped around hosts. That is why to configure a sample item we go to *Data collection → Hosts* and find the "New host" we have created.  Click on the *Items* link in the row of "New host", and then click on *Create item*. This will present us with an item definition form.  ![](../../../assets/en/manual/quickstart/new_item.png)  All mandatory input fields are marked with a red asterisk.  For our sample item, the essential information to enter is:  ***Name***  -   Enter *CPU load* as the value. This will be the item name displayed     in lists and elsewhere.  ***Key***  -   Manually enter *system.cpu.load* as the value. This is the technical     name of an item that identifies the type of information that will be     gathered. The particular key is just one of [pre-defined     keys](/manual/config/items/itemtypes/zabbix_agent) that come with     Zabbix agent.  ***Type of information***  -   This attribute defines the format of the expected data. For the     *system.cpu.load* key, this field will be automatically set to     *Numeric (float)*.  ::: noteclassic You may also want to reduce the number of days [item history](/manual/config/items/history_and_trends) will be kept, to 7 or 14. This is good practice to relieve the database from keeping lots of historical values. :::  [Other options](/manual/config/items/item#configuration) will suit us with their defaults for now.  When done, click *Add*. The new item should appear in the item list. Click on *Details* above the list to view what exactly was done.  ![](../../../assets/en/manual/quickstart/item_created.png)
uk	#### Додавання елемента даних  Усі елементи даних згруповані навколо вузлів мережі. Ось чому, щоб налаштувати зразок елемента даних, ми переходимо до *Збір даних → Вузли мережі* та знаходимо "New host", який ми створили.  Натисніть посилання *Елементи даних* в рядку "New host", а потім натисніть *Створити елемент даних*. Це надасть нам форму визначення елемента даних.  ![](../../../assets/en/manual/quickstart/new_item.png)  Усі обов’язкові поля для введення позначені червоною зірочкою.  Для нашого зразка елементу даних необхідно ввести наступну важливу інформацію:  ***Ім'я***  -   Введіть *CPU load* як значення. Це буде назва елемента даних, яка відображатиметься в списках та в інших місцях.  ***Ключ***  -   Вручну введіть *system.cpu.load* як значення. Це технічна назва елемента даних, яка визначає тип інформації, яка буде зібрана. Конкретний ключ є лише одним із [попередньо визначених ключів](/manual/config/items/itemtypes/zabbix_agent), які постачаються з агентом Zabbix.  ***Тип інформації***  -   Цей атрибут визначає формат очікуваних даних. Для ключа *system.cpu.load* це поле буде автоматично встановлено на *Numeric (float)*.  ::: noteclassic Ви також можете зменшити кількість днів [історії елементу даних](/manual/config/items/history_and_trends), що буде збережено до 7 або 14. Це хороша практика, щоб звільнити базу даних від зберігання великої кількості історичних значень. :::  [Інші параметри](/manual/config/items/item#configuration) наразі підійдуть нам із стандартними значеннями.  Після завершення натисніть *Додати*. Новий елемент даних має з’явитися у списку елементів даних. Натисніть *Деталі* над списком, щоб побачити, що саме було зроблено.  ![](../../../assets/en/manual/quickstart/item_created.png)

en-us	#### Adding item to template  To add an item to the template, go to the item list for 'New host'. In *Data collection → Hosts* click on *Items* next to 'New host'.  Then:  -   Mark the checkbox of the 'CPU Load' item in the list. -   Click on *Copy* below the list. -   Select the template to copy the item to.  ![](../../../assets/en/manual/quickstart/copy_to_template.png){width="600"}  All mandatory input fields are marked with a red asterisk.  -   Click on *Copy*.  If you now go to *Data collection* → *Templates*, 'New template' should have one new item in it.  We will stop at one item only for now, but similarly you can add any other items, triggers or other entities to the template until it's a fairly complete set of entities for given purpose (monitoring OS, monitoring single application).
uk	#### Додавання елемента даних до шаблону  Щоб додати елемент даних до шаблону, перейдіть до списку елементів для 'New host'. У *Збір даних → Хости* натисніть *Елементи* біля пункту 'New host'.  Потім:  -   Поставте прапорець біля елементу даних 'CPU Load' у списку. -   Натисніть *Копіювати* під списком. -   Виберіть шаблон, до якого потрібно скопіювати елемент.  ![](../../../assets/en/manual/quickstart/copy_to_template.png){width="600"}  Усі обов’язкові поля для введення позначені червоною зірочкою.  - Натисніть *Копіювати*.  Якщо ви зараз перейдете до *Збір даних* → *Шаблони*, у 'New template' має бути один новий елемент даних.  Наразі ми зупинимося лише на одному елементі даних, але так само ви можете додати будь-які інші елементи даних, тригери чи інші сутності до шаблону, доки це не буде досить повний набір сутностей для певної мети (моніторинг ОС, моніторинг окремої програми).

en-us	##### Adding permissions  By default, a new user has no permissions to access hosts and templates. To grant the user rights, click on the group of the user in the *Groups* column (in this case - 'Zabbix administrators'). In the group properties form, go to the *Host permissions* tab to assign permissions to host groups.  ![](../../../assets/en/manual/quickstart/group_permissions.png){width="600"}  This user is to have read-only access to *Linux servers* group, so click on *Select* next to the host group selection field.  ![](../../../assets/en/manual/quickstart/add_permissions.png){width="600"}  In this pop-up, mark the checkbox next to 'Linux servers', then click *Select*. *Linux servers* should be displayed in the selection field. Click the 'Read' button to set the permission level and then *Add* to add the group to the list of permissions. In the user group properties form, click *Update*.  To grant permissions to templates, you will need to switch to the *Template permissions* tab and specify template groups.   ::: noteimportant In Zabbix, access rights to hosts and templates are assigned to [user groups](/manual/config/users_and_usergroups/usergroup), not individual users. :::  Done! You may try to log in using the credentials of the new user.
uk	##### Додавання дозволів  За замовчуванням новий користувач не має прав доступу до вузлів мережі і шаблонів. Щоб надати права користувача, натисніть на групу користувача в стовпці *Групи* (в даному випадку - 'Адміністратори Zabbix'). У формі властивостей групи перейдіть на вкладку *Дозволи вузла мережі*, щоб призначити дозволи групам вузлів мережі.  ![](../../../assets/en/manual/quickstart/group_permissions.png){width="600"}  Цей користувач має мати доступ лише для читання до групи *серверів Linux*, тому натисніть *Вибрати* поруч із полем вибору групи вузлів мережі.  ![](../../../assets/en/manual/quickstart/add_permissions.png){width="600"}  У цьому спливаючому вікні встановіть прапорець поруч із 'Сервери Linux', а потім натисніть *Вибрати*. *Сервери Linux* повинні відображатися в полі вибору. Натисніть кнопку 'Читати', щоб встановити рівень дозволу, а потім натисніть *Додати*, щоб додати групу до списку дозволів. У формі властивостей групи користувачів натисніть *Оновити*.  Щоб надати дозволи на шаблони, вам потрібно буде перейти на вкладку *Дозволи шаблону* та вказати групи шаблонів.  ::: noteimportant У Zabbix права доступу до вузлів мережі і шаблонів призначаються [групам користувачів](/manual/config/users_and_usergroups/usergroup), а не окремим користувачам. :::  Готово! Ви можете спробувати увійти, використовуючи облікові дані нового користувача.

en-us	#### Adding template  To start working with templates, we must first create one. To do that, in *Data collection* → *Templates* click on *Create template*. This will present us with a template configuration form.  ![](../../../assets/en/manual/quickstart/new_template.png){width="600"}  All mandatory input fields are marked with a red asterisk.  The required parameters to enter here are:  ***Template name***  -   Enter a template name. Alpha-numericals, spaces and underscores are     allowed.  ***Template groups***  -   Select one or several groups by clicking *Select* button. The     template must belong to a group.  ::: noteclassic Access permissions to template groups are assigned in the [user group](/manual/quickstart/login#adding-permissions) configuration on the **Template permissions** tab in the same way as host permissions. All access permissions are assigned to groups, not individual templates, that's why including the template into at least one group is mandatory.  :::   When done, click *Add*. Your new template should be visible in the list of templates. You can also use the [filter](/manual/web_interface/frontend_sections/data_collection/templates#using-filter) to find your template.  ![](../../../assets/en/manual/quickstart/template_list.png){width="600"}  As you may see, the template is there, but it holds nothing in it - no items, triggers or other entities.
uk	#### Додавання шаблону  Щоб почати працювати з шаблонами, ми повинні спочатку його створити. Для цього в *Збір даних* → *Шаблони* натисніть *Створити шаблон*. Це надасть нам форму конфігурації шаблону.  ![](../../../assets/en/manual/quickstart/new_template.png){width="600"}  Усі обов’язкові поля для введення позначені червоною зірочкою.  Тут потрібно ввести наступні параметри:  ***Назва шаблону***  -   Введіть назву шаблону. Допускаються буквено-цифрові символи, пробіли та підкреслення.  ***Групи шаблонів***  -   Виберіть одну або кілька груп, натиснувши кнопку *Вибрати*. Шаблон має належати до групи.  ::: noteclassic Права доступу до груп шаблонів призначаються в налаштуванні[групи користувачів](/manual/quickstart/login#adding-permissions) на вкладці **Дозволи шаблону** так само, як дозволи вузла мережі. Усі права доступу призначаються групам, а не окремим шаблонам, тому включення шаблону принаймні до однієї групи є обов’язковим. :::   Після завершення натисніть *Додати*. Ваш новий шаблон має бути видимим у списку шаблонів. Ви також можете скористатися [фільтром](/manual/web_interface/frontend_sections/data_collection/templates#using-filter), щоб знайти свій шаблон.  ![](../../../assets/en/manual/quickstart/template_list.png){width="600"}  Як ви можете бачити, шаблон відображається, але він не містить нічого - жодних елементів даних, тригерів чи інших сутностей.

en-us	#### Adding trigger  To configure a trigger for our item, go to *Data collection → Hosts*, find 'New host' and click on *Triggers* next to it and then on *Create trigger*. This presents us with a trigger definition form.\ ![](../../../assets/en/manual/quickstart/new_trigger.png)  For our trigger, the essential information to enter here is:  *Name*  -   Enter *CPU load too high on 'New host' for 3 minutes* as the value.     This will be the trigger name displayed in lists and elsewhere.  *Expression*  -   Enter: avg(/New host/system.cpu.load,3m)>2  This is the trigger expression. Make sure that the expression is entered right, down to the last symbol. The item key here (system.cpu.load) is used to refer to the item. This particular expression basically says that the problem threshold is exceeded when the CPU load average value for 3 minutes is over 2. You can learn more about the [syntax of trigger expressions](/manual/config/triggers/expression).  When done, click *Add*. The new trigger should appear in the trigger list.
uk	#### Додавання тригера  Щоб налаштувати тригер для нашого елемента даних, перейдіть до *Збір даних → Хости*, знайдіть 'New host' і натисніть *Тригери* поруч із ним, а потім — *Створити тригер*. Це представляє нам форму визначення тригера.\ ![](../../../assets/en/manual/quickstart/new_trigger.png)  Важлива інформація для нашого тригера:  *Ім'я*  -   Введіть *CPU load too high on 'New host' for 3 minutes* як значення.      Це буде назва тригера, яка відображатиметься в списках та в інших місцях.  *Вираз*  -   Введіть: avg(/New host/system.cpu.load,3m)>2  Це вираз тригера. Переконайтеся, що вираз введено правильно, до останнього символу. Ключ елемента  даних тут (system.cpu.load) використовується для посилання на елемент даних. Цей конкретний вираз в основному говорить про те, що поріг проблеми перевищено, коли середнє значення навантаження ЦП протягом 3 хвилин перевищує 2. Ви можете дізнатися більше про [синтаксис виразів тригера](/manual/config/triggers/expression).  Після завершення натисніть *Додати*. Новий тригер має з’явитися в списку тригерів.

en-us	#### Adding user  To view information about users, go to *Users → Users*.  ![](../../../assets/en/manual/quickstart/userlist.png){width="600"}  To add a new user, click on *Create user*.  In the new user form, make sure to add your user to one of the existing [user groups](/manual/config/users_and_usergroups/usergroup), for example 'Zabbix administrators'.  ![](../../../assets/en/manual/quickstart/new_user.png)  All mandatory input fields are marked with a red asterisk.  By default, new users have no media (notification delivery methods) defined for them. To create one, go to the 'Media' tab and click on *Add*.  ![](../../../assets/en/manual/quickstart/new_media.png)  In this pop-up, enter an email address for the user.  You can specify a time period when the medium will be active (see [Time period specification](/manual/appendix/time_period) page for a description of the format), by default a medium is always active. You can also customize [trigger severity](/manual/config/triggers/severity) levels for which the medium will be active, but leave all of them enabled for now.  Click on *Add* to save the medium, then go to the Permissions tab.  Permissions tab has a mandatory field *Role*. The role determines which frontend elements the user can view and which actions he is allowed to perform. Press Select and select one of the roles from the list. For example, select *Admin role* to allow access to all Zabbix frontend sections, except Administration. Later on, you can modify permissions or create more user roles. Upon selecting a role, permissions will appear in the same tab:  ![user\_permissions.png](../../../assets/en/manual/config/user_permissions.png)   Click *Add* in the user properties form to save the user. The new user appears in the userlist.  ![](../../../assets/en/manual/quickstart/userlist2.png){width="600"}
uk	#### Додавання користувача  Щоб переглянути інформацію про користувачів, перейдіть до *Користувачі → Користувачі*.  ![](../../../assets/en/manual/quickstart/userlist.png){width="600"}  Щоб додати нового користувача, натисніть *Створити користувача*.  У формі нового користувача обов’язково додайте свого користувача до однієї з існуючих [груп користувачів](/manual/config/users_and_usergroups/usergroup), наприклад, 'Адміністратори Zabbix'.  ![](../../../assets/en/manual/quickstart/new_user.png)  Усі обов’язкові поля для введення позначені червоною зірочкою.  За замовчуванням для нових користувачів не визначено медіа (методи доставки сповіщень). Щоб створити його, перейдіть на вкладку 'Медіа' та натисніть *Додати*.  ![](../../../assets/en/manual/quickstart/new_media.png)  У цьому спливаючому вікні введіть електронну адресу користувача.  Ви можете вказати період часу, протягом якого медіа буде активним (опис формату див. на сторінці [Специфікація періоду часу](/manual/appendix/time_period)), за замовчуванням медіа завжди активно. Ви також можете налаштувати рівні [серйозності тригера](/manual/config/triggers/severity), для яких медіа буде активним, але поки що залиште всі їх увімкненими.  Натисніть *Додати*, щоб зберегти медіа, а потім перейдіть на вкладку 'Дозволи'.  На вкладці 'Дозволи' обов’язкове поле *Роль*. Роль визначає, які елементи інтерфейсу користувач може переглядати та які дії йому дозволено виконувати. Натисніть Вибрати та виберіть одну з ролей зі списку. Наприклад, виберіть *Роль адміністратора*, щоб дозволити доступ до всіх розділів інтерфейсу Zabbix, окрім Адміністрування. Пізніше ви можете змінити дозволи або створити більше ролей користувачів. Після вибору ролі на тій же вкладці з’являться дозволи:  ![user\_permissions.png](../../../assets/en/manual/config/user_permissions.png)   Натисніть *Додати* у формі властивостей користувача, щоб зберегти користувача. Новий користувач з’явиться в списку користувачів.  ![](../../../assets/en/manual/quickstart/userlist2.png){width="600"}

en-us	##### Additional parameters  A third optional parameter is supported by the *bucket\_rate\_foreach* function:      bucket_rate_foreach(item filter,time period,<parameter number>)  where <parameter number> is the position of the "bucket" value in the item key. For example, if the "bucket" value in myItem\[aaa,0.2\] is '0.2', then its position is 2.  The default value of <parameter number> is '1'.  See [aggregate calculations](/manual/config/items/itemtypes/calculated/aggregate) for more details and examples on using foreach functions.
uk	##### Додаткові параметри  Третій додатковий параметр підтримується функцією *bucket\_rate\_foreach*:       bucket_rate_foreach(фільтр елементів,період часу,<номер параметра>)  де <номер параметра> — це позиція значення «відра» в ключі елемента. Наприклад, якщо значення «відра» в myItem\[aaa,0.2\] дорівнює «0.2», то його позиція дорівнює 2.  Значення за замовчуванням <номер параметра> — «1».  Перегляньте [сукупні обчислення](/manual/config/items/itemtypes/calculated/aggregate), щоб отримати додаткові відомості та приклади використання функцій foreach.

en-us	### Add JavaScript to the widget  In this section, you will learn how to add Javascript elements to the widget.  You will add:   - A gauge chart made using JavaScript - to show at a glance if the latest value is normal or too high/too low. - An *Advanced configuration* section for optional parameters, such as color, minimum and maximum values, units and the *Description* field created earlier.  1. Create a *widget.edit.js.php* file in the *views* directory.  JavaScript will be responsible for hiding optional fields behind the *Advanced configuration* checkbox and initializing the color picker in the configuration view. You can add it to the same directory as the configuration view.  Since the JavaScript for the configuration view should be loaded with the form, you will need to include it into the *widget.edit.php* file as shown in the next steps.  **ui/modules/lesson_gauge_chart/views/widget.edit.js.php**  ```php <?php  use Modules\LessonGaugeChart\Widget;  ?>  window.widget_lesson_gauge_chart_form = new class {      init({color_palette}) {         this._form = document.getElementById('widget-dialogue-form');          this._advanced_configuration = document.getElementById('adv_conf');         this._unit_select = document.getElementById('value_units');         this._unit_value = document.getElementById('value_static_units');          this._advanced_configuration.addEventListener('change', () => this.updateForm());         this._unit_select.addEventListener('change', () => this.updateForm());          colorPalette.setThemeColors(color_palette);          for (const colorpicker of jQuery('.<?= ZBX_STYLE_COLOR_PICKER ?> input')) {             jQuery(colorpicker).colorpicker();         }          const overlay = overlays_stack.getById('widget_properties');          for (const event of ['overlay.reload', 'overlay.close']) {             overlay.$dialogue[0].addEventListener(event, () => { jQuery.colorpicker('hide'); });         }          this.updateForm();     }      updateForm() {         const show_advanced_configuration = this._advanced_configuration.checked;          for (const element of this._form.querySelectorAll('.js-advanced-configuration')) {             element.style.display = show_advanced_configuration ? '' : 'none';         }          this._unit_value.disabled = this._unit_select.value == <?= Widget::UNIT_AUTO ?>;     } }; ```  2. Create a *Widget.php* file in the main widget directory *lesson_gauge_chart* to create a new class *Widget*.  The *Widget* class will extend the *CWidget* base class to add/override the default widget settings (in this case - translations). JavaScript, provided below, displays the string "No data" in case of missing data. The "No data" string is present in the Zabbix UI translation files.  If there are any widget constants, it is recommended to also specify them in the *Widget* class.  **ui/modules/lesson_gauge_chart/Widget.php**  ```php <?php   namespace Modules\LessonGaugeChart;  use Zabbix\Core\CWidget;  class Widget extends CWidget {      public const UNIT_AUTO = 0;     public const UNIT_STATIC = 1;      public function getTranslationStrings(): array {         return [             'class.widget.js' => [                 'No data' => _('No data')             ]         ];     } } ```  3. Open *includes/WidgetForm.php* and add the new fields: *Advanced configuration* (checkbox), *Color* (color picker), *Min* (numeric field), *Max* (numeric field), and *Units* (select).  **ui/modules/lesson_gauge_chart/includes/WidgetForm.php**  ```php <?php  namespace Modules\LessonGaugeChart\Includes;  use Modules\LessonGaugeChart\Widget;  use Zabbix\Widgets\{     CWidgetField,     CWidgetForm };  use Zabbix\Widgets\Fields\{     CWidgetFieldCheckBox,     CWidgetFieldColor,     CWidgetFieldMultiSelectItem,     CWidgetFieldNumericBox,     CWidgetFieldSelect,     CWidgetFieldTextBox };  /**  * Gauge chart widget form.  */ class WidgetForm extends CWidgetForm {      public function addFields(): self {         return $this             ->addField(                 (new CWidgetFieldMultiSelectItem('itemid', _('Item')))                     ->setFlags(CWidgetField::FLAG_NOT_EMPTY | CWidgetField::FLAG_LABEL_ASTERISK)                     ->setMultiple(false)                     ->setFilterParameter('numeric', true)             )             ->addField(                 new CWidgetFieldCheckBox('adv_conf', _('Advanced configuration'))             )             ->addField(                 (new CWidgetFieldColor('chart_color', _('Color')))->setDefault('FF0000')             )             ->addField(                 (new CWidgetFieldNumericBox('value_min', _('Min')))                     ->setDefault(0)                     ->setFlags(CWidgetField::FLAG_NOT_EMPTY | CWidgetField::FLAG_LABEL_ASTERISK)             )             ->addField(                 (new CWidgetFieldNumericBox('value_max', _('Max')))                     ->setDefault(100)                     ->setFlags(CWidgetField::FLAG_NOT_EMPTY | CWidgetField::FLAG_LABEL_ASTERISK)             )             ->addField(                 (new CWidgetFieldSelect('value_units', _('Units'), [                     Widget::UNIT_AUTO => _x('Auto', 'history source selection method'),                     Widget::UNIT_STATIC => _x('Static', 'history source selection method')                 ]))->setDefault(Widget::UNIT_AUTO)             )             ->addField(                 (new CWidgetFieldTextBox('value_static_units'))             )             ->addField(                 new CWidgetFieldTextBox('description', _('Description'))             );     } } ```  4. Open *views/widget.edit.php* and add the field visual components to the configuration view.  The *addField()* method of the *CWidgetFormView* class takes a CSS class string as the second parameter. Add the *js-advanced-configuration* string to those fields and their labels, which should be hidden if *Advanced configuration* is not selected.  To add a JavaScript file to the configuration view, use the *includeJsFile()* method. To add inline JavaScript, use the *addJavaScript()* method.  **ui/modules/lesson_gauge_chart/views/widget.edit.php**  ```php <?php  /**  * Gauge chart widget form view.  *  * @var CView $this  * @var array $data  */  use Zabbix\Widgets\Fields\CWidgetFieldGraphDataSet;  $lefty_units = new CWidgetFieldSelectView($data['fields']['value_units']); $lefty_static_units = (new CWidgetFieldTextBoxView($data['fields']['value_static_units']))     ->setPlaceholder(_('value'))     ->setWidth(ZBX_TEXTAREA_TINY_WIDTH);  (new CWidgetFormView($data))     ->addField(         new CWidgetFieldMultiSelectItemView($data['fields']['itemid'], $data['captions']['items']['itemid'])     )     ->addField(         new CWidgetFieldCheckBoxView($data['fields']['adv_conf'])     )     ->addField(         new CWidgetFieldColorView($data['fields']['chart_color']),         'js-advanced-configuration'     )     ->addField(         new CWidgetFieldNumericBoxView($data['fields']['value_min']),         'js-advanced-configuration'     )     ->addField(         new CWidgetFieldNumericBoxView($data['fields']['value_max']),         'js-advanced-configuration'     )     ->addItem([         $lefty_units->getLabel()->addClass('js-advanced-configuration'),         (new CFormField([             $lefty_units->getView()->addClass(ZBX_STYLE_FORM_INPUT_MARGIN),             $lefty_static_units->getView()         ]))->addClass('js-advanced-configuration')     ])     ->addField(         new CWidgetFieldTextBoxView($data['fields']['description']),         'js-advanced-configuration'     )     ->includeJsFile('widget.edit.js.php')     ->addJavaScript('widget_lesson_gauge_chart_form.init('.json_encode([         'color_palette' => CWidgetFieldGraphDataSet::DEFAULT_COLOR_PALETTE     ], JSON_THROW_ON_ERROR).');')     ->show(); ```  5. Return to the dashboard, click on the gear icon in the widget to open the widget configuration form. The widget configuration form now contains a new *Advanced configuration* checkbox.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_advanced.png){width="600"}  6. Mark the *Advanced configuration* checkbox to see additional widget configuration fields. Fill in the fields with values and select a widget color.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_advanced_b.png){width="600"}  7. Click on *Apply* in the widget configuration form. Then click on *Save changes* in the top right corner to save the dashboard.  8. Open *actions/WidgetView.php* and update the controller.  The **$this->fields_values** property now contains the values of all the *Advanced configuration* fields. Finalize the controller to enable passing the configuration and selected item value to the widget view.  **ui/modules/lesson_gauge_chart/actions/WidgetView.php**  ```php <?php  namespace Modules\LessonGaugeChart\Actions;  use API,     CControllerDashboardWidgetView,     CControllerResponseData;  class WidgetView extends CControllerDashboardWidgetView {      protected function doAction(): void {         $db_items = API::Item()->get([             'output' => ['itemid', 'value_type', 'name', 'units'],             'itemids' => $this->fields_values['itemid'],             'webitems' => true,             'filter' => [                 'value_type' => [ITEM_VALUE_TYPE_UINT64, ITEM_VALUE_TYPE_FLOAT]             ]         ]);          $history_value = null;          if ($db_items) {             $item = $db_items[0];              $history = API::History()->get([                 'output' => API_OUTPUT_EXTEND,                 'itemids' => $item['itemid'],                 'history' => $item['value_type'],                 'sortfield' => 'clock',                 'sortorder' => ZBX_SORT_DOWN,                 'limit' => 1             ]);              if ($history) {                 $history_value = convertUnitsRaw([                     'value' => $history[0]['value'],                     'units' => $item['units']                 ]);             }         }          $this->setResponse(new CControllerResponseData([             'name' => $this->getInput('name', $this->widget->getName()),             'history' => $history_value,             'fields_values' => $this->fields_values,             'user' => [                 'debug_mode' => $this->getDebugMode()             ]         ]));     } } ```  9. Open and modify *views/widget.view.php*.  You need to create a container for the gauge chart, which you will draw in the next steps, and a container for the description.  To pass values to JavaScript as a JSON object, use the *setVar()* method.  **ui/modules/lesson_gauge_chart/views/widget.view.php**  ```php <?php  /**  * Gauge chart widget view.  *  * @var CView $this  * @var array $data  */  (new CWidgetView($data))     ->addItem([         (new CDiv())->addClass('chart'),         $data['fields_values']['description']             ? (new CDiv($data['fields_values']['description']))->addClass('description')             : null     ])     ->setVar('history', $data['history'])     ->setVar('fields_values', $data['fields_values'])     ->show(); ```  10. Create a new directory *assets* in the *lesson_gauge_chart* directory. This directory will be used for storing JavaScript, CSS, and potentially any other assets, such as fonts or images.  11. For widget view JavaScript, create a directory *js* in the *assets* directory.  12. Create a *class.widget.js* file in the *assets/js* directory.  This JavaScript widget class will extend the base JavaScript class of all dashboard widgets - *CWidget*.  The dashboard relies on a correct implementation of a widget and communicates any relevant information to the widget through calling the respective JavaScript methods. The dashboard also expects the widget to generate events when some interaction occurs. Thus, the *CWidget* class contains a set of methods with the default implementation of widget behavior, which can be customized by extending the class.  In this case, some customization is necessary, therefore custom logic will be implemented for the following widget behavior:  -   widget initialization that is responsible for defining the initial state of the widget (see the *\_init()* method); -   displaying widget contents (that is, drawing the gauge chart) if the widget update process has been successful and without errors (see the *\_processUpdateResponse(response)* method and the related *\_resizeChart()* and *\_updatedChart()* methods) -   resizing the widget (see the *resize()* method and the related *\_resizeChart()* method)  For other aspects of the gauge chart widget, the default implementation for widget behavior will be used. To learn more about the JavaScript methods of the *CWidget* class, see: [JavaScript](/devel/modules/widgets/presentation/javascript).  Since this JavaScript is required for the widget view, it should be loaded with the dashboard page.  To enable JavaScript loading, you will need to update the *assets/js* and *js_class* parameters of **manifest.json** as shown in the next step.  **ui/modules/lesson_gauge_chart/assets/js/class.widget.js**  ```js class WidgetLessonGaugeChart extends CWidget {      static UNIT_AUTO = 0;     static UNIT_STATIC = 1;      _init() {         super._init();          this._refresh_frame = null;         this._chart_container = null;         this._canvas = null;         this._chart_color = null;         this._min = null;         this._max = null;         this._value = null;         this._last_value = null;         this._units = '';     }      _processUpdateResponse(response) {         if (response.history === null) {             this._value = null;             this._units = '';         }         else {             this._value = Number(response.history.value);             this._units = response.fields_values.value_units == WidgetLessonGaugeChart.UNIT_AUTO                 ? response.history.units                 : response.fields_values.value_static_units;         }          this._chart_color = response.fields_values.chart_color;         this._min = Number(response.fields_values.value_min);         this._max = Number(response.fields_values.value_max);          if (this._canvas === null) {             super._processUpdateResponse(response);              this._chart_container = this._content_body.querySelector('.chart');             this._canvas = document.createElement('canvas');              this._chart_container.appendChild(this._canvas);              this._resizeChart();         }         else {             this._updatedChart();         }     }      resize() {         super.resize();          if (this._state === WIDGET_STATE_ACTIVE) {             this._resizeChart();         }     }      _resizeChart() {         const ctx = this._canvas.getContext('2d');         const dpr = window.devicePixelRatio;          this._canvas.style.display = 'none';         const size = Math.min(this._chart_container.offsetWidth, this._chart_container.offsetHeight);         this._canvas.style.display = '';          this._canvas.width = size * dpr;         this._canvas.height = size * dpr;          ctx.scale(dpr, dpr);          this._canvas.style.width = `${size}px`;         this._canvas.style.height = `${size}px`;          this._refresh_frame = null;          this._updatedChart();     }      _updatedChart() {         if (this._last_value === null) {             this._last_value = this._min;         }          const start_time = Date.now();         const end_time = start_time + 400;          const animate = () => {             const time = Date.now();              if (time <= end_time) {                 const progress = (time - start_time) / (end_time - start_time);                 const smooth_progress = 0.5 + Math.sin(Math.PI * (progress - 0.5)) / 2;                 let value = this._value !== null ? this._value : this._min;                 value = (this._last_value + (value - this._last_value) * smooth_progress - this._min) / (this._max - this._min);                  const ctx = this._canvas.getContext('2d');                 const size = this._canvas.width;                 const char_weight = size / 12;                 const char_shadow = 3;                 const char_x = size / 2;                 const char_y = size / 2;                 const char_radius = (size - char_weight) / 2 - char_shadow;                  const font_ratio = 32 / 100;                  ctx.clearRect(0, 0, size, size);                  ctx.beginPath();                 ctx.shadowBlur = char_shadow;                 ctx.shadowColor = '#bbb';                 ctx.strokeStyle = '#eee';                 ctx.lineWidth = char_weight;                 ctx.lineCap = 'round';                 ctx.arc(char_x, char_y, char_radius, Math.PI * 0.749, Math.PI * 2.251, false);                 ctx.stroke();                  ctx.beginPath();                 ctx.strokeStyle = `#${this._chart_color}`;                 ctx.lineWidth = char_weight - 2;                 ctx.lineCap = 'round';                 ctx.arc(char_x, char_y, char_radius, Math.PI * 0.75,                     Math.PI * (0.75 + (1.5 * Math.min(1, Math.max(0, value)))), false                     );                 ctx.stroke();                  ctx.shadowBlur = 2;                 ctx.fillStyle = '#1f2c33';                 ctx.font = `${(char_radius * font_ratio)|0}px Arial`;                 ctx.textAlign = 'center';                 ctx.textBaseline = 'middle';                 ctx.fillText(`${this._value !== null ? this._value : t('No data')}${this._units}`,                     char_x, char_y, size - char_shadow * 4 - char_weight * 2                 );                  ctx.fillStyle = '#768d99';                 ctx.font = `${(char_radius * font_ratio * .5)|0}px Arial`;                 ctx.textBaseline = 'top';                  ctx.textAlign = 'left';                 ctx.fillText(`${this._min}${this._min != '' ? this._units : ''}`,                     char_weight * .75, size - char_weight * 1.25, size / 2 - char_weight                 );                  ctx.textAlign = 'right';                 ctx.fillText(`${this._max}${this._max != '' ? this._units : ''}`,                     size - char_weight * .75, size - char_weight * 1.25, size / 2 - char_weight                 );                  requestAnimationFrame(animate);             }             else {                 this._last_value = this._value;             }         };          requestAnimationFrame(animate);     } } ```  13. Open *manifest.json* and add:  - file name (*class.widget.js*) to the array in the *assets/js* section; - class name (*WidgetLessonGaugeChart*) to the *js_class* parameter in the *widget* section.  The *WidgetLessonGaugeChart* class will now be automatically loaded with the dashboard.  **ui/modules/lesson_gauge_chart/manifest.json**  ```json {     "manifest_version": 2.0,     "id": "lesson_gauge_chart",     "type": "widget",     "name": "Gauge chart",     "namespace": "LessonGaugeChart",     "version": "1.0",     "author": "Zabbix SIA",     "actions": {         "widget.lesson_gauge_chart.view": {             "class": "WidgetView"         }     },     "widget": {         "js_class": "WidgetLessonGaugeChart"     },     "assets": {         "js": ["class.widget.js"]     } } ```
uk	### Додайте JavaScript до віджету  У цьому розділі ви дізнаєтеся, як додати до віджету елементи Javascript:   Ви додасте:  - Діаграма, створена за допомогою JavaScript, щоб відразу показати, чи є останнє значення нормальним або занадто високим/низьким. - Розділ *Розширена конфігурація* для додаткових параметрів, таких як колір, мінімальне і максимальне значення, одиниці виміру і поле *Опис*, створене раніше.  1. Створіть файл *widget.edit.js.php* в каталозі *views*.  JavaScript відповідатиме за приховування необов'язкових полів за чекбоксом *Розширена конфігурація* та ініціалізацію піпетки кольорів у view конфігурації. Ви можете додати його до тієї самої директорії, що й view конфігурації.  Оскільки JavaScript для view конфігурації повинен завантажуватися разом з формою, вам потрібно включити його в файл *widget.edit.php*, як показано на наступних кроках  **ui/modules/lesson_gauge_chart/views/widget.edit.js.php**  ```php <?php  use Modules\LessonGaugeChart\Widget;  ?>  window.widget_lesson_gauge_chart_form = new class {  init({color_palette}) { this._form = document.getElementById('widget-dialogue-form');  this._advanced_configuration = document.getElementById('adv_conf'); this._unit_select = document.getElementById('value_units'); this._unit_value = document.getElementById('value_static_units');  this._advanced_configuration.addEventListener('change', () => this.updateForm()); this._unit_select.addEventListener('change', () => this.updateForm());  colorPalette.setThemeColors(color_palette);  for (const colorpicker of jQuery('.<?= ZBX_STYLE_COLOR_PICKER ?> input')) { jQuery(colorpicker).colorpicker(); }  const overlay = overlays_stack.getById('widget_properties');  for (const event of ['overlay.reload', 'overlay.close']) { overlay.$dialogue[0].addEventListener(event, () => { jQuery.colorpicker('hide'); }); }  this.updateForm(); }  updateForm() { const show_advanced_configuration = this._advanced_configuration.checked;  for (const element of this._form.querySelectorAll('.js-advanced-configuration')) { element.style.display = show_advanced_configuration ? '' : 'none'; }  this._unit_value.disabled = this._unit_select.value == <?= Widget::UNIT_AUTO ?>; } }; ```  2. Створіть файл *Widget.php* у головному каталозі віджетів *lesson_gauge_chart* для створення нового класу *Widget*.  Клас *Widget* розширює базовий клас *CWidget* для додавання/перевизначення налаштувань віджету за замовчуванням (у цьому випадку - перекладів).JavaScript, наведений нижче, виводить рядок "Немає даних" у разі відсутності даних.Рядок "Немає даних" присутній у файлах перекладу інтерфейсу користувача Zabbix.  Якщо є якісь константи віджета, рекомендується також вказати їх у класі *Widget*.  **ui/modules/lesson_gauge_chart/Widget.php**  ```php <?php   namespace Modules\LessonGaugeChart;  use Zabbix\Core\CWidget;  class Widget extends CWidget {  public const UNIT_AUTO = 0; public const UNIT_STATIC = 1;  public function getTranslationStrings(): array { return [ 'class.widget.js' => [ 'No data' => _('No data') ] ]; } } ``` 3. Відкрийте *includes/WidgetForm.php* і додайте нові поля: *Додаткова конфігурація* (чекбокс), *Колір* (перемикач кольорів), *Мін* (числове поле), *Макс* (числове поле) і *Одиниці виміру* (вибір).  **ui/modules/lesson_gauge_chart/includes/WidgetForm.php**  ```php <?php  namespace Modules\LessonGaugeChart\Includes;  use Modules\LessonGaugeChart\Widget;  use Zabbix\Widgets\{ CWidgetField, CWidgetForm };  use Zabbix\Widgets\Fields\{ CWidgetFieldCheckBox, CWidgetFieldColor, CWidgetFieldMultiSelectItem, CWidgetFieldNumericBox, CWidgetFieldSelect, CWidgetFieldTextBox }; /**  * Gauge chart widget form.  */ class WidgetForm extends CWidgetForm {  public function addFields(): self { return $this ->addField( (new CWidgetFieldMultiSelectItem('itemid', _('Item'))) ->setFlags(CWidgetField::FLAG_NOT_EMPTY | CWidgetField::FLAG_LABEL_ASTERISK) ->setMultiple(false) ->setFilterParameter('numeric', true) ) ->addField( new CWidgetFieldCheckBox('adv_conf', _('Advanced configuration')) ) ->addField( (new CWidgetFieldColor('chart_color', _('Color')))->setDefault('FF0000') ) ->addField( (new CWidgetFieldNumericBox('value_min', _('Min'))) ->setDefault(0) ->setFlags(CWidgetField::FLAG_NOT_EMPTY | CWidgetField::FLAG_LABEL_ASTERISK) ) ->addField( (new CWidgetFieldNumericBox('value_max', _('Max'))) ->setDefault(100) ->setFlags(CWidgetField::FLAG_NOT_EMPTY | CWidgetField::FLAG_LABEL_ASTERISK) ) ->addField( (new CWidgetFieldSelect('value_units', _('Units'), [ Widget::UNIT_AUTO => _x('Auto', 'history source selection method'), Widget::UNIT_STATIC => _x('Static', 'history source selection method') ]))->setDefault(Widget::UNIT_AUTO) ) ->addField( (new CWidgetFieldTextBox('value_static_units')) ) ->addField( new CWidgetFieldTextBox('description', _('Description')) ); } } ```  4. Відкрийте *views/widget.edit.php* і додайте візуальні компоненти полів до view конфігурації.  Метод *addField()* класу *CWidgetFormView* приймає рядок класу CSS як другий параметр. Додайте рядок *js-advanced-configuration* до цих полів та їхніх міток, які мають бути приховані, якщо не вибрано *Advanced configuration*.  Щоб додати файл JavaScript до view конфігурації, використовуйте метод *includeJsFile()*.  Щоб додати вбудований JavaScript, використовуйте метод *addJavaScript()*.  **ui/modules/lesson_gauge_chart/views/widget.edit.php**  ```php <?php  /**  * Gauge chart widget form view.  *  * @var CView $this  * @var array $data  */  use Zabbix\Widgets\Fields\CWidgetFieldGraphDataSet;  $lefty_units = new CWidgetFieldSelectView($data['fields']['value_units']); $lefty_static_units = (new CWidgetFieldTextBoxView($data['fields']['value_static_units'])) ->setPlaceholder(_('value')) ->setWidth(ZBX_TEXTAREA_TINY_WIDTH);  (new CWidgetFormView($data)) ->addField( new CWidgetFieldMultiSelectItemView($data['fields']['itemid'], $data['captions']['items']['itemid']) ) ->addField( new CWidgetFieldCheckBoxView($data['fields']['adv_conf']) ) ->addField( new CWidgetFieldColorView($data['fields']['chart_color']), 'js-advanced-configuration' ) ->addField( new CWidgetFieldNumericBoxView($data['fields']['value_min']), 'js-advanced-configuration' ) ->addField( new CWidgetFieldNumericBoxView($data['fields']['value_max']), 'js-advanced-configuration' ) ->addItem([ $lefty_units->getLabel()->addClass('js-advanced-configuration'), (new CFormField([ $lefty_units->getView()->addClass(ZBX_STYLE_FORM_INPUT_MARGIN), $lefty_static_units->getView() ]))->addClass('js-advanced-configuration') ]) ->addField( new CWidgetFieldTextBoxView($data['fields']['description']), 'js-advanced-configuration' ) ->includeJsFile('widget.edit.js.php') ->addJavaScript('widget_lesson_gauge_chart_form.init('.json_encode([ 'color_palette' => CWidgetFieldGraphDataSet::DEFAULT_COLOR_PALETTE ], JSON_THROW_ON_ERROR).');') ->show(); ```  5. Поверніться до інформаційної панелі, натисніть на іконку шестерні у віджеті, щоб відкрити форму конфігурації віджету. Форма конфігурації віджету тепер містить новий чекбокс *Розширена конфігурація*.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_advanced.png){width="600"}  6. Встановіть чекбокс *Розширена конфігурація*, щоб побачити додаткові поля конфігурації віджету. Заповніть поля значеннями та виберіть колір віджету.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_advanced_b.png){width="600"}  7. Натисніть на *Застосувати* у формі конфігурації віджету. Потім натисніть на *Зберегти зміни* у верхньому правому куті, щоб зберегти дашборд.  8. Відкрийте *actions/WidgetView.php* і оновіть контролер.  Властивість **$this->fields_values** тепер містить значення всіх полів *Розширена конфігурація*.Доопрацюйте контролер, щоб уможливити передачу конфігурації та значення вибраного елемента до віджету.  **ui/modules/lesson_gauge_chart/actions/WidgetView.php**  ```php <?php  namespace Modules\LessonGaugeChart\Actions;  use API, CControllerDashboardWidgetView, CControllerResponseData;  class WidgetView extends CControllerDashboardWidgetView {  protected function doAction(): void { $db_items = API::Item()->get([ 'output' => ['itemid', 'value_type', 'name', 'units'], 'itemids' => $this->fields_values['itemid'], 'webitems' => true, 'filter' => [ 'value_type' => [ITEM_VALUE_TYPE_UINT64, ITEM_VALUE_TYPE_FLOAT] ] ]);  $history_value = null;  if ($db_items) { $item = $db_items[0];  $history = API::History()->get([ 'output' => API_OUTPUT_EXTEND, 'itemids' => $item['itemid'], 'history' => $item['value_type'], 'sortfield' => 'clock', 'sortorder' => ZBX_SORT_DOWN, 'limit' => 1 ]);  if ($history) { $history_value = convertUnitsRaw([ 'value' => $history[0]['value'], 'units' => $item['units'] ]); } }  $this->setResponse(new CControllerResponseData([ 'name' => $this->getInput('name', $this->widget->getName()), 'history' => $history_value, 'fields_values' => $this->fields_values, 'user' => [ 'debug_mode' => $this->getDebugMode() ] ])); } } ```  9. Відкрийте та відредактуйте *views/widget.view.php*.  Вам потрібно створити контейнер для колійної діаграми, яку ви намалюєте в наступних кроках, і контейнер для опису.  Щоб передати значення в JavaScript як JSON-об'єкт, використовуйте метод *setVar()*.  **ui/modules/lesson_gauge_chart/views/widget.view.php**  ```php <?php  /**  * Gauge chart widget view.  *  * @var CView $this  * @var array $data  */  (new CWidgetView($data)) ->addItem([ (new CDiv())->addClass('chart'), $data['fields_values']['description'] ? (new CDiv($data['fields_values']['description']))->addClass('description') : null ]) ->setVar('history', $data['history']) ->setVar('fields_values', $data['fields_values']) ->show(); ```  10. Створіть новий каталог *assets* у каталозі *lesson_gauge_chart*. Цей каталог буде використовуватися для зберігання JavaScript, CSS і, можливо, будь-яких інших ресурсів, таких як шрифти або зображення.  11. Для перегляду JavaScript віджетів створіть каталог *js* у каталозі *assets*.  12. Створіть файл *class.widget.js* в каталозі *assets/js*.  Цей клас JavaScript-віджету розширює базовий JavaScript-клас усіх віджетів інформаційної панелі - *CWidget*.  Інформаційна панель покладається на коректну реалізацію віджета і передає будь-яку відповідну інформацію віджету через виклик відповідних методів JavaScript.  Інформаційна панель також очікує, що віджет буде генерувати події, коли відбувається певна взаємодія.  Таким чином, клас *CWidget* містить набір методів з реалізацією поведінки віджета за замовчуванням, яку можна налаштувати, розширивши клас.  У цьому випадку необхідна певна кастомізація, тому буде реалізовано кастомну логіку для наступної поведінки віджету:  -ініціалізація віджету, яка відповідає за визначення початкового стану віджету (див. метод *\_init()*);  -відображення вмісту віджету (тобто малювання графіку), якщо процес оновлення віджету пройшов успішно та без помилок (див. метод *\_processUpdateResponse(response)* та пов'язані з ним методи *\_resizeChart()* та *\_updatedChart()*);  - зміна розміру віджету (див. метод *resize()* та пов'язаний з ним метод *\_resizeChart()*).  Для інших аспектів віджету колійної діаграми буде використано реалізацію за замовчуванням для поведінки віджету.Щоб дізнатися більше про методи JavaScript класу *CWidget*, див: [JavaScript](/devel/modules/widgets/presentation/javascript).  Оскільки цей JavaScript необхідний для відображення віджету, його слід завантажити разом зі сторінкою дашборду. Щоб увімкнути завантаження JavaScript, вам потрібно оновити параметри *assets/js* і *js_class* у **manifest.json**, як показано в наступному кроці.  **ui/modules/lesson_gauge_chart/assets/js/class.widget.js**  ```js class WidgetLessonGaugeChart extends CWidget {  static UNIT_AUTO = 0; static UNIT_STATIC = 1;  _init() { super._init();  this._refresh_frame = null; this._chart_container = null; this._canvas = null; this._chart_color = null; this._min = null; this._max = null; this._value = null; this._last_value = null; this._units = ''; }  _processUpdateResponse(response) { if (response.history === null) { this._value = null; this._units = ''; } else { this._value = Number(response.history.value); this._units = response.fields_values.value_units == WidgetLessonGaugeChart.UNIT_AUTO ? response.history.units : response.fields_values.value_static_units; }  this._chart_color = response.fields_values.chart_color; this._min = Number(response.fields_values.value_min); this._max = Number(response.fields_values.value_max);  if (this._canvas === null) { super._processUpdateResponse(response);  this._chart_container = this._content_body.querySelector('.chart'); this._canvas = document.createElement('canvas');  this._chart_container.appendChild(this._canvas);  this._resizeChart();  } else { this._updatedChart(); } }  resize() { super.resize();  if (this._state === WIDGET_STATE_ACTIVE) { this._resizeChart(); } }  _resizeChart() { const ctx = this._canvas.getContext('2d'); const dpr = window.devicePixelRatio;  this._canvas.style.display = 'none'; const size = Math.min(this._chart_container.offsetWidth, this._chart_container.offsetHeight); this._canvas.style.display = '';  this._canvas.width = size * dpr; this._canvas.height = size * dpr;  ctx.scale(dpr, dpr);  this._canvas.style.width = `${size}px`; this._canvas.style.height = `${size}px`;  this._refresh_frame = null;  this._updatedChart(); }  _updatedChart() { if (this._last_value === null) { this._last_value = this._min; }  const start_time = Date.now(); const end_time = start_time + 400;  const animate = () => { const time = Date.now();  if (time <= end_time) { const progress = (time - start_time) / (end_time - start_time); const smooth_progress = 0.5 + Math.sin(Math.PI * (progress - 0.5)) / 2; let value = this._value !== null ? this._value : this._min; value = (this._last_value + (value - this._last_value) * smooth_progress - this._min) / (this._max - this._min);  const ctx = this._canvas.getContext('2d'); const size = this._canvas.width; const char_weight = size / 12; const char_shadow = 3; const char_x = size / 2; const char_y = size / 2 ;const char_radius = (size - char_weight) / 2 - char_shadow;  const font_ratio = 32 / 100;  ctx.clearRect(0, 0, size, size);  ctx.beginPath();ctx.shadowBlur = char_shadow; ctx.shadowColor = '#bbb'; ctx.strokeStyle = '#eee'; ctx.lineWidth = char_weight; ctx.lineCap = 'round'; ctx.arc(char_x, char_y, char_radius, Math.PI * 0.749, Math.PI * 2.251, false); ctx.stroke();  ctx.beginPath(); ctx.strokeStyle = `#${this._chart_color}`; ctx.lineWidth = char_weight - 2; ctx.lineCap = 'round'; ctx.arc(char_x, char_y, char_radius,  Math.PI * 0.75,Math.PI * (0.75 + (1.5 * Math.min(1, Math.max(0, value)))), false ); ctx.stroke();  ctx.shadowBlur = 2; ctx.fillStyle = '#1f2c33'; ctx.font = `${(char_radius * font_ratio)|0}px Arial`; ctx.textAlign = 'center'; ctx.textBaseline = 'middle'; ctx.fillText(`${this._value !== null ? this._value : t('No data')}${this._units}`, char_x, char_y, size - char_shadow * 4 - char_weight * 2 );  ctx.fillStyle = '#768d99'; ctx.font = `${(char_radius * font_ratio * .5)|0}px Arial`; ctx.textBaseline = 'top';  ctx.textAlign = 'left'; ctx.fillText(`${this._min}${this._min != '' ? this._units : ''}`, char_weight * .75, size - char_weight * 1.25, size / 2 - char_weight );  ctx.textAlign = 'right'; ctx.fillText(`${this._max}${this._max != '' ? this._units : ''}`, size - char_weight * .75, size - char_weight * 1.25, size / 2 - char_weight );  requestAnimationFrame(animate); } else { this._last_value = this._value; } };  requestAnimationFrame(animate); } } ```  13. Відкрийте *manifest.json* і додайте:  - ім'я файлу (*class.widget.js*) до масиву в секції *assets/js*; - ім'я класу (*WidgetLessonGaugeChart*) до параметра *js_class* в секції *widget*.  Клас *WidgetLessonGaugeChart* тепер буде автоматично завантажуватися з інформаційною панеллю.  **ui/modules/lesson_gauge_chart/manifest.json**  ```json { "manifest_version": 2.0, "id": "lesson_gauge_chart", "type": "widget", "name": "Gauge chart", "namespace": "LessonGaugeChart", "version": "1.0", "author": "Zabbix SIA", "actions": { "widget.lesson_gauge_chart.view": { "class": "WidgetView" } }, "widget": { "js_class": "WidgetLessonGaugeChart" }, "assets": { "js": ["class.widget.js"] } } ```

en-us	### Add settings to a configuration view and use them in a widget view  In this section, you will learn how to add a widget configuration field and show the entered value in the widget view as text.  The widget configuration consists of a form (*Zabbix\\Widgets\\CWidgetForm*) and a widget form view (*widget.edit.php*). To add fields (*Zabbix\\Widgets\\CWidgetField*), you need to create a *WidgetForm* class, which will extend *Zabbix\\Widgets\\CWidgetForm*.  The form contains the set of fields (*Zabbix\\Widgets\\CWidgetField*) of various types, which are used to validate user-entered values. The form field (*Zabbix\\Widgets\\CWidgetField*) for each input element type converts the value into a single format to store it in the database.  :::noteclassic The widget's **form** file should be located in the *includes* directory (for this tutorial, *ui/modules/lesson_gauge_chart/includes/*). If the file has the default name *WidgetForm.php*, you do not need to register it in the *manifest.json* file. If the file has a different name, specify it in the *widget/form_class* section of the [manifest.json](devel/modules/file_structure/manifest) file. :::  1. Create a new directory *includes* in the *lesson_gauge_chart* directory.  2. Create a *WidgetForm.php* file in the *includes* directory.  **ui/modules/lesson_gauge_chart/includes/WidgetForm.php**  ```php <?php  namespace Modules\LessonGaugeChart\Includes;  use Zabbix\Widgets\CWidgetForm;  class WidgetForm extends CWidgetForm { } ```  3. Add a *Description* field to widget configuration form. This is a regular text field, where a user can enter any character set. You can use the *CWidgetFieldTextBox* class for it.  **ui/modules/lesson_gauge_chart/includes/WidgetForm.php**  ```php <?php  namespace Modules\LessonGaugeChart\Includes;  use Zabbix\Widgets\CWidgetForm;  use Zabbix\Widgets\Fields\CWidgetFieldTextBox;  class WidgetForm extends CWidgetForm {      public function addFields(): self {         return $this             ->addField(                 new CWidgetFieldTextBox('description', _('Description'))             );    } } ```  4. In the *views* directory, create a widget configuration view file *widget.edit.php* and add a view for the new *Description* field. For the *CWidgetFieldTextBox* field class, the view is *CWidgetFieldTextBoxView.*  **ui/modules/lesson_gauge_chart/views/widget.edit.php**  ```php <?php  /**  * Gauge chart widget form view.  *  * @var CView $this  * @var array $data  */  (new CWidgetFormView($data))     ->addField(         new CWidgetFieldTextBoxView($data['fields']['description'])     )     ->show(); ```  5. Go to the dashboard and click on the gear icon in the widget to open the widget configuration form.  6. The widget configuration form now contains a new *Description* text field. Enter any value, for example, *Gauge chart description*.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_descr.png){width="600"}  7. Click on *Apply* in the widget configuration form. Then click on *Save changes* in the top right corner to save the dashboard. Note that the new description is not visible anywhere, and the widget still displays "Hello, world!".  For the new description to appear in the widget, the *Description* field value needs to be retrieved from the database and passed to the widget view. For that, you need to create an action class.  8. Create a new directory *actions* in the *lesson_gauge_chart* directory.  9. Create a *WidgetView.php* file in the *actions* directory. The *WidgetView* action class will extend the *CControllerDashboardWidgetView* class.  Values of the widget configuration fields are stored in the **$fields_values** property of the action class.  **ui/modules/lesson_gauge_chart/actions/WidgetView.php**  ```php <?php  namespace Modules\LessonGaugeChart\Actions;  use CControllerDashboardWidgetView,     CControllerResponseData;  class WidgetView extends CControllerDashboardWidgetView {      protected function doAction(): void {         $this->setResponse(new CControllerResponseData([             'name' => $this->getInput('name', $this->widget->getName()),             'description' => $this->fields_values['description'],             'user' => [                 'debug_mode' => $this->getDebugMode()             ]         ]));     } } ```  10. Open *manifest.json* and register *WidgetView* as an action class in the *actions/widget.lesson_gauge_chart.view* section.  **ui/modules/lesson_gauge_chart/manifest.json**  ```json {     "manifest_version": 2.0,     "id": "lesson_gauge_chart",     "type": "widget",     "name": "Gauge chart",     "namespace": "LessonGaugeChart",     "version": "1.0",     "author": "Zabbix SIA",     "actions": {         "widget.lesson_gauge_chart.view": {             "class": "WidgetView"         }     } } ```  11. Now you can use the value of the description field, contained in *$data['description']*, in the widget view. Open *views/widget.view.php* and replace the static text "Hello, world!" with *$data['description']*.  **ui/modules/lesson_gauge_chart/views/widget.view.php**  ```php <?php  /**  * Gauge chart widget view.  *  * @var CView $this  * @var array $data  */  (new CWidgetView($data))     ->addItem(         new CTag('h1', true, $data['description'])     )     ->show(); ```  12. Refresh the dashboard page. You should now see the widget description text instead of "Hello, world!".  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_view_descr.png){width="600"}
uk	### Додайте налаштування до конфігурації view та використовуйте їх у view віджетів  У цьому розділі ви дізнаєтесь, як додати поле конфігурації віджета та показати введене значення у вигляді тексту у вікні віджета.  Конфігурація віджета складається з форми (*Zabbix\\Widgets\\CWidgetForm*) і view форми віджета (*widget.edit.php*). Щоб додати поля (*Zabbix\\Widgets\\CWidgetField*), вам потрібно створити клас *WidgetForm*, який буде розширювати *Zabbix\\Widgets\\CWidgetForm*.  Форма містить набір полів (*Zabbix\\Widgets\\CWidgetField*) різних типів, які використовуються для перевірки введених користувачем значень. Поле форми (*Zabbix\\Widgets\\CWidgetField*) для кожного типу елемента вводу перетворює значення в єдиний формат для зберігання в базі даних.  :::noteclassic Файл **форми** віджета має бути розташований у каталозі *includes* (для цієї інструкції *ui/modules/lesson_gauge_chart/includes/*). Якщо файл має назву за замовчуванням *WidgetForm.php*, вам не потрібно реєструвати його у файлі *manifest.json*. Якщо файл має іншу назву, укажіть її в розділі *widget/form_class* файлу [manifest.json](devel/modules/file_structure/manifest). :::  1. Створіть новий каталог *includes* у каталозі *lesson_gauge_chart*.  2. Створіть файл *WidgetForm.php* у каталозі *includes*.  **ui/modules/lesson_gauge_chart/includes/WidgetForm.php**  ```php <?php  namespace Modules\LessonGaugeChart\Includes;  use Zabbix\Widgets\CWidgetForm;  class WidgetForm extends CWidgetForm { } ```  3. Додайте поле *Опис* до форми конфігурації віджета. Це звичайне текстове поле, куди користувач може ввести будь-який набір символів. Для цього можна використовувати клас *CWidgetFieldTextBox*.  **ui/modules/lesson_gauge_chart/includes/WidgetForm.php**  ```php <?php  namespace Modules\LessonGaugeChart\Includes;  use Zabbix\Widgets\CWidgetForm;  use Zabbix\Widgets\Fields\CWidgetFieldTextBox;  class WidgetForm extends CWidgetForm {      public function addFields(): self {     return $this     ->addField(    new CWidgetFieldTextBox('description', _('Description'))             );    } } ```  4. У каталозі *views* створіть файл конфігурації view віджета *widget.edit.php* і додайте view для нового поля *Description*. Для класу полів *CWidgetFieldTextBox* view має вигляд *CWidgetFieldTextBoxView.*  **ui/modules/lesson_gauge_chart/views/widget.edit.php**  ```php <?php  /**   * Gauge chart widget form view.  *  * @var CView $this  * @var array $data  */  (new CWidgetFormView($data))     ->addField(    new CWidgetFieldTextBoxView($data['fields']['description'])     )     ->show(); ```  5. Перейдіть на інформаційну панель і клацніть значок шестірні у віджеті, щоб відкрити форму налаштування віджета.  6. Форма конфігурації віджета тепер містить нове текстове поле *Опис*. Введіть будь-яке значення, наприклад, *Опис gauge chart*.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_descr.png){width="600"}  7. Натисніть *Застосувати* у формі налаштування віджета. Потім натисніть *Зберегти зміни* у верхньому правому куті, щоб зберегти інформаційну панель. Зауважте, що новий опис ніде не видно, а віджет все ще відображає «Hello, world!».  Щоб новий опис з’явився у віджеті, потрібно отримати значення поля *Опис* із бази даних і передати його у view віджета. Для цього вам потрібно створити клас дій.  8. Створіть новий каталог *actions* у каталозі *lesson_gauge_chart*.  9. Створіть файл *WidgetView.php* у каталозі *actions*. Клас дій *WidgetView* розширить клас *CControllerDashboardWidgetView*.  Значення полів конфігурації віджета зберігаються у властивості **$fields_values** класу дій.  **ui/modules/lesson_gauge_chart/actions/WidgetView.php**  ```php <?php  namespace Modules\LessonGaugeChart\Actions;  use CControllerDashboardWidgetView,     CControllerResponseData;  class WidgetView extends CControllerDashboardWidgetView {      protected function doAction(): void {         $this->setResponse(new CControllerResponseData([             'name' => $this->getInput('name', $this->widget->getName()),             'description' => $this->fields_values['description'],             'user' => [                 'debug_mode' => $this->getDebugMode()             ]         ]));     } } ```  10. Відкрийте *manifest.json* і зареєструйте *WidgetView* як клас дій у розділі *actions/widget.lesson_gauge_chart.view*.  **ui/modules/lesson_gauge_chart/manifest.json**  ```json {     "manifest_version": 2.0,     "id": "leson_gauge_chart",     "type": "widget",     "name": "Gauge chart",     "namespace": "LessonGaugeChart",     "version": "1.0",     "author": "Zabbix SIA",     "actions": {         "widget.lesson_gauge_chart.view": {             "class": "WidgetView"         }     } } ```  11. Тепер ви можете використовувати значення поля опису, що міститься в *$data['description']*, у view віджетів. Відкрийте *views/widget.view.php* і замініть статичний текст «Hello, world!» на *$data['description']*.  **ui/modules/lesson_gauge_chart/views/widget.view.php**  ```php <?php  /**  * Gauge chart widget view.  * * @var CView $this  * @var array $data  */  (new CWidgetView($data))     ->additem(     new CTag('h1', true, $data['description'])     )     ->show(); ```  12. Оновіть сторінку інформаційної панелі. Тепер ви маєте побачити текст опису віджета замість «Hello, world!».  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_view_descr.png){width="600"}

en-us	##### Agent configuration  HA cluster nodes (servers) must be listed in the configuration of  Zabbix agent or Zabbix agent 2.  ![](../../../../assets/en/manual/config/zabbix_ha_agent.png)  To enable passive checks, the node names must be listed in the Server [parameter](/manual/appendix/config/zabbix_agentd), separated by a **comma**.  ``` Server=zabbix-node-01,zabbix-node-02 ```  To enable active checks, the node names must be listed in the ServerActive [parameter](/manual/appendix/config/zabbix_agentd). Note that for  active checks the nodes must be separated by a comma from any other  servers, while the nodes themselves must be separated by a **semicolon**, e.g.:  ``` ServerActive=zabbix-node-01;zabbix-node-02 ```
uk	##### Конфігурація агента  Вузли (сервери) HA кластера мають бути вказані в конфігурації Zabbix агента або Zabbix агента 2.  ![](../../../../assets/en/manual/config/zabbix_ha_agent.png)  Щоб увімкнути пасивні перевірки, імена вузлів мають бути вказані в [параметрі](/manual/appendix/config/zabbix_agentd) Server і розділені **комою**.  ``` Server=zabbix-node-01,zabbix-node-02 ```  Щоб увімкнути активні перевірки, імена вузлів мають бути вказані в [параметрі](/manual/appendix/config/zabbix_agentd) ServerActive. Зверніть увагу, що для активних перевірок, вузли одного кластеру повинні бути відокремлені від інших Zabbix серверів комою, а самі вузли повинні бути розділені **крапкою з комою**, наприклад:  ``` ServerActive=zabbix-node-01;zabbix-node-02 ```

en-us	# alert.get
uk	# alert.get

en-us	# > Alert object  The following objects are directly related to the `alert` API.
uk	# > Об'єкт сповіщення  Наступні об’єкти безпосередньо пов’язані з API `alert`.

en-us	# Alert  This class is designed to work with alerts.  Object references:\  -   [Alert](/manual/api/reference/alert/object#alert)  Available methods:\  -   [alert.get](/manual/api/reference/alert/get) - retrieve alerts
uk	# Сповіщення  Цей клас призначений для роботи з оповіщеннями.  Посилання на об'єкти:\  - [Попередження](/manual/api/reference/alert/object#alert)  Доступні методи:\  - [alert.get](/manual/api/reference/alert/get) - отримання сповіщень

en-us	# API info  This class is designed to retrieve meta information about the API.  Available methods:\  -   [apiinfo.version](/manual/api/reference/apiinfo/version) -     retrieving the version of the Zabbix API
uk	# Інформація про API  Цей клас призначений для отримання метаінформації про API.  Доступні методи:\  - [apiinfo.version](/manual/api/reference/apiinfo/version) - отримання версії Zabbix API

en-us	# apiinfo.version
uk	# apiinfo.version

en-us	### API versions  To simplify API versioning, since Zabbix 2.0.4, the version of the API matches the version of Zabbix itself. You can use the [apiinfo.version](/manual/api/reference/apiinfo/version) method to find out the version of the API you are working with. This can be useful for adjusting your application to use version-specific features.  Zabbix guarantees feature backward compatibility inside a major version. When making backward incompatible changes between major releases, Zabbix usually leaves the old features as deprecated in the next release, and only removes them in the release after that. Occasionally, Zabbix may remove features between major releases without providing any backward compatibility. It is important that you never rely on any deprecated features and migrate to newer alternatives as soon as possible.  ::: notetip You can follow all the changes made to the API in the [API changelog](/manual/api/changes). :::
uk	### версії API  Для спрощення керування версіями API, починаючи з Zabbix 2.0.4, версія API відповідає версії самого Zabbix. Ви можете використовувати [apiinfo.version](/manual/api/reference/apiinfo/version) метод пошуку версії API, з якою ви працюєте. Це може бути корисно для налаштування  вашого додатка на використання специфічних для певної версії функцій.  Zabbix гарантує зворотну сумісність функцій всередині мажорної версії.  При внесенні зворотно несумісних змін між мажорними випусками,  Zabbix зазвичай залишає старі функції застарілими(deprecated) в наступному випуску, і видаляє їх лише   у подальших випусках. Іноді Zabbix може видаляти можливості між мажорними випусками  без забезпечення зворотної сумісності. Важливо, щоб ви ніколи не покладалися на  застарілі функції і переходили на новіші альтернативи якомога швидше.  ::: notetip Ви можете стежити за всіма змінами, внесеними до API, у [Журналі змін API](/manual/api/changes). :::

en-us	#### API  [ZBXNEXT-8051](https://support.zabbix.com/browse/ZBXNEXT-8051) Authorization method changed from `auth` parameter to `Authorization` header.\ [ZBXNEXT-8051](https://support.zabbix.com/browse/ZBXNEXT-8051) Deprecated parameter `auth`.\
uk	#### API  [ZBXNEXT-8051](https://support.zabbix.com/browse/ZBXNEXT-8051) Метод авторизації змінено з параметра `auth` на заголовок `Authorization`.\ [ZBXNEXT-8051](https://support.zabbix.com/browse/ZBXNEXT-8051) Задіприкейчино параметр `auth`.\

en-us	# Appendix 1. Reference commentary
uk	№ Додаток 1. Опорний коментар

en-us	# Appendix 2. Changes from 6.2 to 6.4
uk	# Додаток 2. Зміни з 6.2 до 6.4

en-us	 ### assets/css  *assets/css* is reserved and should only contain CSS style files. To be used by the widget, specify these files in the *[manifest.json](/devel/modules/file_structure/manifest)*.  For example:  ```json "assets": {     "css": ["mywidget.css"] } ```
uk	 ### assets/css  *assets/css* зарезервований і має містити лише файли стилю CSS. Щоб використовувати його віджетом, укажіть ці файли в *[manifest.json](/devel/modules/file_structure/manifest)*.  Наприклад:  ```json "assets": {     "css": ["mywidget.css"] } ```

en-us	 ### assets  CSS styles and JavaScript files to include.  *Type*: Object  *Supported object keys:*  -   **css** (array) - CSS files to include. The files must be located in the *assets/css*. -   **js** (array) - JavaScript files to include. The files must be located in the *assets/js*.  *Example*:   ```json "assets": {     "css": ["widget.css"],     "js": ["class.widget.js"] } ```
uk	 ### assets  Стилі CSS і файли JavaScript для включення.  *Тип*: Object  *Підтримувані ключі об’єктів:*  - **css** (array) - файли CSS для включення. Файли мають бути розташовані в *assets/css*. - **js** (array) - файли JavaScript для включення. Файли мають бути розташовані в *assets/js*.  *Приклад*:  ```json "assets": {     "css": ["widget.css"],     "js": ["class.widget.js"] } ```

en-us	 ### assets/js  *assets/js* directory is reserved and should only contain JavaScript files. To be used by the widget, specify these files in the *[manifest.json](/devel/modules/file_structure/manifest)*.  For example:  ```json "assets": {     "js": ["class.widget.js"] } ```
uk	 ### assets/js  Каталог *assets/js* зарезервований і має містити лише файли JavaScript. Щоб використовувати його віджетом, укажіть ці файли в *[manifest.json](/devel/modules/file_structure/manifest)*.  Наприклад:  ```json "assets": {     "js": ["class.widget.js"] } ```

en-us	 # Assets  The folder *assets* may contain any files and subfolders that do not belong to other directories. You can use it for:  - JavaScript styles (must be inside *[assets/js](#assetsjs)*); - CSS styles (must be inside *[assets/css](#assetscss)*); - Images; - Fonts; - Anything else you need to include.
uk	 # Assets  Папка *assets* може містити будь-які файли та підпапки, які не належать до інших каталогів. Ви можете використовувати її для:  - Стилі JavaScript (має бути всередині *[assets/js](#assetsjs)*); - Стилі CSS (має бути в *[assets/css](#assetscss)*); - Зображення; - Шрифти; - Усе, що вам потрібно додати.

en-us	# auditlog.get
uk	# auditlog.get

en-us	# > Audit log object  The following objects are directly related to the `auditlog` API.
uk	# > Об'єкт журналу аудиту  Наступні об’єкти безпосередньо пов’язані з API журналу аудиту.

en-us	# Audit log  This class is designed to work with audit log.  Object references:\  -   [Audit log object](/manual/api/reference/auditlog/object)  Available methods:\  -   [auditlog.get](/manual/api/reference/auditlog/get) - retrieve audit     log records
uk	# Журнал аудиту  Цей клас призначений для роботи з журналом аудиту.  Посилання на об'єкти:\  - [Об'єкт журналу аудиту](/manual/api/reference/auditlog/object)  Доступні методи:\  - [auditlog.get](/manual/api/reference/auditlog/get) - отримати записи журналу аудиту

en-us	#### auditlog  [ZBXNEXT-8105](https://support.zabbix.com/browse/ZBXNEXT-8105) Added new [audit log](/manual/api/reference/auditlog/object#audit-log) entry resource type (51 - Connector).\
uk	#### auditlog  [ZBXNEXT-8105](https://support.zabbix.com/browse/ZBXNEXT-8105) Додано новий тип ресурсу [журнал аудиту](/manual/api/reference/auditlog/object#audit-log) (51 - Connector).\

en-us	# authentication.get
uk	# authentication.get

en-us	# > Authentication object  The following objects are directly related to the `authentication` API.
uk	# > Об'єкт автентифікації  Наступні об’єкти безпосередньо пов’язані з API `автентифікації`.

en-us	# Authentication  This class is designed to work with authentication settings.  Object references:\  -   [Authentication](/manual/api/reference/authentication/object#authentication)  Available methods:\  -   [authentication.get](/manual/api/reference/authentication/get) -     retrieve authentication -   [authentication.update](/manual/api/reference/authentication/update) -     update authentication
uk	# Автентифікація  Цей клас призначений для роботи з параметрами автентифікації.  Посилання на об'єкти:\  - [Автентифікація](/manual/api/reference/authentication/object#authentication)  Доступні методи:\  - [authentication.get](/manual/api/reference/authentication/get) - отримати автентифікацію - [authentication.update](/manual/api/reference/authentication/update) - оновлення автентифікації

en-us	#### Authentication  To access any data in Zabbix, you need to either:  -   use an existing [API token](/manual/web_interface/frontend_sections/users/api_tokens) (created in Zabbix frontend or using the [Token API](/manual/api/reference/token)); -   use an authentication token obtained with the [user.login](/manual/api/reference/user/login) method.  For example, if you wanted to obtain a new authentication token by logging in as a standard *Admin* user, then a JSON request would look like this:  ```bash curl --request POST \   --url 'https://example.com/zabbix/api_jsonrpc.php' \   --header 'Content-Type: application/json-rpc' \   --data '{"jsonrpc":"2.0","method":"user.login","params":{"username":"Admin","password":"zabbix"},"id":1}' ```  If you provided the credentials correctly, the response returned by the API should contain the user authentication token:  ```json {     "jsonrpc": "2.0",     "result": "0424bd59b807674191e7d77572075f33",     "id": 1 } ```
uk	#### Автентифікація  Щоб отримати доступ до будь-яких даних у Zabbix, вам потрібно:  - використовувати існуючий [API-токен](/manual/web_interface/frontend_sections/users/api_tokens) (створений у інтерфейсі Zabbix або за допомогою [Token API](/manual/api/reference/token)); - використовувати токен автентифікації, отриманий методом [user.login](/manual/api/reference/user/login).  Наприклад, якщо ви хочете отримати новий токен автентифікації, увійшовши як стандартний користувач *Admin*, то JSON-запит буде виглядати наступним чином:  ```bash curl --request POST \   --url 'https://example.com/zabbix/api_jsonrpc.php' \   --header 'Content-Type: application/json-rpc' \   --data '{"jsonrpc":"2.0","method":"user.login","params":{"username":"Admin","password":"zabbix"},"id":1}' ```  Якщо ви правильно вказали облікові дані, відповідь, повернута API, повинна містити токен автентифікації користувача:  ```json {     "jsonrpc": "2.0",     "result": "0424bd59b807674191e7d77572075f33",     "id": 1 } ```

en-us	# authentication.update
uk	# authentication.update

en-us	#### authentication  [ZBXNEXT-276](https://support.zabbix.com/browse/ZBXNEXT-276) Removed properties `saml_idp_entityid`, `saml_sso_url`, `saml_slo_url`, `saml_username_attribute`, `saml_sp_entityid`, `saml_nameid_format`, `saml_sign_messages`, `saml_sign_assertions`, `saml_sign_authn_requests`, `saml_sign_logout_requests`, `saml_sign_logout_responses`, `saml_encrypt_nameid`, `saml_encrypt_assertions`. These properties are now part of [User directory](/manual/api/changes#userdirectory) API.\ [ZBXNEXT-276](https://support.zabbix.com/browse/ZBXNEXT-276) Renamed property `ldap_configured` to `ldap_auth_enabled`.\ [ZBXNEXT-276](https://support.zabbix.com/browse/ZBXNEXT-276) Added new properties `ldap_jit_status`, `saml_jit_status`, `jit_provision_interval`, `disabled_usrgrpid`.\
uk	#### authentication  [ZBXNEXT-276](https://support.zabbix.com/browse/ZBXNEXT-276) Вилучено властивості `saml_idp_entityid`, `saml_sso_url`, `saml_slo_url`, `saml_username_attribute`, `saml_sp_entityid`, `saml_nameid_format`, `saml_ sign_messages `, `saml_sign_assertions`, `saml_sign_authn_requests`, `saml_sign_logout_requests`, `saml_sign_logout_responses`, `saml_encrypt_nameid`, `saml_encrypt_assertions`. Тепер ці властивості є частиною [Каталогу користувача](/manual/api/changes#userdirectory) API.\ [ZBXNEXT-276](https://support.zabbix.com/browse/ZBXNEXT-276) Перейменовано властивість `ldap_configured` на `ldap_auth_enabled`.\ [ZBXNEXT-276](https://support.zabbix.com/browse/ZBXNEXT-276) Додано нові властивості `ldap_jit_status`, `saml_jit_status`, `jit_provision_interval`, `disabled_usrgrpid`.\

en-us	## AUTHOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}
uk	## АВТОР  Олексій Владишев <<alex@zabbix.com>>  -------------------------------------------------- ----------------------  [ ]{#index}

en-us	## AUTHOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}
uk	## АВТОР  Олексій Владишев <<alex@zabbix.com>>  -------------------------------------------------- ----------------------  [ ]{#index}

en-us	## AUTHOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}
uk	## АВТОР  Олексій Владишев <<alex@zabbix.com>>  -------------------------------------------------- ----------------------  [ ]{#index}

en-us	## AUTHOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}
uk	## АВТОР  Олексій Владишев <<alex@zabbix.com>>  -------------------------------------------------- ----------------------  [ ]{#index}

en-us	## AUTHOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}
uk	## АВТОР  Олексій Владишев <<alex@zabbix.com>>  -------------------------------------------------- ----------------------  [ ]{#index}

en-us	#### Authorization methods
uk	#### Методи авторизації

en-us	 ### author  Module author. The author will be displayed in the Administration section.  *Type*: String  *Example*:   ```json "author": "John Smith" ```
uk	 ### author  Автор модуля. Автор буде відображатися в розділі Адміністрування.  *Тип*: String  *Приклад*:  ```json "author": "Лесь Подерв'янський" ```

en-us	## AUTHOR  Zabbix LLC  ------------------------------------------------------------------------  [ ]{#index}
uk	## АВТОР  ТОВ Zabbix  -------------------------------------------------- ----------------------  [ ]{#index}

en-us	## AUTHOR  Zabbix LLC  ------------------------------------------------------------------------  [ ]{#index}
uk	## АВТОР  ТОВ Zabbix  -------------------------------------------------- ----------------------  [ ]{#index}

en-us	# autoregistration.get
uk	# autoregistration.get

en-us	# > Autoregistration object  The following objects are directly related to the `autoregistration` API.
uk	# > Об'єкт автореєстрації  Наступні об’єкти безпосередньо пов’язані з API автореєстрації.

en-us	# Autoregistration  This class is designed to work with autoregistration.  Object references:\  -   [Autoregistration](/manual/api/reference/autoregistration/object#autoregistration)  Available methods:\  -   [autoregistration.get](/manual/api/reference/autoregistration/get) -     retrieve autoregistration -   [autoregistration.update](/manual/api/reference/autoregistration/update) -     update autoregistration
uk	#Автореєстрація  Цей клас призначений для роботи з автореєстрацією.  Посилання на об'єкти:\  - [Autoregistration](/manual/api/reference/autoregistration/object#autoregistration)  Доступні методи:\  - [autoregistration.get](/manual/api/reference/autoregistration/get) -      отримати автореєстрацію - [autoregistration.update](/manual/api/reference/autoregistration/update) -      оновити автореєстрацію

en-us	# autoregistration.update
uk	# autoregistration.update

en-us	## Backward incompatible changes
uk	## Зворотно несумісні зміни

en-us	##### By "Authorization" header  All API requests require an authentication or an API token. You can provide the credentials by using the "Authorization" request header:  ```bash curl --request POST \   --url 'https://example.com/zabbix/api_jsonrpc.php' \   --header 'Authorization: Bearer 0424bd59b807674191e7d77572075f33' ```
uk	##### За заголовком "Authorization" .  Усі запити до API вимагають автентифікації або токену API. Ви можете надати облікові дані, використовуючи заголовок запиту "Authorization":  ```bash curl --request POST \   --url 'https://example.com/zabbix/api_jsonrpc.php' \   --header 'Authorization: Bearer 0424bd59b807674191e7d77572075f33' ```

en-us	##### By "auth" property  An API request can be authorized by the "auth" property.  ::: noteimportant Note that the "auth" property is deprecated. It will be removed in the future releases. :::  ```bash curl --request POST \   --url 'https://example.com/zabbix/api_jsonrpc.php' \   --header 'Content-Type: application/json-rpc' \   --data '{"jsonrpc":"2.0","method":"host.get","params":{"output":["hostid"]},"auth":"0424bd59b807674191e7d77572075f33","id":1}' ```
uk	##### За властивістю "auth".  Запит API може бути авторизований за допомогою властивості "auth".  ::: noteimportant Зауважте, що властивість "auth" застаріла. Її буде видалено в наступних релізах. :::  ```bash curl --request POST \   --url 'https://example.com/zabbix/api_jsonrpc.php' \   --header 'Content-Type: application/json-rpc' \   --data '{"jsonrpc":"2.0","method":"host.get","params":{"output":["hostid"]},"auth":"0424bd59b807674191e7d77572075f33","id":1}' ```

en-us	##### By Zabbix cookie  A *"zbx_session"* cookie is used to authorize an API request from Zabbix UI performed using JavaScript (from a module or a custom widget).
uk	##### Файл cookie Zabbix  Файл cookie *"zbx_session "* використовується для авторизації API-запиту з інтерфейсу Zabbix, що виконується за допомогою JavaScript (з модуля або кастомного віджета).

en-us	#### Calculation time  A trigger is recalculated every time Zabbix server receives a new value that is part of the expression. When a new value is received, each function that is included in the expression is recalculated (not just the one that received the new value).  Additionally, a trigger is recalculated each time when a new value is received **and** every 30 seconds if time-based functions are used in the expression.  Time-based functions are **nodata()**, **date()**, **dayofmonth()**, **dayofweek()**, **time()**, **now()**; they are recalculated every 30 seconds by the Zabbix history syncer process.  Triggers that reference trend functions **only** are evaluated once per  the smallest time period in the expression. See also [trend functions](/manual/appendix/functions/trends).
uk	#### Calculation time  A trigger is recalculated every time Zabbix server receives a new value that is part of the expression. When a new value is received, each function that is included in the expression is recalculated (not just the one that received the new value).  Additionally, a trigger is recalculated each time when a new value is received **and** every 30 seconds if time-based functions are used in the expression.  Time-based functions are **nodata()**, **date()**, **dayofmonth()**, **dayofweek()**, **time()**, **now()**; they are recalculated every 30 seconds by the Zabbix history syncer process.  Triggers that reference trend functions **only** are evaluated once per  the smallest time period in the expression. See also [trend functions](/manual/appendix/functions/trends).

en-us	#### - Changes to AlmaLinux 8 configuration  The appliance is based on AlmaLinux 8. There are some changes applied to the base AlmaLinux configuration.
uk	#### - Зміни в налаштуваннях AlmaLinux 8  Готове рішення базується на AlmaLinux 8. До базової конфігурації AlmaLinux застосовано деякі зміни.

en-us	 ### config  Default values for the module options. The object may contain any custom keys. If specified, these values will be written into the database during module registration. New variables added later will be written upon the first call. Afterwards, the variable values can only be changed directly in the database.  *Type*: Object  *Example*:  ```json "config": {     "username": "Admin",     "password": "",     "auth_url": "https://example.com/auth" } ```
uk	 ### config  Значення за замовчуванням для параметрів модуля. Об'єкт може містити будь-які спеціальні ключі. Якщо вказано, ці значення будуть записані в базу даних під час реєстрації модуля. Нові змінні, додані пізніше, будуть записані під час першого виклику. Після цього значення змінних можна змінити лише безпосередньо в базі даних.  *Тип*: Object  *Приклад*:  ```json "config": {     "username": "Admin",     "password": "",     "auth_url": "https://example.com/auth" } ```

en-us	#### Configuration  A problem can be suppressed through the **[problem update](/manual/acknowledgment#updating-problems)**  window, where suppression is one of the problem update options along with  commenting, changing severity, acknowledging, etc.   A problem may also be unsuppressed through the same problem  update window.
uk	#### Конфігурація  Проблему можна сховати за допомогою вікна **[оновлення проблеми](/manual/acknowledgment#updating-problems)**, де приховування є одним із параметрів оновлення проблеми разом із коментування, зміна серйозності, підтвердження тощо.  Проблема також може бути знову зроблена видимою в тому самому вікні оновлення проблеми.

en-us	# configuration.export
uk	# configuration.export

en-us	# configuration.import
uk	# configuration.import

en-us	# configuration.importcompare
uk	# configuration.importcompare

en-us	# Configuration  This class is designed to export and import Zabbix configuration data.  Available methods:\  -   [configuration.export](/manual/api/reference/configuration/export) -     exporting the configuration -   [configuration.import](/manual/api/reference/configuration/import) -     importing the configuration -   [configuration.importcompare](/manual/api/reference/configuration/importcompare) -     comparing import file with current system elements
uk	# Конфігурація  Цей клас призначений для експорту та імпорту конфігураційних даних Zabbix.  Доступні методи:\  - [configuration.export](/manual/api/reference/configuration/export) -      експорт конфігурації - [configuration.import](/manual/api/reference/configuration/import) -      імпортування конфігурації - [configuration.importcompare](/manual/api/reference/configuration/importcompare) -      порівняння файлу імпорту з поточними елементами системи

en-us	# Configuration  This page describes classes that can be used to create a widget configuration view with custom configuration fields. The widget configuration view is the part of the widget that allows the user to configure widget parameters for [presentation](/presentation).
uk	# Конфігурація  На цій сторінці описано класи, які можна використовувати для створення конфігурації view віджета з настроюваними полями конфігурації. View конфігурації віджета — це частина віджета, яка дозволяє користувачеві налаштовувати параметри віджета для [презентації](/presentation).

en-us	#### connector  [ZBXNEXT-8105](https://support.zabbix.com/browse/ZBXNEXT-8105) Added new Connector API with methods `connector.create`, `connector.update`, `connector.get`, `connector.delete`.\
uk	#### connector  [ZBXNEXT-8105](https://support.zabbix.com/browse/ZBXNEXT-8105) Додано новий API конектора з методами `connector.create`, `connector.update`, `connector.get`, `connector.delete` `.\

en-us	### Controller  Action controller workflow:  1) Check that all parameters passed in an HTTP request are valid: - Call the controller's *checkInput()* method - Use validation rules defined in CNewValidator.php - Call *validateInput()* method  2) Check user permissions.  3) Prepare the data according to passed parameters: if *checkInput()* returns true, Zabbix calls the controller's *doAction()* method.  4) Prepare the **$data** array for the view. Use *CControllerResponseData* and *setResponse()* method to store response in the **$data** array.  Example:  ````php /**  * Validate input parameters.  *  * @return bool  */ protected function checkInput(): bool {     $ret = $this->validateInput([         'status' => 'in '.implode(',', [HOST_STATUS_MONITORED, HOST_STATUS_NOT_MONITORED])     ]);      if (!$ret) {         $this->setResponse(new CControllerResponseFatal());     }      return $ret; }  /**  * Check user permissions.  *  * @return bool  */ protected function checkPermissions() {     return $this->getUserType() >= USER_TYPE_ZABBIX_ADMIN; }  /**  * Execute action and generate response object.  */ protected function do Action(): void {     $data = [          'hosts_count' => API::Host()->get([             'countOutput' => true,             'filter' => [                 'status' => $this->getInput('status')             ]         ])      ];          $this->setResponse(new CControllerResponseData($data)); } ````  ::: notetip You can view the full list of available controller classes in Zabbix [source code](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/ui/app/controllers?at=refs%2Fheads%2Frelease%2F6.4). :::
uk	### Контролер  Робочий процес контролера дій:  1) Перевірте, чи всі параметри, передані в HTTP-запиті, дійсні: - Викличте метод контролера *checkInput()* - Використовуйте правила перевірки, визначені в CNewValidator.php - Викличте метод *validateInput()*  2) Перевірте дозволи користувача.  3) Підготуйте дані відповідно до переданих параметрів: якщо *checkInput()* повертає true, Zabbix викликає метод контролера *doAction()*.  4) Підготуйте масив **$data** для перегляду. Використовуйте метод *CControllerResponseData* і *setResponse()* для збереження відповіді в масиві **$data**.  Приклад:  ````php /**  * Перевірка вхідних параметрів.  *  * @return bool  */ protected function checkInput(): bool {     $ret = $this->validateInput([         'status' => 'in '.implode(',', [HOST_STATUS_MONITORED, HOST_STATUS_NOT_MONITORED])     ]);      if (!$ret) {         $this->setResponse(new CControllerResponseFatal());     }      return $ret; }  /**  * Перевірка дозволів користувача.  *  * @return bool  */ protected function checkPermissions() {     return $this->getUserType() >= USER_TYPE_ZABBIX_ADMIN; }  /**  * Виконати дію та створити об’єкт відповіді.  */ protected function $datado Action(): void {     $data = [         'hosts_count' => API::Host()->get([             'countOutput' => true,             'filter' => [                 'status' => $this->getInput('status')             ]         ])     ];          $this->setResponse(новий CControllerResponseData($data)); } ````  ::: підказка Ви можете переглянути повний список доступних класів контролерів у Zabbix [початковий код](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/ui/app/controllers?at=refs%2Fheads%2Frelease%2F6.4). :::

en-us	 ### Copyright notice  Zabbix documentation is NOT distributed under a GPL license. Use  of Zabbix documentation is subject to the following terms:   You may create a printed copy of this documentation solely for your  own personal use. Conversion to other formats is allowed as long as  the actual content is not altered or edited in any way. You shall  not publish or distribute this documentation in any form or on any  media, except if you distribute the documentation in a manner similar  to how Zabbix disseminates it (that is, electronically for download  on a Zabbix web site) or on a USB or similar medium, provided however  that the documentation is disseminated together with the software on  the same medium. Any other use, such as any dissemination of printed  copies or use of this documentation, in whole or in part, in another  publication, requires the prior written consent from an authorized  representative of Zabbix. Zabbix reserves any and all rights to this  documentation not expressly granted above.
uk	 ### Повідомлення про авторські права  Документація Zabbix НЕ розповсюджується за ліцензією GPL. Використання документації Zabbix регулюється наступними умовами:  Ви можете створити друковану копію цієї документації виключно для свого особистого користування. Конвертація в інші формати дозволено, якщо фактичний вміст жодним чином не змінюється та не редагується. Ви не повинні  публікувати або поширювати цю документацію в будь-якій формі або на  будь-якому носії, за винятком випадків, коли ви поширюєте документацію в спосіб,  подібний до того, як її поширює Zabbix (тобто в електронному вигляді для  завантаження на веб-сайті Zabbix) або на USB або аналогічному носії, за умови,  що документація поширюється разом з програмним забезпеченням на тому ж носії.   Будь-яке інше використання, наприклад, розповсюдження друкованих копій  або використання цієї документації, повністю або частково, в іншій публікації,  вимагає попередньої письмової згоди від уповноваженого представника Zabbix.  Zabbix залишає за собою всі права на цю документацію, які не були явно надані вище.

en-us	 ### Copyright notice  Zabbix documentation is NOT distributed under a GPL license. Use  of Zabbix documentation is subject to the following terms:   You may create a printed copy of this documentation solely for your  own personal use. Conversion to other formats is allowed as long as  the actual content is not altered or edited in any way. You shall  not publish or distribute this documentation in any form or on any  media, except if you distribute the documentation in a manner similar  to how Zabbix disseminates it (that is, electronically for download  on a Zabbix web site) or on a USB or similar medium, provided however  that the documentation is disseminated together with the software on  the same medium. Any other use, such as any dissemination of printed  copies or use of this documentation, in whole or in part, in another  publication, requires the prior written consent from an authorized  representative of Zabbix. Zabbix reserves any and all rights to this  documentation not expressly granted above.
uk	### Повідомлення про авторські права  Документація Zabbix НЕ розповсюджується за ліцензією GPL. Використання документації Zabbix регулюється такими умовами:  Ви можете створити друковану копію цієї документації виключно для особистого використання. Перетворення в інші формати дозволено, якщо фактичний вміст не змінено чи відредаговано жодним чином. Ви не маєте права публікувати або поширювати цю документацію в будь-якій формі чи на будь-яких носіях, за винятком випадків, коли ви поширюєте документацію у спосіб, подібний до того, як Zabbix поширює її (тобто в електронному вигляді для завантаження на веб-сайті Zabbix), або на USB чи подібному однак, за умови, що документація поширюється разом із програмним забезпеченням на тому самому носії. Будь-яке інше використання, наприклад будь-яке розповсюдження друкованих копій або використання цієї документації, повністю або частково, в іншій публікації, потребує попередньої письмової згоди від уповноваженого представника Zabbix. Zabbix залишає за собою будь-які права на цю документацію, прямо не надані вище.

en-us	# correlation.create
uk	# correlation.create

en-us	# correlation.delete
uk	# correlation.delete

en-us	# correlation.get
uk	# correlation.get

en-us	# > Correlation object  The following objects are directly related to the `correlation` API.
uk	# > Об'єкт кореляції  Наступні об’єкти безпосередньо пов’язані з `correlation` API.

en-us	# Correlation  This class is designed to work with correlations.  Object references:\  -   [Correlation](/manual/api/reference/correlation/object#correlation)  Available methods:\  -   [correlation.create](/manual/api/reference/correlation/create) -     creating new correlations -   [correlation.delete](/manual/api/reference/correlation/delete) -     deleting correlations -   [correlation.get](/manual/api/reference/correlation/get) -     retrieving correlations -   [correlation.update](/manual/api/reference/correlation/update) -     updating correlations
uk	# Кореляція  Цей клас призначений для роботи з кореляціями.  Посилання на об'єкти:\  - [Кореляція](/manual/api/reference/correlation/object#correlation)  Доступні методи:\  - [correlation.create](/manual/api/reference/correlation/create) - створення нових кореляцій - [correlation.delete](/manual/api/reference/correlation/delete) - видалення кореляцій - [correlation.get](/manual/api/reference/correlation/get) - отримання кореляцій - [correlation.update](/manual/api/reference/correlation/update) - оновлення кореляцій

en-us	# correlation.update
uk	# correlation.update

en-us	#### Create a discovery action  Create a discovery action that will link discovered hosts to template "10001".  [Request](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "action.create",     "params": {         "name": "Discovery action",         "eventsource": 1,         "filter": {             "evaltype": 0,             "conditions": [                 {                     "conditiontype": 21,                     "operator": 0,                     "value": "1"                 },                 {                     "conditiontype": 10,                     "operator": 0,                     "value": "2"                 }             ]         },         "operations": [             {                 "operationtype": 6,                 "optemplate": [                     {                         "templateid": "10001"                     }                 ]             }         ]     },     "id": 1 } ```  Response:  ```json {     "jsonrpc": "2.0",     "result": {         "actionids": [             "18"         ]     },     "id": 1 } ```
uk	#### Створити дію виявлення  Створіть дію, яка зв’яже виявлені хости з шаблоном «10001».  [Запит](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "action.create",     "params": {         "name": "Discovery action",         "eventsource": 1,         "status": 0,         "filter": {             "evaltype": 0,             "conditions": [                 {                     "conditiontype": 21,                     "operator": 0,                     "value": "1"                 },                 {                     "conditiontype": 10,                     "operator": 0,                     "value": "2"                 }             ]         },         "operations": [             {                 "operationtype": 6,                 "optemplate": [                     {                         "templateid": "10001"                     }                 ]             }         ]     },     "id": 1 } ```  Відповідь:  ```json {     "jsonrpc": "2.0",     "result": {         "actionids": [             "18"         ]     },     "id": 1 } ```

en-us	#### Create agent autoregistration rule  Create an autoregistration action that adds a host to host group "2" when the host name contains "SRV" or metadata contains "AlmaLinux".  [Request](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "action.create",     "params": {         "name": "Register Linux servers",         "eventsource": "2",         "filter": {             "evaltype": "2",             "conditions": [                 {                     "conditiontype": "22",                     "operator": "2",                     "value": "SRV"                 },                 {                     "conditiontype": "24",                     "operator": "2",                     "value": "AlmaLinux"                 }             ]         },         "operations": [             {                 "operationtype": "4",                 "opgroup": [                     {                         "groupid": "2"                     }                 ]             }         ]     },     "id": 1 } ```  Response:  ```json {     "jsonrpc": "2.0",     "result": {         "actionids": [             19         ]     },     "id": 1 } ```
uk	#### Створити правило автореєстрації агента  Створіть дію автореєстрації, яка додає хост до групи хостів «2», коли ім'я хоста містить «SRV» або метадані містять «AlmaLinux».  [Запит](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "action.create",     "params": {         "name": "Register Linux servers",         "eventsource": "2",         "filter": {             "evaltype": "2",             "conditions": [                 {                     "conditiontype": "22",                     "operator": "2",                     "value": "SRV"                 },                 {                     "conditiontype": "24",                     "operator": "2",                     "value": "AlmaLinux"                 }             ]         },         "operations": [             {                 "operationtype": "4",                 "opgroup": [                     {                         "groupid": "2"                     }                 ]             }         ]     },     "id": 1 } ```  Відповідь:  ```json {     "jsonrpc": "2.0",     "result": {         "actionids": [             19         ]     },     "id": 1 } ```

en-us	##### Create a menu section  1. Create a *Module.php* file in the *MyAddress* directory.  This file implements a new *Module* class that extends the default *CModule* class. The *Module* class will insert a new *My Address* menu section into the main menu.  The *setAction()* method specifies an action to be executed upon clicking on the menu section. To start with, you can use the predefined action *userprofile.edit*, which will open the *User profile* page. In [part III](#part-iii---module-action) of this tutorial, you will learn how to create a custom action.  **ui/modules/MyAddress/Module.php**  ```php <?php  namespace Modules\MyAddress;  use Zabbix\Core\CModule,     APP,     CMenuItem;  class Module extends CModule {      public function init(): void {         APP::Component()->get('menu.main')             ->add((new CMenuItem(_('My Address')))             ->setAction('userprofile.edit'));     } } ```  :::noteclassic You can replace `'userprofile.edit'` with other actions, for example, `'charts.view'` (opens custom graphs), `'problems.view'` (opens *Monitoring → Problems*), or `'report.status'` (opens *System information* report). :::  3. Refresh Zabbix frontend. There is now a new *My Address* section at the bottom of the Zabbix main menu. Click on *My Address* to open the *User profile* page.  ![](../../../../assets/en/devel/modules/tutorials/module/my_address_top_menu.png){width="600"}
uk	##### Створення розділу меню  1. Створіть файл *Module.php* у каталозі *MyAddress*.  Цей файл реалізує новий клас *Module*, який розширює стандартний клас *CModule*. Клас *Module* вставить новий розділ меню *My Address* в головне меню.  Метод *setAction()* визначає дію, яка буде виконана після натискання на розділ меню. Для початку ви можете скористатися попередньо визначеною дією *userprofile.edit*, яка відкриє сторінку *Профіль користувача*. У [частині III](#part-iii---module-action) цієї інструкції ви дізнаєтесь, як створити користувацьку дію.  **ui/modules/MyAddress/Module.php**  ```php <?php  namespace Modules\MyAddress;  use Zabbix\Core\CModule,     APP,     CMenuItem;  class Module extends CModule {      public function init(): void {     APP::Component()->get('menu.main')     ->add((новий CMenuItem(_('My Address')))     ->setAction('userprofile.edit'));     } } ```  :::noteclassic Ви можете замінити «userprofile.edit» іншими діями, наприклад «charts.view» (відкриває користувацькі графіки), «problems.view» (відкриває *Моніторинг → Проблеми*) або `'report.status'` (відкриває звіт *Інформація про систему*). :::  3. Оновіть інтерфейс Zabbix. Тепер у нижній частині головного меню Zabbix є новий розділ *Моя адреса*. Натисніть *Моя адреса*, щоб відкрити сторінку *Профіль користувача*.  ![](../../../../assets/en/devel/modules/tutorials/module/my_address_top_menu.png){width="600"}

en-us	# Create a module (tutorial)
uk	# Створення модуля (інструкція)

en-us	 # Create a plugin (tutorial)
uk	 # Створення плагіна (посібник)

en-us	#### Create a trigger action  Create a trigger action that will begin once a trigger (with the word "memory" in its name) from host "10084" goes into a PROBLEM state. The action will have 4 configured operations. The first and immediate operation will send a message to all users in user group "7" via media type "1". If the event is not resolved in 30 minutes, the second operation will run [script](/manual/web_interface/frontend_sections/alerts/scripts#configuring-a-global-script) "5" (script with scope "Action operation") on all hosts in group "2". If the event is resolved, a recovery operation will notify all users who received any messages regarding the problem. If the event is updated, an acknowledge/update operation will notify (with a custom subject and message) all users who received any messages regarding the problem.  [Request](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "action.create",     "params": {         "name": "Trigger action",         "eventsource": 0,         "esc_period": "30m",         "filter": {             "evaltype": 0,             "conditions": [                 {                     "conditiontype": 1,                     "operator": 0,                     "value": "10084"                 },                 {                     "conditiontype": 3,                     "operator": 2,                     "value": "memory"                 }             ]         },         "operations": [             {                 "operationtype": 0,                 "esc_step_from": 1,                 "esc_step_to": 1,                 "opmessage_grp": [                     {                         "usrgrpid": "7"                     }                 ],                 "opmessage": {                     "default_msg": 1,                     "mediatypeid": "1"                 }             },             {                 "operationtype": 1,                 "esc_step_from": 2,                 "esc_step_to": 2,                 "opconditions": [                     {                         "conditiontype": 14,                         "operator": 0,                         "value": "0"                     }                 ],                 "opcommand_grp": [                     {                         "groupid": "2"                     }                 ],                 "opcommand": {                     "scriptid": "5"                 }             }         ],         "recovery_operations": [             {                 "operationtype": "11",                 "opmessage": {                     "default_msg": 1                 }             }         ],         "update_operations": [             {                 "operationtype": "12",                 "opmessage": {                     "default_msg": 0,                     "message": "Custom update operation message body",                     "subject": "Custom update operation message subject"                 }             }         ]     },     "id": 1 } ```  Response:  ```json {     "jsonrpc": "2.0",     "result": {         "actionids": [             "17"         ]     },     "id": 1 } ```
uk	 #### Створіть тригерну дію  Створіть дію, яка виконуватиметься, коли тригер із хосту "10084", який містить слово "пам'ять" у своєму імені, переходить у стан проблеми. Дія повинна спочатку надіслати повідомлення всім користувачам у групі користувачів «7». Якщо подію не буде вирішено протягом 4 хвилин, буде запущено сценарій «3» на всіх хостах у групі «2». Під час відновлення тригера він сповістить усіх користувачів, які раніше отримували будь-які повідомлення щодо проблеми. Після оновлення тригера повідомлення з настроюваною темою та основним текстом буде надіслано всім, хто залишив підтвердження та коментарі через усі типи медіа.  Запит:  ```json {     "jsonrpc": "2.0",     "method": "action.create",     "params": {         "name": "Trigger action",         "eventsource": 0,         "status": 0,         "esc_period": "2m",         "filter": {             "evaltype": 0,             "conditions": [                 {                     "conditiontype": 1,                     "operator": 0,                     "value": "10084"                 },                 {                     "conditiontype": 3,                     "operator": 2,                     "value": "memory"                 }             ]         },         "operations": [             {                 "operationtype": 0,                 "esc_period": "0s",                 "esc_step_from": 1,                 "esc_step_to": 2,                 "evaltype": 0,                 "opmessage_grp": [                     {                         "usrgrpid": "7"                     }                 ],                 "opmessage": {                     "default_msg": 1,                     "mediatypeid": "1"                 }             },             {                 "operationtype": 1,                 "esc_step_from": 3,                 "esc_step_to": 4,                 "evaltype": 0,                 "opconditions": [                     {                         "conditiontype": 14,                         "operator": 0,                         "value": "0"                     }                 ],                 "opcommand_grp": [                     {                         "groupid": "2"                     }                 ],                 "opcommand": {                     "scriptid": "3"                 }             }         ],         "recovery_operations": [             {                 "operationtype": "11",                 "opmessage": {                     "default_msg": 1                 }             }             ],         "update_operations": [             {                 "operationtype": "12",                 "opmessage": {                     "default_msg": 0,                     "message": "Custom update operation message body",                     "subject": "Custom update operation message subject"                 }             }         ],         "pause_suppressed": "0",         "notify_if_canceled": "0"     },     "auth": "038e1d7b1735c6a5436ee9eae095879e",     "id": 1 } ```  Відповідь:  ```json {     "jsonrpc": "2.0",     "result": {         "actionids": [             "17"         ]     },     "id": 1 } ```

en-us	# Create a widget (tutorial)
uk	# Створення віджета (інструкція)

en-us	#### Creating a new item  Now, create a new [item](/manual/api/reference/item/object) on the host "Zabbix server" using the data you have obtained from the previous `host.get` request. This can be done using the [item.create](/manual/api/reference/item/create) method:  ```bash curl --request POST \   --url 'https://example.com/zabbix/api_jsonrpc.php' \   --header 'Authorization: Bearer ${AUTHORIZATION_TOKEN}' \   --header 'Content-Type: application/json-rpc' \   --data '{"jsonrpc":"2.0","method":"item.create","params":{"name":"Free disk space on /home/joe/","key_":"vfs.fs.size[/home/joe/,free]","hostid":"10084","type":0,"value_type":3,"interfaceid":"1","delay":30},"id":3}' ```  A successful response will contain the ID of the newly created item, which can be used to reference the item in the following requests:  ```json {     "jsonrpc": "2.0",     "result": {         "itemids": [             "24759"         ]     },     "id": 3 } ```  ::: notetip The `item.create` method as well as other *create methods* can also accept arrays of objects and create multiple items with one API call. :::
uk	#### Створення нового елемента  Тепер створіть новий [item](/manual/api/reference/item/object) на хості "Zabbix server", використовуючи дані, які ви отримали з попереднього `host.get`-запиту.  Це можна зробити за допомогою методу [item.create](/manual/api/reference/item/create):  ```bash curl --request POST \   --url 'https://example.com/zabbix/api_jsonrpc.php' \   --header 'Authorization: Bearer ${AUTHORIZATION_TOKEN}' \   --header 'Content-Type: application/json-rpc' \   --data '{"jsonrpc":"2.0","method":"item.create","params":{"name":"Free disk space on /home/joe/","key_":"vfs.fs.size[/home/joe/,free]","hostid":"10084","type":0,"value_type":3,"interfaceid":"1","delay":30},"id":3}' ```  Успішна відповідь міститиме ідентифікатор щойно створеного елемента, який можна використовувати для посилання на елемент у таких запитах:  ```json {     "jsonrpc": "2.0",     "result": {         "itemids": [             "24759"         ]     },     "id": 3 } ```  ::: notetip Метод `item.create`, як і інші методи *create*, також може приймати масиви об'єктів і створювати декілька елементів одним викликом API. :::

en-us	#### Creating multiple triggers  Thus, if *create methods* accept arrays, you can add multiple [triggers](/manual/api/reference/trigger/object), for example, this one:   ```bash curl --request POST \   --url 'https://example.com/zabbix/api_jsonrpc.php' \   --header 'Authorization: Bearer ${AUTHORIZATION_TOKEN}' \   --header 'Content-Type: application/json-rpc' \   --data '{"jsonrpc":"2.0","method":"trigger.create","params":[{"description":"Processor load is too high on {HOST.NAME}","expression":"last(/Linux server/system.cpu.load[percpu,avg1])>5",},{"description":"Too many processes on {HOST.NAME}","expression":"avg(/Linux server/proc.num[],5m)>300",}],"id":4}' ```  The successful response will contain the IDs of the newly created triggers:  ```json {     "jsonrpc": "2.0",     "result": {         "triggerids": [             "17369",             "17370"         ]     },     "id": 4 } ```
uk	#### Створення кількох тригерів  Таким чином, якщо *методи створення* приймають масиви, ви можете додати кілька [тригерів](/manual/api/reference/trigger/object), наприклад, цей:   ```bash curl --request POST \   --url 'https://example.com/zabbix/api_jsonrpc.php' \   --header 'Authorization: Bearer ${AUTHORIZATION_TOKEN}' \   --header 'Content-Type: application/json-rpc' \   --data '{"jsonrpc":"2.0","method":"trigger.create","params":[{"description":"Processor load is too high on {HOST.NAME}","expression":"last(/Linux server/system.cpu.load[percpu,avg1])>5",},{"description":"Too many processes on {HOST.NAME}","expression":"avg(/Linux server/proc.num[],5m)>300",}],"id":4}' ```  Успішна відповідь міститиме ідентифікатори новостворених тригерів:  ```json {     "jsonrpc": "2.0",     "result": {         "triggerids": [             "17369",             "17370"         ]     },     "id": 4 } ```

en-us	 ##### CSS styles  CSS files may contain a custom attribute `theme` to define different style for a specific frontend themes.  Available themes and their attribute values:  -   **Blue** - [theme='blue-theme'] -   **Dark** - [theme='dark-theme'] -   **High-contrast light** - [theme='hc-light'] -   **High-contrast dark** - [theme='hc-dark']  Example:  ```css .widget {     background-color: red; }   [theme='dark-theme'] .widget {     background-color: green; } ```
uk	 ##### Стилі CSS  Файли CSS можуть містити користувацький атрибут `theme` для визначення іншого стилю для певних тем інтерфейсу.  Доступні теми та значення їхніх атрибутів:  - **Блакитна** - [theme='blue-theme'] - **Темна** - [theme='dark-theme'] - **Висококонтрастна світла** - [theme='hc-light'] - **Висококонтрастна темна** - [theme='hc-dark']  приклад:  ```css .widget {     background-color: червоний; }   [theme='dark-theme'] .widget {     background-color: зелений; } ```

en-us	##### Custom copyright notice  To set a custom copyright notice, add `BRAND_FOOTER` to the array from the first listing. Please be aware that HTML is not supported here. Setting `BRAND_FOOTER` to an empty string will hide the copyright notice completely (but the footer will stay in place).  ```php 'BRAND_FOOTER' => '{text}', ```
uk	 ##### Спеціальне повідомлення про авторські права  Щоб установити спеціальне повідомлення про авторські права, додайте `BRAND_FOOTER` до масиву з першого списку. Зауважте, що HTML тут не підтримується. Встановлення `BRAND_FOOTER` на порожній рядок повністю приховає повідомлення про авторські права (але нижній колонтитул залишиться на місці).  ```php 'BRAND_FOOTER' => '{text}', ```

en-us	##### Custom help location  To replace the default *Help* link with a link of your choice, add `BRAND_HELP_URL` to the array from the first listing.  ```php 'BRAND_HELP_URL' => '{URL}' ```
uk	##### Спеціальне розташування довідки  Щоб замінити посилання *Довідка* за замовчуванням посиланням за вашим вибором, додайте `BRAND_HELP_URL` до масиву з першого списку.  ```php 'BRAND_HELP_URL' => '{URL}' ```

en-us	### CWidgetField  The *CWidgetField* class is a base class from which all form field classes (*CWidgetFieldCheckBox*, *CWidgetFieldTextArea*, *CWidgetFieldRadioButtonList*, etc.) are inherited. Classes extending *CWidgetField* are responsible for receiving, saving, and validating widget configuration values.  The following *CWidgetField* classes are available.  |CWidgetField class|Database field type|Description| |----|--|------------| |*CWidgetFieldCheckBox*|int32|Single checkbox.| |*CWidgetFieldCheckBoxList*|array of int32|Multiple checkboxes under a single configuration field.| |*CWidgetFieldColor*|string|Color selection field.| |*CWidgetFieldDatePicker*|string|Date selection field.| |*CWidgetFieldHostPatternSelect*|string|Multiselect field that allows to select one or multiple hosts. Supports defining host name patterns (all matching hosts will be selected).| |*CWidgetFieldIntegerBox*|int32|Field to enter an integer. Can be used to configure minimum and maximum values.| |*CWidgetFieldLatLng*|string|Text box that allows to enter comma-separated latitude, longitude, and map zoom level.| |*CWidgetFieldMultiSelectAction*|ID|Multiselect field for selecting actions (from the list of actions defined in the *Alerts → Actions*).| |*CWidgetFieldMultiSelectGraph*|ID|Multiselect field for selecting custom graphs.| |*CWidgetFieldMultiSelectGraphPrototype*|ID|Multiselect field for selecting custom graph prototypes.| |*CWidgetFieldMultiSelectGroup*|ID|Multiselect field for selecting host groups.| |*CWidgetFieldMultiSelectHost*|ID|Multiselect field for selecting hosts.| |*CWidgetFieldMultiSelectItem*|ID|Multiselect field for selecting items.| |*CWidgetFieldMultiSelectItemPrototype*|ID|Multiselect field for selecting item prototypes.| |*CWidgetFieldMultiSelectMediaType*|ID|Multiselect field for selecting media types.| |*CWidgetFieldMultiSelectService*|ID|Multiselect field for selecting services.| |*CWidgetFieldMultiSelectSla*|ID|Multiselect field for selecting SLAs.| |*CWidgetFieldMultiSelectUser*|ID|Multiselect field for selecting users.| |*CWidgetFieldNumericBox*|string|Field to enter a float number.| |*CWidgetFieldRadioButtonList*|int32|Radio box group that consists of one or more radio boxes.| |*CWidgetFieldRangeControl*|int32|Slider to select an integer type value.| |*CWidgetFieldSelect*|int32|Dropdown select box.| |*CWidgetFieldSeverities*|array of int32|*CWidgetFieldCheckBoxList* preset with trigger severities.| |*CWidgetFieldTags*|array of (string, int32, string)|Allows to configure one or more tag filter rows.| |*CWidgetFieldTextArea*|string|Text area for entering multi-line text.| |*CWidgetFieldTextBox*|string|Text box for entering single-line text.| |*CWidgetFieldTimeZone*|string|Dropdown with timezones.| |*CWidgetFieldUrl*|string|Text box that allows to enter URLs.|  The following *CWidgetField* classes have been created for particular widgets. These classes have very specific use cases, but they can also be reused if needed.  |CWidgetField class|Database field type|Description| |----|--|------------| |*CWidgetFieldColumnsList*|array of (multiple mixed)|For *Top hosts* widget. Create a table with custom columns of allowed types.| |*CWidgetFieldGraphDataSet*|array of (multiple mixed)|For *Graph* widget. Setup dataset configuration and all related options.| |*CWidgetFieldGraphOverride*|array of (multiple mixed)|For *Graph* widget. Setup overrides for specific hosts/items. Any dataset configuration can be overridden.| |*CWidgetFieldNavTree*|string|For *Map navigation tree* widget. Replaces widget view in edit mode with the map selection tree.| |*CWidgetFieldReference*|string|For *Map navigation tree* widget. Creates a unique identifier for this widget on dashboard. It is used to reference this widget from other widgets.| |*CWidgetFieldSelectResource*|ID|For *Map* widget. Allows to select Zabbix network map.| |*CWidgetFieldThresholds*|array of (string, string)|For *Top hosts* widget. Allows to configure color and number pairs.| |*CWidgetFieldWidgetSelect*|string|For *Map* widget. Allows to select a map navigation tree from the current dashboard. Must be used in combination with *CWidgetFieldReference* in the *Map navigation tree* widget.|
uk	### CWidgetField  Клас *CWidgetField* є базовим класом, від якого успадковуються всі класи полів форми (*CWidgetFieldCheckBox*, *CWidgetFieldTextArea*, *CWidgetFieldRadioButtonList* тощо). Класи, що розширюють *CWidgetField*, відповідають за отримання, збереження та перевірку значень конфігурації віджетів.  Доступні такі класи *CWidgetField*.  |Клас CWidgetField|Тип поля бази даних|Опис| |----|--|------------| |*CWidgetFieldCheckBox*|int32|Один чекбокс.| |*CWidgetFieldCheckBoxList*|масив int32|Кілька чекбоксів під одним полем конфігурації.| |*CWidgetFieldColor*|string|Поле вибору кольору.| |*CWidgetFieldDatePicker*|string|Поле вибору дати.| |*CWidgetFieldHostPatternSelect*|string|Множинне поле для вибору, яке дозволяє вибрати один або кілька хостів. Підтримує визначення шаблонів імен хостів (усі відповідні хости будуть вибрані).| |*CWidgetFieldIntegerBox*|int32|Поле для введення цілого числа. Можна використовувати для налаштування мінімальних і максимальних значень.| |*CWidgetFieldLatLng*|string|Текстове поле, яке дозволяє вводити через кому широту, довготу та рівень масштабування карти.| |*CWidgetFieldMultiSelectAction*|ID|Поле множинного вибору для вибору дій (зі списку дій, визначених у *Сповіщення → Дії*).| |*CWidgetFieldMultiSelectGraph*|ID|Множинне поле для вибору власних графіків.| |*CWidgetFieldMultiSelectGraphPrototype*|ID|Поле для вибору користувацьких прототипів графів.| |*CWidgetFieldMultiSelectGroup*|ID|Множинне поле для вибору груп хостів.| |*CWidgetFieldMultiSelectHost*|ID|Поле множинного вибору для вибору хостів.| |*CWidgetFieldMultiSelectItem*|ID|Множинне поле для вибору елементів даних.| |*CWidgetFieldMultiSelectItemPrototype*|ID|Множинне поле для вибору прототипів елементів даних.| |*CWidgetFieldMultiSelectMediaType*|ID|Множинне поле для вибору типів медіа.| |*CWidgetFieldMultiSelectService*|ID|Множинне поле для вибору служб.| |*CWidgetFieldMultiSelectSla*|ID|Множинне поле для вибору SLA.| |*CWidgetFieldMultiSelectUser*|ID|Множинне поле для вибору користувачів.| |*CWidgetFieldNumericBox*|string|Поле для введення числа з плаваючою точкою.| |*CWidgetFieldRadioButtonList*|int32|Група radiobox-ів, яка складається з одного або кількох radiobox-ів.| |*CWidgetFieldRangeControl*|int32|Повзунок для вибору значення цілочисельного типу.| |*CWidgetFieldSelect*|int32|Випадаюче вікно вибору.| |*CWidgetFieldSeverities*|масив int32|*CWidgetFieldCheckBoxList* попередньо налаштованих із рівнями серйозності тригера.| |*CWidgetFieldTags*|array (string, int32, string)|Дозволяє налаштувати один або кілька рядків фільтра тегів.| |*CWidgetFieldTextArea*|string|Текстова область для введення багаторядкового тексту.| |*CWidgetFieldTextBox*|string|Текстове поле для введення однорядкового тексту.| |*CWidgetFieldTimeZone*|string|Випадаюче меню з часовими поясами.| |*CWidgetFieldUrl*|string|Текстове поле, яке дозволяє вводити URL-адреси.|  Наступні класи *CWidgetField* були створені для окремих віджетів. Ці класи мають дуже специфічні випадки використання, але їх також можна використовувати повторно, якщо це необхідно.  |Клас CWidgetField|Тип поля бази даних|Опис| |----|--|------------| |*CWidgetFieldColumnsList*|масив (кілька змішаних)|Для віджета *Top hosts*. Створює таблицю з настроюваними стовпцями дозволених типів.| |*CWidgetFieldGraphDataSet*|масив (кілька змішаних)|Для віджета *Graph*. Налаштувує конфігурацію набору даних і всі пов’язані параметри.| |*CWidgetFieldGraphOverride*|масив (кілька змішаних)|Для віджета *Graph*. Перевизначення налаштувань для певних хостів/елементів. Будь-яку конфігурацію набору даних можна змінити.| |*CWidgetFieldNavTree*|string|Для віджета *Map navigation tree*.  Замінює вигляд віджету в режимі редагування на дерево вибору мапи.| |*CWidgetFieldReference*|string|Для віджета *Map navigation tree*. Створює унікальний ідентифікатор для цього віджета на інформаційній панелі. Він використовується для посилання на цей віджет з інших віджетів.| |*CWidgetFieldSelectResource*|ID|Для віджета *Map*. Дозволяє вибрати карту мережі Zabbix.| |*CWidgetFieldThresholds*|масив (string, string)|Для віджета *Top hosts*. Дозволяє налаштувати пари кольорів і чисел.| |*CWidgetFieldWidgetSelect*|string|Для віджета *Map*. Дозволяє вибрати дерево навігації карти з поточної інформаційної панелі. Потрібно використовувати разом із *CWidgetFieldReference* у віджеті *Навігаційне дерево карти*.|

en-us	### CWidgetFormView  The *CWidgetFormView* class is required for specifying the presentation logic of the fields defined in the *WidgetForm* class, determining their appearance and behavior when rendered in the configuration view.  The *CWidgetFormView* class supports the following methods:  -   *addField()* - receives an instance of the *CWidgetFieldView* class as a parameter;     each [*CWidgetField*](#cwidgetfield) class, has a respective *CWidgetFieldView* class for using in the widget configuration view. -   *includeJsFile()* - allows to add a JavaScript file to the widget configuration view. -   *addJavaScript()* - allows to add inline JavaScript that will be executed as soon as the widget configuration view is loaded.  The *CWidgetFormView* class should be located in the *views* directory.  **views/widget.edit.php example**  ```php <?php      /**  * My custom widget form view.  *  * @var CView $this  * @var array $data  */  use Zabbix\Widgets\Fields\CWidgetFieldGraphDataSet;  (new CWidgetFormView($data))     ->addField(         new CWidgetFieldMultiSelectItemView($data['fields']['itemid'], $data['captions']['items']['itemid'])     )     ->addField(         new CWidgetFieldTextBoxView($data['fields']['description']),         'js-advanced-configuration'     )     ->addField(         new CWidgetFieldColorView($data['fields']['chart_color']),         'js-advanced-configuration'     )     ->includeJsFile('widget.edit.js.php')     ->addJavaScript('my_widget_form.init('.json_encode([         'color_palette' => CWidgetFieldGraphDataSet::DEFAULT_COLOR_PALETTE     ], JSON_THROW_ON_ERROR).');')     ->show(); ```
uk	### CWidgetFormView  Клас *CWidgetFormView* потрібен для визначення логіки представлення полів, визначених у класі *WidgetForm*, визначення їх зовнішнього вигляду та поведінки під час візуалізації у вікні конфігурації.  Клас *CWidgetFormView* підтримує такі методи:  - *addField()* - отримує в якості параметра екземпляр класу *CWidgetFieldView*;     кожен клас [*CWidgetField*](#cwidgetfield) має відповідний клас *CWidgetFieldView* для використання в view конфігурації віджета. - *includeJsFile()* - дозволяє додати файл JavaScript до view конфігурації віджета. - *addJavaScript()* - дозволяє додати вбудований JavaScript, який буде виконано, щойно буде завантажено view конфігурації віджета.  Клас *CWidgetFormView* має бути розташований у каталозі *views*.  **views/widget.edit.php приклад**  ```php <?php      /**  * My custom widget form view.  *  * @var CView $this  * @var array $data  */  use Zabbix\Widgets\Fields\CWidgetFieldGraphDataSet;  (new CWidgetFormView($data))     ->addField(         new CWidgetFieldMultiSelectItemView($data['fields']['itemid'], $data['captions']['items']['itemid'])     )     ->addField(         new CWidgetFieldTextBoxView($data['fields']['description']),         'js-advanced-configuration'     )     ->addField(         new CWidgetFieldColorView($data['fields']['chart_color']),         'js-advanced-configuration'     )     ->includeJsFile('widget.edit.js.php')     ->addJavaScript('my_widget_form.init('.json_encode([         'color_palette' => CWidgetFieldGraphDataSet::DEFAULT_COLOR_PALETTE     ], JSON_THROW_ON_ERROR).');')     ->show(); ```

en-us	# dashboard.create
uk	# dashboard.create

en-us	# dashboard.delete
uk	# dashboard.delete

en-us	# dashboard.get
uk	# dashboard.get

en-us	# > Dashboard object  The following objects are directly related to the `dashboard` API.
uk	# > Об'єкт інформаційної панелі  Наступні об’єкти безпосередньо пов’язані з API `dashboard`.

en-us	# Dashboard  This class is designed to work with dashboards.  Object references:\  -   [Dashboard](/manual/api/reference/dashboard/object#dashboard) -   [Dashboard     page](/manual/api/reference/dashboard/object#dashboard_page) -   [Dashboard     widget](/manual/api/reference/dashboard/object#dashboard_widget) -   [Dashboard widget     field](/manual/api/reference/dashboard/object#dashboard_widget_field) -   [Dashboard     user](/manual/api/reference/dashboard/object#dashboard_user) -   [Dashboard user     group](/manual/api/reference/dashboard/object#dashboard_user_group)  Available methods:\  -   [dashboard.create](/manual/api/reference/dashboard/create) -     creating new dashboards -   [dashboard.delete](/manual/api/reference/dashboard/delete) -     deleting dashboards -   [dashboard.get](/manual/api/reference/dashboard/get) - retrieving     dashboards -   [dashboard.update](/manual/api/reference/dashboard/update) -     updating dashboards
uk	# Панель приладів  Цей клас призначений для роботи з інформаційними панелями.  Посилання на об'єкти:\  - [Інформаційна панель](/manual/api/reference/dashboard/object#dashboard) - [Сторінка панелі інструментів](/manual/api/reference/dashboard/object#dashboard_page) - [Віджет інформаційної панелі](/manual/api/reference/dashboard/object#dashboard_widget) - [Поле віджета інформаційної панелі](/manual/api/reference/dashboard/object#dashboard_widget_field) - [Користувач інформаційної панелі](/manual/api/reference/dashboard/object#dashboard_user) - [Група користувачів панелі інструментів](/manual/api/reference/dashboard/object#dashboard_user_group)  Доступні методи:\  - [dashboard.create](/manual/api/reference/dashboard/create) - створення нових інформаційних панелей - [dashboard.delete](/manual/api/reference/dashboard/delete) - видалення інформаційних панелей - [dashboard.get](/manual/api/reference/dashboard/get) - отримання інформаційних панелей - [dashboard.update](/manual/api/reference/dashboard/update) - оновлення інформаційних панелей

en-us	# dashboard.update
uk	# dashboard.update

en-us	#### dashboard  [ZBXNEXT-4714](https://support.zabbix.com/browse/ZBXNEXT-4714) Added new [dashboard widget field](/manual/api/reference/dashboard/object#dashboard-widget-field) types (11 - User, 12 - Action, 13 - Media type).\  Added new possible value combinations of the dashboard widget field object properties for different widget types:\ [ZBXNEXT-4714](https://support.zabbix.com/browse/ZBXNEXT-4714) `actionlog`: Added `"type": 11, "name": "userids", "value": <user ID>`.\ [ZBXNEXT-4714](https://support.zabbix.com/browse/ZBXNEXT-4714) `actionlog`: Added `"type": 12, "name": "actionids", "value": <action ID>`.\ [ZBXNEXT-4714](https://support.zabbix.com/browse/ZBXNEXT-4714) `actionlog`: Added `"type": 13, "name": "mediatypeids", "value": <media type ID>`.\ [ZBXNEXT-4714](https://support.zabbix.com/browse/ZBXNEXT-4714) `actionlog`: Added `"type": 0, "name": "statuses", "value": <0 - In progress; 1 - Sent/Executed; 2 - Failed>`.\ [ZBXNEXT-4714](https://support.zabbix.com/browse/ZBXNEXT-4714) `actionlog`: Added `"type": 1, "name": "message", "value": "<any string value>"`.\ [ZBXNEXT-7661](https://support.zabbix.com/browse/ZBXNEXT-7661) `item`: Added `"type": 1, "name": "thresholds.color.<N>", "value": "<hexadecimal color code>"`.\ [ZBXNEXT-7661](https://support.zabbix.com/browse/ZBXNEXT-7661) `item`: Added `"type": 1, "name": "thresholds.threshold.<N>", "value": "<any string value>"`.\ [ZBXNEXT-5491](https://support.zabbix.com/browse/ZBXNEXT-5491) `svggraph`: Added `"type": 1, "name": "ds.data_set_label.<N>", "value": "<any string value>"`.\ [ZBXNEXT-8165](https://support.zabbix.com/browse/ZBXNEXT-8165) `tophosts`: Added `"type": 0, "name": "columns.decimal_places.<N>", "value": <valid values range: 0-10>`.\
uk	#### dashboard  [ZBXNEXT-4714](https://support.zabbix.com/browse/ZBXNEXT-4714) Додано нові типи [полів віджетів панелі інструментів](/manual/api/reference/dashboard/object#dashboard-widget-field) (11 - Користувач, 12 - Дія, 13 - Методи повідомлень).\  Додано нові можливі комбінації значень властивостей об’єкта поля віджета інформаційної панелі для різних типів віджетів:\ [ZBXNEXT-4714](https://support.zabbix.com/browse/ZBXNEXT-4714) `actionlog`: додано `"type": 11, "name": "userids", "value": <user ID> `.\ [ZBXNEXT-4714](https://support.zabbix.com/browse/ZBXNEXT-4714) `actionlog`: додано `"type": 12, "name": "actionids", "value": <action ID> `.\ [ZBXNEXT-4714](https://support.zabbix.com/browse/ZBXNEXT-4714) `actionlog`: додано `"type": 13, "name": "mediatypeids", "value": <media type ID >`.\ [ZBXNEXT-4714](https://support.zabbix.com/browse/ZBXNEXT-4714) `actionlog`: додано `"type": 0, "name": "statuses", "value": <0 - In progress 1 - Sent/Executed; 2 - Failed>`.\ [ZBXNEXT-4714](https://support.zabbix.com/browse/ZBXNEXT-4714) `actionlog`: додано `"type": 1, "name": "message", "value": "<any string value>"`.\ [ZBXNEXT-7661](https://support.zabbix.com/browse/ZBXNEXT-7661) `item`: додано `"type": 1, "name": "thresholds.color.<N>", "value" ": "<шістнадцятковий код кольору>"`.\ [ZBXNEXT-7661](https://support.zabbix.com/browse/ZBXNEXT-7661) `item`: додано `"type": 1, "name": "thresholds.threshold.<N>", "value" ": "<any string value>"`.\ [ZBXNEXT-5491](https://support.zabbix.com/browse/ZBXNEXT-5491) `svggraph`: додано `"type": 1, "name": "ds.data_set_label.<N>", "value" ": "<any string value>"`.\ [ZBXNEXT-8165](https://support.zabbix.com/browse/ZBXNEXT-8165) `tophosts`: додано `"type": 0, "name": "columns.decimal_places.<N>", "value" ": <діапазон дійсних значень: 0-10>`.\

en-us	# dcheck.get
uk	# dcheck.get

en-us	 ### description  Module description.  *Type*: String  *Example*:   ```json "description": "This is a clock widget." ```
uk	 ### description  Опис модуля.  *Тип*: String  *Приклад*:  ```json "description": "Це віджет годинника." ```

en-us	### Description  `object action.create(object/array actions)`  This method allows to create new actions.  ::: noteclassic This method is only available to *Admin* and *Super admin* user types. Permissions to call the method can be revoked in user role settings. See [User roles](/manual/web_interface/frontend_sections/users/user_roles) for more information. :::
uk	### Опис  `object action.create(object/array actions)`  Цей метод дозволяє створювати нові дії.  ::: noteclassic Цей метод доступний лише для користувачів типу *Admin* і *Super admin*. Дозволи на виклик методу можна скасувати в налаштуваннях ролі користувача. Див. [Ролі користувача](/manual/web_interface/frontend_sections/administration/user_roles) для отримання додаткової інформації. :::

en-us	### Description  `string apiinfo.version(array)`  This method allows to retrieve the version of the Zabbix API.  ::: noteimportant This method is only available to unauthenticated users and must be called without the `auth` parameter in the JSON-RPC request. :::
uk	### Опис  `string apiinfo.version(array)`  Цей метод дозволяє отримати версію Zabbix API.  ::: noteimportant Цей метод доступний лише для неавтентифікованих користувачів і повинен викликатися без параметра `auth` у запиті JSON-RPC. :::

en-us	### Description  These parameters and the possible property values for the respective dashboard widget field objects allow to configure the [*Action log*](/manual/web_interface/frontend_sections/dashboards/widgets/action_log) widget in `dashboard.create` and `dashboard.update` methods.
uk	### Опис  Ці параметри та можливі значення властивостей для відповідних об'єктів полів віджета дашборду дозволяють налаштувати віджет [*Action log*](/manual/web_interface/frontend_sections/dashboards/widgets/action_log) у методах `dashboard.create` та `dashboard.update`.

en-us	## DESCRIPTION  **zabbix\_agent2** is an application for monitoring parameters of various services.\ \ [ ]{#lbAE}
uk	## ОПИС  **zabbix\_agent2** — додаток для моніторингу параметрів різних сервісів.\ \ [ ]{#lbAE}

en-us	## DESCRIPTION  **zabbix\_agentd** is a daemon for monitoring various server parameters. [ ]{#lbAE}
uk	## ОПИС  **zabbix\_agentd** — це демон для моніторингу різних параметрів сервера. [ ]{#lbAE}

en-us	## DESCRIPTION  **zabbix\_get** is a command line utility for getting data from Zabbix agent. [ ]{#lbAE}
uk	## ОПИС  **zabbix\_get** — утиліта командного рядка для отримання даних від агента Zabbix. [ ]{#lbAE}

en-us	## DESCRIPTION  **zabbix\_js** is a command line utility that can be used for embedded script testing. [ ]{#lbAE}
uk	## ОПИС  **zabbix\_js** — це утиліта командного рядка, яку можна використовувати для тестування вбудованих сценаріїв. [ ]{#lbAE}

en-us	## DESCRIPTION  **zabbix\_proxy** is a daemon that collects monitoring data from devices and sends it to Zabbix server. [ ]{#lbAE}
uk	## ОПИС  **zabbix\_proxy** — це демон, який збирає дані моніторингу з пристроїв і надсилає їх на сервер Zabbix. [ ]{#lbAE}

en-us	## DESCRIPTION  **zabbix\_sender** is a command line utility for sending monitoring data to Zabbix server or proxy. On the Zabbix server an item of type **Zabbix trapper** should be created with corresponding key. Note that incoming values will only be accepted from hosts specified in **Allowed hosts** field for this item. [ ]{#lbAE}
uk	## ОПИС  **zabbix\_sender** — це утиліта командного рядка для надсилання даних моніторингу на сервер або проксі Zabbix. На сервері Zabbix має бути створений елемент типу **Zabbix trapper** з відповідним ключем. Зауважте, що вхідні значення прийматимуться лише від хостів, указаних у полі **Allowed hosts** для цього елемента. [ ]{#lbAE}

en-us	## DESCRIPTION  **zabbix\_server** is the core daemon of Zabbix software. [ ]{#lbAE}
uk	## ОПИС  **zabbix\_server** є базовою службою програмного забезпечення Zabbix. [ ]{#lbAE}

en-us	## DESCRIPTION  **zabbix\_web\_service** is an application for providing web services to Zabbix components. [ ]{#lbAE}
uk	## ОПИС  **zabbix\_web\_service** — це програма для надання веб-сервісів компонентам Zabbix. [ ]{#lbAE}

en-us	# Developer Center  This section contains everything you need to quickly start developing custom Zabbix extensions:  - [Frontend modules](/devel/modules) - [Dashboard widgets](/devel/modules/widgets) - [Plugins](/devel/plugins) for Zabbix agent 2
uk	# Центр розробників  У цьому розділі міститься все, що вам потрібно, щоб швидко розпочати розробку власних розширень Zabbix:  - [Модулі інтерфейсу](/devel/modules) - [Віджети інформаційної панелі](/devel/modules/widgets) - [Плагіни](/devel/plugins) для Zabbix agent 2

en-us	# dhost.get
uk	# dhost.get

en-us	### Disabling HA cluster  To disable a high availability cluster:  -   make backup copies of configuration files -   stop standby nodes -   remove the HANodeName parameter from the active primary server -   restart the primary server (it will start in standalone mode)
uk	### Вимкнення кластера високої доступності  Щоб вимкнути кластер високої доступності:  - зробіть резервні копії конфігураційних файлів  - зупиніть резервні вузли - видаліть параметр HANodeName з активного основного сервера - перезапустіть основний сервер (він запуститься в автономному режимі)

en-us	### Discovered host  ::: noteclassic Discovered host are created by the Zabbix server and cannot be modified via the API. :::  The discovered host object contains information about a host discovered by a network discovery rule. It has the following properties.  |Property|[Type](/manual/api/reference_commentary#data_types)|Description| |--|--|------| |dhostid|string|ID of the discovered host.| |druleid|string|ID of the discovery rule that detected the host.| |lastdown|timestamp|Time when the discovered host last went down.| |lastup|timestamp|Time when the discovered host last went up.| |status|integer|Whether the discovered host is up or down. A host is up if it has at least one active discovered service.<br><br>Possible values:<br>0 - host up;<br>1 - host down.|
uk	### Виявлений хост  ::: noteclassic Виявлені хости створюються сервером Zabbix і не можуть бути змінені через API. :::  Виявлений об’єкт хоста містить інформацію про хост, виявлений правилом виявлення мережі. Має такі властивості.  |Властивість|[Тип](/manual/api/reference_commentary#data_types)|Опис| |--|--|------| |dhostid|рядок|ID виявленого хоста.| |druleid|рядок|ID правила виявлення, яке виявило хост.| |lastdown|мітка часу|Час останнього виходу з ладу знайденого хоста.| |lastup|мітка часу|Час, коли виявлений хост востаннє піднімався.| |статус|ціле число|Чи відкритий хост працює чи не працює. Хост працює, якщо на ньому є принаймні одна активна виявлена служба.<br><br>Можливі значення:<br>0 - хост працює;<br>1 - хост не працює.|

en-us	# > Discovered host object  The following objects are directly related to the `dhost` API.
uk	# > Виявлений хост-об’єкт  Наступні об’єкти безпосередньо пов’язані з `dhost` API.

en-us	# Discovered host  This class is designed to work with discovered hosts.  Object references:\  -   [Discovered     host](/manual/api/reference/dhost/object#discovered_host)  Available methods:\  -   [dhost.get](/manual/api/reference/dhost/get) - retrieve discovered     hosts
uk	# Виявлений хост  Цей клас призначений для роботи з відкритими хостами.  Посилання на об'єкти:\  - [Виявлений хост](/manual/api/reference/dhost/object#discovered_host)  Доступні методи:\  - [dhost.get](/manual/api/reference/dhost/get) - отримати виявлені хости

en-us	### Discovered service  ::: noteclassic Discovered services are created by the Zabbix server and cannot be modified via the API. :::  The discovered service object contains information about a service discovered by a network discovery rule on a host. It has the following properties.  |Property|[Type](/manual/api/reference_commentary#data_types)|Description| |--|--|------| |dserviceid|string|ID of the discovered service.| |dcheckid|string|ID of the discovery check used to detect the service.| |dhostid|string|ID of the discovered host running the service.| |dns|string|DNS of the host running the service.| |ip|string|IP address of the host running the service.| |lastdown|timestamp|Time when the discovered service last went down.| |lastup|timestamp|Time when the discovered service last went up.| |port|integer|Service port number.| |status|integer|Status of the service.<br><br>Possible values:<br>0 - service up;<br>1 - service down.| |value|string|Value returned by the service when performing a Zabbix agent, SNMPv1, SNMPv2 or SNMPv3 discovery check.|
uk	### Виявлена служба  ::: noteclassic Виявлені служби створюються сервером Zabbix і не можуть бути змінені через API. :::  Виявлений об’єкт служби містить інформацію про службу, виявлену за допомогою правила виявлення мережі на хості. Має такі властивості.  |Властивість|[Тип](/manual/api/reference_commentary#data_types)|Опис| |--|--|------| |dserviceid|рядок|ID виявленої служби.| |dcheckid|рядок|Ідентифікатор перевірки відкриття, який використовується для виявлення служби.| |dhostid|рядок|Ідентифікатор виявленого хоста, на якому запущена служба.| |dns|рядок|DNS хоста, на якому запущена служба.| |ip|рядок|IP-адреса хоста, на якому запущена служба.| |lastdown|мітка часу|Час останнього вимкнення знайденої служби.| |lastup|timestamp|Час останнього підключення знайденої служби.| |порт|ціле|Номер порту служби.| |статус|ціле|Статус служби.<br><br>Можливі значення:<br>0 - послуга активна;<br>1 - служба не працює.| |значення|рядок|Значення, яке повертає служба під час виконання перевірки виявлення агента Zabbix, SNMPv1, SNMPv2 або SNMPv3.|

en-us	# > Discovered service object  The following objects are directly related to the `dservice` API.
uk	# > Виявлений службовий об'єкт  Наступні об’єкти безпосередньо пов’язані з `dservice` API.

en-us	# Discovered service  This class is designed to work with discovered services.  Object references:\  -   [Discovered     service](/manual/api/reference/dservice/object#discovered_service)  Available methods:\  -   [dservice.get](/manual/api/reference/dservice/get) - retrieve     discovered services
uk	# Виявлена служба  Цей клас призначений для роботи з виявленими службами.  Посилання на об'єкти:\  - [Виявлена служба](/manual/api/reference/dservice/object#discovered_service)  Доступні методи:\  - [dservice.get](/manual/api/reference/dservice/get) - отримати виявлені служби

en-us	# > Discovery check object  The following objects are directly related to the `dcheck` API.
uk	# > Об'єкт перевірки виявлення  Наступні об’єкти безпосередньо пов’язані з `dcheck` API.

en-us	# Discovery check  This class is designed to work with discovery checks.  Object references:\  -   [Discovery     check](/manual/api/reference/dcheck/object#discovery_check)  Available methods:\  -   [dcheck.get](/manual/api/reference/dcheck/get) - retrieve discovery     checks
uk	# Перевірка виявлення  Цей клас призначений для роботи з перевірками виявлення.  Посилання на об'єкти:\  - [Перевірка виявлення](/manual/api/reference/dcheck/object#discovery_check)  Доступні методи:\  - [dcheck.get](/manual/api/reference/dcheck/get) - отримати перевірки виявлення

en-us	 ##### Discovery of disabled systemd units  Since Zabbix 6.0.1 it is also possible to discover **disabled** systemd units. In this case  three macros are returned in the resulting JSON:   -    {#UNIT.PATH} -    {#UNIT.ACTIVESTATE} -    {#UNIT.UNITFILESTATE}.   ::: noteimportant To have items and triggers created from prototypes for disabled systemd units, make sure to  adjust (or remove) prohibiting LLD filters for {#UNIT.ACTIVESTATE} and {#UNIT.UNITFILESTATE}. :::
uk	##### Discovery of disabled systemd units  Since Zabbix 6.0.1 it is also possible to discover **disabled** systemd units. In this case  three macros are returned in the resulting JSON:   -    {#UNIT.PATH} -    {#UNIT.ACTIVESTATE} -    {#UNIT.UNITFILESTATE}.   ::: noteimportant To have items and triggers created from prototypes for disabled systemd units, make sure to  adjust (or remove) prohibiting LLD filters for {#UNIT.ACTIVESTATE} and {#UNIT.UNITFILESTATE}. :::

en-us	# discoveryrule.copy
uk	# discoveryrule.copy

en-us	# discoveryrule.create
uk	# discoveryrule.create

en-us	# discoveryrule.delete
uk	# discoveryrule.delete

en-us	# discoveryrule.get
uk	# discoveryrule.get

en-us	# > Discovery rule object  The following objects are directly related to the `drule` API.
uk	# > Об'єкт правила виявлення  Наступні об’єкти безпосередньо пов’язані з API `drule`.

en-us	# Discovery rule  This class is designed to work with network discovery rules.  ::: notetip This API is meant to work with network discovery rules. For the low-level discovery rules see the [LLD rule API](discoveryrule). :::  Object references:\  -   [Discovery rule](/manual/api/reference/drule/object#discovery_rule)  Available methods:\  -   [drule.create](/manual/api/reference/drule/create) - create new     discovery rules -   [drule.delete](/manual/api/reference/drule/delete) - delete     discovery rules -   [drule.get](/manual/api/reference/drule/get) - retrieve discovery     rules -   [drule.update](/manual/api/reference/drule/update) - update     discovery rules
uk	# Правило відкриття  Цей клас призначений для роботи з правилами виявлення мережі.  ::: notetip Цей API призначений для роботи з правилами виявлення мережі. Правила виявлення низького рівня див. у [API правил LLD](discoveryrule). :::  Посилання на об'єкти:\  - [Правило виявлення](/manual/api/reference/drule/object#discovery_rule)  Доступні методи:\  - [drule.create](/manual/api/reference/drule/create) - створити нові правила відкриття - [drule.delete](/manual/api/reference/drule/delete) - видалити правила виявлення - [drule.get](/manual/api/reference/drule/get) - отримання правил виявлення - [drule.update](/manual/api/reference/drule/update) - оновлення правил виявлення

en-us	# discoveryrule.update
uk	# discoveryrule.update

en-us	#### discoveryrule  [ZBXNEXT-6406](https://support.zabbix.com/browse/ZBXNEXT-6406) Property `interfaceid` is no longer mandatory for [LLD rule](/manual/api/reference/discoveryrule/object#lld-rule) types "Simple check" (3), "External check" (10), "SSH agent" (13), and "TELNET agent" (14).\ [ZBXNEXT-4428](https://support.zabbix.com/browse/ZBXNEXT-4428), [ZBXNEXT-8246](https://support.zabbix.com/browse/ZBXNEXT-8246) Added new [LLD rule preprocessing](/manual/api/reference/discoveryrule/object#lld-rule-preprocessing) types "SNMP walk value" (28), "SNMP walk to JSON" (29).\
uk	#### discoveryrule  [ZBXNEXT-6406](https://support.zabbix.com/browse/ZBXNEXT-6406) Властивість `interfaceid` більше не є обов’язковою для [правила LLD](/manual/api/reference/discoveryrule/object#lld-rule ) типу «Проста перевірка» (3), «Зовнішня перевірка» (10), «Агент SSH» (13) і «Агент TELNET» (14).\ [ZBXNEXT-4428](https://support.zabbix.com/browse/ZBXNEXT-4428), [ZBXNEXT-8246](https://support.zabbix.com/browse/ZBXNEXT-8246) Додано нові типи [правил попередньої обробки LLD](/manual/api/reference/discoveryrule/object#lld-rule-preprocessing) «SNMP walk value» (28), «SNMP walk to JSON» (29).\

en-us	#### Display  Based on acknowledgment information it is possible to configure how the problem count is displayed in the dashboard or maps. To do that, you have to make selections in the *Problem display* option, available in both [map configuration](/manual/config/visualization/maps/map#creating_a_map) and the *Problems by severity* [dashboard widget](/manual/web_interface/frontend_sections/dashboards##adding_widgets). It is possible to display all problem count, unacknowledged problem count as separated from the total or unacknowledged problem count only.  Based on problem update information (acknowledgment, etc.), it is possible to configure update operations - send a message or execute remote commands.
uk	#### Відображення  На основі інформації про підтвердження можна налаштувати спосіб відображення кількості проблем на інформаційній панелі чи картах. Для цього вам потрібно зробити вибір у параметрі *Відображення проблеми*, доступному як у [map configuration](/manual/config/visualization/maps/map#creating_a_map), так і в *Проблеми за ступенем тяжкості* [віджеті панелі інструментів]( /manual/web_interface/frontend_sections/dashboards##adding_widgets). Можна відобразити кількість усіх проблем, кількість непідтверджених проблем окремо від загальної чи тільки кількість непідтверджених проблем.  На основі інформації про оновлення проблеми (підтвердження тощо) можна налаштувати операції оновлення – надіслати повідомлення або виконати віддалені команди.

en-us	#### Displaying trigger status  With a trigger defined, you might be interested to see its status.  If the CPU load has exceeded the threshold level you defined in the trigger, the problem will be displayed in *Monitoring → Problems*.  ![](../../../assets/en/manual/quickstart/trigger_status0.png){width="600"}  The flashing in the status column indicates a recent change of trigger status, one that has taken place in the last 30 minutes.
uk	#### Відображення статусу тригера  Якщо тригер визначено, вам може бути цікаво переглянути його статус.  Якщо навантаження ЦП перевищило пороговий рівень, який ви визначили в тригері, проблема буде відображена в *Моніторинг → Проблеми*.  ![](../../../assets/en/manual/quickstart/trigger_status0.png){width="600"}  Блимання в стовпці статусу вказує на нещодавню зміну статусу тригера, яка відбулася за останні 30 хвилин.

en-us	#### Display  Once suppressed the problem is marked by a blinking  ![](../../../assets/en/manual/web_interface/frontend_sections/monitoring/icon_suppression.png)  suppression icon in the *Info* column, before being hidden.   The suppression icon is blinking while the suppression task is in the waiting list.  Once the task manager has suppressed the problem, the icon will stop blinking.  If the suppression icon keeps blinking for a long time, this may indicate a server problem,  for example, if the server is down and the task manager cannot complete the task.  The same logic applies to unsuppression. In the short period after the task is  submitted and the server has not completed it, the unsuppression icon is blinking.   A suppressed problem may be both hidden or shown, depending on the problem filter/widget settings.  When shown in the problem list, a suppressed problem is marked by the suppression icon and  suppression details are shown on mouseover:  ![](../../../assets/en/manual/web_interface/suppressed_problem_listed.png)  Suppression details are also displayed in a popup when positioning the mouse on the suppression  icon in the *Actions* column.
uk	#### Відображення  Після приховування проблема позначається блиманням ![](../../../assets/en/manual/web_interface/frontend_sections/monitoring/icon_suppression.png) значка приховування в стовпці *Інформація*, перш ніж його приховати.  Значок придушення блимає, поки завдання придушення знаходиться в списку очікування. Після того, як диспетчер завдань вирішить проблему, значок перестане блимати. Якщо піктограма придушення продовжує блимати протягом тривалого часу, це може вказувати на проблему з сервером, наприклад, якщо сервер не працює і диспетчер завдань не може завершити завдання. Така ж логіка застосовується і до зняття приховування. Протягом короткого періоду після того, як завдання було надіслано, але сервер не встиг його виконати, піктограма зняття приховування блимає.   Прихована проблема може бути як прихованою, так і відображеною, залежно від налаштувань фільтра проблеми/віджета.  При відображенні у списку проблем прихована проблема позначається піктограмою придушення та деталі придушення показуються при наведенні миші:  ![](../../../assets/en/manual/web_interface/suppressed_problem_listed.png)  Деталі придушення також відображаються у спливаючому вікні, якщо навести курсор миші на придушення у стовпці *Дії*.

en-us	# drule.create
uk	# drule.create

en-us	# drule.delete
uk	# drule.delete

en-us	# drule.get
uk	# drule.get

en-us	# drule.update
uk	# drule.update

en-us	#### drule  [ZBXNEXT-7921](https://support.zabbix.com/browse/ZBXNEXT-7921) Removed property `nextcheck`.\
uk	#### drule  [ZBXNEXT-7921](https://support.zabbix.com/browse/ZBXNEXT-7921) Видалено властивість `nextcheck`.\

en-us	# dservice.get
uk	# dservice.get

en-us	#### Element tags  Element tag values are explained in the table below.
uk	#### Теги елементів даних  Значення тегів елемента даних пояснюються в таблиці нижче.

en-us	#### Element tags  Element tag values are explained in the table below.
uk	#### Теги елементів  Значення тегів елемента пояснюються в таблиці нижче.

en-us	#### Email settings  Initially there are several predefined notification [delivery methods](/manual/config/notifications/media) in Zabbix. [Email](/manual/config/notifications/media/email) is one of those.  To configure email settings, go to *Alerts → Media types* and click on *Email* in the list of pre-defined media types.  ![](../../../assets/en/manual/quickstart/media_types.png)  This will present us with the email settings definition form.  ![](../../../assets/en/manual/quickstart/media_type_email.png)  All mandatory input fields are marked with a red asterisk.  In the *Media type* tab, set the values of SMTP server, SMTP helo and SMTP email to the appropriate for your environment.  ::: noteclassic 'SMTP email' will be used as the 'From' address for the notifications sent from Zabbix. :::  Next, it is required to define the content of the problem message. The content is  defined by means of a message template, configured in the *Message templates* tab.  Click on *Add* to create a message template, and select *Problem* as the message type.  ![](../../../assets/en/manual/quickstart/media_type_email2.png)  Click on *Add* when ready and save the form.  Now you have configured 'Email' as a working media type. The media type must also be linked to users by defining specific delivery addresses (like we did when [configuring a new user](login#adding_user)), otherwise it will not be used.
uk	#### Налаштування електронної пошти  Спочатку в Zabbix існує кілька попередньо визначених [методів доставки](/manual/config/notifications/media) сповіщень. [Електронна пошта](/manual/config/notifications/media/email) є одним із них.  Щоб налаштувати параметри електронної пошти, перейдіть до *Сповіщення → Типи медіа* та натисніть *Електронна пошта* у списку попередньо визначених типів медіа.  ![](../../../assets/en/manual/quickstart/media_types.png)  Це надасть нам форму визначення параметрів електронної пошти.  ![](../../../assets/en/manual/quickstart/media_type_email.png)  Усі обов’язкові поля для введення позначені червоною зірочкою.  На вкладці *Тип медіа* встановіть значення сервера SMTP, SMTP helo та електронну адресу SMTP відповідно до вашого середовища.  ::: noteclassic 'Електронна адреса SMTP' використовуватиметься як адреса 'Від' для повідомлень, надісланих із Zabbix. :::  Далі необхідно визначити зміст повідомлення про проблему. Зміст визначається за допомогою шаблону повідомлення, налаштованого на вкладці *Шаблони повідомлень*.  Натисніть *Додати*, щоб створити шаблон повідомлення, і виберіть *Проблема* як тип повідомлення.  ![](../../../assets/en/manual/quickstart/media_type_email2.png)  Натисніть *Додати*, коли будете готові, і збережіть форму.  Тепер ви налаштували 'Електронну пошту' як робочий тип медіа. Тип медіа також має бути пов’язаний із користувачами шляхом визначення конкретних адрес доставки (як ми робили під час [налаштування нового користувача](login#adding_user)), інакше він не використовуватиметься.

en-us	### Enabling high availability
uk	### Увімкнення високої доступності

en-us	#### Error handling  Up to the present moment, everything you have tried has worked fine. But what would happen if you tried making an incorrect call to the API? Try to create another host by calling [host.create](/manual/api/reference/host/create) but omitting the mandatory `groups` parameter:  ```bash curl --request POST \   --url 'https://example.com/zabbix/api_jsonrpc.php' \   --header 'Authorization: Bearer ${AUTHORIZATION_TOKEN}' \   --header 'Content-Type: application/json-rpc' \   --data '{"jsonrpc":"2.0","method":"host.create","params":{"host":"Linux server","interfaces":[{"type":1,"main":1,"useip":1,"ip":"192.168.3.1","dns":"","port":"10050"}]},"id":7}' ```  The response will then contain an error message:  ```json {     "jsonrpc": "2.0",     "error": {         "code": -32602,         "message": "Invalid params.",         "data": "No groups for host \"Linux server\"."     },     "id": 7 } ```  If an error has occurred, instead of the `result` property, the response object will contain the `error` property with the following data:  -   `code` - an error code; -   `message` - a short error summary; -   `data` - a more detailed error message.  Errors can occur in various cases, such as, using incorrect input values, a session timeout or trying to access non-existing objects. Your application should be able to gracefully handle these kinds of errors.
uk	#### Обробка помилок  До цього моменту все, що ви спробували, працювало нормально. Але що станеться, якщо ви спробуєте зробити некоректний виклик API? Спробуйте створити інший хост, викликавши [host.create](/manual/api/reference/host/create), але опустивши обов'язковий параметр `groups`:  ```bash curl --request POST \   --url 'https://example.com/zabbix/api_jsonrpc.php' \   --header 'Authorization: Bearer ${AUTHORIZATION_TOKEN}' \   --header 'Content-Type: application/json-rpc' \   --data '{"jsonrpc":"2.0","method":"host.create","params":{"host":"Linux server","interfaces":[{"type":1,"main":1,"useip":1,"ip":"192.168.3.1","dns":"","port":"10050"}]},"id":7}' ```  Тоді відповідь міститиме повідомлення про помилку:  ```json {     "jsonrpc": "2.0",     "error": {         "code": -32602,         "message": "Invalid params.",         "data": "No groups for host \"Linux server\"."     },     "id": 7 } ```  Якщо сталася помилка, замість властивості `result` об'єкт відповіді  буде містити властивість `error` з наступними даними:  - `code` - код помилки; - `message` - короткий опис помилки; - `data` - більш детальне повідомлення про помилку.  Помилки можуть виникати у різних випадках, наприклад, при використанні  неправильних вхідних даних, таймауті сеансу або спробі отримати доступ  до неіснуючих об'єктів. Ваша програма повинна вміти коректно обробляти такі помилки.

en-us	# event.acknowledge
uk	# event.acknowledge

en-us	# event.get
uk	# event.get

en-us	# > Event object  The following objects are directly related to the `event` API.
uk	# > Об'єкт події  Наступні об’єкти безпосередньо пов’язані з `event` API.

en-us	### Event tag  The event tag object has the following properties.  |Property|[Type](/manual/api/reference_commentary#data_types)|Description| |--|--|------| |tag|string|Event tag name.| |value|string|Event tag value.|
uk	### Тег події  Об'єкт тегу події має такі властивості.  |Властивість|[Тип](/manual/api/reference_commentary#data_types)|Опис| |--|--|------| |тег|рядок|Назва тегу події.| |значення|рядок|Значення тегу події.|

en-us	# Event  This class is designed to work with events.  Object references:\  -   [Event](/manual/api/reference/event/object#host)  Available methods:\  -   [event.get](/manual/api/reference/event/get) - retrieving events -   [event.acknowledge](/manual/api/reference/event/acknowledge) -     acknowledging events
uk	# Подія  Цей клас призначений для роботи з подіями.  Посилання на об'єкти:\  - [Подія](/manual/api/reference/event/object#host)  Доступні методи:\  - [event.get](/manual/api/reference/event/get) - отримання подій - [event.acknowledge](/manual/api/reference/event/acknowledge) - визнання подій

en-us	#### event  [ZBXNEXT-7964](https://support.zabbix.com/browse/ZBXNEXT-7964) Added new property `cause_eventid`.\ [ZBXNEXT-7964](https://support.zabbix.com/browse/ZBXNEXT-7964) `event.acknowledge`: Added new [event update actions](/manual/api/reference/event/acknowledge#parameters) "change event rank to cause" (128), "change event rank to symptom" (256).\ [ZBXNEXT-7964](https://support.zabbix.com/browse/ZBXNEXT-7964) `event.acknowledge`: Added new parameter `cause_eventid`.\ [ZBXNEXT-7964](https://support.zabbix.com/browse/ZBXNEXT-7964) `event.get`: Added new parameter `symptom`.\
uk	#### подeventія  [ZBXNEXT-7964](https://support.zabbix.com/browse/ZBXNEXT-7964) Додано нову властивість `cause_eventid`.\ [ZBXNEXT-7964](https://support.zabbix.com/browse/ZBXNEXT-7964) `event.acknowledge`: додано нові [дії оновлення подій](/manual/api/reference/event/acknowledge#parameters) " змінити ранг події на причину" (128), "змінити ранг події на симптом" (256).\ [ZBXNEXT-7964](https://support.zabbix.com/browse/ZBXNEXT-7964) `event.acknowledge`: додано новий параметр `cause_eventid`.\ [ZBXNEXT-7964](https://support.zabbix.com/browse/ZBXNEXT-7964) `event.get`: додано новий параметр `symptom`.\

en-us	### Example
uk	### Приклади

en-us	##### Example 1  To create a "Web scenario failed" trigger, you can define a trigger expression:      last(/host/web.test.fail[Scenario])<>0  Make sure to replace 'Scenario' with the real name of your scenario.
uk	##### Приклад 1  Щоб створити тригер «Веб-сценарій не вдалося», ви можете визначити вираз тригера:       last(/host/web.test.fail[сценарій])<>0  Обов’язково замініть «Сценарій» справжньою назвою сценарію.

en-us	##### Example 2  To create a "Web scenario failed" trigger with a useful problem description in the trigger name, you can define a trigger with name:      Web scenario "Scenario" failed: {ITEM.VALUE}  and trigger expression:      length(last(/host/web.test.error[Scenario]))>0 and last(/host/web.test.fail[Scenario])>0  Make sure to replace 'Scenario' with the real name of your scenario.
uk	##### Приклад 2  Щоб створити тригер «Помилка веб-сценарію» з корисним описом проблеми в назві тригера, ви можете визначити тригер із назвою:       Помилка веб-сценарію "Сценарій": {ITEM.VALUE}  і тригерний вираз:       length(last(/host/web.test.error[Scenario]))>0 and last(/host/web.test.fail[Scenario])>0  Обов’язково замініть «Сценарій» справжньою назвою сценарію.

en-us	##### Example 3  To create a "Web application is slow" trigger, you can define a trigger expression:      last(/host/web.test.in[Scenario,,bps])<10000  Make sure to replace 'Scenario' with the real name of your scenario.
uk	##### Приклад 3  Щоб створити тригер «Веб-програма працює повільно», ви можете визначити вираз тригера:       last(/host/web.test.in[Scenario,,bps])<10000  Обов’язково замініть «Сценарій» справжньою назвою сценарію.

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	### Examples
uk	### Приклади

en-us	#### Examples
uk	#### Приклади

en-us	 ##### Examples of correct/incorrect syntax  Expressions (including function calls) cannot be used as history, trend, or foreach [function](/manual/appendix/functions) parameters. However, those functions themselves can be used in other (non-historical) function parameters.  |Expression|Example| |-|---------| |Valid|`avg(last(/host/key1),last(/host/key2)*10,last(/host/key1)*100)`<br>`max(avg(avg_foreach(/*/system.cpu.load?[group="Servers A"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers B"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers C"],5m)))`| |Invalid|`sum(/host/key,10+2)`<br>`sum(/host/key, avg(10,2))`<br>`sum(/host/key,last(/host/key2))`|  Note that in an expression like:      sum(sum_foreach(//resptime[*],5m))/sum(count_foreach(//resptime[*],5m))  it cannot be guaranteed that both parts of the equation will always have the same set of values.  While one part of the expression is evaluated, a new value for the requested period may arrive and  then the other part of the expression will have a different set of values.
uk	 ##### Examples of correct/incorrect syntax  Expressions (including function calls) cannot be used as history, trend, or foreach [function](/manual/appendix/functions) parameters. However, those functions themselves can be used in other (non-historical) function parameters.  |Expression|Example| |-|---------| |Valid|`avg(last(/host/key1),last(/host/key2)*10,last(/host/key1)*100)`<br>`max(avg(avg_foreach(/*/system.cpu.load?[group="Servers A"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers B"],5m)),avg(avg_foreach(/*/system.cpu.load?[group="Servers C"],5m)))`| |Invalid|`sum(/host/key,10+2)`<br>`sum(/host/key, avg(10,2))`<br>`sum(/host/key,last(/host/key2))`|  Note that in an expression like:      sum(sum_foreach(//resptime[*],5m))/sum(count_foreach(//resptime[*],5m))  it cannot be guaranteed that both parts of the equation will always have the same set of values.  While one part of the expression is evaluated, a new value for the requested period may arrive and  then the other part of the expression will have a different set of values.

en-us	# Examples  This section provides files of sample modules and widgets, which you can use as a base for your custom modules.  To use a module:  1. Download the ZIP archive. 2. Unpack the content into a separate directory inside the *modules* directory of your Zabbix frontend installation (for example, *zabbix/ui/modules*). 3. Register the module in Zabbix frontend.
uk	# Приклади  У цьому розділі представлені файли зразків модулів та віджетів, які ви можете використовувати як основу для власних модулів.  Щоб використовувати модуль:  1. Завантажте ZIP-архів. 2. Розпакуйте вміст в окремий підкаталог у каталозі з *модулями* web-серверу Zabbix (наприклад */zabbix/ui/modules*). 3. Зареєструйте модуль у інтерфейсі Zabbix.

en-us	 # Examples  You can use several empty examples as well as existing loadable plugins supplied by Zabbix as a reference:   - [Examples](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/src/go/plugins/debug/external)  - [MongoDB plugin](https://git.zabbix.com/projects/AP/repos/mongodb/browse) - [PostgreSQL plugin](https://git.zabbix.com/projects/AP/repos/postgresql/browse)
uk	 # Приклади  Ви можете використати кілька порожніх прикладів, а також існуючі плагіни, що можна завантажити, надані Zabbix, як посилання:  - [Приклади](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/src/go/plugins/debug/external) - [Плагін MongoDB](https://git.zabbix.com/projects/AP/repos/mongodb/browse) - [Плагін PostgreSQL](https://git.zabbix.com/projects/AP/repos/postgresql/browse)

en-us	## EXAMPLES  **zabbix\_get -s 127.0.0.1 -p 10050 -k "system.cpu.load\[all,avg1\]"**\ **zabbix\_get -s 127.0.0.1 -p 10050 -k "system.cpu.load\[all,avg1\]" --tls-connect cert --tls-ca-file /home/zabbix/zabbix\_ca\_file --tls-agent-cert-issuer "CN=Signing CA,OU=IT operations,O=Example Corp,DC=example,DC=com" --tls-agent-cert-subject "CN=server1,OU=IT operations,O=Example Corp,DC=example,DC=com" --tls-cert-file /home/zabbix/zabbix\_get.crt --tls-key-file /home/zabbix/zabbix\_get.key\ zabbix\_get -s 127.0.0.1 -p 10050 -k "system.cpu.load\[all,avg1\]" --tls-connect psk --tls-psk-identity "PSK ID Zabbix agentd" --tls-psk-file /home/zabbix/zabbix\_agentd.psk** [ ]{#lbAH}
uk	## ПРИКЛАДИ  **zabbix\_get -s 127.0.0.1 -p 10050 -k "system.cpu.load\[all,avg1\]"**\ **zabbix\_get -s 127.0.0.1 -p 10050 -k "system.cpu.load\[all,avg1\]" --tls-connect cert --tls-ca-file /home/zabbix/zabbix\_ca\_file --tls-agent-cert-issuer "CN=Signing CA,OU=IT operations,O=Example Corp,DC=example,DC=com" --tls-agent-cert-subject "CN=server1,OU=IT operations,O=Example Corp,DC=example,DC=com" --tls-cert-file /home/zabbix/zabbix\_get.crt --tls-key-file /home/zabbix/zabbix\_get.key\ zabbix\_get -s 127.0.0.1 -p 10050 -k "system.cpu.load\[all,avg1\]" --tls-connect psk --tls-psk-identity "PSK ID Zabbix agentd" --tls-psk-file /home/zabbix/zabbix\_agentd.psk** [ ]{#lbAH}

en-us	## EXAMPLES  **zabbix\_js -s script-file.js -p example** [ ]{#lbAG}
uk	## ПРИКЛАДИ  **zabbix\_js -s script-file.js -p example** [ ]{#lbAG}

en-us	## EXAMPLES  **zabbix\_sender -c /etc/zabbix/zabbix\_agentd.conf -k mysql.queries -o 342.45**\     Send **342.45** as the value for **mysql.queries** item of monitored host. Use monitored host and Zabbix server defined in agent configuration file.  **zabbix\_sender -c /etc/zabbix/zabbix\_agentd.conf -s "Monitored Host" -k mysql.queries -o 342.45**\     Send **342.45** as the value for **mysql.queries** item of **Monitored Host** host using Zabbix server defined in agent configuration file.  \ **zabbix\_sender -z 192.168.1.113 -i data\_values.txt**     \ Send values from file **data\_values.txt** to Zabbix server with IP **192.168.1.113**. Host names and keys are defined in the file.  \ **echo "- hw.serial.number 1287872261 SQ4321ASDF" | zabbix\_sender -c /usr/local/etc/zabbix\_agentd.conf -T -i -**\     Send a timestamped value from the commandline to Zabbix server, specified in the agent configuration file. Dash in the input data indicates that hostname also should be used from the same configuration file.  \ **echo '"Zabbix server" trapper.item ""' | zabbix\_sender -z 192.168.1.113 -p 10000 -i -**\     Send empty value of an item to the Zabbix server with IP address **192.168.1.113** on port **10000** from the commandline. Empty values must be indicated by empty double quotes.  **zabbix\_sender -z 192.168.1.113 -s "Monitored Host" -k mysql.queries -o 342.45 --tls-connect cert --tls-ca-file /home/zabbix/zabbix\_ca\_file --tls-cert-file /home/zabbix/zabbix\_agentd.crt --tls-key-file /home/zabbix/zabbix\_agentd.key**\     Send **342.45** as the value for **mysql.queries** item in **Monitored Host** host to server with IP **192.168.1.113** using TLS with certificate.  **zabbix\_sender -z 192.168.1.113 -s "Monitored Host" -k mysql.queries -o 342.45 --tls-connect psk --tls-psk-identity "PSK ID Zabbix agentd" --tls-psk-file /home/zabbix/zabbix\_agentd.psk**\     Send **342.45** as the value for **mysql.queries** item in **Monitored Host** host to server with IP **192.168.1.113** using TLS with pre-shared key (PSK).  [ ]{#lbAI}
uk	## ПРИКЛАДИ  **zabbix\_sender -c /etc/zabbix/zabbix\_agentd.conf -k mysql.queries -o 342,45**\     Надішліть **342.45** як значення для елемента **mysql.queries** контрольованого хосту. Використовуйте контрольований хост і сервер Zabbix, визначені у файлі конфігурації агента.  **zabbix\_sender -c /etc/zabbix/zabbix\_agentd.conf -s "Monitored Host" -k mysql.queries -o 342.45**\     Надішліть **342.45** як значення для елемента **mysql.queries** хосту **Monitored Host** за допомогою сервера Zabbix, визначеного у файлі конфігурації агента.  \ **zabbix\_sender -z 192.168.1.113 -i data\_values.txt**     \ Надсилайте значення з файлу **data\_values.txt** на сервер Zabbix з IP **192.168.1.113**. Імена хостів і ключі визначені у файлі.  \ **echo "- hw.serial.number 1287872261 SQ4321ASDF" | zabbix\_sender -c /usr/local/etc/zabbix\_agentd.conf -T -i -**\     Надішліть значення з міткою часу з командного рядка на сервер Zabbix, указане у файлі конфігурації агента. Прочерк у вхідних даних означає, що ім’я хоста також має використовуватися з того самого файлу конфігурації.  \ **echo '"Zabbix server" trapper.item ""' | zabbix\_sender -z 192.168.1.113 -p 10000 -i -**\     Надішліть порожнє значення елемента на сервер Zabbix з IP-адресою **192.168.1.113** на порт **10000** з командного рядка. Порожні значення повинні бути позначені порожніми подвійними лапками.  **zabbix\_sender -z 192.168.1.113 -s "Monitored Host" -k mysql.queries -o 342.45 --tls-connect cert --tls-ca-file /home/zabbix/zabbix\_ca\_file --tls-cert-file /home/zabbix/zabbix\_agentd.crt --tls-key-file /home/zabbix/zabbix\_agentd.key**\     Надішліть **342.45** як значення для елемента **mysql.queries** у хості **Monitored Host** на сервер з IP-адресою **192.168.1.113** за допомогою TLS із сертифікатом.  **zabbix\_sender -z 192.168.1.113 -s "Monitored Host" -k mysql.queries -o 342.45 --tls-connect psk --tls-psk-identity "PSK ID Zabbix agentd" --tls-psk-file/home/zabbix/zabbix\_agentd.psk**\     Надішліть **342.45** як значення для елемента **mysql.queries** у хості **Monitored Host** на сервер з IP-адресою **192.168.1.113** за допомогою TLS зі спільним ключем (PSK).  [ ]{#lbAI}

en-us	### Example workflow  The following section will walk you through some examples of usage in a greater detail.
uk	### Приклад робочого процесу  У наступному розділі ми розглянемо деякі приклади використання більш детально.

en-us	## EXIT STATUS  The exit status is 0 if the values were sent and all of them were successfully processed by server. If data was sent, but processing of at least one of the values failed, the exit status is 2. If data sending failed, the exit status is 1.  [ ]{#lbAH}
uk	## СТАТУС ВИХОДУ  Статус виходу 0, якщо значення були надіслані, і всі вони були успішно оброблені сервером. Якщо дані були надіслані, але обробка принаймні одного зі значень не вдалася, статус виходу – 2. Якщо надсилання даних не вдалося, статус виходу – 1.  [ ]{#lbAH}

en-us	##### Export format  Data can be exported using the Zabbix web frontend or [Zabbix API](/manual/api/reference/configuration). Supported export formats are YAML, XML and JSON.
uk	##### Формат експорту  Дані можна експортувати за допомогою веб-інтерфейсу Zabbix або [Zabbix API](/manual/api/reference/configuration). Підтримувані формати експорту: YAML, XML і JSON.

en-us	### Failover to standby node  Zabbix will fail over to another node automatically if the active node stops. There  must be at least one node in standby status for the failover to happen.  How fast will the failover be? All nodes update their last access time (and status, if  it is changed) every 5 seconds. So:   -   If the active node shuts down and manages to report its status  as "stopped", another node will take over within **5 seconds**.  -   If the active node shuts down/becomes unavailable without being able to update  its status, standby nodes will wait for the **failover delay** + 5 seconds to take over  The failover delay is configurable, with the supported range between 10 seconds and 15  minutes (one minute by default). To change the failover delay, you may run:  ``` zabbix_server -R ha_set_failover_delay=5m ```
uk	### Перехід на резервний вузол  Zabbix автоматично переключається на інший вузол, якщо активний вузол зупиняється. Для того, щоб відбулося переключення, принаймні один вузол повинен перебувати у стані очікування..  Як швидко відбуватиметься переключення? Усі вузли оновлюють свій час останнього доступу (і статус, якщо він змінився) кожні 5 секунд. Отже:  - Якщо активний вузол вимикається та встигає повідомити про свій статус як "зупинений", інший вузол займе його місце протягом **5 секунд**.  - Якщо активний вузол вимикається/стає недоступним без можливості оновлення свого статусу, резервні вузли чекатимуть **затримку перемикання на інший ресурс** + 5 секунд  Затримку перемикання на інший ресурс можна налаштувати в діапазоні від 10 секунд до 15 хвилин (за замовчуванням одна хвилина). Щоб змінити затримку перемикання на інший ресурс, ви можете виконати команду:  ``` zabbix_server -R ha_set_failover_delay=5m ```

en-us	##### File example  ```php <?php  return [     'BRAND_LOGO' => './my_images/custom_logo.png',     'BRAND_LOGO_SIDEBAR' => './my_images/custom_logo_sidebar.png',     'BRAND_LOGO_SIDEBAR_COMPACT' => './my_images/custom_logo_sidebar_compact.png',     'BRAND_FOOTER' => '© Zabbix',     'BRAND_HELP_URL' => 'https://www.example.com/help/' ]; ```
uk	##### Приклад файлу  ```php <?php  return [      'BRAND_LOGO' => './my_images/custom_logo.png',      'BRAND_LOGO_SIDEBAR' => './my_images/custom_logo_sidebar.png',      'BRAND_LOGO_SIDEBAR_COMPACT' => './my_images/custom_logo_sidebar_compact.png',      'BRAND_FOOTER' => '© Zabbix',      'BRAND_HELP_URL' => 'https://www.example.com/help/' ]; ```

en-us	## FILES  */usr/local/etc/zabbix\_agent2.conf*   Default location of Zabbix agent 2 configuration file (if not modified during compile time).  [ ]{#lbAH}
uk	## ФАЙЛИ  */usr/local/etc/zabbix\_agent2.conf* Розташування файлу конфігурації Zabbix agent 2 за замовчуванням (якщо не змінено під час компіляції).  [ ]{#lbAH}

en-us	## FILES  */usr/local/etc/zabbix\_agentd.conf*   Default location of Zabbix agent configuration file (if not modified during compile time).  [ ]{#lbAI}
uk	## ФАЙЛИ  */usr/local/etc/zabbix\_agentd.conf* Типове розташування файлу конфігурації агента Zabbix (якщо не змінено під час компіляції).  [ ]{#lbAI}

en-us	## FILES  */usr/local/etc/zabbix\_proxy.conf*   Default location of Zabbix proxy configuration file (if not modified during compile time).  [ ]{#lbAI}
uk	## ФАЙЛИ  */usr/local/etc/zabbix\_proxy.conf* Розташування файлу конфігурації Zabbix проксі за замовчуванням (якщо не змінено під час компіляції).  [ ]{#lbAI}

en-us	## FILES  */usr/local/etc/zabbix\_server.conf*   Default location of Zabbix server configuration file (if not modified during compile time).  [ ]{#lbAI}
uk	## ФАЙЛИ  */usr/local/etc/zabbix\_server.conf* Розташування файлу конфігурації Zabbix серверу за замовчуванням (якщо не змінено під час компіляції).  [ ]{#lbAI}

en-us	## FILES  */usr/local/etc/zabbix\_web\_service.conf*   Default location of Zabbix web service configuration file (if not modified during compile time).  [ ]{#lbAG}
uk	## ФАЙЛИ  */usr/local/etc/zabbix\_web\_service.conf* Розташування файлу конфігурації веб-сервісу Zabbix за замовчуванням (якщо не змінено під час компіляції).  [ ]{#lbAG}

en-us	##### - Firewall configuration  The appliance uses iptables firewall with predefined rules:  -   Opened SSH port (22 TCP); -   Opened Zabbix agent (10050 TCP) and Zabbix trapper (10051 TCP)     ports; -   Opened HTTP (80 TCP) and HTTPS (443 TCP) ports; -   Opened SNMP trap port (162 UDP); -   Opened outgoing connections to NTP port (53 UDP); -   ICMP packets limited to 5 packets per second; -   All other incoming connections are dropped.
uk	##### - Налаштування брандмауера  Готове рішення використовує брандмауер iptables із попередньо визначеними правилами:  -   Відкритий порт SSH (22 TCP); -   Відкрито порти Zabbix agent (10050 TCP) і Zabbix trapper (10051 TCP); -   Відкриті порти HTTP (80 TCP) і HTTPS (443 TCP); -   Відкритий порт SNMP trap (162 UDP); -   Відкриті вихідні з'єднання на порт NTP (53 UDP); -   Пакети ICMP обмежені 5 пакетами в секунду; -   Усі інші вхідні з'єднання скидаються.

en-us	### Float history  The float history object has the following properties.  |Property|[Type](/manual/api/reference_commentary#data_types)|Description| |--|--|------| |clock|timestamp|Time when that value was received.| |itemid|string|ID of the related item.| |ns|integer|Nanoseconds when the value was received.| |value|float|Received value.|
uk	### Історія плавання  Об'єкт історії float має такі властивості.  |Властивість|[Тип](/manual/api/reference_commentary#data_types)|Опис| |--|--|------| |годинник|мітка часу|Час, коли це значення було отримано.| |itemid|рядок|ID пов'язаного елемента.| |ns|ціле|Наносекунди, коли було отримано значення.| |value|float|Отримане значення.|

en-us	##### Footnotes  ^**1**^ For string values, only the string will be exported (e.g. "ZABBIX\_ACTIVE") without the numbering used in this table. The numbers for range values (corresponding to the API values) in this table is used for ordering only.
uk	##### Виноски  ^**1**^ Для рядкових значень буде експортовано лише рядок (наприклад, «ZABBIX\_ACTIVE») без нумерації, яка використовується в цій таблиці. Числа для значень діапазону (що відповідають значенням API) у цій таблиці використовуються лише для впорядкування.

en-us	##### Footnotes  ^**1**^ For string values, only the string will be exported (e.g. "ZABBIX\_ACTIVE") without the numbering used in this table. The numbers for range values (corresponding to the API values) in this table is used for ordering only.
uk	 ##### Виноски  ^**1**^ Для рядкових значень буде експортовано лише рядок (наприклад, «ZABBIX\_ACTIVE») без нумерації, яка використовується в цій таблиці. Числа для значень діапазону (що відповідають значенням API) у цій таблиці використовуються лише для впорядкування.

en-us	#### Function syntax  Foreach functions support two common parameters: `item filter` (see details below) and `time period`:      foreach_function(item filter,time period)  For example:   `avg_foreach(/*/mysql.qps?[group="MySQL Servers"],5m)`  will return the five-minute average of each 'mysql.qps' item in the MySQL server group.  Note that some functions support additional [parameters](#additional_parameters).
uk	#### Синтаксис функції  Функції foreach підтримують два загальні параметри: `item filter` (деталі див. нижче) і `time period`:       foreach_function(фільтр елементів,період часу)  Наприклад:  `avg_foreach(/*/mysql.qps?[group="MySQL Servers"],5m)`  поверне п’ятихвилинне середнє значення кожного елемента «mysql.qps» у групі сервера MySQL.  Зауважте, що деякі функції підтримують додаткові [параметри](#additional_parameters).

en-us	### Further reading  Now, you have enough knowledge to start working with the Zabbix API, however, do not stop here. For further reading you are advised to have a look at the [list of available APIs](/manual/api/reference).
uk	### Більше інформації  Тепер у вас достатньо знань, щоб почати працювати з Zabbix API, однак не зупиняйтеся на цьому. Для подальшого читання радимо переглянути [список доступних API](/manual/api/reference).

en-us	# graph.create
uk	# graph.create

en-us	# graph.delete
uk	# graph.delete

en-us	# graph.get
uk	# graph.get

en-us	# graphitem.get
uk	# graphitem.get

en-us	# > Graph item object  The following objects are directly related to the `graphitem` API.
uk	# > Об'єкт елемента графіка  Наступні об’єкти безпосередньо пов’язані з API `graphitem`.

en-us	# Graph item  This class is designed to work with graph items.  Object references:\  -   [Graph item](/manual/api/reference/graphitem/object#graph_item)  Available methods:\  -   [graphitem.get](/manual/api/reference/graphitem/get) - retrieving     graph items
uk	# Елемент графіка  Цей клас призначений для роботи з елементами графа.  Посилання на об'єкти:\  - [Елемент графіка](/manual/api/reference/graphitem/object#graph_item)  Доступні методи:\  - [graphitem.get](/manual/api/reference/graphitem/get) - отримання елементів графіка

en-us	# > Graph object  The following objects are directly related to the `graph` API.
uk	# > Графічний об'єкт  Наступні об’єкти безпосередньо пов’язані з API `graph`.

en-us	# graphprototype.create
uk	# graphprototype.create

en-us	# graphprototype.delete
uk	# graphprototype.delete

en-us	# graphprototype.get
uk	# graphprototype.get

en-us	# > Graph prototype object  The following objects are directly related to the `graphprototype` API.
uk	# > Об'єкт прототипу Graph  Наступні об’єкти безпосередньо пов’язані з API `graphprototype`.

en-us	# Graph prototype  This class is designed to work with graph prototypes.  Object references:\  -   [Graph     prototype](/manual/api/reference/graphprototype/object#graph_prototype)  Available methods:\  -   [graphprototype.create](/manual/api/reference/graphprototype/create) -     creating new graph prototypes -   [graphprototype.delete](/manual/api/reference/graphprototype/delete) -     deleting graph prototypes -   [graphprototype.get](/manual/api/reference/graphprototype/get) -     retrieving graph prototypes -   [graphprototype.update](/manual/api/reference/graphprototype/update) -     updating graph prototypes
uk	# Прототип графа  Цей клас призначений для роботи з прототипами графів.  Посилання на об'єкти:\  - [Прототип графіка](/manual/api/reference/graphprototype/object#graph_prototype)  Доступні методи:\  - [graphprototype.create](/manual/api/reference/graphprototype/create) - створення нових прототипів графів - [graphprototype.delete](/manual/api/reference/graphprototype/delete) - видалення прототипів графів - [graphprototype.get](/manual/api/reference/graphprototype/get) - отримання прототипів графів - [graphprototype.update](/manual/api/reference/graphprototype/update) - оновлення прототипів графів

en-us	# graphprototype.update
uk	# graphprototype.update

en-us	#### graphprototype  [ZBX-7706](https://support.zabbix.com/browse/ZBX-7706) `graphprototype.get`: Graph prototype availability does not depend on permissions to the items specified in the [graph prototype properties](/manual/api/reference/graphprototype/object#graph-prototype) `ymin_itemid` and `ymax_itemid`.\
uk	#### graphprototype  [ZBX-7706](https://support.zabbix.com/browse/ZBX-7706) `graphprototype.get`: Доступність прототипу графа не залежить від прав доступу до елементів, вказаних у [властивості прототипу графа](/manual/api/reference/graphprototype/object#graph-prototype) `ymin_itemid` та `ymax_itemid`.\

en-us	##### Graphs  With the item working for a while, it might be time to see something visual. [Simple graphs](/manual/config/visualization/graphs/simple) are available for any monitored numeric item without any additional configuration. These graphs are generated on runtime.  To view the graph, go to *Monitoring → Latest data* and click on the 'Graph' link next to the item.  ![](../../../assets/en/manual/quickstart/simple_graph.png){width="600"}
uk	##### Графіки  Коли елемент даних працює деякий час, можливо, настав час побачити щось візуальне. [Прості графіки](/manual/config/visualization/graphs/simple) доступні для будь-якого відстежуваного числового елемента даних без додаткового налаштування. Ці графіки генеруються під час виконання.  Щоб переглянути графік, перейдіть до *Моніторинг → Останні дані* та натисніть посилання 'Графік' поруч із елементом даних.  ![](../../../assets/en/manual/quickstart/simple_graph.png){width="600"}

en-us	# Graph  This class is designed to work with graphs.  Object references:\  -   [Graph](/manual/api/reference/graph/object#graph)  Available methods:\  -   [graph.create](/manual/api/reference/graph/create) - creating new     graphs -   [graph.delete](/manual/api/reference/graph/delete) - deleting graphs -   [graph.get](/manual/api/reference/graph/get) - retrieving graphs -   [graph.update](/manual/api/reference/graph/update) - updating graphs
uk	# Графік  Цей клас призначений для роботи з графіками.  Посилання на об'єкти:\  - [Графік](/manual/api/reference/graph/object#graph)  Доступні методи:\  - [graph.create](/manual/api/reference/graph/create) - створення нових графіків - [graph.delete](/manual/api/reference/graph/delete) - видалення графіків - [graph.get](/manual/api/reference/graph/get) - отримання графіків - [graph.update](/manual/api/reference/graph/update) - оновлення графіків

en-us	# graph.update
uk	# graph.update

en-us	#### graph  [ZBX-7706](https://support.zabbix.com/browse/ZBX-7706) `graph.get`: Graph availability does not depend on permissions to the items specified in the [graph properties](/manual/api/reference/graph/object#graph) `ymin_itemid` and `ymax_itemid`.\
uk	#### graph  [ZBX-7706](https://support.zabbix.com/browse/ZBX-7706) `graph.get`: доступність графа не залежить від дозволів на елементи, указані у [властивості графа](/manual/api) /reference/graph/object#graph) `ymin_itemid` і `ymax_itemid`.\

en-us	# hanode.get
uk	# hanode.get

en-us	# > High availability node object  The following object is related to operating a High availability cluster of Zabbix servers.
uk	# > Об'єкт вузла високої доступності  Наступний об’єкт пов’язаний з керуванням кластером високої доступності серверів Zabbix.

en-us	# High availability node  This class is designed to work with server nodes that are part of a High availability cluster, or a standalone server instance.  Object references:\  -   [High availability node](/manual/api/reference/hanode/object#hanode)  Available methods:\  -   [hanode.get](/manual/api/reference/hanode/get) - retrieving nodes
uk	# Вузол високої доступності  Цей клас призначений для роботи з серверними вузлами, які є частиною кластера високої доступності або окремого екземпляра сервера.  Посилання на об'єкти:\  - [Вузол високої доступності](/manual/api/reference/hanode/object#hanode)  Доступні методи:\  - [hanode.get](/manual/api/reference/hanode/get) - отримання вузлів

en-us	# history.clear
uk	# history.clear

en-us	# history.get
uk	# history.get

en-us	# > History object  The following objects are directly related to the `history` API.  ::: noteclassic History objects differ depending on the item's type of information. They are created by the Zabbix server and cannot be modified via the API. :::
uk	# > Об'єкт історії  Наступні об’єкти безпосередньо пов’язані з API історії.  ::: noteclassic Об’єкти історії відрізняються залежно від типу інформації елемента. Вони створюються сервером Zabbix і не можуть бути змінені через API. :::

en-us	# History  This class is designed to work with history data.  Object references:\  -   [History](/manual/api/reference/history/object#history)  Available methods:\  -   [history.get](/manual/api/reference/history/get) - retrieving     history data.
uk	# Історія  Цей клас призначений для роботи з даними історії.  Посилання на об'єкти:\  - [Історія](/manual/api/reference/history/object#history)  Доступні методи:\  - [history.get](/manual/api/reference/history/get) - отримання даних історії.

en-us	# host.create
uk	# host.create

en-us	# host.delete
uk	# host.delete

en-us	# host.get
uk	# host.get

en-us	# hostgroup.create
uk	# hostgroup.create

en-us	# hostgroup.delete
uk	# hostgroup.delete

en-us	# hostgroup.get
uk	# hostgroup.get

en-us	# hostgroup.massadd
uk	# hostgroup.massadd

en-us	# hostgroup.massremove
uk	# hostgroup.massremove

en-us	# hostgroup.massupdate
uk	# hostgroup.massupdate

en-us	# > Host group object  The following objects are directly related to the `hostgroup` API.
uk	# > Об'єкт групи хостів  Наступні об’єкти безпосередньо пов’язані з API `hostgroup`.

en-us	# hostgroup.update
uk	# hostgroup.update

en-us	# hostinterface.create
uk	# hostinterface.create

en-us	# hostinterface.delete
uk	# hostinterface.delete

en-us	# hostinterface.get
uk	# hostinterface.get

en-us	# hostinterface.massadd
uk	# hostinterface.massadd

en-us	# hostinterface.massremove
uk	# hostinterface.massremove

en-us	# > Host interface object  The following objects are directly related to the `hostinterface` API.
uk	# > Об'єкт інтерфейсу хоста  Наступні об’єкти безпосередньо пов’язані з API 'hostinterface'.

en-us	# hostinterface.replacehostinterfaces
uk	# hostinterface.replacehostinterfaces

en-us	# Host interface  This class is designed to work with host interfaces.  Object references:\  -   [Host     interface](/manual/api/reference/hostinterface/object#host_interface)  Available methods:\  -   [hostinterface.create](/manual/api/reference/hostinterface/create) -     creating new host interfaces -   [hostinterface.delete](/manual/api/reference/hostinterface/delete) -     deleting host interfaces -   [hostinterface.get](/manual/api/reference/hostinterface/get) -     retrieving host interfaces -   [hostinterface.massadd](/manual/api/reference/hostinterface/massadd) -     adding host interfaces to hosts -   [hostinterface.massremove](/manual/api/reference/hostinterface/massremove) -     removing host interfaces from hosts -   [hostinterface.replacehostinterfaces](/manual/api/reference/hostinterface/replacehostinterfaces) -     replacing host interfaces on a host -   [hostinterface.update](/manual/api/reference/hostinterface/update) -     updating host interfaces
uk	# Інтерфейс вузла  Цей клас призначений для роботи з інтерфейсами вузлів.  Посилання на об'єкти:\  -   [Інтерфейс вузла](/manual/api/reference/hostinterface/object#host_interface)  Доступні методи:\  -   [hostinterface.create](/manual/api/reference/hostinterface/create) -     створення нових інтерфейсів вузла -   [hostinterface.delete](/manual/api/reference/hostinterface/delete) -     видалення інтерфейсів вузла -   [hostinterface.get](/manual/api/reference/hostinterface/get) -     отримання інтерфейсів вузла -   [hostinterface.massadd](/manual/api/reference/hostinterface/massadd) -     масове додавання інтерфейсів до вузлів -   [hostinterface.massremove](/manual/api/reference/hostinterface/massremove) -     масове видалення інтерфейсів з вузлів -   [hostinterface.replacehostinterfaces](/manual/api/reference/hostinterface/replacehostinterfaces) -     заміна інтерфейсів на вузлі -   [hostinterface.update](/manual/api/reference/hostinterface/update) -     оновлення інтерфейсів вузла

en-us	# hostinterface.update
uk	# hostinterface.update

en-us	# host.massadd
uk	# host.massadd

en-us	# host.massremove
uk	# host.massremove

en-us	# host.massupdate
uk	# host.massupdate

en-us	# hostprototype.create
uk	# hostprototype.create

en-us	# hostprototype.delete
uk	# hostprototype.delete

en-us	# hostprototype.get
uk	# hostprototype.get

en-us	# > Host prototype object  The following objects are directly related to the `hostprototype` API.
uk	# > Об'єкт прототипу хосту  Наступні об’єкти безпосередньо пов’язані з API `hostprototype`.

en-us	# hostprototype.update
uk	# hostprototype.update

en-us	# host.update
uk	# host.update

en-us	# housekeeping.get
uk	# housekeeping.get

en-us	# > Housekeeping object  The following objects are directly related to the `housekeeping` API.
uk	# > Господарський об'єкт  Наступні об’єкти безпосередньо пов’язані з API «housekeeping».

en-us	# housekeeping.update
uk	# housekeeping.update

en-us	 ### How modules work  -   An enabled module is launched on each HTTP request, before executing the action code. -   The module will register new actions or redefine the existing ones. -   The module will add new frontend sections and remove or redefine the existing ones. -   The module will hook to frontend events like onBeforeAction and onTerminate, if needed. -   The requested action is finally executed by running the action code - either the default one, or module-defined.
uk	 ### Як працюють модулі  - Увімкнений модуль запускається під час кожного HTTP запиту перед виконанням коду дії. - Модуль буде реєструвати нові дії або перевизначати існуючі. - Модуль додасть нові розділи інтерфейсу та видалить або перевизначить існуючі. - Якщо потрібно, модуль підключатиметься до зовнішніх подій, таких як onBeforeAction і onTerminate. - Запитувана дія остаточно виконується шляхом запуску коду дії - стандартного або визначеного модулем.

en-us	#### How to  First you need to create a PHP file and save it as *local/conf/brand.conf.php*. The contents of the file should be as follows:  ```php <?php  return []; ```  This will hide the links to the *Zabbix Support* and *Zabbix Integrations* pages.
uk	#### Як це зробити  Спочатку вам потрібно створити файл PHP і зберегти його як *local/conf/brand.conf.php*. Вміст файлу має бути таким:  ```php <?php  return []; ```  Це приховає посилання на сторінки *підтримка Zabbix* і *інтеграція Zabbix*.

en-us	# httptest.create
uk	# httptest.create

en-us	# httptest.delete
uk	# httptest.delete

en-us	# httptest.get
uk	# httptest.get

en-us	# httptest.update
uk	# httptest.update

en-us	#### httptest  [ZBXNEXT-7921](https://support.zabbix.com/browse/ZBXNEXT-7921) Removed property `nextcheck`.\
uk	#### httptest  [ZBXNEXT-7921](https://support.zabbix.com/browse/ZBXNEXT-7921) Видалено властивість `nextcheck`.\

en-us	# iconmap.create
uk	# iconmap.create

en-us	# iconmap.delete
uk	# iconmap.delete

en-us	# iconmap.get
uk	# iconmap.get

en-us	# iconmap.update
uk	# iconmap.update

en-us	 ### id  Module ID. Must be unique. To avoid future naming conflicts, it is recommended to use prefix for modules (author or company name, or any other). For example, if a module is an example for lessons and the module name is "My module", then the ID will be "example_my_module".  *Type*: String  *Example*:  ```json "id": "example_my_module" ```
uk	 ### id  ID модуля. Повинно бути унікальним. Щоб уникнути майбутніх конфліктів іменування, рекомендується використовувати префікс для модулів (назва автора, компанії чи будь-який інший). Наприклад, якщо модуль є прикладом для уроків, а назва модуля – «Мій модуль», тоді ідентифікатор буде «example_my_module».  *Тип*: String  *Приклад*:  ```json "id": "example_my_module" ```

en-us	# image.create
uk	# image.create

en-us	# image.delete
uk	# image.delete

en-us	# image.get
uk	# image.get

en-us	# image.update
uk	# image.update

en-us	 ### Implementation details  The high availability (HA) cluster is an opt-in solution and it is supported for Zabbix server. The native HA solution is designed to be simple in use, it will work across sites and does not have specific requirements for the databases that Zabbix recognizes. Users are free to use the native Zabbix HA solution, or a third-party HA solution, depending on what best suits the high availability requirements in their environment.  The solution consists of multiple zabbix\_server instances or nodes. Every node:  -   is configured separately -   uses the same database -   may have several modes: active, standby, unavailable, stopped  Only one node can be active (working) at a time. A standby node runs only one  process - the HA manager. A standby node does no data collection,  processing or other regular server activities; they do not listen  on ports; they have minimum database connections.  Both active and standby nodes update their last access time every 5 seconds. Each standby node monitors the last access time of the active node. If the last access time of the active node is over 'failover delay' seconds, the standby node switches itself to be the active node and assigns 'unavailable' status to the previously active node.  The active node monitors its own database connectivity - if it is lost for more than `failover delay-5` seconds, it must stop all processing and switch to standby mode. The active node also monitors the status of the standby nodes - if the last access time of a standby node is over 'failover delay' seconds, the standby node is assigned the 'unavailable' status.  The nodes are designed to be compatible across minor Zabbix versions.
uk	### Деталі реалізації  Кластер високої доступності (HA) - це опціональне рішення, яке підтримується Zabbix сервером. Власне рішення HA розроблено таким, щоб бути простим у використанні. Воно буде працювати між різними сайтами і не має специфічних вимог до баз даних, які розпізнає Zabbix. Користувачі можуть вільно використовувати власне рішення Zabbix HA або сторонні рішення HA, в залежності від того, що найкраще відповідає вимогам високої доступності в їхньому середовищі.  Рішення складається з кількох екземплярів zabbix\_server або вузлів. Кожен вузол:  - налаштовується окремо - використовує ту саму базу даних - може мати декілька режимів: активний, очікування, недоступний, зупинений  Одночасно активним (працюючим) може бути лише один вузол. На резервному вузлі виконується лише один процес - HA manager. Резервний вузол не виконує збір, обробку даних або іншу звичайну серверну діяльність; він не прослуховує порти; він має мінімум підключень до баз даних.  Як активні, так і резервні вузли оновлюють час свого останнього доступу кожні 5 секунд. Кожен резервний вузол відстежує час останнього доступу активного вузла. Якщо час останнього доступу активного вузла перевищує "затримку перемикання на інший ресурс", резервний вузол стає активним і присвоює статус "недоступний" попередньому активному вузлу.  Активний вузол відстежує власне з'єднання з базою даних - якщо воно втрачається більш ніж на "затримку перемикання на інший ресурс - 5" секунд, він повинен зупинити всю подальшу роботу і перейти в режим очікування. Активний вузол також відстежує стан резервних вузлів - якщо час останнього доступу резервного вузла перевищує "затримку перемикання на інший ресурс" секунд, резервному вузлу присвоюється статус "недоступний".  Вузли розроблені таким чином, щоб бути сумісними між мінорними версіями Zabbix.

en-us	## Index  [NAME](#lbAB)    [SYNOPSIS](#lbAC)    [DESCRIPTION](#lbAD)    [OPTIONS](#lbAE)    [EXAMPLES](#lbAF)    [SEE ALSO](#lbAG)    ------------------------------------------------------------------------  This document was created on: 21:23:35 GMT, March 18, 2020
uk	## Покажчик  [ІМ'Я](#lbAB)    [СИНТАКСИС](#lbAC)    [ОПИС](#lbAD)    [ПАРАМЕТРИ](#lbAE)    [ПРИКЛАДИ](#lbAF)    [ДИВ. ТАКОЖ](#lbAG)    ------------------------------------------------------------------------  Цей документ створено о 21:23:35 GMT, 18 березня 2020 року

en-us	## Index  [NAME](#lbAB)    [SYNOPSIS](#lbAC)    [DESCRIPTION](#lbAD)    [OPTIONS](#lbAE)    [FILES](#lbAF)    [SEE ALSO](#lbAG)    [AUTHOR](#lbAH)    ------------------------------------------------------------------------  This document was created on: 12:58:30 GMT, June 11, 2021
uk	## Покажчик  [ІМ'Я](#lbAB)  [СИНТАКСИС](#lbAC)  [ОПИС](#lbAD)  [ОПЦІЇ](#lbAE)  [ФАЙЛИ](#lbAF)  [ТАКОЖ ДИВИСЬ](#lbAG)  [АВТОР](#lbAH)  ------------------------------------------------------------------------  Цей документ створено о 12:58:30 GMT, 11 червня 2021 року

en-us	## Index  [NAME](#lbAB)  [SYNOPSIS](#lbAC)  [DESCRIPTION](#lbAD)  [OPTIONS](#lbAE)  [](#lbAF)      [EXAMPLES](#lbAG)  [SEE ALSO](#lbAH)  [AUTHOR](#lbAI)  ------------------------------------------------------------------------  This document was created on: 08:42:29 GMT, June 11, 2021
uk	## Покажчик  [ІМ'Я](# фунтів АБ)  [СИНТАКСИС](#lbAC)  [ОПИС](#lb AD)  [ПААМЕТРИ](#lbAE)  [](#lbAF)      [ПРИКЛАДИ](#lbAG)  [ДИВ. ТАКОЖ](#lbAH)  [АВТОР](#lbAI)  -------------------------------------------------- ----------------------  Цей документ створено о 08:42:29 GMT, 11 червня 2021 року

en-us	## Index  [NAME](#lbAB)  [SYNOPSIS](#lbAC)  [DESCRIPTION](#lbAD)  [OPTIONS](#lbAE)  [](#lbAF)      [EXIT STATUS](#lbAG)  [EXAMPLES](#lbAH)  [SEE ALSO](#lbAI)  [AUTHOR](#lbAJ)  ------------------------------------------------------------------------  This document was created on: 08:42:39 GMT, June 11, 2021
uk	## Покажчик  [ІМ'Я](#lbAB)  [СИНТАКСИС](#lbAC)  [ОПИС](#lbAD)  [ПАРАМЕТРИ](#lbAE)  [](#lbAF)      [СТАТУС ВИХОДУ](#lbAG)  [ПРИКЛАДИ](#lbAH)  [ДИВІТЬСЯ ТАКОЖ](#lbAI)  [АВТОР](#lbAJ)  ------------------------------------------------------------------------  Цей документ створено: 08:42:39 GMT, 11 червня 2021 року

en-us	## Index  [NAME](#lbAB)  [SYNOPSIS](#lbAC)  [DESCRIPTION](#lbAD)  [OPTIONS](#lbAE)  [](#lbAF)      [FILES](#lbAG)  [SEE ALSO](#lbAH)  [AUTHOR](#lbAI)  ------------------------------------------------------------------------  This document was created on: 14:07:57 GMT, November 22, 2021
uk	## Покажчик  [ІМ'Я](#lbAB)  [СИНТАКСИС](#lbAC)  [ОПИС](#lbAD)  [ПАРАМЕТРИ](#lbAE)  [](#lbAF)      [ФАЙЛИ](#lbAG)  [ДИВ. ТАКОЖ](#lbAH)  [АВТОР](#lbAI)  -------------------------------------------------- ----------------------  Цей документ створено о 14:07:57 GMT, 22 листопада 2021 року

en-us	## Index  [NAME](#lbAB)  [SYNOPSIS](#lbAC)  [DESCRIPTION](#lbAD)  [OPTIONS](#lbAE)  [](#lbAF)  [](#lbAG)      [FILES](#lbAH)  [SEE ALSO](#lbAI)  [AUTHOR](#lbAJ)  ------------------------------------------------------------------------  This document was created by [man2html](/manpages), using the manual pages.\ Time: 20:50:13 GMT, November 22, 2021
uk	## Покажчик  [ІМ'Я](#lbAB)  [СИНТАКСИС](#lbAC)  [ОПИС](#lbAD)  [ОПЦІЇ](#lbAE)  [](#lbAF)  [](#lbAG)      [ФАЙЛИ](#lbAH)  [ДИВ. ТАКОЖ](#lbAI)  [АВТОР](#lbAJ)  -------------------------------------------------- ----------------------  Цей документ створено [man2html](/manpages), за допомогою сторінок посібника.\ Час: 20:50:13 GMT, 22 листопада 2021 року

en-us	## Index  [NAME](#lbAB)  [SYNOPSIS](#lbAC)  [DESCRIPTION](#lbAD)  [OPTIONS](#lbAE)  [](#lbAF)  [](#lbAG)      [FILES](#lbAH)  [SEE ALSO](#lbAI)  [AUTHOR](#lbAJ)  ------------------------------------------------------------------------  This document was created on: 16:12:14 GMT, September 04, 2020
uk	## Покажчик  [ІМ'Я](#lbAB)  [СИНТАКСИС](#lbAC)  [ОПИС](#lbAD)  [ПАРАМЕТРИ](#lbAE)  [](#lbAF)  [](#lbAG)      [ФАЙЛИ](#lbAH)  [ДИВ. ТАКОЖ](#lbAI)  [АВТОР](#lbAJ)  -------------------------------------------------- ----------------------  Цей документ створено 04 вересня 2020 року о 16:12:14 GMT

en-us	## Index  [NAME](#lbAB)  [SYNOPSIS](#lbAC)  [DESCRIPTION](#lbAD)  [OPTIONS](#lbAE)  [](#lbAF)  [](#lbAG)      [FILES](#lbAH)  [SEE ALSO](#lbAI)  [AUTHOR](#lbAJ)  ------------------------------------------------------------------------  This document was created on: 16:12:22 GMT, September 04, 2020
uk	## Покажчик  [ІМ'Я](#lbAB)  [СИНТАКСИС](#lbAC)  [ОПИС](#lbAD)  [ПАРАМЕТРИ](#lbAE)  [](#lbAF)  [](#lbAG)      [ФАЙЛИ](#lbAH)  [ДИВ. ТАКОЖ](#lbAI)  [АВТОР](#lbAJ)  -------------------------------------------------- ----------------------  Цей документ створено о 16:12:22 GMT, 04 вересня 2020 року

en-us	#### Installing Zabbix  If installing Zabbix directly from [Zabbix git repository](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse), translation files should be generated manually. To generate translation files, run:      make gettext     locale/make_mo.sh  This step is not needed when installing Zabbix from packages or source tar.gz files.
uk	#### Встановлення Zabbix  Якщо Zabbix встановлюється безпосередньо з [git-сховища Zabbix](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse), файли перекладу слід створити вручну. Щоб створити файли перекладу, запустіть:       зробити gettext      locale/make_mo.sh  Цей крок не потрібен, якщо Zabbix встановлюється з пакетів або вихідних файлів tar.gz.

en-us	### Integer history  The integer history object has the following properties.  |Property|[Type](/manual/api/reference_commentary#data_types)|Description| |--|--|------| |clock|timestamp|Time when that value was received.| |itemid|string|ID of the related item.| |ns|integer|Nanoseconds when the value was received.| |value|integer|Received value.|
uk	### Ціла історія  Цілочисельний об’єкт історії має такі властивості.  |Властивість|[Тип](/manual/api/reference_commentary#data_types)|Опис| |--|--|------| |годинник|мітка часу|Час, коли це значення було отримано.| |itemid|рядок|ID пов'язаного елемента.| |ns|ціле|Наносекунди, коли було отримано значення.| |значення|ціле|Отримане значення.|

en-us	# item.create
uk	# item.create

en-us	# item.delete
uk	# item.delete

en-us	# item.get
uk	# item.get

en-us	# itemprototype.create
uk	# itemprototype.create

en-us	# itemprototype.delete
uk	# itemprototype.delete

en-us	# itemprototype.get
uk	# itemprototype.get

en-us	# itemprototype.update
uk	# itemprototype.update

en-us	#### itemprototype  [ZBXNEXT-6406](https://support.zabbix.com/browse/ZBXNEXT-6406) Property `interfaceid` is no longer mandatory for [item prototype](/manual/api/reference/itemprototype/object#item-prototype) types "Simple check" (3), "External check" (10), "SSH agent" (13), and "TELNET agent" (14).\ [ZBXNEXT-4428](https://support.zabbix.com/browse/ZBXNEXT-4428), [ZBXNEXT-8246](https://support.zabbix.com/browse/ZBXNEXT-8246) Added new [item prototype preprocessing](/manual/api/reference/itemprototype/object#item-prototype-preprocessing) types "SNMP walk value" (28), "SNMP walk to JSON" (29).\
uk	#### itemprototype  [ZBXNEXT-6406](https://support.zabbix.com/browse/ZBXNEXT-6406) Властивість `interfaceid` більше не є обов'язковою для типів [item prototype](/manual/api/reference/itemprototype/object#item-prototype) «Проста перевірка» (3), «Зовнішня перевірка» (10), «SSH-агент» (13) і «TELNET-агент» (14).\ [ZBXNEXT-4428](https://support.zabbix. com/browse/ZBXNEXT-4428), [ZBXNEXT-8246](https://support.zabbix.com/browse/ZBXNEXT-8246) Додано нові типи [попередня обробка прототипу елемента даних](/manual/api/reference/itemprototype/object#item-prototype-preprocessing): «SNMP walk value» (28), «SNMP walk to JSON» (29).\

en-us	#### itemprototype  [ZBXNEXT-6980](https://support.zabbix.com/browse/ZBXNEXT-6980) `itemprototype.create`, `itemprototype.update`: Added strict validation of the method parameters.\
uk	#### itemprototype  [ZBXNEXT-6980](https://support.zabbix.com/browse/ZBXNEXT-6980) `itemprototype.create`, `itemprototype.update`: додано сувору перевірку параметрів методу.\

en-us	# item.update
uk	# item.update

en-us	#### item  [ZBXNEXT-6406](https://support.zabbix.com/browse/ZBXNEXT-6406) Property `interfaceid` is no longer mandatory for [item](/manual/api/reference/item/object#item) types "Simple check" (3), "External check" (10), "SSH agent" (13), and "TELNET agent" (14).\ [ZBXNEXT-4428](https://support.zabbix.com/browse/ZBXNEXT-4428), [ZBXNEXT-8246](https://support.zabbix.com/browse/ZBXNEXT-8246) Added new [item preprocessing](/manual/api/reference/item/object#item-preprocessing) types "SNMP walk value" (28), "SNMP walk to JSON" (29).\
uk	#### item  [ZBXNEXT-6406](https://support.zabbix.com/browse/ZBXNEXT-6406) Властивість `interfaceid` більше не є обов'язковою для типів [item](/manual/api/reference/item/object#item) «Проста перевірка» (3), «Зовнішня перевірка» (10), «SSH-агент» (13) та «TELNET-агент» (14).\ [ZBXNEXT-4428](https://support.zabbix. com/browse/ZBXNEXT-4428), [ZBXNEXT-8246](https://support.zabbix.com/browse/ZBXNEXT-8246) Додано нові типи [item preprocessing](/manual/api/reference/item/object#item-preprocessing) «SNMP walk value» (28), «SNMP walk to JSON» (29).\

en-us	#### item  [ZBXNEXT-6980](https://support.zabbix.com/browse/ZBXNEXT-6980) `item.create`, `item.update`: Added strict validation of the method parameters.\
uk	#### item  [ZBXNEXT-6980](https://support.zabbix.com/browse/ZBXNEXT-6980) `item.create`, `item.update`: додано сувору перевірку параметрів методу.\

en-us	### JavaScript  A JavaScript class can be used to add dynamic behavior and interactivity to the widget configuration view. For example, you can initialize a color picker, defined in the [*CWidgetFormView*](#cwidgetformview) class.  The JavaScript class should be loaded with the form, therefore it should be referenced in the [*CWidgetFormView*](#cwidgetformview) class by using the methods *includeJsFile()* and *addJavaScript()*.  In the example below, a singleton class instance is immediately created and stored under the *window.my_custom_widget_form* name. Thus, opening the form for the second time will re-create the instance.  The JavaScript class should be located in the *views* directory.  **views/widget.edit.js.php example**  ```php <?php  use Modules\LessonGaugeChart\Widget;  ?>  window.widget_lesson_gauge_chart_form = new class {      init({color_palette}) {         this._advanced_configuration = document.getElementById('adv_conf');          this._advanced_configuration.addEventListener('change', () => this.updateForm());          colorPalette.setThemeColors(color_palette);          for (const colorpicker of jQuery('.<?= ZBX_STYLE_COLOR_PICKER ?> input')) {             jQuery(colorpicker).colorpicker();         }          const overlay = overlays_stack.getById('widget_properties');          for (const event of ['overlay.reload', 'overlay.close']) {             overlay.$dialogue[0].addEventListener(event, () => { jQuery.colorpicker('hide'); });         }          this.updateForm();     }      updateForm() {         const show_advanced_configuration = this._advanced_configuration.checked;          for (const element of this._form.querySelectorAll('.js-advanced-configuration')) {             element.style.display = show_advanced_configuration ? '' : 'none';         }     } }; ```
uk	### JavaScript  Клас JavaScript можна використовувати для додавання динамічної поведінки та інтерактивності до view конфігурації віджета. Наприклад, ви можете ініціалізувати засіб вибору кольорів, визначений у класі [*CWidgetFormView*](#cwidgetformview).  Клас JavaScript має бути завантажений разом із формою, тому на нього слід посилатися в класі [*CWidgetFormView*](#cwidgetformview) за допомогою методів *includeJsFile()* і *addJavaScript()*.  У наведеному нижче прикладі екземпляр класу singleton одразу створюється та зберігається під назвою *window.my_custom_widget_form*. Таким чином, відкриття форми вдруге призведе до повторного створення екземпляра.  Клас JavaScript має бути розташований у каталозі *views*.  **views/widget.edit.js.php приклад**  ```php <?php  use Modules\LessonGaugeChart\Widget;  ?>  window.widget_lesson_gauge_chart_form = new class {      init({color_palette}) {         this._advanced_configuration = document.getElementById('adv_conf');          this._advanced_configuration.addEventListener('change', () => this.updateForm());          colorPalette.setThemeColors(color_palette);          for (const colorpicker of jQuery('.<?= ZBX_STYLE_COLOR_PICKER ?> input')) {             jQuery(colorpicker).colorpicker();         }          const overlay = overlays_stack.getById('widget_properties');          for (const event of ['overlay.reload', 'overlay.close']) {             overlay.$dialogue[0].addEventListener(event, () => { jQuery.colorpicker('hide'); });         }          this.updateForm();     }      updateForm() {         const show_advanced_configuration = this._advanced_configuration.checked;          for (const element of this._form.querySelectorAll('.js-advanced-configuration')) {           element.style.display = show_advanced_configuration ? '' : 'none';         }     } }; ```

en-us	### JavaScript  The JavaScript class is responsible for determining widget behavior, such as updating widget data, resizing the widget, displaying widget elements, etc.  All JavaScript operations use and/or extend the base JavaScript class of all dashboard widgets - *CWidget*. The *CWidget* class contains a set of methods with the default implementation for widget behavior. Depending on widget complexity, these methods can be utilized as is or extended.  The *CWidget* class contains the following methods:  -   Methods that define widget lifecycle: *\_init()*, *\_registerEvents()*, *\_doActivate()*, *\_doDeactivate()*, *\_doDestroy()*, *setEditMode()*. -   Methods that handle updating and displaying widget data: *\_promiseUpdate()*, *\_getUpdateRequestData()*, *\_processUpdateResponse(response)*, *\_processUpdateErrorResponse(error)*, *\_setContents()*. -   Methods that modify widget appearance: *resize()*, *\_hasPadding()*.  The JavaScript class should be located in the *assets/js* directory and specified in the [*assets*](/devel/modules/file_structure/manifest#assets) (*assets/js*) parameter in the *manifest.json* file.
uk	### JavaScript  Клас JavaScript відповідає за визначення поведінки віджетів, наприклад оновлення даних віджетів, зміну розміру віджетів, відображення елементів віджетів тощо.  Усі операції JavaScript використовують і/або розширюють базовий клас JavaScript усіх віджетів інформаційної панелі - *CWidget*. Клас *CWidget* містить набір методів із реалізацією за замовчуванням для поведінки віджетів. Залежно від складності віджета, ці методи можна використовувати як є або розширити.  Клас *CWidget* містить такі методи:  - Методи, що визначають життєвий цикл віджета: *\_init()*, *\_registerEvents()*, *\_doActivate()*, *\_doDeactivate()*, *\_doDestroy()*, *setEditMode()*. - Методи, які обробляють оновлення та відображення даних віджетів: *\_promiseUpdate()*, *\_getUpdateRequestData()*, *\_processUpdateResponse(response)*, *\_processUpdateErrorResponse(error)*, *\_setContents()*. - Методи, які змінюють зовнішній вигляд віджета: *resize()*, *\_hasPadding()*.  Клас JavaScript має розташовуватися в каталозі *assets/js* і вказуватися в параметрі [*assets*](/devel/modules/file_structure/manifest#assets) (*assets/js*) у *manifest.json* файл.

en-us	#### Kiosk mode  The kiosk mode in supported frontend pages can be activated using URL parameters. For example, in dashboards:  -   `/zabbix.php?action=dashboard.view&kiosk=1` - activate kiosk mode -   `/zabbix.php?action=dashboard.view&kiosk=0` - activate normal mode
uk	#### Режим кіоску  Режим кіоску на підтримуваних зовнішніх сторінках можна активувати за допомогою параметрів URL-адреси. Наприклад, на інформаційних панелях:  - `/zabbix.php?action=dashboard.view&kiosk=1` - активувати режим кіоску - `/zabbix.php?action=dashboard.view&kiosk=0` - активувати звичайний режим

en-us	##### Lifecycle methods  The widget lifecycle methods are invoked by the dashboard, and at different stages of the widget's lifecycle during its existence within the dashboard.
uk	##### Методи життєвого циклу  Методи життєвого циклу віджета викликаються інформаційною панеллю та на різних етапах життєвого циклу віджета під час його існування на інформаційній панелі.

en-us	 #### Limitations  Zabbix agent for Windows does not support non-standard Windows configurations where CPUs are distributed non-uniformly across NUMA nodes. If logical CPUs are distributed non-uniformly, then CPU performance metrics may not be available for some CPUs. For example, if there are 72 logical CPUs with 2 NUMA nodes, both nodes must have 36 CPUs each.
uk	#### Обмеження  Агент Zabbix для Windows не підтримує нестандартні конфігурації Windows, де процесори розподіляються нерівномірно між вузлами NUMA. Якщо логічні ЦП розподілені нерівномірно, показники продуктивності ЦП можуть бути недоступні для деяких ЦП. Наприклад, якщо є 72 логічних ЦП з 2 вузлами NUMA, обидва вузли повинні мати по 36 ЦП кожен.

en-us	##### Linking pre-defined templates to hosts  As you may have noticed, Zabbix comes with a set of predefined templates for various OS, devices and applications. To get started with monitoring very quickly, you may link the appropriate one of them to a host, but beware that these templates need to be fine-tuned for your environment. Some checks may not be needed, and polling intervals may be way too frequent.  More information about [templates](/manual/config/templates) is available.
uk	##### Пов'язування попередньо визначених шаблонів на вузли мережі  Як ви могли помітити, Zabbix поставляється з набором попередньо визначених шаблонів для різних ОС, пристроїв і програм. Щоб дуже швидко розпочати моніторинг, ви можете зв’язати відповідний із них із вузлом мережі, але пам’ятайте, що ці шаблони потрібно точно налаштувати для вашого середовища. Деякі перевірки можуть не знадобитися, а інтервали опитування можуть бути надто частими.  Доступна додаткова інформація про [шаблони](/manual/config/templates).

en-us	#### Linking template to host  With a template ready, it only remains to add it to a host. For that, go to *Data collection → Hosts*, click on 'New host' to open its property form and find the **Templates** field.  Start typing *New template* in the *Templates* field. The name of template we have created should appear in the dropdown list. Scroll down to select. See that it appears in the *Templates* field.  ![](../../../assets/en/manual/quickstart/link_template.png)  Click *Update* in the form to save the changes. The template is now added to the host, with all entities that it holds.  This way it can be applied to any other host as well. Any changes to the items, triggers and other entities at the template level will propagate to the hosts the template is linked to.
uk	#### Пов'язування шаблону з вузлом мережі  З шаблоном готово, залишається тільки додати його на вузол мережі. Для цього перейдіть до *Збір даних → Хости*, клацніть 'New host', щоб відкрити форму його властивостей, і знайдіть поле **Шаблони**.  Почніть вводити *Новий шаблон* у полі *Шаблони*. Назва шаблону, який ми створили, має з’явитися у спадному списку. Прокрутіть вниз, щоб вибрати. Переконайтеся, що він з’явився в полі *Шаблони*.  ![](../../../assets/en/manual/quickstart/link_template.png)  Натисніть *Оновити* у формі, щоб зберегти зміни. Тепер шаблон додано до вузла мережі з усіма об’єктами, які він містить.  Таким чином його можна також застосувати до будь-якого іншого вузла мережі. Будь-які зміни в елементах даних, тригерах та інших сутностях на рівні шаблону поширюватимуться на вузли мережі, з якими пов’язано шаблон.

en-us	# > LLD rule object  The following objects are directly related to the `discoveryrule` API.
uk	# > Об'єкт правила LLD  Наступні об’єкти безпосередньо пов’язані з API «discoveryrule».

en-us	# LLD rule  This class is designed to work with low level discovery rules.  Object references:\  -   [LLD rule](/manual/api/reference/discoveryrule/object#lld_rule)  Available methods:\  -   [discoveryrule.copy](/manual/api/reference/discoveryrule/copy) -     copying LLD rules -   [discoveryrule.create](/manual/api/reference/discoveryrule/create) -     creating new LLD rules -   [discoveryrule.delete](/manual/api/reference/discoveryrule/delete) -     deleting LLD rules -   [discoveryrule.get](/manual/api/reference/discoveryrule/get) -     retrieving LLD rules -   [discoveryrule.update](/manual/api/reference/discoveryrule/update) -     updating LLD rules
uk	# Правило LLD  Цей клас призначений для роботи з правилами виявлення низького рівня.  Посилання на об'єкти:\  - [Правило LLD](/manual/api/reference/discoveryrule/object#lld_rule)  Доступні методи:\  - [discoveryrule.copy](/manual/api/reference/discoveryrule/copy) - копіювання правил LLD - [discoveryrule.create](/manual/api/reference/discoveryrule/create) - створення нових правил LLD - [discoveryrule.delete](/manual/api/reference/discoveryrule/delete) - видалення правил LLD - [discoveryrule.get](/manual/api/reference/discoveryrule/get) - отримання правил LLD - [discoveryrule.update](/manual/api/reference/discoveryrule/update) - оновлення правил LLD

en-us	### Log history  The log history object has the following properties.  |Property|[Type](/manual/api/reference_commentary#data_types)|Description| |--|--|------| |id|string|ID of the history entry.| |clock|timestamp|Time when that value was received.| |itemid|string|ID of the related item.| |logeventid|integer|Windows event log entry ID.| |ns|integer|Nanoseconds when the value was received.| |severity|integer|Windows event log entry level.| |source|string|Windows event log entry source.| |timestamp|timestamp|Windows event log entry time.| |value|text|Received value.|
uk	### Журнал журналу  Об’єкт історії журналу має такі властивості.  |Властивість|[Тип](/manual/api/reference_commentary#data_types)|Опис| |--|--|------| |id|рядок|ID запису історії.| |годинник|мітка часу|Час, коли це значення було отримано.| |itemid|рядок|ID пов'язаного елемента.| |logeventid|ціле|Ідентифікатор запису журналу подій Windows.| |ns|ціле|Наносекунди, коли було отримано значення.| |серйозність|ціле|Рівень запису журналу подій Windows.| |джерело|рядок|Джерело запису журналу подій Windows.| |мітка часу|мітка часу|Час запису журналу подій Windows.| |значення|текст|Отримане значення.|

en-us	#### Login  ![](../../../assets/en/manual/quickstart/login.png){width="350"}  This is the Zabbix welcome screen. Enter the user name **Admin** with password **zabbix** to log in as a [Zabbix superuser](/manual/config/users_and_usergroups/permissions). Access to all menu sections will be granted.
uk	#### Вхід  ![](../../../assets/en/manual/quickstart/login.png){width="350"}  Це екран привітання Zabbix. Введіть ім’я користувача **Admin** з паролем **zabbix**, щоб увійти як [суперкористувач Zabbix](/manual/config/users_and_usergroups/permissions). Буде надано доступ до всіх розділів меню.

en-us	###      Log level control targets     *process-type*   All processes of specified type (active checks, collector, listener)     *process-type,N*   Process type and number (e.g., listener,3)     *pid*   Process identifier, up to 65535. For larger values specify target as "process-type,N"  ```{=html} <!-- --> ``` **-p**, **--print**   Print known items and exit. For each item either generic defaults are used, or specific defaults for testing are supplied. These defaults are listed in square brackets as item key parameters. Returned values are enclosed in square brackets and prefixed with the type of the returned value, separated by a pipe character. For user parameters type is always **t**, as the agent can not determine all possible return values. Items, displayed as working, are not guaranteed to work from the Zabbix server or zabbix\_get when querying a running agent daemon as permissions or environment may be different. Returned value types are:     d   Number with a decimal part.     m   Not supported. This could be caused by querying an item that only works in the active mode like a log monitoring item or an item that requires multiple collected values. Permission issues or incorrect user parameters could also result in the not supported state.     s   Text. Maximum length not limited.     t   Text. Same as **s**.     u   Unsigned integer.  **-t**, **--test** *item-key*   Test single item and exit. See **--print** for output description.  **-h**, **--help**   Display this help and exit.  **-V**, **--version**   Output version information and exit.  [ ]{#lbAH}
uk	###      Цілі контролю рівня журналу     *process-type*   Всі процеси вказаного типу (активні перевірки, колектор, слухач)     *process-type,N*   Тип та номер процесу (наприклад, listener,3)     *pid*   Ідентифікатор процесу, до 65535. Для більших значень вкажіть ціль у вигляді "process-type,N"  ```{=html} <!-- --> ``` **-p**, **--print**   Вивести відомі елементи і вийти. Для кожного елемента використовуються або загальні значення за замовчуванням або специфічні значення за замовчуванням для тестування. Ці значення за замовчуванням перераховано у квадратних дужках як ключові параметри елемента. Значення, що повертаються взято у квадратні дужки і додано префікс з типом значення, що повертається значення, відокремленого символом труби. Для параметрів користувача тип завжди **t**, оскільки агент не може визначити всі можливі значення, що повертаються. Елементи, відображені як робочі, не гарантують роботу з сервера Zabbix або zabbix\_get при запиті до запущеного демона агента, оскільки дозволи або середовище може відрізнятися. Типи значень, що повертаються:     d   Число з десятковою частиною.     m   Не підтримується. Це може бути спричинено запитом елемента, який працює лише в активному режимі, наприклад, елемент моніторингу журналу або елемент, який вимагає декілька зібраних значень. Проблеми з правами доступу або неправильні параметри користувача також можуть призвести до стану "не підтримується".      s   Текст. Максимальна довжина не обмежена.     t   Текст. Те саме, що і **s**.     u   Ціле число без знаку.  **-t**, **--test** *item-key*   Перевірити один елемент і вийти. Дивіться **--print** для опису виводу.  **-h**, **--help**   Відобразити цю довідку і вийти.  **-V**, **--version**   Вивести інформацію про версію і завершити роботу.  [ ]{#lbAH}

en-us	###      Log level control targets     *process-type*   All processes of specified type (alerter, alert manager, configuration syncer, discoverer, escalator, history syncer, housekeeper, http poller, icmp pinger, ipmi manager, ipmi poller, java poller, lld manager, lld worker, poller, preprocessing manager, preprocessing worker, proxy poller, self-monitoring, snmp trapper, task manager, timer, trapper, unreachable poller, vmware collector)     *process-type,N*   Process type and number (e.g., poller,3)     *pid*   Process identifier, up to 65535. For larger values specify target as "process-type,N"  ```{=html} <!-- --> ``` [ ]{#lbAH}
uk	###     Цілі контролю рівня журналу     *process-type* Усі процеси вказаного типу (alerter, alert manager,configuration syncer, discoverer, escalator, history syncer,housekeeper, http poller, icmp pinger, ipmi manager, ipmi poller,java poller, lld manager, lld worker, poller, preprocessing manager,preprocessing worker, proxy poller, self-monitoring, snmp trapper,task manager, timer, trapper, unreachable poller, vmware collector)     *process-type,N* Тип і номер процесу (наприклад, poller, 3)     *pid* Ідентифікатор процесу, до 65535. Для більших значень укажіть ціль як "process-type,N"  ```{=html} <!-- --> ``` [ ]{#lbAH}

en-us	###      Log level control targets     *process-type*   All processes of specified type (configuration syncer, data sender, discoverer, history syncer, housekeeper, http poller, icmp pinger, ipmi manager, ipmi poller, java poller, poller, self-monitoring, snmp trapper, task manager, trapper, unreachable poller, vmware collector)     *process-type,N*   Process type and number (e.g., poller,3)     *pid*   Process identifier, up to 65535. For larger values specify target as "process-type,N"  ```{=html} <!-- --> ``` **-h**, **--help**   Display this help and exit.  **-V**, **--version**   Output version information and exit.  [ ]{#lbAH}
uk	 ###     Цілі контролю рівня журналу     *process-type* Усі процеси вказаного типу (configuration syncer, data sender, discoverer, history syncer, housekeeper, http poller, icmp pinger, ipmi manager, ipmi poller, java poller, poller, self-monitoring, snmp trapper, task manager, trapper, unreachable poller, vmware collector)     *process-type,N* Тип і номер процесу (наприклад, poller, 3)     *pid* Ідентифікатор процесу, до 65535. Для більших значень укажіть ціль як "process-type,N"  ```{=html} <!-- --> ``` **-h**, **--help** Відобразити цю довідку та вийти.  **-V**, **--version** Виведіть інформацію про версію та вийдіть.  [ ]{#lbAH}

en-us	# maintenance.create
uk	# maintenance.create

en-us	# maintenance.delete
uk	# maintenance.delete

en-us	# maintenance.get
uk	# maintenance.get

en-us	# Maintenance  This class is designed to work with maintenances.  Object references:\  -   [Maintenance](/manual/api/reference/maintenance/object#maintenance) -   [Time period](/manual/api/reference/maintenance/object#time_period)  Available methods:\  -   [maintenance.create](/manual/api/reference/maintenance/create) -     creating new maintenances -   [maintenance.delete](/manual/api/reference/maintenance/delete) -     deleting maintenances -   [maintenance.get](/manual/api/reference/maintenance/get) -     retrieving maintenances -   [maintenance.update](/manual/api/reference/maintenance/update) -     updating maintenances
uk	# Обслуговування  Цей клас призначений для роботи з обслуговуванням.  Посилання на об'єкти:\  - [Технічне обслуговування](/manual/api/reference/maintenance/object#maintenance) - [Період часу](/manual/api/reference/maintenance/object#time_period)  Доступні методи:\  - [maintenance.create](/manual/api/reference/maintenance/create) -      створення нових засобів обслуговування - [maintenance.delete](/manual/api/reference/maintenance/delete) -      видалення технічного обслуговування - [maintenance.get](/manual/api/reference/maintenance/get) -      отримання технічного обслуговування - [maintenance.update](/manual/api/reference/maintenance/update) -      оновлення технічного обслуговування

en-us	### Managing HA cluster  The current status of the HA cluster can be managed using the dedicated [runtime control](/manual/concepts/server#runtime_control) options:  -   `ha_status` - log HA cluster status in the Zabbix server log (and to stdout) -   `ha_remove_node=target` - remove an HA node identified by its     \<target\> - number of the node in the list (the number can be     obtained from the output of running ha\_status), e.g.:  ``` zabbix_server -R ha_remove_node=2 ```  Note that active/standby nodes cannot be removed.  -   `ha_set_failover_delay=delay` - set HA failover delay (between 10 seconds and 15 minutes; time     suffixes are supported, e.g. 10s, 1m)  Node status can be monitored:  -   in *Reports* → *[System     information](/manual/web_interface/frontend_sections/reports/status_of_zabbix#status_of_ha_cluster_nodes)* -   in the *System information* dashboard widget -   using the `ha_status` runtime control option of the server (see     above).  The `zabbix[cluster,discovery,nodes]` internal item can be used for node discovery, as it returns a JSON with the high-availability node information.
uk	### Керування кластером високої доступності  Поточним статусом кластера HA можна керувати за допомогою спеціальних опцій [контролю виконання](/manual/concepts/server#runtime_control):  - `ha_status` - виводити стан кластера HA в журнал Zabbix сервера (і в стандартний потік виводу) - `ha_remove_node=target` - видалити вузол HA, що ідентифікується за його     \<target\> - номер вузла в списку (номер може бути     отримано з результату запуску ha\_status), наприклад:  ``` zabbix_server -R ha_remove_node=2 ```  Зверніть увагу, що активні/резервні вузли не можна видалити.  - `ha_set_failover_delay=delay` - встановлює затримку перемикання на інший ресурс (від 10 секунд до 15 хвилин;     підтримуються суфікси часу, наприклад. 10s, 1m)  Статус вузла можна відстежувати:  - у *Звіти* → *[Інформація про систему](/manual/web_interface/frontend_sections/reports/status_of_zabbix#status_of_ha_cluster_nodes)* - у віджеті інформаційної панелі *Інформація про систему* - за допомогою опції контролю виконяння ha_status (див     вище).  Для виявлення нод можна використовувати внутрішній елемент даних zabbix[cluster,discovery,nodes], оскільки він повертає JSON дані з інформацією про ноди високої доступності.