en-us	 ### actions  Actions to register with the module. Defining *class* object key for each action is required, other action keys are optional.  *Type*: Object  Supported object keys if *[type](#type)* is *module*:  -   **write.your.action.name** (object) - action name, should be written in lowercase [a-z], separating words with dots.     Supports the keys:     - **class** (string; required) - action class name.     - **layout** (string) - action layout. Supported values: *layout.json*, *layout.htmlpage* (default), *null*.     - **view** (string) - action view.  *Example*:  ```json "actions": {     "module.example.list": {         "class": "ExampleList",         "view": "example.list",         "layout": "layout.htmlpage"         }     } ```  Supported object keys if *[type](#type)* is *widget*:  -   **widget.{id}.view** (object) - file and class name for widget view. Replace **{id}** with the widget's [id](#id) value (for example, *widget.example_clock.view*).     Supports the keys:     - **class** (string; required) - action class name for widget view mode to extend the default CControllerDashboardWidgetView class.       The class source file must be located in the *actions* directory.     - **view** (string) - widget view. Must be located in the *views* directory.       If the view file is *widget.view.php*, which is expected by default, this parameter maybe omitted.       If using a different name, specify it here. -   **widget.{id}.edit** (object) - file name for widget configuration view. Replace **{id}** with the widget's [id](#id) value (for example, *widget.example_clock.edit*).     Supports the keys:     - **class** (string; required) - action class name for widget configuration view mode. The class source file must be located in the *actions* directory.     - **view** (string) - widget configuration view. Must be located in the *views* directory.       If the view file is *widget.edit.php*, which is expected by default, this parameter maybe omitted.       If using a different name, specify it here.  *Example*:   ```json "actions": {     "widget.tophosts.view": {         "class": "WidgetView"     },     "widget.tophosts.column.edit": {         "class": "ColumnEdit",         "view": "column.edit",         "layout": "layout.json"     } } ```
ca	### accions  Accions per registrar-se al mòdul. Cal definir la clau d'objecte *classe* per a cada acció, les altres claus d'acció són opcionals.  *Tipus*: Objecte  Tecles d'objecte admeses si *[tipus](#type)* és *mòdul*:  - **write.your.action.name** (objecte) - nom de l'acció, s'ha d'escriure en minúscula [a-z], separant les paraules amb punts.      Admet les tecles:      - **classe** (cadena; obligatori) - nom de la classe d'acció.      - **disposició** (cadena) - disseny d'acció. Valors admesos: *layout.json*, *layout.htmlpage* (per defecte), *null*.      - **layout** (cadena) - vista d'acció.  *Exemple*:  ```json "actions": {     "module.example.list": {         "class": "ExampleList",         "view": "example.list",         "layout": "layout.htmlpage"         }     } ```  Tecles d'objecte admeses si *[tipus](#type)* és *giny*:  - **widget.{id}.view** (objecte) - nom de fitxer i classe per a la vista de widget. Substituïu **{id}** pel valor [id](#id) del giny (per exemple, *widget.example_clock.view*).      Admet les tecles:      - **classe** (cadena; obligatori) - nom de classe d'acció per al mode de visualització de widgets per ampliar la classe CControllerDashboardWidgetView predeterminada.        El fitxer font de la classe s'ha d'ubicar al directori *accions*.      - **visualització** (cadena) - vista de giny. S'ha d'ubicar al directori *views*.        Si el fitxer de visualització és *widget.view.php*, que s'espera per defecte, aquest paràmetre potser s'omet.        Si empreu un nom diferent, especifiqueu-lo aquí. - **widget.{id}.edit** (objecte) - nom del fitxer per a la vista de configuració del giny. Substituïu **{id}** pel valor [id](#id) del giny (per exemple, *widget.example_clock.edit*).      Admet les claus:      - **classe** (cadena; obligatori) - nom de la classe d'acció per al mode de visualització de configuració del widget. El fitxer font de la classe s'ha d'ubicar al directori *actions*.      - **visualització** (cadena) - vista de configuració del widget. S'ha d'ubicar al directori *views*.        Si el fitxer de visualització és *widget.edit.php*, que s'espera per defecte, aquest paràmetre potser s'omet.        Si empreu un nom diferent, especifiqueu-lo aquí.  *Exemple*:  ```json "actions": {     "widget.tophosts.view": {         "class": "WidgetView"     },     "widget.tophosts.column.edit": {         "class": "ColumnEdit",         "view": "column.edit",         "layout": "layout.json"     } } ```

en-us	#### Actions and alerts  Define actions and operations to notify users about certain events or automatically execute remote commands. Gain access to information about generated alerts and their receivers.  [Action API](/manual/api/reference/action) | [Alert API](/manual/api/reference/alert)
ca	#### Accions i alertes  Definir les accions i les operacions per informar als usuaris de determinats esdeveniments o executar automàticament comandes a distància. Accediu a les informacions de les alertes generades i dels seus destinataris.  [API Acció](/manual/api/reference/action) | [API Alerta](/manual/api/reference/alert)

en-us	#### Actions disabled due to deleted objects  If a certain object (host, template, trigger, etc.) used in an action condition/operation is deleted, the condition/operation is removed and the action is disabled to avoid incorrect execution of the action. The action can be re-enabled by the user.  This behavior takes place when deleting:  -   host groups ("host group" condition, "remote command" operation on a specific host group); -   hosts ("host" condition, "remote command" operation on a specific host); -   templates ("template" condition, "link to template" and "unlink from template" operations); -   triggers ("trigger" condition); -   discovery rules (when using "discovery rule" and "discovery check" conditions).  :::notetip If a remote command has many target hosts, and we delete one of them, only this host will be removed from the target list, the operation itself will remain. But, if it's the only host, the operation will be removed, too. The same goes for "link to template" and "unlink from template" operations. :::  Actions are not disabled when deleting a user or user group used in a "send message" operation.
ca	#### Accions desactivades per objectes esborrats  Si s'esborra un determinat objecte (equip, model, trigger, etc.) emprat en una condició/operació d'acció, s'esborrarà la condició/operació i l'acció es desactivarà per evitar una execució incorrecta de l'acció. L'acció pot ésser reactivada per l'usuari.  Aquest comportament es produeix en esborrar:  - grups d'equips ("condició de grup d'equips", operació de "control remot" en un grup específic d'equips); - equips ("condició d'equip", operació de "control remot" en un equip específic); - models (condició "model", operacions "Enllaçar al model" i "Desenllaçar del model"); - triggers (condició "trigger"); - regles de descoberta (quan s'empren les condicions de "regla de descoberta" i "verificació de descoberta").  *Nota*: Si una comanda remota té diversos equips de destinació i n'esborrem un, només s'esborrarà aquest equip de la llista de destí, l'operació en si es mantindrà. Però, si és l'únic equip, l'operació també s'esborrarà. El mateix passa amb les operacions "enllaç al model" i "desenllaç del model".  Les accions no es desactiven en esborrar un usuari o grup d'usuaris emprat en una operació d'"enviament de missatge".

en-us	#### Actions  Discovery events can be the basis of relevant [actions](/manual/config/notifications/action), such as:  -   Sending notifications -   Adding/removing hosts -   Enabling/disabling hosts -   Adding hosts to a group -   Removing hosts from a group -   Linking hosts to/unlinking from a template -   Executing remote scripts  These actions can be configured with respect to the device type, IP, status, uptime/downtime, etc. For full details on configuring actions for network-discovery based events, see action [operation](/manual/config/notifications/action/operation) and [conditions](/manual/config/notifications/action/conditions) pages.  Since network discovery actions are event-based, they will be triggered both when a discovered host is online and when it is offline. It is highly  recommended to add an action [condition](/manual/config/notifications/action/conditions) *Discovery status: up* to avoid such actions as *Add host* being triggered upon *Service Lost*/*Service Down* events.  Otherwise, if a discovered host is manually removed, it will still generate *Service Lost*/*Service Down* events and will be recreated during the next discovery cycle.  ::: noteclassic Linking a discovered host to templates will fail collectively if any of the linkable templates has a unique entity (e.g. item key) that is the same as a unique entity (e.g. item key) already existing on the host or on another of the linkable templates. :::
ca	#### Accions  Els esdeveniments de descoberta poden ésser la base per a [accions](/manual/config/notifications/action) rellevants, com ara:  - Enviament de notificacions - Afegir/esborrar equips - Activar/desactivar equips - Afegir equips a un grup - Esborrar d'equips d'un grup - Enllaçar (o desenllaçar) equips a un model - Execució remota d'scripts  Aquestes accions es poden configurar en funció del tipus de dispositiu, adreça IP, estat, amunt/avall, etc. Per obtindre més informació sobre la configuració d'accions per a esdeveniments basats en descoberta de xarxa, consulteu les pàgines dels termes [operació](/manual/config/notifications/action/operation) i [condicions](/manual/config/notifications/action).  Com que les accions de descoberta de xarxa es basen en esdeveniments, s'activaran tant bon punt un equip descobert sigui en línia com quan sigui fora de línia. És molt recomanable afegir una [condició](/manual/config/notifications/action/conditions) *Estat de descoberta: actiu* acció per evitar que s'activin accions com ara *Afegeix equip* en esdeveniments com *Servei perdut*/*Servei caigut*. En cas contrari, si s'esborra manualment un equip descobert, encara generarà esdeveniments *Servei perdut*/*Servei caigut* i es tornarà a crear al següent cicle de descoberta.  :::noteclassic L'enllaç d'un equip descobert a plantilles fallarà col·lectivament si una de les plantilles vinculables té una entitat única (per exemple, clau d'element) que és idèntica a una altra entitat única (per exemple, clau d'element) que ja existeix a l'equip o en un altre dels models enllaçables. :::

en-us	#### Actions if communication fails between agent and server  Each matching line from `log[]` and `logrt[]` item and a result of each `log.count[]` and `logrt.count[]` item check requires a free slot in the designated 50% area in the agent send buffer. The buffer elements are regularly sent to server (or proxy) and the buffer slots are free again.  While there are free slots in the designated log area in the agent send buffer and communication fails between agent and server (or proxy) the log monitoring results are accumulated in the send buffer. This helps to mitigate short communication failures.  During longer communication failures all log slots get occupied and the following actions are taken:  -   `log[]` and `logrt[]` item checks are stopped. When communication is     restored and free slots in the buffer are available the checks are     resumed from the previous position. No matching lines are lost, they     are just reported later. -   `log.count[]` and `logrt.count[]` checks are stopped if     `maxdelay = 0` (default). Behavior is similar to `log[]` and     `logrt[]` items as described above. Note that this can affect     `log.count[]` and `logrt.count[]` results: for example, one check     counts 100 matching lines in a log file, but as there are no free     slots in the buffer the check is stopped. When communication is     restored the agent counts the same 100 matching lines and also 70     new matching lines. The agent now sends count = 170 as if they were     found in one check. -   `log.count[]` and `logrt.count[]` checks with `maxdelay > 0`: if     there was no "jump" during the check, then behavior is similar to     described above. If a "jump" over log file lines took place then the     position after "jump" is kept and the counted result is discarded.     So, the agent tries to keep up with a growing log file even in case     of communication failure.
ca	#### Accions a emprendre si la comunicació entre l'agent i el servidor falla  Cada línia coincident de l'element `log[]` i `logrt[]` i el resultat de cada `log.count[]` i `logrt.count[]` requereix un espai lliure a l'àrea designada del 50% a buffer que envia l'agent. Els elements de memòria intermèdia s'envien regularment al servidor (o al proxy) i els espais de memòria de memòria intermèdia tornen a ésser lliures.  Tot i que hi ha espais lliures a l'àrea de fitxer de registre designada a la memòria intermèdia d'enviament de l'agent i la comunicació entre l'agent i el servidor (o el proxy), els registres de resultats de la supervisió de fitxers s'acumulen a la memòria intermèdia d'enviament. Això ajuda a esmorteir els errors de comunicació puntuals.  Durant errors de comunicació més llargs, totes les ubicacions de registre són ocupades i es duen a terme les accions següents:  - Les comprovacions dels elements `log[]` i `logrt[]` són aturades. Quan es restableix la comunicació i s'alliberen els espais a la memòria intermèdia, les comprovacions es reprenen des de la posició anterior. No es perd cap filera coincident, només es trasllada. - Les comprovacions `log.count[]` i `logrt.count[]` s'aturen si `maxdelay = 0` (per defecte). El comportament és similar als elements `log[]` i `logrt[]` descrits anteriorment. Tingueu en compte que això pot afectar els resultats de `log.count[]` i `logrt.count[]`: per exemple, una comprovació compta 100 línies coincidents en un fitxer de registre, però com que no hi ha espai lliure a la memòria intermèdia, el control s'atura. Quan es restableix la comunicació, l'agent compta les mateixes 100 línies coincidents i 70 noves línies coincidents. L'agent ara envia counter=170 com si es trobés en una validació. - Les comprovacions `log.count[]` i `logrt.count[]` amb `maxdelay > 0`: si no hi ha hagut cap "salt" durant la comprovació, el comportament és similar al descrit anteriorment. Si s'ha produït un "salt" per sobre de les línies del fitxer de registre, es conserva la posició després del "salt" i es descarta el resultat comptat. Per tant, l'agent intenta mantindre's al dia amb un fitxer de registre en expansió, fins i tot quan la comunicació falla.

en-us	#### Actions  In [actions](/manual/config/notifications/action), user macros can be used in the following fields:  |Location|<|Multiple macros/mix with text^[1](supported_by_location_user#footnotes)^| |-|------------------------------|----------| |Trigger-based notifications and commands|<|yes| |Trigger-based internal notifications|<|yes| |Problem update notifications|<|yes| |Service-based notifications and commands|<|yes| |Service update notifications|<|yes| |Time period condition|<|no| |*Operations*|<|<| | |Default operation step duration|no| |^|Step duration|no|
ca	#### Accions  Dins les  [accions](/manual/config/notifications/action), les macros d'usuari poden emprar-se als camps següents:  |Ubicació|<|Múltiples macros/barreja amb text^[1](supported_by_location_user#footnotes)^| |-|------------------------------|----------| |Notificacions i comandes basades en triggers|<|sí| |Notificacions internes basades en triggers|<|sí| |Notificacions d'actualització de problema|<|sí| |Notificacions i comandes basades en serveis|<|sí| |Notificacions d'actualització dels serveis|<|sí| |Condició de període de temps|<|no| |*Operacions*|<|<| | |Durada de l'etapa d'operació per defecte|no| |^|Durada de l'etapa|no|

en-us	 ### Actions  |Macro|Supported in|Description| |--|--------|--------| |{ACTION.ID}|→ Trigger-based notifications and commands<br>→ Problem update notifications and commands<br>→ Service-based notifications and commands<br>→ Service update notifications and commands<br>→ Discovery notifications and commands<br>→ Autoregistration notifications and commands<br>→ Internal notifications|*Numeric ID of the triggered action.*| |{ACTION.NAME}|→ Trigger-based notifications and commands<br>→ Problem update notifications and commands<br>→ Service-based notifications and commands<br>→ Service update notifications and commands<br>→ Discovery notifications and commands<br>→ Autoregistration notifications and commands<br>→ Internal notifications|*Name of the triggered action.*| |{ALERT.MESSAGE}|→ Alert script parameters<br>→ Webhook parameters|*'Default message' value from action configuration.*| |{ALERT.SENDTO}|→ Alert script parameters<br>→ Webhook parameters|*'Send to' value from user media configuration.*| |{ALERT.SUBJECT}|→ Alert script parameters<br>→ Webhook parameters|*'Default subject' value from action configuration.*| |{ESC.HISTORY} |→ Trigger-based notifications and commands<br>→ Problem update notifications and commands<br>→ Service-based notifications and commands<br>→ Service update notifications and commands<br>→ Internal notifications |*Escalation history. Log of previously sent messages.*<br>Shows previously sent notifications, on which escalation step they were sent and their status (*sent*, *in progress* or *failed*).|
ca	# Accions  |Macro|Admesa a|Descripció| |--|------|------| |{ACTION.ID}|→ Notificacions i ordres basades en triggers<br>→ Notificacions i ordres d'actualització de problemes<br>→ Notificacions i ordres basades en servei<br>→ Notificacions i ordres d'actualització del servei<br>→ Notificacions i ordres de descoberta <br>→ Notificacions i ordres d'autoregistre<br>→ Notificacions internes|*ID numèric de l'acció activada.*| |{ACTION.NAME}|→ Notificacions i ordres basades en triggers<br>→ Notificacions i ordres d'actualització de problemes<br>→ Notificacions i ordres basades en servei<br>→ Notificacions i ordres d'actualització del servei<br>→ Notificacions i ordres de descoberta <br>→ Notificacions i ordres d'autoregistre<br>→ Notificacions internes<br>→  Paràmetres de Webhook|*Nom de l'acció activada.*| |{ALERT.MESSAGE}|→ Paràmetres de l'script d'alertesbr>→  Paràmetres de Webhook|*Valor 'Missatge predeterminat' de la configuració de l'acció.*| |{ALERT.SENDTO}|→ Paràmetres de l'script d'alertesbr>→  Paràmetres de Webhook|*Valor 'Envia a' de la configuració dels suports de l'usuari.*| |{ALERT.SUBJECT}|→ Paràmetres de l'script d'alertesbr>→  Paràmetres de Webhook|*Valor 'assumpte predeterminat' de la configuració de l'acció.*| |{ESC.HISTORY} \|→ Notificacions i ordres basades en triggers<br>→ Notificacions i ordres d'actualització de problemes<br>→ Notificacions i ordres basades en servei<br>→ Notificacions i ordres d'actualització del servei<br>→ Notificacions internes \|*Historial d'escalat. Registre dels missatges enviats anteriorment.*<br>Mostra les notificacions enviades anteriorment, en quin pas d'escalat s'han enviat i el seu estat (*enviada*, *en curs* o *fallida*).|

en-us	### Action  The action object has the following properties.  |Property|[Type](/manual/api/reference_commentary#data_types)|Description| |--|--|------| |actionid|string|ID of the action.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *read-only*<br>- *required* for update operations| |esc\_period|string|Default operation step duration. Must be at least 60 seconds. Accepts seconds, time unit with suffix, or a user macro.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `eventsource` is set to "event created by a trigger", "internal event", or "event created on service status update"| |eventsource|integer|Type of events that the action will handle.<br><br>Refer to the [event `source` property](/manual/api/reference/event/object#event) for a list of supported event types.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *constant*<br>- *required* for create operations| |name|string|Name of the action.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* for create operations| |status|integer|Whether the action is enabled or disabled.<br><br>Possible values:<br>0 - *(default)* enabled;<br>1 - disabled.| |pause\_symptoms|integer|Whether to pause escalation if event is a symptom event.<br><br>Possible values:<br>0 - Don't pause escalation for symptom problems;<br>1 - *(default)* Pause escalation for symptom problems.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `eventsource` is set to "event created by a trigger"| |pause\_suppressed|integer|Whether to pause escalation during maintenance periods or not.<br><br>Possible values:<br>0 - Don't pause escalation;<br>1 - *(default)* Pause escalation.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `eventsource` is set to "event created by a trigger"| |notify\_if\_canceled|integer|Whether to notify when escalation is canceled.<br><br>Possible values:<br>0 - Don't notify when escalation is canceled;<br>1 - *(default)* Notify when escalation is canceled.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `eventsource` is set to "event created by a trigger"|
ca	### Acció  Lobjecte acció té les propietats següents.  |Propietat|[Tipus](/manual/api/reference_commentary#data_types)|Descripció| |--|--|------| |actionid|cadena|ID de l'acció.<br><br>[Comportament de la propietat](/manual/api/reference_commentary#property-behavior):<br>- *només lectura*<br>- *obligatori* per a operacions d'actualització| |esc\_period|cadena|Durada de la passa de l'operació per defecte. Ha de ser com a mínim de 60 segons. Accepta segons, unitat de temps amb sufix o una macro d'usuari.<br><br>[Comportament de la propietat](/manual/api/reference_commentary#property-behavior):<br>- *admès* si `eventsource` és establert en "esdeveniment creat per un trigger", "esdeveniment intern" o "esdeveniment creat a l'actualització de l'estat del servei"| |eventsource|enter|Tipus d'esdeveniments que gestionarà l'acció.<br><br>Consulteu la [propietat `source` de l'esdeveniment](/manual/api/reference/event/object#event) per obtindre una llista d'esdeveniments compatibles tipus.<br><br>[Comportament de la propietat](/manual/api/reference_commentary#property-behavior):<br>- *constant*<br>- *obligatori* per a operacions de creació| |name|cadena|Nom de l'acció.<br><br>[Comportament de la propietat](/manual/api/reference_commentary#property-behavior):<br>- *obligatori* per a les operacions de creació| |status|enter|Si l'acció és activada o desactivada.<br><br>Valors possibles:<br>0 - *(per defecte)* activat;<br>1 - desactivat.| |pause\_symptoms|enter|Si s'ha d'aturar l'escalada si l'esdeveniment és un esdeveniment símptoma.<br><br>Valors possibles:<br>0 - No atureu l'escalada per problemes de símptomes;<br>1 - *(per defecte)* Posa en pausa l'escalada per problemes de símptomes.<br><br>[Comportament de la propietat](/manual/api/reference_commentary#property-behavior):<br>- *admès* si `eventsource` s'estableix com a "esdeveniment creat per un trigger"| |pause\_suppressed|enter|Si s'ha d'aturar l'escalada durant els períodes de manteniment o no.<br><br>Valors possibles:<br>0 - No atureu l'escalada;<br>1 - *(per defecte)* Atura l'escalada. <br><br>[Comportament de la propietat](/manual/api/reference_commentary#property-behavior):<br>- *admès* si `eventsource` és establert en "esdeveniment creat per un trigger"| |notify\_if\_canceled|enter|Si cal notificar quan es cancel·li l'escalada.<br><br>Valors possibles:<br>0 - No aviseu quan es cancel·li l'escalada;<br>1 - *(per defecte)* Notifiqueu quan es cancel·li l'escalada.<br><br>[Comportament de la propietat](/manual/api/reference_commentary#property-behavior):<br>- *admès* si `eventsource` s'estableix com a "esdeveniment creat per un trigger"|

en-us	### Action  The action object has the following properties:  |Property|[Type](/manual/api/reference_commentary#data_types)|Description| |--|--|------| |name|string|Name of the action.<br><br>Possible values if `type` of [Role object](#role) is set to "User", "Admin", or "Super admin:<br>`edit_dashboards` - Create and edit dashboards;<br>`edit_maps` - Create and edit maps;<br>`add_problem_comments` - Add problem comments;<br>`change_severity` - Change problem severity;<br>`acknowledge_problems` - Acknowledge problems;<br>`suppress_problems` - Suppress problems;<br>`close_problems` - Close problems;<br>`execute_scripts` - Execute scripts;<br>`manage_api_tokens` - Manage API tokens.<br><br>Possible values if `type` of [Role object](#role) is set to "Admin" or "Super admin":<br>`edit_maintenance` - Create and edit maintenances;<br>`manage_scheduled_reports` - Manage scheduled reports,<br>`manage_sla` - Manage SLA.<br><br>Possible values if `type` of [Role object](#role) is set to "User" or "Admin":<br>`invoke_execute_now` - allows to execute item checks for users that have only read permissions on host.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*| |status|integer|Whether access to perform the action is enabled.<br><br>Possible values:<br>0 - Disabled;<br>1 - *(default)* Enabled.|
ca	### Acció  L'objecte té les propietats següents:  |Propietat|[Tipus](/manual/api/reference_commentary#data_types)|Descripció| |--|--|------| |name|string|Nom de l'acció.<br><br>Valors possibles per a usuaris de tot tipus:<br>`edit_dashboards` - Crear i editar taulers de control ;<br> `edit_maps` - Crear i editar mapes;<br>`add_problem_comments` - Afegeix comentaris de problemes;<br>`change_severity` - Canvia la gravetat del problema;<br>`acknowledge_problems` - Reconeix els problemes dels problemes;<br>`close_problems` - Tanca problemes; <br>`execute_scripts`: executa scripts;<br>`manage_api_tokens`: gestiona els testimonis de l'API.<br><br>Els valors només són possibles per als usuaris dels tipus d'usuari "Admin" i "Super admin":<br>` edit_maintenance` - Crear i editar manteniments;<br>`manage_scheduled_reports` - Gestionar informes programats,<br>`manage_sla` - Gestionar SLA.<br><br>Valors possibles si `type` de l'[objecte Rol](#role) és "User" o "Admin":<br>`invoke_execute_now` - permet executar els elements marcats per usuaris que tenen només permisos de lectura a l'equip.<br><br>[Comportament de la propietat](/manual/api/reference_commentary#property-behavior):<br>- *obligatori*| |status|integer|Indica si l'accés per dur a terme l'acció és habilitat.<br><br>Valors possibles:<br>0 - Desactivat;<br>1 - *(per defecte)* Activat.|

en-us	# Action  This class is designed to work with actions.  Object references:\  -   [Action](/manual/api/reference/action/object#action) -   [Action     condition](/manual/api/reference/action/object#action_condition) -   [Action     operation](/manual/api/reference/action/object#action_operation)  Available methods:\  -   [action.create](/manual/api/reference/action/create) - create new     actions -   [action.delete](/manual/api/reference/action/delete) - delete     actions -   [action.get](/manual/api/reference/action/get) - retrieve actions -   [action.update](/manual/api/reference/action/update) - update     actions
ca	# Acció  Aquesta classe és dissenyada per treballar amb accions.  Referències d'objectes:\  - [Action](/manual/api/reference/action/object#action) - [Action  condition](/manual/api/reference/action/object#action_condition) - [Action  operation](/manual/api/reference/action/object#action_operation)   Mètodes disponibles:\  - [action.create](/manual/api/reference/action/create) - crear accions noves - [action.delete](/manual/api/reference/action/delete) - esborrar accions - [action.get](/manual/api/reference/action/get) -recuperar accions - [action.update](/manual/api/reference/action/update) - actualitzar accions

en-us	# action.update
ca	# action.update

en-us	### Action update operation  The action update operation object defines an operation that will be performed when a problem is updated (commented upon, acknowledged, severity changed, or manually closed). Update operations are possible **only** for trigger and service actions. It has the following properties.  |Property|[Type](/manual/api/reference_commentary#data_types)|Description| |--|--|------| |operationtype|integer|Type of operation.<br><br>Possible values:<br>0 - send message;<br>1 - global script;<br>12 - notify all involved.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required*| |opcommand|object|Global script to execute.<br><br>The global script must have the `scriptid` property defined.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `operationtype` is set to "global script"| |opcommand\_grp|array|Host groups to run global scripts on.<br><br>The host groups must have the `groupid` property defined.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `eventsource` of [Action object](#action) is set to "event created by a trigger", and `operationtype` is set to "global script", and `opcommand_hst` is not set| |opcommand\_hst|array|Host to run global scripts on.<br><br>The hosts must have the `hostid` property defined.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `eventsource` of [Action object](#action) is set to "event created by a trigger", and `operationtype` is set to "global script", and `opcommand_grp` is not set| |opmessage|object|Object containing the data about the message sent by the update operation.<br><br>The operation message object is [described in detail above](/manual/api/reference/action/object#action_operation_message).| |opmessage\_grp|array|User groups to send messages to.<br><br>The user groups must have the `usrgrpid` property defined.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `operationtype` is set to "send message" and `opmessage_usr` is not set| |opmessage\_usr|array|Users to send messages to.<br><br>The users must have the `userid` property defined.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `operationtype` is set to "send message" and `opmessage_grp` is not set|
ca	### Operació d'actualització de l'acció  L'objecte d'operació d'actualització de l'acció defineix una operació que s'efectuarà quan s'actualitzi un problema (comentat, reconegut, gravetat modificada o tancat manualment). Les operacions d'actualització són possibles **només** per les accions de triggers i de serveis. Tenen les següents propietats:  |Propietat|[Tipus](/manual/api/reference_commentary#data_types)|Descripció| |--|--|------| |operationtype|enter|Tipus d'operació.<br><br>Valors possibles:<br>0 - enviar missatge;<br>1 - script global;<br>12 - notificar a tots els implicats.<br><br>[Comportament de la propietat](/manual/api/reference_commentary#property-behavior):<br>- *obligatori*| |opcommand|objecte|Script global per executar.<br><br>L'script global ha de tindre la propietat `scriptid` definida.<br><br>[Comportament de la propietat](/manual/api/reference_commentary#property-behavior):<br>- *obligatori* si `operationtype` és definit com a "script global"| |opcommand\_grp|taula|Grups d'equips per executar scripts globals.<br><br>Els grups d'equips han de tindre la propietat `groupid` definida.<br><br>[Comportament de la propietat](/manual/api/reference_commentary #property-behavior):<br>- *obligatori* si `eventsource` d'[objecte d'acció](#action) s'estableix a "esdeveniment creat per un trigger", i `operationtype` s'estableix a "script global" i `opcommand_hst` no és establert| |opcommand\_hst|taula|Equip per executar scripts globals.<br><br>Els equips han de tindre la propietat `hostid` definida.<br><br>[Comportament de la propietat](/manual/api/reference_commentary#property -behavior):<br>- *obligatori* si `eventsource` de [Action object](#action) s'estableix a "esdeveniment creat per un trigger", i `operationtype` s'estableix a "script global" i `opcommand_grp` no és configurat| |opmessage|objecte|Objecte que conté les dades sobre el missatge enviat per l'operació d'actualització.<br><br>L'objecte de missatge de l'operació és [descrit en detall més amunt](/manual/api/reference/action/object#action_operation_message). | |opmessage\_grp|taula|Grups d'usuaris als qui enviar missatges.<br><br>Els grups d'usuaris han de tindre la propietat `usrgrpid` definida.<br><br>[Comportament de la propietat](/manual/api/reference_commentary# property-behavior):<br>- *obligatori* si `operationtype` és definit com a "enviar missatge" i `opmessage_usr` no és pas definit| |opmessage\_usr|taula|Usuaris als qui enviar missatges.<br><br>Els usuaris han de tindre definida la propietat `userid`.<br><br>[Comportament de la propietat](/manual/api/reference_commentary#property- comportament):<br>- *obligatori* si `operationtype` és establert a "enviar missatge" i `omessage_grp` no és pas configurat|

en-us	 ### Action view  This is a reference file for defining an action view.  ````php <?php declare(strict_types = 1);  /** * @var CView $this */  $this->includeJsFile('example.something.view.js.php');  (new CWidget())     ->setTitle(_('Something view'))     ->addItem(new CDiv($data['name']))     ->addItem(new CPartial('module.example.something.reusable', [         'contacts' => $data['contacts']     ])     ->show(); ````
ca	### vista d'acció  Aquest és un arxiu de referència per definir una vista d'acció.  ````php <?php declare(strict_types = 1);  /** * @var CView $this */  $this->includeJsFile('example.something.view.js.php');  (new CWidget())     ->setTitle(_('Something view'))     ->addItem(new CDiv($data['name']))     ->addItem(new CPartial('module.example.something.reusable', [         'contacts' => $data['contacts']     ])     ->show(); ````

en-us	#### action  [ZBXNEXT-7964](https://support.zabbix.com/browse/ZBXNEXT-7964) Added new property `pause_symptoms`.\
ca	#### action  [ZBXNEXT-7964](https://support.zabbix.com/browse/ZBXNEXT-7964) S'ha afegit la nova propietat `pause_symptoms`.\

en-us	#### Active agent autoregistration events  Active agent autoregistration creates events in Zabbix.  If configured, active agent autoregistration event is created when a previously unknown active agent asks for checks or if the host metadata has changed. The server adds a new auto-registered host, using the received IP address and port of the agent.  For more information, see the [active agent autoregistration](/manual/discovery/auto_registration) page.
ca	#### Esdeveniments de registre automàtic de l'agent actiu  El registre automàtic d'agents actius crea esdeveniments a Zabbix.  Si és configurat, es crea un esdeveniment de registre automàtic de l'agent actiu quan un agent actiu desconegut anteriorment demana comprovacions o si les metadades de l'equip han canviat. El servidor afegeix un nou equip registrat automàticament, emprant l'adreça IP i el port rebuts de l'agent.  Per obtindre més informació, consulteu la pàgina del [registre automàtic de l'agent actiu](/manual/discovery/auto_registration).

en-us	### Active checks
ca	 ### Comprovacions actives

en-us	 ### Active checks
ca	 ### Comprovacions actives

en-us	#### Active checks  Active checks require more complex processing. The agent must first retrieve from the server(s) a list of items for independent processing.  The servers to get the active checks from are listed in the 'ServerActive' parameter of the agent [configuration file](/manual/appendix/config/zabbix_agentd). The frequency of asking for these checks is set by the 'RefreshActiveChecks' parameter in the same configuration file. However, if refreshing active checks fails, it is retried after hardcoded 60 seconds.
ca	#### Verificacions actives  Les verificacions actives tenen un tractament més complexe. L'agent primer ha de recuperar dels servidors una llista d'elements per un tractament independent.  Els servidors des d'on obtenim les verificacions actives són llistats al paràmetre 'ServerActive' de l'[arxiu de configuració](/manual/appendix/config/zabbix_agentd) de l'agent. La freqüència de les peticions per les verificacions es defineix amb el paràmetre 'RefreshActiveChecks' del mateix arxiu de configuració. Tanmateix, si el refresc de les verificacions actives falla, es tornarà a provar després de 60 segons.

en-us	 ### Active checks request  The active checks request is used to obtain the active checks to be processed by agent.  This request is sent by the agent upon start and then with [RefreshActiveChecks](/manual/appendix/config/zabbix_agent2) intervals.  | Field | Type | Mandatory | Value | |-|-|-|--------| | request | _string_ | yes | `active checks` | | host | _string_ | yes | Host name. | | version | _string_ | yes | The agent version: \<major>.\<minor>. | | host_metadata | _string_ | no | The configuration parameter HostMetadata or HostMetadataItem metric value. | | interface | _string_ | no | The configuration parameter HostInterface or HostInterfaceItem metric value. | | ip | _string_ | no | The configuration parameter ListenIP first IP if set. | | port | _number_ | no | The configuration parameter ListenPort value if set and not default agent listening port. | | config_revision | _number_ | no | Configuration identifier for [incremental configuration sync](/manual/installation/upgrade_notes_640). | | session | _string_ | no | Session identifier for [incremental configuration sync](/manual/installation/upgrade_notes_640). |  Example: ```json {   "request": "active checks",   "host": "Zabbix server",   "version": "6.0",   "host_metadata": "mysql,nginx",   "hostinterface": "zabbix.server.lan",   "ip": "159.168.1.1",   "port": 12050,   "config_revision": 1,   "session": "e3dcbd9ace2c9694e1d7bbd030eeef6e" } ```
ca	### Peticions de verificacions actives  La petició de verificacions actives s'empra per obtindre les verificacions actives a tractar per l'agent. Aquesta petició s'envia per l'agent a l'iniciar-se, cada interval *RefreshActiveChecks*.  | Camp | Tipus | Obligatori | Valor | |-|-|-|--------| | request | _string_ | yes | `verificacions actives` | | host | _string_ | yes | Nom d'equip. | | version | _string_ | yes | Versió de l'agent: \<major>.\<minor>. | | host_metadata | _string_ | no | El paràmetre de configuració HostMetadata o el valor mètric HostMetadataItem. | | interface | _string_ | no | El paràmetre de configuració HostInterface  o el valor mètric HostInterfaceItem. | | ip | _string_ | no | La primera IP del paràmetre de configuració si s'ha definit ListenIP. | | port | _number_ | no | El valor del paràmetre de configuració ListenPort si s'ha definit i no el port d'escolta per defecte de l'agent. | | config_revision | _number_ | no | Identificació de configuració per la [configuració de la sincronització incremental](/manual/installation/upgrade_notes_640). | | session | _string_ | no | Identificador de sessió per la [configuració de la sincronització incremental](/manual/installation/upgrade_notes_640). |  Exemple: ```json { "request": "active checks", "host": "Zabbix server", "version": "6.0", "host_metadata": "mysql,nginx", "hostinterface": "zabbix.server.lan", "ip": "159.168.1.1", "port": 12050, "config_revision": 1, "session": "e3dcbd9ace2c9694e1d7bbd030eeef6e" } ```

en-us	 ### Active checks response  The active checks response is sent by the server back to agent after processing active checks request.  | Field |<| Type | Mandatory | Value | |-|------|--|-|-----------------------| | response |<| _string_ | yes | `success` \| `failed` | | info |<| _string_ | no | Error information in the case of failure. | | data |<| _array of objects_ | no | Active check items. Omitted if host configuration is unchanged. | | | key | _string_ | no | Item key with expanded macros. | |^| itemid | _number_ | no | Item identifier. | |^| delay | _string_ | no | Item update interval. | |^| lastlogsize | _number_ | no | Item lastlogsize. | |^| mtime | _number_ | no | Item mtime. | | regexp |<| _array of objects_ | no | Global regular expressions. | | | name | _string_ | no | Global regular expression name. | |^| expression | _string_ | no | Global regular expression. | |^| expression_type | _number_ | no | Global regular expression type. | |^| exp_delimiter | _string_ | no | Global regular expression delimiter. | |^| case_sensitive | _number_ | no | Global regular expression case sensitivity setting. | | config_revision | < | _number_ | no | Configuration identifier for [incremental configuration sync](/manual/installation/upgrade_notes_640). Omitted if host configuration is unchanged. Incremented if host configuration is changed. |  Example: ```json {   "response": "success",   "data": [     {       "key": "log[/home/zabbix/logs/zabbix_agentd.log]",       "itemid": 1234,       "delay": "30s",       "lastlogsize": 0,       "mtime": 0     },     {       "key": "agent.version",       "itemid": 5678,       "delay": "10m",       "lastlogsize": 0,       "mtime": 0     }   ],   "config_revision": 2 } ```
ca	### resposta de verificacions actives  El servidor retorna la resposta de comprovacions actives a l'agent després de processar la petició de comprovacions actives.  | Camp |<| Tipus | Obligatori | Valor | |-|------|--|-|-----------------------| | response |<| _string_ | yes | `èxit` \| `fallit` | | info |<| _string_ | no |Informació d'error en cas de fallada. | | data |<| _array of objects_ | no | Elements de verificació actiu. | | | key | _string_ | no | Clau d'element amb macros ampliades. | |^| itemid | _number_ | no | Identificador d'element. | |^| delay | _string_ | no | Interval d'actualització de l'element. | |^| lastlogsize | _number_ | no | Darrera mida de l'element. | |^| mtime | _number_ | no | Element mtime. | | regexp |<| _array of objects_ | no | Expressions regular globals. | | | name | _string_ | no | Nom de l'expressió regular global. | |^| expression | _string_ | no | Expressió regular global. | |^| expression_type | _number_ | no | Tipus d'expressió regular global. | |^| exp_delimiter | _string_ | no | Delimitador global d'expressions regulars. | |^| case_sensitive | _number_ | no | Configuració global de distinció entre majúscules i minúscules d'expressió regular. | | config_revision | < | _number_ | no | Identificador de configuració per la [sincronització incremental de configuració](/manual/installation/upgrade_notes_640). Omès si la configuració de l'equip no s'ha canviat. S'incrementa si la configuració de l'equip ha canviat. |   Exemple: ```json { "response": "success", "data": [ { "key": "log[/home/zabbix/logs/zabbix_agentd.log]", "itemid": 1234, "delay": "30s", "lastlogsize": 0, "mtime": 0 }, { "key": "agent.version", "itemid": 5678, "delay": "10m", "lastlogsize": 0, "mtime": 0 } ], "config_revision": 2 } ```

en-us	#### Active proxy
ca	#### Proxy actiu

en-us	##### Add a blank module to Zabbix frontend  1. Create a directory *MyAddress* in the *modules* directory of your Zabbix frontend installation (for example, *zabbix/ui/modules*).  2. Create a *manifest.json* file with basic module metadata (see the description of supported [parameters](../file_structure/manifest)).  **ui/modules/MyAddress/manifest.json**  ```json {     "manifest_version": 2.0,     "id": "my-address",     "name": "My IP Address",     "version": "1.0",     "namespace": "MyAddress",     "description": "My External IP Address" } ```  3. In Zabbix frontend, go to *Administration → General → Modules* section and click on the *Scan directory* button.  ![](../../../../assets/en/devel/modules/tutorials/widget/scan_dir.png)  4. Locate the new module *My IP Address* in the list and click on the "Disabled" hyperlink to change the module's status from "Disabled" to "Enabled".  ![](../../../../assets/en/devel/modules/tutorials/module/module_register.png){width="600"}  The module is now registered in the frontend. However, it is not visible yet, because you still need to define the module functionality. Once you add content to the module directory, you will immediately see the changes in Zabbix frontend upon refreshing the page.
ca	##### Afegir un mòdul en blanc a la interfície Zabbix  1. Creeu un directori *MyAddress* al directori de *mòduls* de la instal·lació de Zabbix (per exemple, *zabbix/ui/modules*).  2. Creeu un fitxer *manifest.json* amb metadades de mòduls bàsiques (veieu la descripció dels [paràmetres admesos](../file_structure/manifest)).  **ui/modules/MyAddress/manifest.json**  ```json {     "manifest_version": 2.0,     "id": "la meva adreça",     "name": "La meva adreça IP",     "versió": "1.0",     "namespace": "La meva adreça",     "description": "La meva adreça IP externa" } ```  3. A la interfície Zabbix, aneu a la secció *Administració→General→Mòduls* i feu clic al botó *Escanejar el directori*.  ![](../../../../assets/en/devel/modules/tutorials/widget/scan_dir.png)  4. Trobeu el mòdul nou *La meva adreça IP* a la llista i feu clic a l'hiperenllaç "Inhabilitat" per canviar l'estat del mòdul de "Inhabilitat" a "Activat".  ![](../../../../assets/en/devel/modules/tutorials/module/module_register.png){width="600"}  El mòdul és ara registrat a la interfície. Tanmateix, encara no és visible, perquè encara cal definir la funcionalitat del mòdul. Un cop afegiu contingut al directori del mòdul, veureu immediatament els canvis a la interfície de Zabbix en actualitzar la pàgina.

en-us	 ### Add a blank widget to Zabbix frontend  1. Create a directory *lesson_gauge_chart* in the *modules* directory of your Zabbix frontend installation (for example, *zabbix/ui/modules*).  ::: noteclassic All custom widgets are treated as external modules and must be added to the *modules* directory of your Zabbix frontend installation (for example, *zabbix/ui/modules*). The directory *zabbix/ui/widgets* is reserved for Zabbix built-in widgets and gets updated along with Zabbix UI. :::  2. Create a *manifest.json* file with basic widget metadata (see the description of supported [parameters](../file_structure/manifest)).  **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" } ```  3. In Zabbix frontend, go to *Administration → General → Modules* section and click on the *Scan directory* button.  ![](../../../../assets/en/devel/modules/tutorials/widget/scan_dir.png)  4. Locate the new module *Gauge chart* in the list and click on the "Disabled" hyperlink to change the module's status from "Disabled" to "Enabled".  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_register.png){width="600"}  5. Open a dashboard, switch it to the edit mode and add a new widget. In the *Type* field, select "Gauge chart".  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_add.png){width="600"}  6. At this point, the *Gauge chart* widget configuration contains only common widget fields *Name* and *Refresh interval*. Click on *Add* to add the widget to the dashboard.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_b.png){width="600"}  7. A blank widget should appear on the dashboard. Click on *Save changes* in the top right corner to save the dashboard.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_blank_b.png){width="600"}
ca	### Afegir un giny buit a la interfície Zabbix  1. Creeu el directori *lesson_gauge_chart* al directori *mòduls* de la vostra instal·lació de Zabbix (com ara *zabbix/ui/modules*).  ::: noteclassic Tots els ginys personalitzats es tracten com a mòduls externs i s'han d'afegir al directori de mòduls de Zabbix (per exemple, *zabbix/ui/modules*). El directori *zabbix/ui/widgets* és reservat per als ginys integrats de Zabbix i s'actualitza juntament amb la interfície d'usuari de Zabbix. :::  2. Creeu el fitxer *manifest.json* amb metadades bàsiques del giny (veieu la descripció dels [paràmetres](../file_structure/manifest) admesos).      **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" } ```      3. A la interfície Zabbix aneu a la secció *Administració→General→Mòduls* i premeu el botó *Escanejar directori*.  ![](../../../../assets/en/devel/modules/tutorials/widget/scan_dir.png)   4. Cerqueu el nou mòdul *Diagrama de mesura* a la llista i canvieu l'estat del mòdul de Desactivat a Actiu (feu clic a l'hiperenllaç *Desactivat*).  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_register.png){width="600"}      5. Obriu el *Tauler de control*, canvieu-lo a mode d'edició i afegiu-hi un nou giny. Al camp *Tipus*, trieu *Gràfic de mesura*.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_add.png){width="600"}  6. En aquest punt, la configuració del giny *Diagrama de mesura* només conté camps de giny habituals: *Nom* i *Interval d'actualització*. Premeu *Afegir* per afegir el giny al tauler.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_b.png){width=600}        7. Al tauler hauria d'aparèixer un giny en blanc. Premeu Desar els canvis a l'extrem superior dret per desar el tauler.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_blank_b.png){width=600}

en-us	### Add a widget view  :::noteclassic The widget's **view** file should be located in the *views* directory (for this tutorial, *ui/modules/lesson_gauge_chart/views/*). If the file has the default name *widget.view.php*, you do not need to register it in the *manifest.json* file. If the file has a different name, specify it in the *actions/widget.lesson_gauge_chart.view* section of the [manifest.json](devel/modules/file_structure/manifest) file. :::  1. Create a directory *views* in the *lesson_gauge_chart* directory.  2. Create a *widget.view.php* file in the *views* directory.  **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, 'Hello, world!')     )     ->show(); ```  3. Refresh the dashboard. The *Gauge chart* widget now displays "Hello, world!".  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_hello_world.png){width="600"}
ca	### Afegir un nou giny  :::noteclassic El fitxer **view** del giny s'ha d'ubicar al directori *views* (per a aquest tutorial, *ui/modules/lesson_gauge_chart/views/*). Si el fitxer té un nom predeterminat *widget.view.php*, no cal que el registreu a manifest.json. Si el fitxer té un nom diferent, especifiqueu-lo a la secció *actions/widget.lesson_gauge_chart.view* de [manifest.json](devel/modules/file_structure/manifest). :::  1. Afegiu un directori *views* al *leson_gauge_chart*.  2. Creeu el fitxer *widget.view.php* dins del directori *views*.      **ui/modules/lesson_gauge_chart/views/widget.view.php**      ```php <?php  /**  * Visualització del giny del gràfic de mesura.  *  * @var CView $this  * @var array $data  */      (new CWidgetView($data))     ->addItem(         new CTag('h1', true, 'Hello, world!')     )     ->show(); ```      3. Recarregueu el tauler Zabbix. El giny *Gràfic de mesura* ara ensenyarà "Hola, món!".   ![](../../../../assets/en/devel/modules/tutorials/widget/widget_hello_world.png){width=850}

en-us	### Add CSS styles to the widget  In this section you will learn how to add custom CSS styles to make the widget look more appealing.  1. For widget styles, create a new directory *css* in the *assets* directory.  2. Create a *widget.css* file in the *assets/css* directory. To style widget elements, use the selector *div.dashboard-widget-{widget id}*. To configure CSS for the whole widget, use the selector *form.dashboard-widget-{widget id}*  **ui/modules/lesson_gauge_chart/assets/css/widget.css**  ```css div.dashboard-widget-lesson_gauge_chart {     display: grid;     grid-template-rows: 1fr;     padding: 0;  }  div.dashboard-widget-lesson_gauge_chart .chart {     display: grid;     align-items: center;     justify-items: center;  }  div.dashboard-widget-lesson_gauge_chart .chart canvas {     background: white;  }  div.dashboard-widget-lesson_gauge_chart .description {     padding-bottom: 8px;     font-size: 1.750em;     line-height: 1.2;     text-align: center;  }  .dashboard-grid-widget-hidden-header div.dashboard-widget-lesson_gauge_chart .chart {     margin-top: 8px;  } ```  3.  Open *manifest.json* and add the CSS file name (*widget.css*) to the array in the *assets/css* section. This will allow the CSS styles defined in *widget.css* to load with the dashboard page.  **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": {         "css": ["widget.css"],         "js": ["class.widget.js"]     } } ```  4. Refresh the dashboard page to see the finished version of the widget.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_view_finished.png){width="600"}
ca	### Afegir estils CSS al giny.  En aquesta secció aprendreu a afegir estils CSS personalitzats per fer que el giny sembli més atractiu.  1. Per als estils de giny, creeu un nou directori *css* dins del directori *assets*.  2. Afegiu el fitxer *widget.css* a *assets/css*. Per estilitzar els elements del giny, empreu el selector *div.dashboard-widget-{widget id}*. Per configurar CSS per a tot el giny, empreu el selector *form.dashboard-widget-{widget id}*      **ui/modules/lesson_gauge_chart/assets/css/widget.css**      ```css div.dashboard-widget-lesson_gauge_chart {     display: grid;     grid-template-rows: 1fr;     padding: 0;  }        div.dashboard-widget-lesson_gauge_chart .chart {     display: grid;     align-items: center;     justify-items: center;  }          div.dashboard-widget-lesson_gauge_chart .chart canvas {     background: white;  }        div.dashboard-widget-lesson_gauge_chart .description {     padding-bottom: 8px;     font-size: 1.750em;     line-height: 1.2;     text-align: center;  }      .dashboard-grid-widget-hidden-header div.dashboard-widget-lesson_gauge_chart .chart {     margin-top: 8px;  } ```      3.  Obriu *manifest.json* i afegiu el nom del fitxer (widget.css) a la matriu a la secció *assets/css*. Això permetrà que els estils CSS definits al widget.css es carreguin amb la pàgina del tauler.      **ui/modules/lesson_gauge_chart/manifest.json**      ```js {     "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": {         "css": ["widget.css"],         "js": ["widget.js"]     } } ```      4.  Actualitzeu la pàgina del tauler per veure la versió acabada del giny.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_view_finished.png){width=850}       

en-us	#### Adding a filter to an LLD rule  Add a filter so that the contents of the *{\#FSTYPE}* macro would match the *\@File systems for discovery* regexp.  [Request](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "discoveryrule.update",     "params": {         "itemid": "22450",         "filter": {             "evaltype": 1,             "conditions": [                 {                     "macro": "{#FSTYPE}",                     "value": "@File systems for discovery"                 }             ]         }     },     "id": 1 } ```  Response:  ```json {     "jsonrpc": "2.0",     "result": {         "itemids": [             "22450"         ]     },     "id": 1 } ```
ca	#### Afegir un filtre a una regla de descoberta de baix nivell (LLD)  Afegir un filtre per tal que el contingut de la macro *{\#FSTYPE}* coincideixi amb l'expressió regular *\@File systems for discovery*.  [Petició](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "discoveryrule.update",     "params": {         "itemid": "22450",         "filter": {             "evaltype": 1,             "conditions": [                 {                     "macro": "{#FSTYPE}",                     "value": "@File systems for discovery"                 }             ]         }     },     "id": 1 } ```  Resposta:  ```json {     "jsonrpc": "2.0",     "result": {         "itemids": [             "22450"         ]     },     "id": 1 } ```

en-us	## Adding a module  Open *Administration→General→Modules* page and press *Scan directory*.  ![](../../../../assets/en/devel/modules/tutorials/widget/scan_dir.png)  Locate your module in the list and activate it.  To activate a module, press on the *Disabled* hyperlink - the module's state will change to *Enabled*.  Press on the module name to view additional information about the module, such as author, version, or short description (if defined in the manifest).
ca	## Afegir un mòdul  Obriu la pàgina *Administració→General→Mòduls* i premeu *Escanejar el directori*.  ![](../../../../assets/en/devel/modules/tutorials/widget/scan_dir.png)  Trobeu el vostre mòdul a la llista i activeu-lo.  Per activar el mòdul, premeu l'hiperenllaç *Desactivat*; l'estat del mòdul canviarà a *Activat*.  Premeu el nom del mòdul per veure informació addicional sobre el mòdul, com ara l'autor, la versió o una descripció breu (si es defineix al manifest).

en-us	#### Adding a scheduled downtime  Add a downtime for service with ID "4" scheduled weekly from Monday 22:00 till Tuesday 10:00.  [Request](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "service.update",     "params": {         "serviceid": "4",         "times": [             {                 "type": "1",                 "ts_from": "165600",                 "ts_to": "201600"             }         ]     },     "id": 1 } ```  Response:  ```json {     "jsonrpc": "2.0",     "result": {         "serviceids": [             "4"         ]     },     "id": 1 } ```
ca	#### Afegir un temps d'aturada planificat  Afegeix un temps d'aturada per al servei amb l'ID "4", programat cada setmana de dilluns a les 10 del vespre a dimarts a les 10 del matí.  [Petició](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "service.update",     "params": {         "serviceid": "4",         "times": [             {                 "type": "1",                 "ts_from": "165600",                 "ts_to": "201600"             }         ]     },     "id": 1 } ```  Resposta:  ```json {     "jsonrpc": "2.0",     "result": {         "serviceids": [             "4"         ]     },     "id": 1 } ```

en-us	#### Adding dashboards  To add dashboards to a template in *Data collection* → *Templates*, do the following:  1. Click on *Dashboards* in the row of the template. 2. Configure a dashboard following the guidelines of [configuring dashboards](/manual/web_interface/frontend_sections/dashboards).  ::: noteimportant The widgets that can be included in a template dashboard are: *Clock*, *Graph (classic)*, *Graph prototype*, *Item value*, *Plain text*, *URL*. :::  ::: notetip For details on accessing host dashboards that are created from template dashboards, see the [host dashboard](/manual/config/visualization/host_screens#accessing_host_dashboards) section. :::
ca	#### Afegint taulers  Per afegir taulers a una plantilla a *Recollida de dades* → *Plantilles*, seguiu aquestes passes:  1. Feu clic a *Taulers de control* a la filera de la plantilla. 2. Configureu un tauler seguint les directrius de la [configuració de taulers](/manual/web_interface/frontend_sections/dashboards).  ::: noteimportant Els ginys que es poden incloure en una plantilla de tauler són: *Rellotge*, *Gràfic clàssic*, *prototip de gràfic*, *valor d'element*, *text sense format*, *URL*. :::  ::: notetip Per obtindre més informació sobre com accedir als taulers de control de l'equip creats a partir de plantilles de taulers, consulteu [tauler de control de l'equip](/manual/config/visualization/host_screens#accessing_host_dashboards). :::

en-us	#### Adding elements  To add an element, click on *Add* next to `Map element`. The new element will appear at the top left corner of the map. Drag and drop it wherever you like.  Note that with the Grid option "On", elements will always align to the grid (you can pick various grid sizes from the dropdown, also hide/show the grid). If you want to put elements anywhere without alignment, turn the option to "Off". (Random elements can later again be aligned to the grid by clicking on *Align map elements*.)  Now that you have some elements in place, you may want to start differentiating them by giving names, etc. By clicking on the element, a form is displayed and you can set the element type, give a name, choose a different icon, etc.  ![](../../../../../assets/en/manual/config/visualization/map_element.png){width="600"}  Map element attributes:  |Parameter|Description| |--|--------| |*Type*|Type of the element:<br>**Host** - icon representing status of all triggers of the selected host<br>**Map** - icon representing status of all elements of a map<br>**Trigger** - icon representing status of one or more triggers<br>**[Host group](/manual/config/visualization/maps/host_groups)** - icon representing status of all triggers of all hosts belonging to the selected group<br>**Image** - an icon, not linked to any resource| |*Label*|Icon label, any string.<br>Macros and multiline strings can be used.<br>Expression [macros](/manual/appendix/macros/supported_by_location) are supported in this field, but only with `avg`, `last`, `min` and `max` functions, with time as parameter (for example, `{?avg(/host/key,1h)}`).<br>For a full list of supported macros, see [supported macros](/manual/appendix/macros/supported_by_location) and search for 'map element labels'.| |*Label location*|Label location in relation to the icon:<br>**Default** - map's default label location<br>**Bottom** - beneath the icon<br>**Left** - to the left<br>**Right** - to the right<br>**Top** - above the icon| |*Host*|Enter the host if the element type is 'Host'. This field is auto-complete so starting to type the name of a host will offer a dropdown of matching hosts. Scroll down to select. Click on 'x' to remove the selected.| |*Map*|Select the map if the element type is 'Map'. This field is auto-complete so starting to type the name of a map will offer a dropdown of matching maps. Scroll down to select. Click on 'x' to remove the selected.| |*Triggers*|If the element type is 'Trigger', select one or more triggers in the *New triggers* field below and click on *Add*.<br>The order of selected triggers can be changed, but only within the same severity of triggers. Multiple trigger selection also affects {HOST.\*} macro resolution both in the construction and view modes.<br>// 1 In construction mode// the first displayed {HOST.\*} macros will be resolved depending on the first trigger in the list (based on trigger severity).<br>// 2 View mode// depends on the [Display problems](/manual/config/visualization/maps/map#creating_a_map) parameter in General map attributes.<br>\* If *Expand single problem* mode is chosen the first displayed {HOST.\*} macros will be resolved depending on the latest detected problem trigger (not mattering the severity) or the first trigger in the list (in case no problem detected);<br>\* If *Number of problems and expand most critical one* mode is chosen the first displayed {HOST.\*} macros will be resolved depending on the trigger severity.<br>| |*Host group*|Enter the host group if the element type is 'Host group'. This field is auto-complete so starting to type the name of a group will offer a dropdown of matching groups. Scroll down to select. Click on 'x' to remove the selected.| |*Tags*|Specify tags to limit the number of problems displayed in the widget. It is possible to include as well as exclude specific tags and tag values. Several conditions can be set. Tag name matching is always case-sensitive.<br>There are several operators available for each condition:<br>**Exists** - include the specified tag names<br>**Equals** - include the specified tag names and values (case-sensitive)<br>**Contains** - include the specified tag names where the tag values contain the entered string (substring match, case-insensitive)<br>**Does not exist** - exclude the specified tag names<br>**Does not equal** - exclude the specified tag names and values (case-sensitive)<br>**Does not contain** - exclude the specified tag names where the tag values contain the entered string (substring match, case-insensitive)<br>There are two calculation types for conditions:<br>**And/Or** - all conditions must be met, conditions having the same tag name will be grouped by the Or condition<br>**Or** - enough if one condition is met<br>This field is available for host and host group element types.| |*Automatic icon selection*|In this case an icon mapping will be used to determine which icon to display.| |*Icons*|You can choose to display different icons for the element in these cases: default, problem, maintenance, disabled.| |*Coordinate X*|X coordinate of the map element.| |*Coordinate Y*|Y coordinate of the map element.| |*URLs*|Element-specific URLs can be set for the element. These will be displayed as links when a user clicks on the element in the map viewing mode. If the element has its own URLs and there are map level URLs for its type defined, they will be combined in the same menu.<br>Macros can be used in map element names and values. For a full list, see [supported macros](/manual/appendix/macros/supported_by_location) and search for 'map URL names and values'.|  ::: noteimportant Added elements are not automatically saved. If you navigate away from the page, all changes may be lost.  Therefore it is a good idea to click on the **Update** button in the top right corner. Once clicked, the changes are saved regardless of what you choose in the following popup.  Selected grid options are also saved with each map. :::
ca	#### Afegir elements  Per afegir un element, feu clic a *Afegir* al costat d'`Element del mapa`. El nou element apareixerà a la cantonada superior esquerra del mapa. Arrossegueu-lo i deixeu-lo anar allà on vulgueu.  Tingueu en compte que amb l'opció de quadrícula "Activada", els elements sempre s'ajustaran a la quadrícula (podeu triar diferents mides de quadrícula a la llista desplegable, així com amagar/mostrar la quadrícula). Si voleu posar elements a qualsevol lloc sense alineació, activeu l'opció "Desactivat". (A continuació, els elements aleatoris es poden alinear de nou a la quadrícula fent clic a *Alinea els elements del mapa*).  Ara que teniu elements al seu lloc, potser voldreu començar a diferenciar-los donant-los noms, etc. Fent clic a l'element, es mostra un formulari i es pot definir el tipus d'element, donar un nom, triar una altra icona, etc. .  ![](../../../../../assets/en/manual/config/visualization/map_element.png){width="600"}  Atributs de l'element del mapa:  |Paràmetre|Descripció| |--|---------| |*Tipus*|Tipus d'element:<br>**Equip** - icona que representa l'estat de tots els triggers de l'equip triat<br>**Mapa** - icona que representa l'estat de tots els elements del mapa<br> **Trigger** - icona que representa l'estat d'un o més triggers<br>**[Grup d'equips](/manual/config/visualization/maps/host_groups)** - icona que representa l'estat de tots els triggers de tots els equips que pertanyen al grup triat<br>**Imatge** - una icona, no enllaçada a un recurs| |*Etiqueta*|Etiqueta d'icona, qualsevol cadena.<br>Es poden emprar macros i cadenes de diverses línies.<br>Les expressions [macros](/manual/appendix/macros/supported_by_location) s'admeten en aquest camp, però només amb `avg`, `last`, `min` i `max`, amb el temps com a paràmetre (per exemple, `{?avg(/host/key,1h)}`).<br>Per obtindre una llista completa de macros compatibles, veieu [macros compatibles](/manual/appendix/macros/supported_by_location) i cerqueu "etiquetes d'elements de mapa".| |*Ubicació de l'etiqueta*|Ubicació de l'etiqueta en relació a la icona:<br>**Predeterminat** - ubicació de l'etiqueta predeterminada del mapa<br>**A sota** - a sota de la icona<br>**Esquerra** - a l'esquerra< br>**Dreta** - a la dreta<br>**A sobre** - a sobre de la icona| |*Equip*|Introduïu l'equip si el tipus d'element és "Equip". Aquest camp s'emplena automàticament, de manera que començar a escriure un nom d'equip oferirà una llista desplegable d'equips coincidents. Desplaceu-vos cap avall per triar. Feu clic a 'x' per esborrar la selecció.| |*Mapa*|Trieu el mapa, si el tipus d'element és 'Mapa'.| |*Triggers*|Si el tipus d'element és "Trigger", trieu un o més triggers al camp *Triggers nous* de sota i feu clic a *Afegeix*.<br>L'ordre dels triggers triats es pot canviar, però només en el mateix gravetat dels desencadenants. La selecció de diversos triggers també afecta la resolució de la macro {HOST.\*} tant en el mode de compilació com en el de visualització.<br>// 1 En el mode de compilació // les primeres macros {HOST.\*} que es mostren es resoldran en funció del primer trigger de la llista (segons la gravetat del trigger).<br>// 2 El mode de visualització// depèn de la configuració [Mostra els problemes] (/manual/config/visualization/maps/ map#creating_a_map) a la configuració general atributs del mapa.<br> \* Si es tria el mode *Detall únic problema*, les primeres macros {HOST.\*} que es mostren es resoldran en funció del darrer trigger detectat (independentment de la gravetat) o el primer trigger de la llista (si no es detecta cap problema);<br>\* Si es tria el mode *Nombre de problemes i detall més crític*, les primeres macros que es mostren {HOST. \*} es resoldran en funció de la gravetat del trigger.< br>| |*Grup d'equips*|Introduïu el grup d'equips si el tipus d'element és "Grup d'equips". Aquest camp s'emplena automàticament, de manera que començar a escriure un nom de grup oferirà una llista desplegable de grups coincidents. Desplaceu-vos cap avall per triar. Feu clic a 'x' per esborrar la selecció.| |*Etiquetes*|Especifiqueu etiquetes per limitar el nombre de problemes que es mostren al giny. És possible incloure i excloure etiquetes i valors d'etiquetes específics. Es poden definir diverses condicions. La concordança de noms d'etiqueta sempre distingeix entre majúscules i minúscules.<br>Hi ha diversos operadors disponibles per a cada condició:<br>**Existeix** - inclou els noms d'etiquetes especificats<br>**Igual** - inclou els noms i valors d'etiquetes especificats ​​(distingeix entre majúscules i minúscules)<br>**Conté** - inclou noms d'etiquetes especificats on els valors de les etiquetes contenen la cadena introduïda (coincidència de subcadenes, no distingeix entre majúscules i minúscules)<br >**No existeix** - exclou els valors especificats noms d'etiquetes<br>**No és igual** - exclosos els noms i valors d'etiquetes especificats (distingeix entre majúscules i minúscules)<br>**No conté** - exclou els noms d'etiquetes especificats on els valors de l'etiqueta continguin la cadena introduïda (coincidència de subcadenes, no distingeix entre majúscules i minúscules)<br> Hi ha dos tipus de càlcul per a les condicions:<br>**I/O** - s'han de complir totes les condicions, les condicions amb el mateix nom d'etiqueta s'agruparan per la condició O<br> **O** - suficient si es compleix una condició<br>Aquest camp és disponible per als tipus d'elements d'equip i de grups d'equip.| |*Selecció automàtica d'icones*|En aquest cas, s'emprarà un mapa d'icones per determinar quina icona es mostrarà.| |*Icones*|Podeu escollir mostrar diferents icones per a l'element en aquests casos: predeterminat, problema, manteniment, desactivat.| |*Coordenada X*|Coordenada X de l'element del mapa.| |*Coordenada Y*|Coordenada Y de l'element del mapa.| |*URLs*|Es poden definir URL específics per a l'element. Aquests es mostraran com a enllaços quan un usuari faci clic a l'element en mode de visualització de mapa. Si l'element té les seves pròpies URLs i hi ha URLs a nivell de mapa per al seu tipus definit, es combinaran al mateix menú.<br>Les macros es poden emprar en els noms dels elements i els valors del mapa. Per obtindre una llista completa, veieu [macros compatibles](/manual/appendix/macros/supported_by_location) i cerqueu 'noms i valors d'URL del mapa'.|  ::: noteimportant Els elements afegits no es desaran automàticament. Si us allunyeu de la pàgina, és possible que es perdin tots els canvis.  Per tant, és una bona idea fer clic al botó **Actualitzar** a la cantonada superior dreta. Un cop fet clic, els canvis es desaran independentment del que trieu a la següent finestra emergent.  Les opcions de quadrícula triades també es desen amb cada mapa. :::

en-us	##### Adding host  Hosts are added during the discovery process, as soon as a host is discovered, rather than at the end of the discovery process.  ::: notetip As network discovery can take some time due to many unavailable hosts/services having patience and using reasonable IP ranges is advisable. :::  When adding a host, its name is decided by the standard **gethostbyname** function. If the host can be resolved, resolved name is used. If not, the IP address is used. Besides, if IPv6 address must be used for a host name, then all ":" (colons) are replaced by "\_" (underscores), since colons are not allowed in host names.  ::: noteimportant If performing discovery by a proxy, currently hostname lookup still takes place on Zabbix server. :::  ::: noteimportant If a host already exists in Zabbix configuration with the same name as a newly discovered one, versions of Zabbix prior to 1.8 would add another host with the same name. Zabbix 1.8.1 and later adds **\_N** to the hostname, where **N** is increasing number, starting with 2. :::
ca	##### Afegir un equip  Els equips s'afegeixen durant el procés de descoberta, tan aviat com es descobreix un equip, i no al final del procés de descoberta.  ::: notetip Com que la descoberta de la xarxa pot trigar una mica a causa del temps d'espera de molts equips/serveis no disponibles, és recomanable emprar intervals d'IP raonables. :::  Quan s'afegeix un equip, el seu nom ve determinat per la funció estàndard **gethostbyname**. Si es pot resoldre l'equip, s'empra el nom resolt. En cas contrari, s'empra l'adreça IP. A més, si l'adreça IPv6 s'ha d'emprar per a un nom d'equip, tots els ":" (dos punts) es substituiran per "\_" (guió baix), ja que els dos punts no es permeten als noms d'equip.  ::: noteimportant Si la descoberta la fa un proxy, la cerca del nom d'equip sempre es fa al servidor Zabbix. :::  ::: noteimportant Si un equip ja existeix a la configuració de Zabbix i té el mateix nom que el descobert recentment, les versions de Zabbix anteriors a la 1.8 afegirien un altre equip amb el mateix nom. Zabbix 1.8.1 i posterior afegeix **\_N** al nom d'equip, on **N** és un nombre creixent, començant per 2. :::

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.
ca	#### Afegir un equip  La informació sobre els equips configurats a Zabbix és disponible a *Configuració → Equips* i *Monitoratge* → *Equips*. Ja hi ha un equip predefinit, anomenat "servidor Zabbix", però volem aprendre a afegir-ne un altre.  Per afegir un nou equip, feu clic a *Crear equip*. Això ens presentarà un formulari de configuració de l'equip.\ ![](../../../assets/en/manual/quickstart/new_host.png)  Tots els camps d'entrada obligatoris són marcats amb un asterisc vermell.  El mínim imprescindible per entrar aquí és:  ***Nom de l'equip***  - Introduïu un nom d'equip. Es permeten caràcters alfanumèrics, espais, punts, guions i guions baixos.  ***Grups d'equips***  - Trieu un o diversos grups existents fent clic al botó *Triar* o introduïu un nom de grup que no existeixi per crear-e un de nou.  ::: noteclassic Tots els permisos d'accés s'assignen a grups d'equip, no a equips individuals. És per això que un equip ha de pertànyer a almenys un grup. :::  ***Interfícies: adreça IP***  - Encara que tècnicament no és un camp obligatori, és possible que vulgueu introduir l'adreça IP de l'equip. Tingueu en compte que si aquesta és l'adreça IP del servidor Zabbix, s'ha d'especificar a la directiva "Servidor" del fitxer de configuració de l'agent Zabbix. - S'admeten diversos tipus d'interfície d'equip per a un host: Agent, SNMP, JMX i IPMI.      Consulteu [Configuració de l'equip](/manual/config/hosts/host#configuration) per obtindre més detalls.  Les [altres opcions](/manual/config/hosts/host#configuration) es poden deixar per defecte de moment.  Quan hagueu acabat, feu clic a *Afegir*. El vostre nou equip hauria de ser visible a la llista d'equips.  ![](../../../assets/en/manual/quickstart/host_list.png){width="600"}  La columna Disponibilitat conté indicadors de disponibilitat de l'equip per a cada interfície. Heu definit una interfície d'agent de Zabbix, de manera que podeu emprar la icona de disponibilitat de l'agent (amb 'ZBX') per entendre la disponibilitat de l'equip:  - ![icon\_zbx\_gray.png](../../../assets/en/manual/quickstart/icon_zbx_gray.png) - l'estat de l'equip no s'ha establert; encara no s'ha fet cap comprovació mètrica - ![icon\_zbx\_green.png](../../../assets/en/manual/quickstart/icon_zbx_green.png) - l'equip és disponible, una comprovació de mètriques ha estat correcta - ![icon\_zbx\_red.png](../../../assets/en/manual/quickstart/icon_zbx_red.png) - l'equip no és disponible, una comprovació de mètriques ha fallat (mogueu el cursor del ratolí sobre la icona per veure el missatge d'error). Pot haver-hi algun error amb la comunicació, potser degut a credencials incorrectes de la interfície. Comproveu que el servidor Zabbix s'és executant i proveu també d'actualitzar la pàgina més tard.

en-us	#### Adding hosts to host groups  Add two hosts to host groups with IDs 5 and 6.  [Request](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "hostgroup.massadd",     "params": {         "groups": [             {                 "groupid": "5"             },             {                 "groupid": "6"             }         ],         "hosts": [             {                 "hostid": "30050"             },             {                 "hostid": "30001"             }         ]     },     "id": 1 } ```  Response:  ```json {     "jsonrpc": "2.0",     "result": {         "groupids": [             "5",             "6"         ]     },     "id": 1 } ```
ca	#### Afegir equips a grups  Afegeix dos equips als grups d'equips amb IDs 5 i 6.  [Petició](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "hostgroup.massadd",     "params": {         "groups": [             {                 "groupid": "5"             },             {                 "groupid": "6"             }         ],         "hosts": [             {                 "hostid": "30050"             },             {                 "hostid": "30001"             }         ]     },     "id": 1 } ```  Resposta:  ```json {     "jsonrpc": "2.0",     "result": {         "groupids": [             "5",             "6"         ]     },     "id": 1 } ```

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)
ca	#### Afegir un element  Tots els elements s'agrupen al voltant dels equips. Per tant, per configurar un element d'exemple, anem a *Recull de dades → Equips* i trobem el "Nou equip" que hem creat.  Feu clic a l'enllaç *Elements* a la filera "Nou equip" i, a continuació, feu clic a *Crear element*. Això ens presentarà un formulari de definició d'element.  ![](../../../assets/en/manual/quickstart/new_item.png)  Tots els camps d'entrada obligatoris són marcats amb un asterisc vermell.  Per al nostre element d'exemple, la informació essencial a introduir és:  ***Nom***  - Escriviu *Càrrega de CPU* com a valor. Aquest serà el nom visible de l'element a les llistes i altres llocs.  ***Clau***  - Introduïu manualment *system.cpu.load* com a valor. Aquest és el nom tècnic d'un element que identifica el tipus d'informació que es recopilarà. La clau en particular és només una de les [claus predefinides](/manual/config/items/itemtypes/zabbix_agent) proporcionades amb l'agent Zabbix.  ***Tipus d'informació***  - Aquest atribut defineix el format de les dades esperades. Per a la clau *system.cpu.load*, aquest camp s'establirà automàticament en *Numèric (flotant)*. - :::noteclassic També podeu reduir el nombre de dies per conservar l'[historial d'elements](/manual/config/items/history_and_trends) a 7 o 14. Aquesta és una bona pràctica per evitar que la base de dades conservi massa valors històrics. :::  [Les altres opcions](/manual/config/items/item#configuration) vindran amb els seus valors per defecte de moment.  Quan hagueu acabat, fes clic a *Afegir*. El nou element hauria d'aparèixer a la llista d'elements. Feu clic a *Detalls* a sobre de la llista per veure exactament què s'ha fet.  ![](../../../assets/en/manual/quickstart/item_created.png)

en-us	#### Adding items, triggers, graphs  ::: noteimportant Items have to be added to a template first. Triggers and graphs cannot be added without the corresponding item. :::  There are two ways to add items to the template:\  1. To create new items, follow the guidelines for [Creating an item](/manual/config/items/item).\  2. To add existing items to the template: - Go to *Data collection → Hosts* (or *Templates*). - Click on *Items* in the row of the required host/template. - Mark the checkboxes of items you want to add to the template. - Click on *Copy* below the item list. - Select the template (or group of templates) the items should be copied to and click on *Copy*.\ All the selected items should be copied to the template.  Adding triggers and graphs is done in a similar fashion (from the list of triggers and graphs respectively), again, keeping in mind that they can only be added if the required items are added first.
ca	#### Afegir elements, triggers i gràfics  ::: noteimportant Primer s'han d'afegir elements a una plantilla. No es poden afegir triggers ni gràfics sense l'element corresponent. :::  Hi ha dues maneres d'afegir elements a la plantilla:  1. Per crear nous elements, seguiu les instruccions de [Crear un element](/manual/config/items/item).  2. Per afegir elements a la plantilla, seguiu aquestes passes:  - Aneu a *Configuració → Equips* (o *Plantilles*) - Feu clic a *Elements* a la filera d'equip/model requerida - Marqueu les caselles dels elements que voleu afegir a la plantilla - Feu clic a *Copiar* sota la llista d'elements - Trieu el model (o grup de models) en què s'han de copiar els elements i feu clic a *Copiar*  Tots els elements triats s'han de copiar al model.  L'addició de triggers i gràfics es fa de la mateixa manera (a partir de la llista de triggers i gràfics respectivament), de nou tenint en compte que només es poden afegir si primer s'afegeixen els elements necessaris.

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).
ca	#### Afegir un model a l'element  Per afegir un element a la plantilla, aneu a la llista d'elements per a "Equip nou". A *Recull de dades→ Equips*, feu clic a *Elements* al costat de "Nou equip".  Després:  - Marqueu la casella de l'element "Càrrega de CPU" a la llista. - Feu clic a *Copia* sota la llista. - Trieu el model que copiar l'element.  ![](../../../assets/en/manual/quickstart/copy_to_template.png){width="600"}   Tots els camps d'entrada obligatoris són marcats amb un asterisc vermell.  - Feu clic a *Copiar*.  Si ara aneu a *Recull de dades* → *Plantilles*, 'Plantilla nova' hauria de contindre un element nou.  Ens aturarem només en un element de moment, però de la mateixa manera podeu afegir altres elements, triggers o altres entitats al model fins que sigui un conjunt d'entitats bastant complet per a un propòsit determinat (monitoratge del sistema operatiu, monitoratge d'una sola aplicació).

en-us	##### Adding JMX agent item  For each JMX counter you are interested in you add **JMX agent** item attached to that interface.\  The key in the screenshot below says `jmx["java.lang:type=Memory","HeapMemoryUsage.used"]`.  ![](../../../../../assets/en/manual/config/items/itemtypes/jmx_item.png)  All mandatory input fields are marked with a red asterisk.  The fields that require specific information for JMX items are:  |   |   | |--|--------| |*Type*|Set **JMX agent** here.| |*Key*|The `jmx[]` item key contains three parameters:<br>**object name** - the object name of an MBean<br>**attribute name** - an MBean attribute name with optional composite data field names separated by dots<br>**unique short description** - a unique description that allows multiple JMX items with the same object name and attribute name on the host (optional)<br>See below for more detail on JMX item keys.<br>Since Zabbix 3.4, you may discover MBeans and MBean attributes using a `jmx.discovery[]` [low-level discovery](/manual/discovery/low_level_discovery/examples/jmx) item.| |*JMX endpoint*|You may specify a custom JMX endpoint. Make sure that JMX endpoint connection parameters match the JMX interface. This can be achieved by using {HOST.\*} macros as done in the default JMX endpoint.<br>This field is supported since 3.4.0. {HOST.\*} [macros](/manual/appendix/macros/supported_by_location) and user macros are supported.| |*User name*|Specify the user name, if you have configured authentication on your Java application.<br>User macros are supported.| |*Password*|Specify the password, if you have configured authentication on your Java application.<br>User macros are supported.|  If you wish to monitor a Boolean counter that is either "true" or "false", then you specify type of information as "Numeric (unsigned)" and select "Boolean to decimal" preprocessing step in the Preprocessing tab. Server will store Boolean values as 1 or 0, respectively.
ca	##### Afegint un element d'agent JMX  Per cada comptador JMX en que siguem interessats, hem d'afegir l'element **JMX agent**, a aquella interfície.\  La clau dins la captura de pantalla d'aquí sota diu `jmx["java.lang:type=Memory","HeapMemoryUsage.used"]`.  ![](../../../../../assets/en/manual/config/items/itemtypes/jmx_item.png)  Tots els camps obligatoris són marcats amb un asterisc vermell.  Els camps que necessiten informació específica per als elements JMX són:  |   |   | |--|--------| |*Tipus*|Definiu **JMX agent** aquí.| |*Clau*|La clau de l'element `jmx[]` conté tres paràmetres:<br>**object name** - el nom de l'objecte d'un MBean<br>**attribute name** - el nom de l'atribut MBean amb els noms dels camps de dades compostes separades per punts.<br>**unique short description** - una descripció única que permet més elements JMX amb el mateix nom d'objecte i el mateix nom d'atribut de l'equip (opcional)<br>Veieu aquí sota més detalls de les claus d'elements JMX.<br>Des de la versió Zabbix 3.4, podeu descobrir els atributs MBeans i MBean emprant l'element de [descoberta de baix nivell](/manual/discovery/low_level_discovery/examples/jmx) `jmx.discovery[]`.| |*JMX endpoint*|Podeu especificar un punt de tancament JMX personalitzat. Assegureu-vos que els paràmetres de connexió del node final JMX corresponen a la interfície JMX. Això es pot fer emprant les macros {HOST.\*} com al punt de tancament JMX per defecte.<br>Aquest camp es suporta des de la versió 3.4.0. Són admeses les [macros](/manual/appendix/macros/supported_by_location) i{HOST.\*} i les macros d'usuari.| |*Nom d'usuari*|Especifiqueu el nom d'usuari, si heu configurat l'autenticació a la vostra aplicació Java.<br>Es permeten les macros d'usuari.| |*Paraula de pas*|Especifiqueu el mot de pas, si heu configurat l'autenticació a la vostra aplicació Java.<br>Es permeten les macros d'usuari.|  Si voleu monitorar un comptador booleà que sigui "cert" o "fals", especifiqueu el tipus d'informació "Numèrica (no signada)" i trieu l'etapa "Booleà a decimal" dins la pestanya de preprocessament. El servidor emmagatzemarà els valors booleans com 1 o 0, respectivament.

en-us	#### Adding lines  In addition to shapes, it is also possible to add some lines. Lines can be used to link elements or shapes in a map.  To add a line, click on *Add* next to Shape. A new shape will appear at the top left corner of the map. Select it and click on *Line* in the editing form to change the shape into a line. Then adjust line properties, such as line type, width, color, etc.  ![map\_line.png](../../../../../assets/en/manual/config/visualization/map_line.png){width="600"}
ca	#### Afegir línies  A més de les formes, també s'hi poden afegir línies. Les línies es poden emprar per connectar elements o formes en un mapa.  Per afegir una línia, feu clic a *Afegir* al costat de Forma. Apareixerà una forma nova a la cantonada superior esquerra del mapa. Trieu-la i feu clic a *Línia* al formulari d'edició per canviar el formulari a línia. Tot seguit, ajusteu les propietats de la línia, com ara el tipus de línia, l'amplada, el color, etc.  ![map\_line.png](../../../../../assets/en/manual/config/visualization/map_line.png){width="600"}

en-us	#### Adding LLD macro paths  [Request](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "discoveryrule.update",     "params": {         "itemid": "22450",         "lld_macro_paths": [             {                 "lld_macro": "{#MACRO1}",                 "path": "$.json.path"             }         ]     },     "id": 1 } ```  Response:  ```json {     "jsonrpc": "2.0",     "result": {         "itemids": [             "22450"         ]     },     "id": 1 } ```
ca	#### Afegir camils de macro LLD  [Petició](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "discoveryrule.update",     "params": {         "itemid": "22450",         "lld_macro_paths": [             {                 "lld_macro": "{#MACRO1}",                 "path": "$.json.path"             }         ]     },     "id": 1 } ```  Resposta:  ```json {     "jsonrpc": "2.0",     "result": {         "itemids": [             "22450"         ]     },     "id": 1 } ```

en-us	#### Adding macros  Add two new macros to two hosts.  [Request](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "host.massadd",     "params": {         "hosts": [             {                 "hostid": "10160"             },             {                 "hostid": "10167"             }         ],         "macros": [             {                 "macro": "{$TEST1}",                 "value": "MACROTEST1"             },             {                 "macro": "{$TEST2}",                 "value": "MACROTEST2",                 "description": "Test description"             }         ]     },     "id": 1 } ```  Response:  ```json {     "jsonrpc": "2.0",     "result": {         "hostids": [             "10160",             "10167"         ]     },     "id": 1 } ```
ca	#### Afegir macros  Afegeix dues macros noves a dos equips.  [Petició](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "host.massadd",     "params": {         "hosts": [             {                 "hostid": "10160"             },             {                 "hostid": "10167"             }         ],         "macros": [             {                 "macro": "{$TEST1}",                 "value": "MACROTEST1"             },             {                 "macro": "{$TEST2}",                 "value": "MACROTEST2",                 "description": "Test description"             }         ]     },     "id": 1 } ```  Resposta:  ```json {     "jsonrpc": "2.0",     "result": {         "hostids": [             "10160",             "10167"         ]     },     "id": 1 } ```

en-us	#### Adding pages  To add a new page to a dashboard:  -   Make sure the dashboard is in the [editing     mode](#viewing_and_editing_a_dashboard) -   Click on the arrow next to the *Add* button and select the *Add     page* option  ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/dashboard_page_add.png)  -   Fill the general page parameters and click on *Apply*. If you leave     the name empty, the page will be added with a `Page N` name where     'N' is the incremental number of the page. The page display period     allows to customize how long a page is displayed in a slideshow.  ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/dashboard_page_properties.png)  A new page will be added, indicated by a new tab (*Page 2*).  ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/dashboard_page_new.png)  The pages can be reordered by dragging-and-dropping the page tabs. Reordering maintains the original page naming. It is always possible to go to each page by clicking on its tab.  When a new page is added, it is empty. You can add widgets to it as described above.
ca	#### Afegir pàgines  Per afegir una pàgina nova a un tauler:  - Assegureu-vos que el tauler de control sigui al [mode d'edició](#viewing_and_editing_a_dashboard) - Feu clic a la fletxa que hi ha al costat del botó *Afegir* i trieu l'opció *Afegir pàgina*  ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/dashboard_page_add.png)  - Ompliu els paràmetres generals de la pàgina i feu clic a *Aplicar*. Si deixeu el nom buit, la pàgina s'afegirà amb un nom de "Pàgina N", on "N" és el nombre incremental de la pàgina. El període de visualització de la pàgina permet personalitzar quant de temps es mostra una pàgina en una presentació de diapositives.  ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/dashboard_page_properties.png)  S'afegirà una pàgina nova, indicada per una nova pestanya (*Pàgina 2*).  ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/dashboard_page_new.png)  Les pàgines es poden reordenar arrossegant i deixant anar les pestanyes de la pàgina. La reordenació manté el nom de la pàgina original. Sempre és possible anar a cada pàgina fent clic a la seva pestanya.  Quan s'afegeix una pàgina nova, és buida. Podeu afegir-hi ginys tal com es descriu anteriorment.

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.
ca	##### Afegir permisos  Per defecte, un usuari nou no té permisos per accedir als equips. Per concedir els drets d'usuari, feu clic al grup de l'usuari a la columna *Grups* (en aquest cas, 'Administradors Zabbix'). Al formulari de propietats del grup, aneu a la pestanya *Permisos* per assignar permisos als grups d'equips.  ![](../../../assets/en/manual/quickstart/group_permissions.png){width="600"}  Aquest usuari ha de tindre accés només de lectura al grup *Servidors Linux*, així que feu clic a *Triar* al costat del camp de selecció del grup d'equips.  ![](../../../assets/en/manual/quickstart/add_permissions.png){width="600"}   En aquesta finestra emergent, marqueu la casella de selecció al costat de "Servidors Linux" i feu clic a *Triar*. Els *Servidors Linux* s'han de mostrar al camp de selecció. Feu clic al botó "Llegir" per establir el nivell de permís i després *Afegir* per afegir el grup a la llista de permisos. Al formulari de propietats del grup d'usuaris, feu clic a *Actualitzar*.  Per donar permisos a les plantilles, podeu canviar a la pestanya "Permisos de plantilles* i especificar grups de plantilles.  ::: noteimportant A Zabbix, els drets d'accés als equips s'assignen a [grups d'usuaris](/manual/config/users_and_usergroups/usergroup), no pas a usuaris individuals. :::  Fet! Podeu provar d'iniciar sessió amb les credencials del nou usuari.

en-us	##### Adding proxies  To configure a proxy in Zabbix frontend:  -   Go to: *Administration → Proxies* -   Click on *Create proxy*  ![](../../../assets/en/manual/distributed_monitoring/proxy.png){width="600"}  |Parameter|<|Description| |-|----------|----------------------------------------| |*Proxy name*|<|Enter the proxy name. It must be the same name as in the *Hostname* parameter in the proxy configuration file.| |*Proxy mode*|<|Select the proxy mode.<br>**Active** - the proxy will connect to the Zabbix server and request configuration data<br>**Passive** - Zabbix server connects to the proxy<br>*Note* that without encrypted communications (sensitive) proxy configuration data may become available to parties having access to the Zabbix server trapper port when using an active proxy. This is possible because anyone may pretend to be an active proxy and request configuration data if authentication does not take place or proxy addresses are not limited in the *Proxy address* field.| |*Proxy address*|<|If specified then active proxy requests are only accepted from this list of comma-delimited IP addresses, optionally in CIDR notation, or DNS names of active Zabbix proxy.<br>This field is only available if an active proxy is selected in the *Proxy mode* field. Macros are not supported.<br>This option is supported since Zabbix 4.0.0.| |*Interface*|<|Enter interface details for the passive proxy.<br>This field is only available if a passive proxy is selected in the *Proxy mode* field.| | |*IP address*|IP address of the passive proxy (optional).| |^|*DNS name*|DNS name of the passive proxy (optional).| |^|*Connect to*|Clicking the respective button will tell Zabbix server what to use to retrieve data from proxy:<br>**IP** - Connect to the proxy IP address (recommended)<br>**DNS** - Connect to the proxy DNS name| |^|*Port*|TCP port number of the passive proxy (10051 by default).| |*Description*|<|Enter the proxy description.|  The **Encryption** tab allows you to require encrypted connections with the proxy.  |Parameter|Description| |--|--------| |*Connections to proxy*|How the server connects to the passive proxy: no encryption (default), using PSK (pre-shared key) or certificate.| |*Connections from proxy*|Select what type of connections are allowed from the active proxy. Several connection types can be selected at the same time (useful for testing and switching to other connection type). Default is "No encryption".| |*Issuer*|Allowed issuer of certificate. Certificate is first validated with CA (certificate authority). If it is valid, signed by the CA, then the *Issuer* field can be used to further restrict allowed CA. This field is optional, intended to use if your Zabbix installation uses certificates from multiple CAs.| |*Subject*|Allowed subject of certificate. Certificate is first validated with CA. If it is valid, signed by the CA, then the *Subject* field can be used to allow only one value of *Subject* string. If this field is empty then any valid certificate signed by the configured CA is accepted.| |*PSK identity*|Pre-shared key identity string.<br>Do not put sensitive information in the PSK identity, it is transmitted unencrypted over the network to inform a receiver which PSK to use.| |*PSK*|Pre-shared key (hex-string). Maximum length: 512 hex-digits (256-byte PSK) if Zabbix uses GnuTLS or OpenSSL library, 64 hex-digits (32-byte PSK) if Zabbix uses mbed TLS (PolarSSL) library. Example: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952|  The editing form of an existing proxy has the following additional buttons:  -    *Refresh configuration* - refresh configuration of the proxy -    *Clone* - create a new proxy based on the properties of the existing proxy -    *Delete* - delete the proxy
ca	##### Afegir proxys  Per configurar un proxy a la interfície de Zabbix:  - Aneu a: *Administració → Proxys* - Feu clic a *Crear un proxy*  ![](../../../assets/en/manual/distributed_monitoring/proxy.png){width="600"}  |Paràmetre|<|Descripció| |-|-----------|-------------------------------------- ----| |*Nom del proxy*|<|Introduïu el nom del proxy. Aquest ha d'ésser el mateix nom que al paràmetre *Hostname* del fitxer de configuració del proxy.| |*Mode proxy*|<|Trieu el mode proxy.<br>**Actiu** - el proxy es connectarà al servidor Zabbix i demanarà dades de configuració<br>**Passiu** - el servidor Zabbix es connectarà al proxy<br>*Tingueu en compte* que sense comunicacions xifrades (sensibles), les dades de configuració del proxy poden estar disponibles per a les persones amb accés al port de captura del servidor Zabbix quan s'empra un proxy actiu. Això és possible perquè qualsevol persona pot simular ésser un proxy actiu i demanar dades de configuració si l'autenticació no es fa o si les adreces del proxy no són restringides al camp *Adreça del proxy*.| |*Adreça del proxy*|<|Si s'especifica, les peticions de proxy actiu només s'accepten d'aquesta llista d'adreces IP delimitades per comes, opcionalment en notació CIDR, o noms DNS de proxy actiu de Zabbix.<br>Aquest camp només és disponible si hi ha un proxy actiu, triatal camp *Mode proxy*. Les macros no són compatibles.<br>Aquesta opció és compatible des de Zabbix 4.0.0.| |*Interfície*|<|Introduïu els detalls de la interfície per al proxy passiu.<br>Aquest camp només és disponible si es tria un proxy passiu al camp *Mode proxy*.| | |*Adreça IP*|Adreça IP de proxy passiu (opcional).| |^|*Nom DNS*|Nom DNS del proxy passiu (opcional).| |^|*Connectar a*|Fer clic al botó corresponent indicarà al servidor Zabbix què s'ha d'emprar per obtindre dades proxy:<br>**IP** - Connecta't a l'adreça IP del proxy (recomanat)<br>**DNS** - Connecteu-vos al nom DNS del proxy | |^|*Port*|Nombre de port TCP/UDP del proxy passiu (10051 per defecte).| |*Descripció*|<|Introduïu la descripció del proxy.|  La pestanya **Xifrat** us permet requerir connexions xifrades amb el proxy.  |Paràmetre|Descripció| |--|---------| |*Connexions cap al proxy*|Com es connecta el servidor al proxy passiu: sense xifrat (per defecte), emprant PSK (clau prèviament compartida) o certificat.| |*Connexions des del proxy*|Trieu el tipus de connexions permeses des del proxy actiu. Es poden triar diversos tipus de connexió al mateix temps (útil per provar i canviar a un altre tipus de connexió). El valor predeterminat és "Sense xifrat".| |*Emès per*|Emissor autoritzat del certificat. El certificat es valida primer amb la CA (Certificate Authority). Si és vàlid, signat per l'AC, el camp *Emissor* es pot emprar per restringir encara més l'AC autoritzada. Aquest camp és opcional i és pensat per ser emprat si la vostra instal·lació de Zabbix empra certificats de diverses CA.| |*Assumpte*|Subjecte autoritzat del certificat. El certificat es valida primer amb CA. Si és vàlid, signat per l'AC, el camp *Assumpte* es pot emprar per permetre només un valor de cadena *Assumpte*. Si aquest camp és en blanc, s'accepta qualsevol certificat vàlid signat per la CA configurada.| |*Identitat PSK*|Cadena d'identitat de clau prèviament compartida.<br>No introduïu informació sensible a la identitat PSK, es transmet sense xifrar per la xarxa per informar al receptor quina PSK ha d'emprar.| |*PSK*|Clau precompartida (cadena hexadecimal). Longitud màxima: 512 dígits hexadecimals (PSK de 256 octets) si Zabbix empra la biblioteca GnuTLS o OpenSSL, 64 dígits hexadecimals (PSK de 32 octets) si Zabbix empra la biblioteca Mbed TLS (PolarSSL). Exemple: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952|  El formulari d'edició d'un proxy existent té els botons addicionals següents:  -*Actualitzar la configuració* - actualitza la configuració del proxy -*Clonar* - crea un nou proxy basat en les propietats del proxy existent -*Esborrar* - esborra el proxy

en-us	#### Adding shapes  In addition to map elements, it is also possible to add some shapes. Shapes are not map elements; they are just a visual representation. For example, a rectangle shape can be used as a background to group some hosts. Rectangle and ellipse shapes can be added.  To add a shape, click on *Add* next to Shape. The new shape will appear at the top left corner of the map. Drag and drop it wherever you like.  A new shape is added with default colors. By clicking on the shape, a form is displayed and you can customize the way a shape looks, add text, etc.  ![](../../../../../assets/en/manual/config/visualization/map_shape.png){width="600"}  To select shapes, select one and then hold down *Ctrl* to select the others. With several shapes selected, common properties can be mass updated, similarly as with elements.  Text can be added in the shapes. Expression [macros](/manual/appendix/macros/supported_by_location) are supported in the text, but only with `avg`, `last`, `min` and `max` functions, with time as parameter (for example, `{?avg(/host/key,1h)}`).  To display text only the shape can be made invisible by removing the shape border (select 'None' in the *Border* field). For example, take note of how the {MAP.NAME} macro, visible in the screenshot above, is actually a rectangle shape with text, which can be seen when clicking on the macro:  ![](../../../../../assets/en/manual/config/visualization/map_name_macro.png)  {MAP.NAME} resolves to the configured map name when viewing the map.  If hyperlinks are used in the text, they become clickable when viewing the map.  Line wrapping for text is always "on" within shapes. However, within an ellipse, the lines are wrapped as though the ellipse were a rectangle. Word wrapping is not implemented, so long words (words that do not fit the shape) are not wrapped, but are masked (constructor page) or clipped (other pages with maps).
ca	#### Afegir formes  A més dels elements del mapa, també és possible afegir formes. Les formes no són elements del mapa; només són una representació visual. Per exemple, una forma rectangular es pot emprar com a fons per agrupar alguns equips. Es poden afegir formes rectangulars i el·lipses.  Per afegir una forma, feu clic a *Afegir* al costat de Forma. La nova forma apareixerà a la cantonada superior esquerra del mapa. Arrossegueu-la i deixeu-la anar allà on vulgueu.  S'afegeix una nova forma amb els colors predeterminats. En fer clic a la forma, es mostra un formulari i es pot personalitzar l'aspecte d'una forma, afegir text, etc.  ![](../../../../../assets/en/manual/config/visualization/map_shape.png){width="600"}  Per triar formes, marqueu-ne una i, a continuació, manteniu premuda la tecla *Ctrl* per triar les altres. Amb diverses formes triades, les propietats comunes es poden actualitzar massivament, de manera similar als elements.  El text es pot afegir en formes. Les [macros](/manual/appendix/macros/supported_by_location) s'admeten al text, però només amb les funcions `avg`, `last`, `min` i `max`, amb el temps com a paràmetre (p. ex., `{?avg (/host/key,1h)}`).  Per veure només text, la forma es pot fer invisible traient la vora de la forma (Trieu "Cap" al camp *Marge*). Per exemple, tingueu en compte que la macro {MAP.NAME}, visible a la captura de pantalla anterior, és en realitat una forma rectangular amb text, que es pot veure fent clic a la macro:  ![](../../../../../assets/en/manual/config/visualization/map_name_macro.png)  {MAP.NAME} es resol amb el nom del mapa configurat quan es mostra el mapa.  Si s'empren hiperenllaços al text, es pot fer clic quan es visualitza el mapa.  L'ajustament de paraules per al text sempre és "activat" a les formes. Tanmateix, en una el·lipse, les línies s'emboliquen com si l'el·lipse fos un rectangle. No s'implementa l'ajustament de paraules, de manera que les paraules llargues (paraules que no coincideixen amb la forma) no s'emboliquen, sinó que s'emmascaren (generador de pàgines) o es trunquen (altres pàgines amb mapes).

en-us	#### Adding templates to template groups  Add two templates to template groups with IDs 12 and 13.  [Request](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "templategroup.massadd",     "params": {         "groups": [             {                 "groupid": "12"             },             {                 "groupid": "13"             }         ],         "templates": [             {                 "templateid": "10486"             },             {                 "templateid": "10487"             }         ]     },     "id": 1 } ```  Response:  ```json {     "jsonrpc": "2.0",     "result": {         "groupids": [             "12",             "13"         ]     },     "id": 1 } ```
ca	#### Afegir plantilles a grups de plantilles  Afegeix les plantilles als grups de plantilles amb IDs 12 i 13.  [Petició](/manual/api#performing-requests):  ```json { "jsonrpc": "2.0", "method": "templategroup.massadd", "params": { "groups": [ { "groupid": "12" }, { "groupid": "13" } ], "templates": [ { "templateid": "10486" }, { "templateid": "10487" } ] }, "id": 1 } ```  Resposta:  ```json { "jsonrpc": "2.0", "result": { "groupids": [ "12", "13" ] }, "id": 1 } ```

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.
ca	 #### Afegir una plantilla  Per començar a treballar amb plantilles, primer hem de crear-ne una. Per fer-ho, a *Recull de dades→ Plantilles* feu clic a *Crear una plantilla*. Això presentarà un formulari de configuració de plantilla.\  ![](../../../assets/en/manual/quickstart/new_template.png){width="600"}  Tots els camps d'entrada obligatoris són marcats amb un asterisc vermell.  Els paràmetres necessaris per introduir aquí són:  ***Nom de la plantilla***  - Introduïu el nom de la plantilla. Es permeten caràcters alfanumèrics, espais i guions baixos.  ***Grups de plantilles***  - Trieu un o més grups fent clic al botó *Triar*. El model ha de pertànyer a un grup.  ::: noteclassic Els permisos d'accés als grups de plantilles s'assignen a la configuració [grup d'usuaris](/manual/quickstart/login#adding-permissions) a la pestanya **Permisos de plantilla** de la mateixa manera que els permisos de l'equip. Tots els permisos d'accés s'assignen als grups, no plantilles individuals, per això és obligatori incloure la plantilla en almenys un grup.  :::  Quan hagueu acabat, fes clic a *Afegir*. La vostra nova plantilla hauria de ser visible al llistat de plantilles. També podeu emprar el [filtre](/manual/web_interface/frontend_sections/data_collection/templates#using-filter) per trobar la teva plantilla.   ![](../../../assets/en/manual/quickstart/template_list.png){width="600"}  Com podeu veure, el model hi és, però no conté res, ni elements, triggers ni altres entitats.

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.
ca	#### Afegir un trigger  Per configurar un trigger al nostre element, aneu a *Recull de dades→ Equips*, cerqueu 'Equip nou' i feu clic a *Triggers* a la mateixa línia i després a *Creat trigger*. Això ens presenta una forma de definició de trigger.\ ![](../../../assets/en/manual/quickstart/new_trigger.png)  Per al nostre trigger, la informació essencial a proporcionar és:  *Nom*  - Introduïu: *Càrrega de CPU massa alta a 'Nou equi'" durant 3 minuts* com a valor. Aquest serà el nom del trigger que es veu a les llistes i aqualsevol altre lloc.  *Expressió*  - Introduïu: avg(/New host/system.cpu.load,3m)>2  Aquesta és l'expressió trigger. Assegureu-vos que l'expressió s'emplena correctament, fins al darrer símbol. La clau d'element aquí (system.cpu.load) s'empra per fer referència a l'element. Aquesta expressió en particular indica bàsicament que es supera el llindar del problema quan el valor mitjà de càrrega de la CPU durant 3 minuts és superior a 2. Podeu obtindre més informació sobre la [sintaxi de les expressions trigger](/manual/config/triggers/expression).  Quan hàgiu acabat, feu clic a *Afegir*. El nou trigger hauria d'aparèixer al llistat de triggers.

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"}
ca	#### Afegir un usuari  Per veure informació sobre usuaris, aneu a *Usuaris → Usuaris*.  ![](../../../assets/en/manual/quickstart/userlist.png){width="600"}  Per afegir un usuari nou, feu clic a *Crear usuari*.  Al formulari d'usuari nou, assegureu-vos d'afegir el vostre usuari en un dels [grups d'usuaris](/manual/config/users_and_usergroups/usergroup) existents, per exemple, administradors Zabbix'.  ![](../../../assets/en/manual/quickstart/new_user.png)  Tots els camps d'entrada obligatoris són marcats amb un asterisc vermell.  De manera predeterminada, els usuaris nous no tenen cap suport (mètodes de lliurament de notificacions) definit per a ells. Per crear-ne un, aneu a la pestanya 'Suports' i feu clic a *Afegir*.  ![](../../../assets/en/manual/quickstart/new_media.png)  En aquesta finestra, introduïu una adreça de correu electrònic per a aquest usuari.  Podeu especificar un període durant el qual el suport serà actiu (veieu la pàgina [Especificació de period](/manual/appendix/time_period) per a la descripció del format), per defecte un suport sempre és actiu. També podeu personalitzar els nivells de [gravetat del trigger](/manual/config/triggers/severity) per als quals el suport serà actiu, però deixeu-los tots activats de moment.  Feu clic a *Afegir* per desar el suport i, a continuació, aneu a la pestanya Permisos.  La pestanya Permisos té un camp *Rol* obligatori. El rol determina quines interfícies pot veure l'usuari i quines accions té permesese. Premeu Triar i trieu un dels rols de la llista. Per exemple, trieu *Rol d'administrador* per permetre l'accés a totes les seccions de la interfície Zabbix excepte l'administració. Més endavant podeu canviar els permisos o crear més rols d'usuari. En triar un rol, els permisos apareixeran a la mateixa pestanya:  ![usuari\_permissions.png](../../../assets/en/manual/quickstart/user_permissions.png){width="600"}  Feu clic a *Afegir* al formulari de propietats de l'usuari per desar l'usuari. El nou usuari apareix a la llista d'usuaris.  ![](../../../assets/en/manual/quickstart/userlist2.png){width="600"}

en-us	#### Adding web scenarios  To add web scenarios to a template in *Data collection* → *Templates*, do the following:  1. Click on *Web* in the row of the template. 2. Configure a web scenario following the usual method of [configuring web scenarios](/manual/web_monitoring#configuring_a_web_scenario).
ca	#### Afegir escenaris Web  Per afegir escenaris web a una plantilla a *Recollida de dades* → *Plantilles*, feu el següent:  1. Feu clic a *Web* a la filera de la plantilla. 2. Configureu un escenari web seguint el mètode habitual de [configuració d'escenaris web](/manual/web_monitoring#configuring_a_web_scenario).

en-us	#### Adding widgets  To add a widget to a dashboard:  -   Click on the     ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/dashboard_add_button.png)     button or the *Add widget* option in the action menu that can be     opened by clicking on the arrow. Fill the widget configuration form.     The widget will be created in its default size and placed after the     existing widgets (if any);  Or  -   Move your mouse to the desired empty spot for the new widget. Notice     how a placeholder appears, on mouseover, on any empty slot on the     dashboard. Then click to open the widget configuration form. After     filling the form the widget will be created in its default size or,     if its default size is bigger than is available, take up the     available space. Alternatively, you may click and drag the     placeholder to the desired widget size, then release, and then fill     the widget configuration form. (Note that when there is a widget     copied onto the clipboard, you will be first prompted to select     between *Add widget* and *Paste widget* options to create a widget.)  ![](../../../../assets/en/manual/web_interface/dashboard_click.png)  ![](../../../../assets/en/manual/web_interface/dashboard_select.png)  In the widget configuration form:  -   Select the *Type* of widget -   Enter widget parameters -   Click on *Add*  ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/widget_add.png)  #### Widgets  A wide variety of [widgets](/manual/web_interface/frontend_sections/dashboards/widgets) (e.g. [Clock](/manual/web_interface/frontend_sections/dashboards/widgets/clock), [Host availability](/manual/web_interface/frontend_sections/dashboards/widgets/host_availability) or [Trigger overview](/manual/web_interface/frontend_sections/dashboards/widgets/trigger_overview)) can be added to a dashboard: these can be resized and moved around the dashboard in dashboard editing mode by clicking on the widget title bar and dragging it to a new location. Also, you can click on the following buttons in the top-right corner of the widget to:  -   ![](../../../../assets/en/manual/web_interface/widget_edit.png) -     edit a widget; -   ![](../../../../assets/en/manual/web_interface/button_widget_menu.png) -     access the [widget menu](#widget_menu)  Click on *Save changes* for the dashboard to make any changes to the widgets permanent.
ca	#### Afegint ginys  Per afegir un giny a un tauler:  - Feu clic al botó ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/dashboard_add_button.png) o a l'opció *Afegir un giny* al menú d'acció que s'obrirà fent clic a la fletxa. Ompliu el formulari de configuració del giny. El giny es crearà amb la seva mida predeterminada i es posarà després dels ginys existents (si n'hi ha);  O  - Mou el ratolí al lloc buit desitjat per al nou giny. Observeu com apareix un marcador de posició, al passar el ratolí, a qualsevol escletxa buida del tauler. A continuació, feu clic per obrir el formulari de configuració del giny. Després d'omplir el formulari, el giny es crearà amb la seva mida predeterminada o, si la seva mida per defecte és més gran que la disponible, ocuparà l'espai disponible. Alternativament, podeu fer clic i arrossegar el marcador de posició fins a la mida desitjada, després deixar anar i omplir el formulari de configuració del giny. (Tingueu en compte que quan hi hagi un giny copiat al porta-retalls, primer se us demanarà que seleccioneu entre les opcions *Afegir un giny* i *Enganxa un giny* per crear un giny.)  ![](../../../../assets/en/manual/web_interface/dashboard_click.png)  ![](../../../../assets/en/manual/web_interface/dashboard_select.png)  Al formulari de configuració del giny:  - Seleccioneu el *Tipus* de giny - Introduïu els paràmetres del giny - Feu clic a *Afegeir*  ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/widget_add.png)  #### Ginys  Una àmplia varietat de [ginys](/manual/web_interface/frontend_sections/dashboards/widgets) (p. ex., [Rellotge](/manual/web_interface/frontend_sections/dashboards/widgets/clock), [Disponibilitat de l'equip](/manual/web_interface/frontend_sections /dashboards/widgets/host_availability) o [Vista general de trigger](/manual/web_interface/frontend_sections/dashboards/widgets/trigger_overview)) es poden afegir a un tauler: es poden redimensionar i moure pel tauler en el mode d'edició del tauler fent clic a la barra de títol del giny i arrossegant-lo a una nova ubicació. A més, podeu fer clic als botons següents a l'extrem superior dret del giny per:  - ![](../../../../assets/en/manual/web_interface/widget_edit.png) - edita un giny; - ![](../../../../assets/en/manual/web_interface/button_widget_menu.png) - accediu al [menú del giny](#widget_menu)  Feu clic a *Desar els canvis* per al tauler per fer que els canvis als ginys siguin permanents.

en-us	### Adding Zabbix repository  Install the repository configuration package. This package contains yum (software package manager) configuration files.  SLES 15:      # rpm -Uvh --nosignature https://repo.zabbix.com/zabbix/6.4/sles/15/x86_64/zabbix-release-6.4-1.sles15.noarch.rpm     # zypper --gpg-auto-import-keys refresh 'Zabbix Official Repository'   SLES 12:      # rpm -Uvh --nosignature https://repo.zabbix.com/zabbix/6.4/sles/12/x86_64/zabbix-release-6.4-1.sles12.noarch.rpm     # zypper --gpg-auto-import-keys refresh 'Zabbix Official Repository'   Please note that Zabbix web service process, which is used for [scheduled report generation](/manual/web_interface/frontend_sections/reports/scheduled), requires Google Chrome browser. The browser is not included into packages and has to be installed manually.
ca	### Afegir el repositori de Zabbix  Instal·leu el paquet de configuració del repositori. Aquest paquet conté els fitxers de configuració yum (gestor de paquets de programari).  SLES 15:      # rpm -Uvh --nosignature https://repo.zabbix.com/zabbix/6.4/sles/15/x86_64/zabbix-release-6.4-1.sles15.noarch.rpm     # zypper --gpg-auto-import-keys refresh 'Zabbix Official Repository'  SLES 12:      # rpm -Uvh --nosignature https://repo.zabbix.com/zabbix/6.4/sles/12/x86_64/zabbix-release-6.4-1.sles12.noarch.rpm     # zypper --gpg-auto-import-keys refresh 'Zabbix Official Repository'  Tingueu en compte que el procés del servei web de Zabbix, que s'empra per [generar informes programats](/manual/web_interface/frontend_sections/reports/scheduled), requereix el navegador Google Chrome. El navegador no és pas inclòs als paquets i s'ha d'instal·lar a banda.

en-us	 **Additional item menu location**  [Item context menu](/manual/web_interface/menu/item_menu) is now also available in:  - *Data collection → Hosts → [Items](/manual/web_interface/frontend_sections/data_collection/hosts/items)* - *Data collection → Hosts → Discovery rules → [Item prototypes](/manual/web_interface/frontend_sections/data_collection/hosts/discovery/item_prototypes)*
ca	 **Ubicació del menú d'elements addicionals**  [Menú contextual de l'element](/manual/web_interface/menu/item_menu) també és disponible a:  - *Recollida de dades → Equips → [Elements](/manual/web_interface/frontend_sections/data_collection/hosts/items)* - *Recollida de dades → Equips → Regles de descoberta → [Prototips d'elements](/manual/web_interface/frontend_sections/data_collection/hosts/discovery/item_prototypes)*

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.
ca	##### Paràmetres addicionals  Un tercer paràmetre opcional és compatible amb la funció *bucket\_rate\_foreach*:       bucket_rate_foreach(filtre d'elements, període de temps, <nombre de paràmetre>)  on el <nombre de paràmetre> és la posició del valor del "cub" a la clau de l'element. Per exemple, si el valor del "cub" a myItem\[aaa,0.2\] és '0,2', aleshores la seva posició és 2.  El valor per defecte del <nombre de paràmetre> és '1'.  Veieu [càlculs agregats](/manual/config/items/itemtypes/calculated/aggregate) per a més detalls i exemples sobre com emprar les funcions foreach.

en-us	 #### Additional ssh.run options  The item **ssh.run[]** has been updated and now allows to pass additional SSH options as part of the item key. See [SSH checks](/manual/config/items/itemtypes/ssh_checks) for details.
ca	 #### Opcions d'ssh.run addicionals  L'element **ssh.run[]** s'ha actualitzat i ara permet passar opcions SSH addicionals com a part de la clau de l'element. Consulteu [Comprovacions SSH](/manual/config/items/itemtypes/ssh_checks) per obtindre més informació.

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"]     } } ```
ca	### Afegir JavaScript al giny.  En aquesta secció, aprendreu a afegir elements Javascript al giny.  Afegirem:  - un gràfic de mesura fet amb JavaScript - per mostrar d'un cop d'ull si el valor més recent és normal o massa alt/massa baix. - Secció *Configuració avançada* per a paràmetres opcionals, com ara el color, els valors mínims i màxims, les unitats i el camp *Descripció* creat anteriorment.  1. Creeu un fitxer *widget.edit.js.php* dins del directori *views*.  JavaScript serà responsable d'amagar els camps opcionals darrere de la casella de selecció *Configuració avançada* i d'inicialitzar el selector de colors a la vista de configuració. Podeu afegir-lo al mateix directori que la vista de configuració.  Com que el JavaScript per a la vista de configuració s'ha de carregar amb el formulari, haureu d'incloure-lo a widget.edit.php tal com es mostra a les passes següents.      **ui/modules/lesson_gauge_chart/views/widget.edit.js.php**      ```js <?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. Creeu un fitxer *Widget.php* al directori principal de ginys *lesson_gauge_chart* per crear una nova classe *Giny*.  La classe *Giny* ampliarà la classe base *CWidget* per afegir/substituir la configuració predeterminada del giny (en aquest cas - traduccions).  JavaScript, que es proporciona tot seguit, mostra la cadena "Sense dades" en cas que manquin dades. La cadena "Sense dades" és present als fitxers de traducció de la interfície d'usuari de Zabbix.  Si hi ha constants de giny, es recomana especificar-les també a la classe *Giny*.      **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. Obriu *includes/WidgetForm.php* i afegiu els nous camps Configuració avançada (casella de selecció), Color (selector de color), Min (camp numèric), Max (camp numèric), Unitats (trieu).      **ui/modules/lesson_gauge_chart/includes/WidgetForm.php**      ```php <?php      namespace Modules\LessonGaugeChart\Includes;      use Modules\LessonGaugeChart\Widget; use Zabbix\Widgets\CWidgetField; use Zabbix\Widgets\CWidgetForm;      use Zabbix\Widgets\Fields\CWidgetFieldCheckBox; use Zabbix\Widgets\Fields\CWidgetFieldColor; use Zabbix\Widgets\Fields\CWidgetFieldMultiSelectItem; use Zabbix\Widgets\Fields\CWidgetFieldNumericBox; use Zabbix\Widgets\Fields\CWidgetFieldSelect; use Zabbix\Widgets\Fields\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('666666')             )             ->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. Obriu *views/widget.edit.php* i afegiu els components visuals de camp a la vista de configuració.  El mètode *addField()* de la classe *CWidgetFormView* pren una cadena de classe CSS com a segon paràmetre. Afegiu la cadena *js-advanced-configuration* a aquests camps i les seves etiquetes, que s'haurien d'amagar si no es tria *Configuració avançada*.  Per afegir un fitxer JavaScript a la vista de configuració, empreu el mètode *includeJsFile()*. Per afegir JavaScript en línia, empreu el mètode *addJavaScript()*.      **ui/modules/lesson_gauge_chart/views/widget.edit.php**      ```php <?php      /**  * Visualització del formulari del giny del gràfic de mesura.  *  * @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. Torneu al tauler, canvieu al mode d'edició i premeu la icona d'engranatge per obrir la configuració del giny. La configuració del giny ara conté una nova casella de selecció *Opcions avançades*.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_advanced.png){width=600}  6. Marqueu la casella de selecció *Configuració avançada* per veure camps addicionals de configuració de ginys. Ompliu els camps amb valors i seleccioneu un color de giny.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_advanced_b.png){width=600}           7. Premeu Aplicar a la configuració del giny. A continuació, premeu Desar els canvis per desar el tauler.     8. Obriu *actions/WidgetView.php* i actualitzeu el controlador.  La propietat **$this->fields_values** ara conté els valors de tots els camps *Configuració avançada*. Finalitzeu el controlador per permetre passar la configuració i el valor de l'element triat a la vista del giny.      **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. Obriu i modifiqueu *views/widget.view.php*  Heu de crear un contenidor per al gràfic de mesura, que dibuixareu a les passes següents, i un contenidor per a la descripció.  Per passar valors a JavaScript com a objecte JSON, empreu el mètode *setVar()*.      **ui/modules/lesson_gauge_chart/views/widget.view.php**      ```php <?php      /**  * Visualització del giny del gràfic de mesura.  *  * @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. Creeu un directori *actius* al *gràfic_indicador de lliçons*. Aquest directori s'emprarà per emmagatzemar Javascript, CSS i, potencialment, qualsevol altre actiu, com fonts o imatges.  11. Per a JavaScript de visualització de ginys, creeu un directori *js* dins del directori *assets*.  12. Creeu un fitxer *widget.js* al directori *assets/js*.  Aquesta classe de widget de JavaScript ampliarà la classe de JavaScript base de tots els ginys del tauler - *CWidget*.  El tauler de control es basa en una implementació correcta d'un giny i comunica qualsevol informació rellevant al giny mitjançant la crida als mètodes JavaScript respectius. El tauler també espera que el giny generi esdeveniments quan es produeixi alguna interacció. Així, la classe *CWidget* conté un conjunt de mètodes amb la implementació predeterminada del comportament del giny, que es pot personalitzar ampliant la classe.  En aquest cas, cal una mica de personalització; per tant, s'implementarà una lògica personalitzada per al comportament del giny següent:  -inicialització del giny que s'encarrega de definir l'estat inicial del giny (veieu el mètode *\_init()*); -mostrar el contingut del giny (és a dir, dibuixar el gràfic de l'indicador) si el procés d'actualització del giny ha estat satisfactori i sense errors (veieu el mètode *\_processUpdateResponse(response)* i els mètodes *\_resizeChart()* i *\_updatedChart()* relacionats) -canviar la mida del giny (veieu el mètode *resize()* i el mètode *\_resizeChart()* relacionat)  Per a altres aspectes del giny del gràfic gauge, s'utilitzarà la implementació predeterminada del comportament del giny. Per obtenir més informació sobre els mètodes JavaScript de la classe *CWidget*, consulteu: [JavaScript](/devel/modules/widgets/presentation/javascript).  Com que aquest JavaScript és necessari per a la vista del widget, s'hauria de carregar amb la pàgina del tauler. Per habilitar la càrrega de JavaScript, haureu d'actualitzar els paràmetres *assets/js* i *js_class* de **manifest.json** tal com es veu a la passa següent.      **ui/modules/lesson_gauge_chart/assets/js/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. Obriu *manifest.json* i afegiu:  - nom del fitxer (widget.js) a la matriu a la secció *assets/js*. - nom de classe (WidgetLessonGaugeChart) al paràmetre *js_class* a la secció *giny*.  La classe *WidgetLessonGaugeChart* ara es carregarà automàticament amb el tauler.      **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"}
ca	 ### Afegiu paràmetres a una vista de configuració i empreu-los en una vista de giny  En aquesta secció, aprendràs a afegir un camp de configuració del giny i a mostrar el valor introduït a la vista del giny com a text.  La configuració del giny consta d'un formulari (*Zabbix\\Widgets\\CWidgetForm*) i d'una vista de formulari de giny (*widget.edit.php*). Per afegir camps (*Zabbix\\Widgets\\CWidgetField*), heu de crear una classe *WidgetForm*, que ampliarà *Zabbix\\Widgets\\CWidgetForm*.  El formulari conté el conjunt de camps (*Zabbix\\Widgets\\CWidgetField*) de diversos tipus, que s'empren per validar els valors introduïts per l'usuari. El camp de formulari (*Zabbix\\Widgets\\CWidgetField*) per a cada tipus d'element d'entrada converteix el valor en un format únic per emmagatzemar-lo a la base de dades.  :::noteclassic El fitxer **formulari** del giny s'ha d'ubicar al directori *includes* (per a aquest tutorial, *ui/modules/lesson_gauge_chart/includes/*). Si el fitxer té un nom predeterminat *WidgetForm.php*, no cal que el registreu a manifest.json. Si el fitxer té un nom diferent, especifiqueu-lo a la secció *widget/form_class* de [manifest.json](devel/modules/file_structure/manifest). :::  1. Afegiu un directori *includes* al *lesson_gauge_chart*.  2. Creeu el fitxer *WidgetForm.php* dins del directori *includes*.      **ui/modules/lesson_gauge_chart/includes/WidgetForm.php**      ```php <?php      namespace Modules\LessonGaugeChart\Includes;      use Zabbix\Widgets\CWidgetForm;      class WidgetForm extends CWidgetForm { } ```      3. Afegiu un camp *Descripció* al formulari de configuració del giny. Aquest és un camp de text normal, on un usuari pot introduir qualsevol conjunt de caràcters. Podeu utilitzar la classe *CWidgetFieldTextBox* per a això.      **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. Al directori *views*, creeu un fitxer de visualització de configuració del giny *widget.edit.php* i afegiu una vista per al nou camp Descripció. Per a la classe de camp *CWidgetFieldTextBox*, la vista és *CWidgetFieldTextBoxView.*      **ui/modules/lesson_gauge_chart/views/widget.edit.php**      ```php <?php      /**  * Visualització del formulari del giny del gràfic de mesura.  *  * @var CView $this  * @var array $data  */      (new CWidgetFormView($data))     ->addField(         new CWidgetFieldTextBoxView($data['fields']['description'])     )     ->show(); ```      5. Aneu al Tauler i premeu la icona d'engranatge per obrir la configuració del giny.  6. La configuració del giny ara conté un camp nou de text (*Descripció*). Introduïu qualsevol valor, per exemple, *Descripció del gràfic de calibre*.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_descr.png){width=850}             7. Premeu Aplica a la configuració del giny. Premeu Desar els canvis per desar el tauler. El text nou no és visible enlloc i el giny encara mostra "Hola, món!".  Per veure-ho al giny, cal recuperar el valor del camp *Descripció* de la base de dades i passar a la vista del giny. Per fer-ho, heu de crear una classe d'acció.  8. Afegiu un directori *actions* al *lesson_gauge_chart*.  9. Creeu un fitxer *WidgetView.php* dins del directori *actions*. La classe d'acció *WidgetView* ampliarà la classe *CControllerDashboardWidgetView*.    Els valors dels camps de configuració del giny s'emmagatzemen a la propietat **$fields_values** de la classe d'acció.      **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. Obriu el fitxer *manifest.json* i registreu *WidgetView* com a classe d'acció a la secció *actions/widget.lesson_gauge_chart.view*.  **ui/modules/lesson_gauge_chart/manifest.json**      ```js {      "manifest_version": 2.0,      "id": "lesson_gauge_chart",      "type": "giny",      "name": "Gràfic de mesura",      "namespace": "LessonGaugeChart",      "version": "1.0",      "author": "Zabbix SIA",      "actions": {          "widget.lesson_gauge_chart.view": {              "class": "WidgetView"          }      } } ```      11. Ara podeu emprar el valor del camp de descripció, contingut a *$data['description']*, a la vista del giny. Obriu *views/widget.view.php* i substituïu el text estàtic "Hola, món!" amb *$data['descripció']*.      **ui/modules/lesson_gauge_chart/views/widget.view.php**      ```php <?php      /**   * Visualització del giny del gràfic de mesura.   *   * @var CView $this   * @var array $data   */      (nou CWidgetView($data))      ->addItem(          new CTag('h1', true, $data['description'])      )      ->show(); ```      12. Actualitzeu la pàgina Tauler. Hauríeu de veure el text de descripció del giny en lloc de "Hola, món!".  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_view_descr.png){width=850}

en-us	## Administration  With the Zabbix API you can change administration settings of your monitoring system.
ca	## Administració  Amb l'API Zabbix, podem modificar els paràmetres d'administració del nostre sistema de monitoratge.

en-us	#### Advanced configuration  Advanced configuration options become available if the *Advanced  configuration* checkbox is marked (see screenshot) and only for  those elements that are selected in the *Show* field (see above).  Additionally, advanced configuration allows to change the background  color for the whole widget.  ![](../../../../../../assets/en/manual/web_interface/frontend_sections/monitoring/clock_advanced.png){width=600}  |   |   | |--|--------| |*Background color* |Select the background color from the color picker.<br>`D` stands for default color (depends on the frontend theme). To return to the default value, click the *Use default* button in the color picker. | |_**Date**_ || |*Size* |Enter font size height for the date (in percent relative to total widget height). | |*Bold* |Mark the checkbox to display date in bold type. | |*Color* |Select the date color from the color picker.<br>`D` stands for default color (depends on the frontend theme). To return to the default value, click the *Use default* button in the color picker. | |_**Time**_ || |*Size* |Enter font size height for the time (in percent relative to total widget height). | |*Bold* |Mark the checkbox to display time in bold type. | |*Color* |Select the time color from the color picker.<br>`D` stands for default color (depends on the frontend theme). To return to the default value, click the *Use default* button in the color picker. | |*Seconds* |Mark the checkbox to display seconds. Otherwise only hours and minutes will be displayed.| |*Format* |Select to display a 24-hour or 12-hour time. | |_**Time zone**_ || |*Size* |Enter font size height for the time zone (in percent relative to total widget height). | |*Bold* |Mark the checkbox to display time zone in bold type. | |*Color* |Select the time zone color from the color picker.<br>`D` stands for default color (depends on the frontend theme). To return to the default value, click the *Use default* button in the color picker. | |*Time zone*|Select the time zone.| |*Format* |Select to display time zone in short format (e.g. `New York`) or full format (e.g.`(UTC-04:00) America/New York`). |
ca	#### Configuració avançada  Les opcions de configuració avançada són disponibles si la casella de selecció *Configuració avançada* és marcada (veieu la captura de pantalla) i només per als elements triats al camp *Mostra* (veieu més amunt).  A més, la configuració avançada permet canviar el color de fons de tot el giny.  ![](../../../../../../assets/en/manual/web_interface/frontend_sections/monitoring/clock_advanced.png){width=600}  | | | |--|---------| |*Color de fons* |Seleccioneu el color de fons del selector de colors.<br>`D` significa el color predeterminat (depèn del tema de la interfície). Per tornar al valor predeterminat, feu clic al botó *Empra el valor predeterminat* al selector de colors. | |_**Data**_ || |*Mida* |Introduïu l'alçada de la mida del tipus de lletra per a la data (en percentatge respecte a l'alçada total del giny). | |*Negreta* |Marqueu la casella de selecció per mostrar la data en negreta. | |*Color* |Seleccioneu el color de la data al selector de colors.<br>`D` significa el color predeterminat (depèn del tema de la interfície). Per tornar al valor predeterminat, feu clic al botó *Empreu el valor predeterminat* al selector de colors. | |_**Hora**_ || |*Mida* |Introduïu l'alçada de la mida de la lletra per a l'hora (en percentatge respecte a l'alçada total del giny). | |*Negreta* |Marqueu la casella de selecció per mostrar l'hora en negreta. | |*Color* |Seleccioneu el color de l'hora des del selector de colors.<br>`D` significa el color predeterminat (depèn del tema de la interfície). Per tornar al valor predeterminat, feu clic al botó *Emprar el valor predeterminat* al selector de colors. | |*Segons* |Marqueu la casella de selecció per mostrar els segons. En cas contrari, només es mostraran les hores i els minuts.| |*Format* |Seleccioneu per mostrar una hora de 24 hores o 12 hores. | |_**Fus horari**_ || |*Mida* |Introduïu l'alçada de la mida de la lletra per a la zona horària (en percentatge respecte a l'alçada total del giny). | |*Negreta* |Marqueu la casella de selecció per mostrar la zona horària en negreta. | |*Color* |Seleccioneu el color de la zona horària al selector de colors.<br>`D` significa el color predeterminat (depèn del tema de la interfície). Per tornar al valor predeterminat, feu clic al botó *Utilitza el valor predeterminat* al selector de colors. | |*Zona horària*|Seleccioneu la zona horària.| |*Format* |Seleccioneu per mostrar la zona horària en format curt (p. ex., "Nova York") o en format complet (p. ex., "(UTC-04:00) Amèrica/Nova York"). |

en-us	#### Advanced configuration  Advanced configuration options become available if the *Advanced  configuration* checkbox is marked (see screenshot) and only for  those elements that are selected in the *Show* field (see above).  Additionally, advanced configuration allows to change the background  color - static or dynamic - for the whole widget.  ![](../../../../../../assets/en/manual/web_interface/frontend_sections/monitoring/item_value_advanced.png)  |   |   | |--|--------| |***Description***|<| |*Description* |Enter the item description. This description may override the default item name. Multiline descriptions are supported. A combination of text and supported macros is possible.<br>{HOST.\*}, {ITEM.\*}, {INVENTORY.\*} and user macros are supported. | |*Horizontal position* |Select horizontal position of the item description - left, right or center. | |*Vertical position* |Select vertical position of the item description - top, bottom or middle. | |*Size* |Enter font size height for the item description (in percent relative to total widget height). | |*Bold* |Mark the checkbox to display item description in bold type. | |*Color* |Select the item description color from the color picker.<br>`D` stands for default color (depends on the frontend theme). To return to the default value, click the *Use default* button in the color picker. | |***Value***|<| |*Decimal places* |Select how many decimal places will be displayed with the value. This value will affect only float items. | |*Size* |Enter font size height for the decimal places (in percent relative to total widget height). | |*Horizontal position* |Select horizontal position of the item value - left, right or center. | |*Vertical position* |Select vertical position of the item value - top, bottom or middle. | |*Size* |Enter font size height for the item value (in percent relative to total widget height).<br>Note that the size of item value is prioritized; other elements have to concede space for the value. With the change indicator though, if the value is too large, it will be truncated to show the change indicator. | |*Bold* |Mark the checkbox to display item value in bold type. | |*Color* |Select the item value color from the color picker.<br>`D` stands for default color (depends on the frontend theme). To return to the default value, click the *Use default* button in the color picker. | |***Units***|<| |*Units* |Mark the checkbox to display units with the item value. If you enter a unit name, it will override the unit from item configuration. | |*Position* |Select the item unit position - above, below, before or after the value. | |*Size* |Enter font size height for the item unit (in percent relative to total widget height). | |*Bold* |Mark the checkbox to display item unit in bold type. | |*Color* |Select the item unit color from the color picker.<br>`D` stands for default color (depends on the frontend theme). To return to the default value, click the *Use default* button in the color picker. | |***Time*** *(clock value from item history)*|<| |*Horizontal position* |Select horizontal position of the time - left, right or center. | |*Vertical position* |Select vertical position of the time - top, bottom or middle. | |*Size* |Enter font size height for the time (in percent relative to total widget height). | |*Bold* |Mark the checkbox to display time in bold type. | |*Color* |Select the time color from the color picker.<br>`D` stands for default color (depends on the frontend theme). To return to the default value, click the *Use default* button in the color picker. | |***Change indicator***|Select the color of change indicators from the color picker. The change indicators are as follows:<br>**↑** - item value is up (for numeric items)<br>**↓** - item value is down (for numeric items)<br>**↕** - item value has changed (for string items and items with value mapping)<br>`D` stands for default color (depends on the frontend theme). To return to the default value, click the *Use default* button in the color picker.<br>Vertical size of the change indicator is equal to the size of the value (integer part of the value for numeric items).<br>Note that up and down indicators are not shown with just one value. | |***Background color***|Select the background color for the whole widget from the color picker.<br>`D` stands for default color (depends on the frontend theme). To return to the default value, click the *Use default* button in the color picker. | |***Thresholds***|Configure the dynamic background color for the whole widget. Click *Add* to add a threshold, select the background color from the color picker, and specify a numeric value. Once the item value equals or is greater than the threshold value, the background color will change.<br>The list will be sorted in ascending order when saved. <br> Note that the dynamic background color will be displayed correctly only for numeric items.|  Note that multiple elements cannot occupy the same space; if they are placed in the same space, an error message will be displayed.
ca	#### configuració avançada  Les opcions de configuració avançada són disponibles si la casella de selecció *Configuració avançada* és marcada (veieu la captura de pantalla) i només per als elements triats al camp *Mostra* (veieu més amunt).  A més, la configuració avançada permet canviar el color de fons - estàtic o dinàmic - per a tot el giny.  ![](../../../../../../assets/en/manual/web_interface/frontend_sections/monitoring/item_value_advanced.png)  | | | |--|---------| |***Descripció***|<| |*Descripció* |Introduïu la descripció de l'element. Aquesta descripció pot substituir el nom de l'element predeterminat. S'admeten descripcions de diverses línies. És possible una combinació de text i macros admeses.<br>HOST.\*}, {ITEM.\*}, {INVENTORY.\*} i macros d'usuari són compatibles. | |*Posició horitzontal* |Seleccioneu la posició horitzontal de la descripció de l'element: esquerra, dreta o centre. | |*Posició vertical* |Seleccioneu la posició vertical de la descripció de l'element: superior, inferior o mig. | |*Mida* |Introduïu l'alçada de la mida de la lletra per a la descripció de l'element (en percentatge respecte a l'alçada total del giny). | |*Negreta* |Marqueu la casella de selecció per mostrar la descripció de l'element en negreta. | |*Color* |Seleccioneu el color de la descripció de l'element al selector de colors.<br>`D` significa el color predeterminat (depèn del tema de la interfície). Per tornar al valor predeterminat, feu clic al botó *Emprar el valor predeterminat* al selector de colors. | |***Valor***|<| |*Nombre de decimals* |Seleccioneu quants decimals es mostraran amb el valor. Aquest valor només afectarà els elements flotants. | |*Mida* |Introduïu l'alçada de la mida del tipus de lletra per als decimals (en percentatge respecte a l'alçada total del giny). | |*Posició horitzontal* |Seleccioneu la posició horitzontal del valor de l'element: esquerra, dreta o centre. | |*Posició vertical* |Seleccioneu la posició vertical del valor de l'element: superior, inferior o mig. | |*Mida* |Introduïu l'alçada de la mida de la lletra per al valor de l'element (en percentatge en relació amb l'alçada total del giny).<br>Tingueu en compte que es prioritza la mida del valor de l'element; altres elements han de concedir espai per al valor. Amb l'indicador de canvi, però, si el valor és massa gran, es truncarà per mostrar l'indicador de canvi. | |*Negreta* |Marqueu la casella de selecció per mostrar el valor de l'element en negreta. | |*Color* |Seleccioneu el color del valor de l'element des del selector de colors.<br>`D` significa el color predeterminat (depèn del tema de la interfície). Per tornar al valor predeterminat, feu clic al botó *Empra el valor predeterminat* al selector de colors. | |***Unitats***|<| |*Unitats* |Marqueu la casella de selecció per mostrar les unitats amb el valor de l'element. Si introduïu un nom d'unitat, anul·larà la unitat des de la configuració de l'element. | |*Posició* |Seleccioneu la posició de la unitat de l'element: a sobre, a sota, abans o després del valor. | |*Mida* |Introduïu l'alçada de la mida del tipus de lletra per a la unitat d'element (en percentatge respecte a l'alçada total del giny). | |*Negreta* |Marqueu la casella de selecció per mostrar la unitat d'element en negreta. | |*Color* |Seleccioneu el color de la unitat de l'element des del selector de colors.<br>`D` significa el color predeterminat (depèn del tema de la interfície). Per tornar al valor predeterminat, feu clic al botó *Empra el valor predeterminat* al selector de colors. | |***Hora*** *(Valor del rellotge de l'historial d'elements)*|<| |*Posició horitzontal* |Seleccioneu la posició horitzontal de l'hora: esquerra, dreta o centre. | |*Posició vertical* |Seleccioneu la posició vertical de l'hora: superior, inferior o mitjana. | |*Mida* |Introduïu l'alçada de la mida de la lletra per a l'hora (en percentatge respecte a l'alçada total del giny). | |*Negreta* |Marqueu la casella de selecció per mostrar l'hora en negreta. | |*Color* |Seleccioneu el color de l'hora des del selector de colors.<br>`D` significa el color predeterminat (depèn del tema de la interfície). Per tornar al valor predeterminat, feu clic al botó *Empra el valor predeterminat* al selector de colors. | |***Indicador de canvi***|Seleccioneu el color dels indicadors de canvi des del selector de color. Els indicadors de canvi són els següents:<br>**↑** - el valor de l'element ha augmentat (per a elements numèrics)<br>**↓** - el valor de l'element ha baixat (per a elements numèrics)<br>**↕* * - el valor de l'element ha canviat (per a elements de cadena i elements amb mapeig de valors)<br>`D` significa el color predeterminat (depèn del tema de la interfície). Per tornar al valor predeterminat, feu clic al botó *Empra el valor predeterminat* al selector de colors.<br>La mida vertical de l'indicador de canvi és igual a la mida del valor (part entera del valor per als elements numèrics).<br> Tingueu en compte que els indicadors amunt i avall no es mostren amb un sol valor. | |***Color de fons***|Seleccioneu el color de fons per a tot el giny des del selector de colors.<br>`D` significa el color predeterminat (depèn del tema de la interfície). Per tornar al valor predeterminat, feu clic al botó *Empra el valor predeterminat* al selector de colors. | |***Llindars***|Configura el color de fons dinàmic per a tot el giny. Feu clic a *Afegeix* per afegir un llindar, seleccioneu el color de fons del selector de colors i especifiqueu un valor numèric. Quan el valor de l'element sigui igual o superior al valor del llindar, el color de fons canviarà.<br>La llista s'ordenarà en ordre ascendent quan es desi. <br> Tingueu en compte que el color de fons dinàmic es mostrarà correctament només per als elements numèrics.|  Tingueu en compte que diversos elements no poden ocupar el mateix espai; si es posen al mateix espai, es mostrarà un missatge d'error.

en-us	 #### Advanced configuration  ![](../../../assets/en/manual/web_interface/service_a.png){width=600}  |Parameter|Description| |--|--------| |_**Additional rules**_|Click on *Add* to define additional status calculation rules.| |*Set status to*|Set service status to either *OK* (default), *Not classified*, *Information*, *Warning*, *Average*, *High* or *Disaster* in case of a condition match.| |*Condition*|Select the condition for direct child services:<br>**if at least (N) child services have (Status) status or above**<br>**if at least (N%) of child services have (Status) status or above**<br>**if less than (N) child services have (Status) status or below**<br>**if less than (N%) of child services have (Status) status or below**<br>**if weight of child services with (Status) status or above is at least (W)**<br>**if weight of child services with (Status) status or above is at least (N%)**<br>**if weight of child services with (Status) status or below is less than (W)**<br>**if weight of child services with (Status) status or below is less than (N%)** <br><br> If several conditions are specified and the situation matches more than one condition, the highest severity will be set.| |*N (W)*|Set the value of N or W (1-100000), or N% (1-100) in the condition.| |*Status*|Select the value of *Status* in the condition: *OK* (default), *Not classified*, *Information*, *Warning*, *Average*, *High* or *Disaster*.| |_**Status propagation rule**_|Rule for propagating the service status to the parent service:<br>**As is** - the status is propagated without change<br>**Increase by** - you may increase the propagated status by 1 to 5 severities<br>**Decrease by** - you may decrease the propagated status by 1 to 5 severities<br>**Ignore this service** - the status is not propagated to the parent service at all<br>**Fixed status** - the status is propagated statically, i.e. as always the same| |_**Weight**_|Weight of the service (integer in the range from 0 (default) to 1000000).|  :::noteclassic Additional status calculation rules can only be used to increase severity level over the level calculated according to the main *Status calculation rule* parameter. If according to additional rules the status should be Warning, but according to the *Status calculation rule* the status is Disaster - the service will have status Disaster.  :::
ca	#### Configuració avançada  ![](../../../assets/en/manual/web_interface/service_a.png){width=600}  |Paràmetre|Descripció| |--|---------| |_**Regles addicionals**_|Feu clic a *Afegir* per definir regles addicionals de càlcul d'estat.| |*Establir l'estat a*|Estableix l'estat del servei a *D'acord* (per defecte), *Sense classificar*, *Informació*, *Avís*, *Mitjà*, *Alt* o *Desastre* en cas de coincidència de condicions.| |*Condició*|Seleccioneu la condició per als serveis fill directes:<br>**si almenys (N) serveis fill tenen un estat (estat) o superior**<br>**si almenys (N%) dels serveis per als nens tenen l'estat (estat) o superior**<br>**si és inferior a (N) els serveis per a nens tenen l'estat (estat) o inferior**<br>**si són inferiors a (N%) els serveis tenen un estat (estat) o inferior** <br>**si el pes dels serveis fill en estat (estat) o superior és com a mínim (W)**<br>** si el pes dels serveis per als fills en estat (estat) o superior és com a mínim (N%)* *<br>**si el pes dels serveis per als fills en estat (Estat) o inferior és inferior a (W)**<br>**si el pes de serveis per als fills en estat (Estat) o inferior és inferior a (N%)** <br><br> Si s'especifica més d'una condició i la situació correspon a més d'una condició, s'establirà la gravetat més alta. | |*N (W)*|Estableix el valor de N o W (1-100000) o N% (1-100) a la condició.| |*Estat|Seleccioneu el valor d'*Estat* a la condició: *D'acord* (per defecte), *Sense classificar*, *Informació*, *Avís*, *Mitjà*, *Alt* o *Desastre*.| |_**Regla de propagació de l'estat**_|Regla per propagar l'estat del servei al servei principal:<br>**Tal com és** - l'estat es propaga sense canvis<br>**Augmenta des de** - podeu augmentar la propagació estat d'1 a 5 nivells de gravetat<br >**Disminueix** - podeu reduir l'estat propagat d'1 a 5 nivells de gravetat<br>**Ignorar aquest servei** - l'estat no es propaga en absolut al servei principal< br>**Estat fix** - l'estat es propaga estàticament, és a dir, sempre el mateix| |_**Pes**_|Pes del servei (nombre enter entre 0 (per defecte) i 1.000.000).|  :::noteclassic Les regles addicionals de càlcul d'estat només es poden emprar per pujar el nivell de gravetat a partir del nivell calculat segons la configuració principal *Regla de càlcul de l'estat*. Si segons regles addicionals l'estat hauria de ser Avís, però d'acord amb la *regla de càlcul de l'estat*, l'estat és Desastre, el servei tindrà estat de Desastre. :::

en-us	#### Advanced configuration  The following parameters are supported if *Advanced configuration* is set to "Enabled".  ::: noteclassic The number in the *Thresholds* property name (e.g. thresholds.color.0) references the threshold place in a list, sorted in ascending order. However, if thresholds are configured in a different order, the values will be sorted in ascending order after updating widget configuration in Zabbix frontend (e.g. `"threshold.threshold.0":"5"` → `"threshold.threshold.0":"1"`; `"threshold.threshold.1":"1"` → `"threshold.threshold.1": "5"`). :::  |Parameter|<|[type](/manual/api/reference/dashboard/object#dashboard-widget-field)|name|value| |-|--------|--|--------|-------------------------------| |*Background color*|<|1|bg_color|Hexadecimal color code (e.g. `FF0000`).<br><br>Default: `""` (empty).| |*Thresholds*|<|<|<|<| |<|*Color*|1|thresholds.color.0|Hexadecimal color code (e.g. `FF0000`).| |^|*Threshold*|1|thresholds.threshold.0|Any string value.|
ca	#### Configuració avançada  Els paràmetres següents s'admeten si la *Configuració avançada* és establerta a "Habilitada".  ::: noteclassic El nombre del nom de propietat *Llindars* (p. ex., thresholds.color.0) fa referència al lloc del llindar en una llista, en ordre ascendent. Tanmateix, si els llindars es configuren en un ordre diferent, els valors s'ordenaran en ordre ascendent després d'actualitzar la configuració del giny a la interfície de Zabbix (p. ex., `"threshold.threshold.0":"5"` → `"threshold.threshold.0":"1"`; `"threshold.threshold.1":"1"` → `"threshold.threshold. 1": "5"`). :::  |Paràmetre|<|[tipus](/manual/api/reference/dashboard/object#dashboard-widget-field)|nom|valor| |-|--------|--|--------|-------------------------------| |*Color de fons*|<|1|bg_color|Codi de color hexadecimal (p.e. `FF0000`).<br><br>Per defecte: `""` (buit).| |*Llindars*|<|<|<|<| |<|*Color*|1|thresholds.color.0|Codi de color hexadecimal (p.e. `FF0000`).| |^|*Llindar*|1|thresholds.threshold.0|Qualsevol valor de cadena.|

en-us	#### Advanced extensions
ca	#### Extensions avançades

en-us	 ##### Advanced settings  Additional SAML parameters can be configured in the Zabbix frontend configuration file (*zabbix.conf.php*):  -   $SSO\['SP\_KEY'\] = '<path to the SP private key file>'; -   $SSO\['SP\_CERT'\] = '<path to the SP cert file>'; -   $SSO\['IDP\_CERT'\] = '<path to the IDP cert file>'; -   $SSO\['SETTINGS'\]  ::: noteclassic  Zabbix uses [OneLogin's SAML PHP Toolkit](https://github.com/onelogin/php-saml/tree/3.4.1) library (version 3.4.1). The structure of $SSO\['SETTINGS'\] section should be similar to the structure used by the library. For the description of configuration options, see official library [documentation](https://github.com/onelogin/php-saml/tree/3.4.1/#user-content-settings).  :::  Only the following options can be set as part of $SSO\['SETTINGS'\]:  -   *strict* -   *baseurl* -   *compress* -   *contactPerson* -   *organization* -   *sp* (only options specified in this list)     -   *attributeConsumingService*     -   *x509certNew* -   *idp* (only options specified in this list)     -   *singleLogoutService* (only one option)         -   *responseUrl*     -   *certFingerprint*     -   *certFingerprintAlgorithm*     -   *x509certMulti* -   *security* (only options specified in this list)     -   *signMetadata*     -   *wantNameId*     -   *requestedAuthnContext*     -   *requestedAuthnContextComparison*     -   *wantXMLValidation*     -   *relaxDestinationValidation*     -   *destinationStrictlyMatches*     -   *rejectUnsolicitedResponsesWithInResponseTo*     -   *signatureAlgorithm*     -   *digestAlgorithm*     -   *lowercaseUrlencoding*  All other options will be taken from the database and cannot be overridden. The *debug* option will be ignored.  In addition, if Zabbix UI is behind a proxy or a load balancer, the custom *use\_proxy\_headers* option can be used:  -   *false* (default) - ignore the option; -   *true* - use X-Forwarded-\* HTTP headers for building the base URL.    If using a load balancer to connect to Zabbix instance, where the load balancer uses TLS/SSL and Zabbix does not, you must indicate 'baseurl', 'strict' and 'use_proxy_headers' parameters as follows:      $SSO['SETTINGS']=['strict' => false, 'baseurl' => "https://zabbix.example.com/zabbix/", 'use_proxy_headers' => true]   **Configuration example:**      $SSO['SETTINGS'] = [         'security' => [             'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384'             'digestAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#sha384',             // ...         ],         // ...     ];
ca	 ##### Configuració avançada  Es poden configurar paràmetres SAML addicionals al fitxer de configuració de la interfície de Zabbix (*zabbix.conf.php*):  - $SSO\['SP\_KEY'\] = '<camí al fitxer de clau privada SP>'; - $SSO\['SP\_CERT'\] = '<camí al fitxer de certificat SP>'; - $SSO\['IDP\_CERT'\] = '<camí al fitxer de certificat IDP>'; - $SSO\['SETTINGS'\]  ::: noteclassic   Zabbix empra la biblioteca [kit d'eines SAML PHP de OneLogin](https://github.com/onelogin/php-saml/tree/3.4.1) (versió 3.4.1). L'estructura de la secció $SSO\['SETTINGS'\] hauria de ser similar a l'estructura emprada per la biblioteca. Per a la descripció de les opcions de configuració, veieu la [documentació](https://github.com/onelogin/php-saml/tree/3.4.1/#user-content-settings) de la biblioteca oficial.  :::  Només es poden definir les opcions següents com a part de $SSO\['SETTINGS'\]:  -   *strict* -   *baseurl* -   *compress* -   *contactPerson* -   *organization* - *sp* (només les opcions especificades en aquesta llista)      - *attributeConsumingService*      - *x509certNew* - *idp* (només les opcions especificades en aquesta llista)      - *singleLogoutService* (només una opció)         -   *responseUrl*     -   *certFingerprint*     -   *certFingerprintAlgorithm*     -   *x509certMulti* - *security* (només les opcions especificades en aquesta llista)     -   *signMetadata*     -   *wantNameId*     -   *requestedAuthnContext*     -   *requestedAuthnContextComparison*     -   *wantXMLValidation*     -   *relaxDestinationValidation*     -   *destinationStrictlyMatches*     -   *rejectUnsolicitedResponsesWithInResponseTo*     -   *signatureAlgorithm*     -   *digestAlgorithm*     -   *lowercaseUrlencoding*  Totes les altres opcions seran extretes de la base de dades i no es poden anul·lar. L'opció *debug* serà ignorada.  A més, si la interfície d'usuari de Zabbix és darrere d'un proxy o d'un equilibrador de càrrega, es pot emprar l'opció personalitzada *use\_proxy\_headers*:  - *fals* (per defecte) - ignora l'opció; - *cert* - empreu les capçaleres HTTP X-Forwarded-\* per crear l'URL base.    Si empreu un equilibrador de càrrega per connectar-vos a la instància de Zabbix, on l'equilibrador de càrrega empra TLS/SSL i Zabbix no, heu d'indicar els paràmetres "baseurl", "strict" i "use_proxy_headers" de la manera següent:       $SSO['SETTINGS']=['strict' => false, 'baseurl' => "https://zabbix.example.com/zabbix/", 'use_proxy_headers' => true]   **Exemple de configuració:**      $SSO['SETTINGS'] = [         'security' => [             'signatureAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha384'             'digestAlgorithm' => 'http://www.w3.org/2001/04/xmldsig-more#sha384',             // ...         ],         // ...     ];

en-us	After receiving a list of active checks the agent marks obsolete persistent files for removal. A persistent file becomes obsolete if: 1) the corresponding log item is no longer monitored, 2) a log item is reconfigured with a different **persistent\_dir** location than before.  Removing is done with delay 24 hours because log files in NOTSUPPORTED state are not included in the list of active checks but they may become SUPPORTED later and their persistent files will be useful.  If the agent is stopped before 24 hours expire, then the obsolete files will not be deleted as Zabbix agent is not getting info about their location from Zabbix server anymore.  ::: notewarning Reconfiguring a log item's **persistent\_dir** back to the old **persistent\_dir** location while the agent is stopped, without deleting the old persistent file by user - will cause restoring the agent state from the old persistent file resulting in missed messages or false alerts. :::
ca	Després de rebre una llista de comprovacions actives, l'agent marca els fitxers persistents obsolets per esborrar-los. Un fitxer persistent queda obsolet si: 1) l'element de registre corresponent ja no es monitora, 2) un element de registre es torna a configurar amb una ubicació **persistent\_dir** diferent a la d'abans.  L'esborrat es fa amb un retard de 24 hores perquè els fitxers de registre en estat NO ADMÈS no s'inclouen a la llista de comprovacions actives, però poden ser ADMESOS més tard i els seus fitxers persistents seran útils.  Si l'agent s'atura abans de la caducitat de les 24 hores, els fitxers obsolets no s'esborraran pas perquè l'agent Zabbix ja no rep informació sobre la seva ubicació del servidor Zabbix.  ::: notewarning Torneu a configurar el **persistent\_dir** d'un element de registre a l'antiga ubicació **persistent\_dir** mentre l'agent és inactiu, sense esborrar l'antic fitxer persistent per part de l'usuari; missatges perduts o alertes falses. :::

en-us	 #### Agent 2 plugins  ##### MySQL  The correct master host is now returned if specified in the `mysql.replication.get_slave_status[]`  [item](/manual/config/items/itemtypes/zabbix_agent/zabbix_agent2#mysql) "masterHost" parameter.  Previously the "masterHost" parameter was ignored and always the first master host was returned.  If this parameter is not specified, all hosts are returned. 
ca	 #### Plugins de l'agent 2  ##### MySQL  Retorna l'equip mestre correcte si s'especifica al fitxer `mysql.replication.get_slave_status[]` [element](/manual/config/items/itemtypes/zabbix_agent/zabbix_agent2#mysql) paràmetre "masterHost". Abans, el paràmetre "masterHost" s'ignorava i sempre retornava el primer equip mestre.  Si no s'especifica aquest paràmetre, es retornen tots els equips.

en-us	##### Agent 2  |Requirement|Mandatory status|Description| |--|-|-------| |*libpcre/libpcre2*|One of|PCRE/PCRE2 library is required for [Perl Compatible Regular Expression](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE) support.<br>The naming may differ depending on the GNU/Linux distribution, for example 'libpcre3' or 'libpcre1'. PCRE v8.x and PCRE2 v10.x (from Zabbix 6.0.0) are supported.<br>Required for log monitoring. Also required on Windows.| |*libopenssl*|No|Required when using encryption.<br>OpenSSL 1.0.1 or later is required on UNIX platforms.<br>The OpenSSL library must have PSK support enabled. LibreSSL is not supported.<br>On Microsoft Windows systems OpenSSL 1.1.1 or later is required.|  **Go libraries**  |Requirement|Mandatory status|Minimum version|Description| |--|-|-|-------| |[git.zabbix.com/ap/plugin-support](https://git.zabbix.com/projects/AP/repos/plugin-support/browse?at=refs%2Fheads%2Frelease%2F6.4)|Yes|1.X.X|Zabbix own support library. Mostly for plugins. | |[github.com/BurntSushi/locker](https://github.com/BurntSushi/locker)|^|0.0.0|Named read/write locks, access sync. | |[github.com/chromedp/cdproto](https://github.com/chromedp/cdproto)|^|0.0.0|Generated commands, types, and events for the Chrome DevTools Protocol domains. | |[github.com/chromedp/chromedp](https://github.com/chromedp/chromedp)|^|0.6.0|Chrome DevTools Protocol support (report generation). | |[github.com/dustin/gomemcached](https://github.com/dustin/gomemcached)|^|0.0.0|A memcached binary protocol toolkit for go. | |[github.com/eclipse/paho.mqtt.golang](https://github.com/eclipse/paho.mqtt.golang)|^|1.2.0|A library to handle MQTT connections. | |[github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify)|^|1.4.9|Cross-platform file system notifications for Go. | |[github.com/go-ldap/ldap](https://github.com/go-ldap/ldap)|^|3.0.3|Basic LDAP v3 functionality for the Go programming language. | |[github.com/go-ole/go-ole](https://github.com/go-ole/go-ole)|^|1.2.4|Win32 ole implementation for Go. | |[github.com/godbus/dbus](https://github.com/godbus/dbus)|^|4.1.0|Native Go bindings for D-Bus. | |[github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql)|^|1.5.0|MySQL driver. | |[github.com/godror/godror](https://github.com/godror/godror)|^|0.20.1|Oracle DB driver. | |[github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3)|^|2.0.3|Sqlite3 driver. | |[github.com/mediocregopher/radix/v3](https://github.com/mediocregopher/radix)|^|3.5.0|Redis client. | |[github.com/memcachier/mc/v3](https://github.com/memcachier/mc)|^|3.0.1|Binary Memcached client. | |[github.com/miekg/dns](https://github.com/miekg/dns)|^|1.1.43|DNS library. | |[github.com/omeid/go-yarn](https://github.com/omeid/go-yarn)|^|0.0.1|Embeddable filesystem mapped key-string store. | |[github.com/goburrow/modbus](https://github.com/goburrow/modbus)|^|0.1.0|Fault-tolerant implementation of Modbus. | |[golang.org/x/sys](https://pkg.go.dev/golang.org/x/sys)|^|0.0.0|Go packages for low-level interactions with the operating system.<br>Also used in plugin support lib. Used in MongoDB and PostgreSQL plugins. | |[github.com/Microsoft/go-winio](https://github.com/microsoft/go-winio)|On Windows.<br>Yes, indirect^**1**^|0.6.0|Windows named pipe implementation.<br>Also used in plugin support lib. Used in MongoDB and PostgreSQL plugins. | |[github.com/goburrow/serial](https://github.com/goburrow/serial)|Yes, indirect^**1**^|0.1.0|Serial library for Modbus. | |[golang.org/x/xerrors](https://pkg.go.dev/golang.org/x/xerrors)|^|0.0.0|Functions to manipulate errors. | |[gopkg.in/asn1-ber.v1](https://gopkg.in/asn1-ber.v1)|^|1.0.0|Encoding/decoding library for ASN1 BER. | |[github.com/go-stack/stack](https://github.com/go-stack/stack)|No, indirect^**1**^|1.8.0| | |[github.com/golang/snappy](https://github.com/golang/snappy)|^|0.0.1| | |[github.com/klauspost/compress](https://github.com/klauspost/compress)|^|1.13.6| | |[github.com/xdg-go/pbkdf2](https://github.com/xdg-go/pbkdf2)|^|1.0.0| | |[github.com/xdg-go/scram](https://github.com/xdg-go/scram)|^|1.0.2| | |[github.com/xdg-go/stringprep](https://github.com/xdg-go/stringprep)|^|1.0.2| | |[github.com/youmark/pkcs8](https://github.com/youmark/pkcs8)|^|0.0.0| |  ^**1**^ "Indirect" means that it is used in one of the libraries that the agent uses. It's required since Zabbix uses the library that uses the package.  See also dependencies for loadable plugins:  -   [PostgreSQL](/manual/installation/requirements/plugins/postgresql) -   [MongoDB](/manual/installation/requirements/plugins/mongodb)
ca	##### Agent 2  |Requisit|Estat obligatori|Descripció| |--|-|-------| |*libpcre/libpcre2*|Cal una de les biblioteques PCRE/PCRE2 per al suport d'[expressió regular compatible amb Perl](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE).<br>El nom pot ser diferent. depenent de la distribució GNU/Linux, per exemple 'libpcre3' o 'libpcre1'. S'admeten PCRE v8.x i PCRE2 v10.x (de Zabbix 6.0.0).<br>Cal per al monitoratge del registre. També cal a Windows.| |*libopenssl*|No|Cal quan s'empra el xifrat.<br>OpenSSL 1.0.1 o posterior és necessari a les plataformes UNIX.<br>La biblioteca OpenSSL ha de tindre el suport PSK activat. LibreSSL no és compatible.<br>Als sistemes Microsoft Windows cal OpenSSL 1.1.1 o posterior.|  **Biblioteques Go**  |Requisit|Estat obligatori|Versió mínima|Descripció| |--|-|-|-------| |[git.zabbix.com/ap/plugin-support](https://git.zabbix.com/projects/AP/repos/plugin-support/browse?at=refs%2Fheads%2Frelease%2F6.4)|Sí|1.X.X|Biblioteca d'assistència pròpia de Zabbix. Principalment per a connectors. | |[github.com/BurntSushi/locker](https://github.com/BurntSushi/locker)|^|0.0.0|Bloquejos de lectura/escriptura amb nom, sincronització d'accés. | |[github.com/chromedp/cdproto](https://github.com/chromedp/cdproto)|^|0.0.0|Ordres, tipus i esdeveniments generats per als dominis del protocol Chrome DevTools. | |[github.com/chromedp/chromedp](https://github.com/chromedp/chromedp)|^|0.6.0|Compatibilitat amb el protocol Chrome DevTools (generació d'informes). | |[github.com/dustin/gomemcached](https://github.com/dustin/gomemcached)|^|0.0.0|Un conjunt d'eines de protocol binari de memcached per a go. | |[github.com/eclipse/paho.mqtt.golang](https://github.com/eclipse/paho.mqtt.golang)|^|1.2.0|Una biblioteca per gestionar connexions MQTT. | |[github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify)|^|1.4.9|Notificacions del sistema de fitxers multiplataforma per a Go. | |[github.com/go-ldap/ldap](https://github.com/go-ldap/ldap)|^|3.0.3|Funcionalitat bàsica de LDAP v3 per al llenguatge de programació Go. | |[github.com/go-ole/go-ole](https://github.com/go-ole/go-ole)|^|1.2.4|Implementació Win32 ole per a go. | |[github.com/godbus/dbus](https://github.com/godbus/dbus)|^|4.1.0|Enllaços Native Go per a D-Bus. | |[github.com/go-sql-driver/mysql](https://github.com/go-sql-driver/mysql)|^|1.5.0|Controlador MySQL. | |[github.com/godror/godror](https://github.com/godror/godror)|^|0.20.1|Controlador d'Oracle DB. | ||[github.com/mattn/go-sqlite3](https://github.com/mattn/go-sqlite3)|^|2.0.3|Controlador Sqlite3. | |[github.com/mediocregopher/radix/v3](https://github.com/mediocregopher/radix)|^|3.5.0|Client de Redis. | |[github.com/memcachier/mc/v3](https://github.com/memcachier/mc)|^|3.0.1|Client de Memcached binari. | |[github.com/miekg/dns](https://github.com/miekg/dns)|^|1.1.43|Biblioteca DNS. | |[github.com/omeid/go-yarn](https://github.com/omeid/go-yarn)|^|0.0.1|Magatzem de cadenes de claus amb un sistema de fitxers incrustable. | |[github.com/goburrow/modbus](https://github.com/goburrow/modbus)|^|0.1.0|Implementació de Modbus tolerant a errors. | |[golang.org/x/sys](https://pkg.go.dev/x/sys)|^|0.0.0|Paquets Go per a interaccions de baix nivell amb el sistema operatiu.<br>També s'empra en suport de connectors lib. S'empra als plugins de MongoDB i PostgreSQL. | |[github.com/Microsoft/go-winio](https://github.com/microsoft/go-winio)|A Windows.<br>Sí, indirecte**1**|0.6.0|Windows named pipe implementació.<br>També s'empra al suport del complement lib. S'empra al connector MongoDB. | |[github.com/goburrow/serial](https://github.com/goburrow/serial)|Sí, indirecte^**1**^|0.1.0|Biblioteca sèrie per a Modbus. | |[golang.org/x/xerrors](https://pkg.go.dev/x/xerrors)|^|0.0.0|Funcions per manipular errors. | |[gopkg.in/asn1-ber.v1](https://gopkg.in/asn1-ber.v1)|^|1.0.0|Biblioteca de codificació/descodificació per a ASN1 BER. | |[github.com/go-stack/stack](https://github.com/go-stack/stack)|No, indirecte^**1**^|1.8.0| | |[github.com/golang/snappy](https://github.com/golang/snappy)|^|0.0.1| | |[github.com/klauspost/compress](https://github.com/klauspost/compress)|^|1.13.6| | |[github.com/xdg-go/pbkdf2](https://github.com/xdg-go/pbkdf2)|^|1.0.0| | |[github.com/xdg-go/scram](https://github.com/xdg-go/scram)|^|1.0.2| | |[github.com/xdg-go/stringprep](https://github.com/xdg-go/stringprep)|^|1.0.2| | |[github.com/youmark/pkcs8](https://github.com/youmark/pkcs8)|^|0.0.0| |  ^**1**^ "Indirecte" vol dir que s'empra a una de les biblioteques que fa ús de l'agent. Cal, ja que Zabbix empra la biblioteca que empra el paquet.  Veieu també dependències per a connectors carregables:  -[PostgreSQL](/manual/installation/requirements/plugins/postgresql) -[MongoDB](/manual/installation/requirements/plugins/mongodb)

en-us	**Agent configuration**  Add the next line to the agent configuration file:      HostMetadata=Linux    21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae  where "Linux" is a platform, and the rest of the string is the hard-to-guess secret text.  Do not forget to restart the agent after making any changes to the configuration file.  ***Step 2***  It is possible to add additional monitoring for an already registered host.
ca	**Configuració de l'agent**  Afegiu la línia següent al fitxer de configuració de l'agent:  HostMetadata=Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae  on "Linux" és una plataforma i la resta de la cadena és un text secret difícil d'endevinar.  Recordeu reiniciar l'agent després de fer canvis al fitxer de configuració.  ***2a passa***  Es pot afegir monitoratge addicional per a un equip ja registrat.

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 ```
ca	##### Configuració de l'agent  Els nodes de clúster HA (servidors) s'han d'enumerar a la configuració de l'agent Zabbix o de l'agent Zabbix 2.  ![](../../../../assets/en/manual/config/zabbix_ha_agent.png)  Per activar les comprovacions passives, els noms dels nodes han d'ésser llistats al [paràmetre](/manual/appendix/config/zabbix_agentd) del servidor, separats per una **coma**.  ``` Servidor=zabbix-node-01,zabbix-node-02 ```  Per activar les comprovacions actives, els noms dels nodes han d'ésser llistats al [paràmetre](/manual/appendix/config/zabbix_agentd) ServerActive. Tingueu en compte que per a les comprovacions actives, els nodes s'han de separar per comes de qualsevol altre servidor, mentre que els nodes s'han de separar amb un **punt i coma**, per exemple:  ``` ActiveServer=zabbix-node-01;zabbix-node-02 ```

en-us	**Agent configuration**  Now you need to configure the agents. Add the next line to the agent configuration files:      HostMetadataItem=system.uname  This way you make sure host metadata will contain "Linux" or "Windows" depending on the host an agent is running on. An example of host metadata in this case:      Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux     Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32  Do not forget to restart the agent after making any changes to the configuration file.
ca	##### Configuració de l'agent  Ara heu de configurar els agents. Afegiu la línia següent als fitxers de configuració de l'agent:  HostMetadataItem=system.uname  Això garanteix que les metadades de l'equip contindran "Linux" o "Windows" en funció de l'equip on s'executa l'agent. Un exemple de metadades de l'equip en aquest cas:  Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32  Recordeu reiniciar l'agent després de fer canvis al fitxer de configuració.

en-us	**Agent configuration**  Update the next line in the agent configuration file:      HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae  Do not forget to restart the agent after making any changes to the configuration file.
ca	**Configuració de l'agent**  Actualitzeu la següent línia a l'arxiu de configuració de l'agent:      HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae  No oblideu pas reiniciar l'agent després de fer canvis a l'arxiu de configuració.

en-us	 ### Agent data request  The agent data request contains the gathered item values.  | Field |<| Type | Mandatory | Value | |-|------|--|-|-----------------------| | request |<| _string_ | yes | `agent data` | | host |<| _string_ | yes | Host name. | | version |<| _string_ | yes | The agent version: \<major>.\<minor>. | | session |<| _string_ | yes | Unique session identifier generated each time when agent is started. | | data |<| _array of objects_ | yes | Item values. | | | id | _number_ | yes | The value identifier (incremental counter used for checking duplicated values in the case of network problems). | |^| itemid | _number_ | yes | Item identifier. | |^| value | _string_ | no | The item value. | |^| lastlogsize | _number_ | no | The item lastlogsize. | |^| mtime | _number_ | no | The item mtime. | |^| state | _number_ | no | The item state. | |^| source | _string_ | no | The value event log source. | |^| eventid | _number_ | no | The value event log eventid. | |^| severity | _number_ | no | The value event log severity. | |^| timestamp | _number_ | no | The value event log timestamp. | |^| clock | _number_ | yes | The value timestamp (seconds since Epoch). | |^| ns | _number_ | yes | The value timestamp nanoseconds. |  Example: ```json {   "request": "agent data",   "data": [     {       "id": 1,       "itemid": 5678,       "value": "2.4.0",       "clock": 1400675595,       "ns": 76808644     },     {       "id": 2,       "itemid": 1234,       "lastlogsize": 112,       "value": " 19845:20140621:141708.521 Starting Zabbix Agent [<hostname>]. Zabbix 2.4.0 (revision 50000).",       "clock": 1400675595,       "ns": 77053975     }   ],   "host": "Zabbix server",   "version": "6.0",   "session": "1234456akdsjhfoui" } ```
ca	### Petició de dades de l'agent  La petició de dades de l'agent conté els valors recollits dels elements.  | Camp |<| Tipus | Obligatori | Valor | |-|------|--|-|-----------------------| | request |<| _string_ | yes | `agent data` | | host |<| _string_ | yes | Nom de l'equip. | | version |<| _string_ | yes | Versió de l'agent: \<major>.\<menor>. | | session |<| _string_ | yes | ID de sessió única general a cada inici de l'agent. | | data |<| _array of objects_ | yes | Valor dels elements. | | | id | _number_ | yes | ID del valor (comptador incremental emprat per verificar els valors duplicats en cas de problemes de xarxa). | |^| itemid | _number_ | yes | ID de l'element. | |^| value | _string_ | no | Valor de de l'element. | |^| lastlogsize | _number_ | no | El lastlogsize de l'element. | |^| mtime | _number_ | no | L'mtime de l'element. | |^| state | _number_ | no | Estat de l'element. | |^| source | _string_ | no | El valor de la font del registre d'esdeveniments. | |^| eventid | _number_ | no | Id de l'esdeveniment del registre d'esdeveniments. | |^| severity | _number_ | no | El valor de la gravetat del registre d'esdeveniments. | |^| timestamp | _number_ | no | El valor d'horari del registre d'esdeveniments. | |^| clock | _number_ | yes | L'horari de la marca de temps (segons des de l'Època). | |^| ns | _number_ | yes | El valor de la marca de temps, en nanosegons. |  Exemple: ```json {   "request": "agent data",   "data": [     {       "id": 1,       "itemid": 5678,       "value": "2.4.0",       "clock": 1400675595,       "ns": 76808644     },     {       "id": 2,       "itemid": 1234,       "lastlogsize": 112,       "value": " 19845:20140621:141708.521 Starting Zabbix Agent [<hostname>]. Zabbix 2.4.0 (revision 50000).",       "clock": 1400675595,       "ns": 77053975     }   ],   "host": "Zabbix server",   "version": "6.0",   "session": "1234456akdsjhfoui" } ```

en-us	 ### Agent data response  The agent data response is sent by the server back to agent after processing the agent data request.  | Field | Type | Mandatory | Value | |-|-|-|--------| | response | _string_ | yes | `success` \| `failed` | | info | _string_ | yes | Item processing results. |  Example: ```json {   "response": "success",   "info": "processed: 2; failed: 0; total: 2; seconds spent: 0.003534" } ```
ca	### Resposta de les dades de l'agent  La resposta de dades de l'agent s'envia per el servidor a l'agent després del tractament de la petició de dades de l'agent.  | Camp | Tipus | Obligatori | Valor | |-|-|-|--------| | response | _string_ | sí | `success` \| `failed` | | info | _string_ | sí | Resultats del processat dels elements. |  Exemple: ```json {  · "response": "success",  · "info": "processed: 2; failed: 0; total: 2; seconds spent: 0.003534" } ```

en-us	 ##### agent.hostmetadata  <br> The agent host metadata.<br> Return value: *String*.<br> See [supported platforms](#supported-platforms).  Returns the value of [HostMetadata](/manual/appendix/config/zabbix_agentd#hostmetadata) or [HostMetadataItem](/manual/appendix/config/zabbix_agentd#hostmetadataitem) parameters, or empty string if none are defined.
ca	 ##### agent.hostmetadata  <br> Metadades de l'equip de l'agent.<br> Valor de retorn: *Cadena*.<br> Veieu [plataformes compatibles](#supported-platforms).  Retorna el valor dels paràmetres [HostMetadata](/manual/appendix/config/zabbix_agentd#hostmetadata) o [HostMetadataItem](/manual/appendix/config/zabbix_agentd#hostmetadataitem), o una cadena buida si no n'hi ha cap definit.

en-us	 ##### agent.hostname  <br> The agent host name.<br> Return value: *String*.<br> See [supported platforms](#supported-platforms).  Returns:  -   As passive check - the name of the first host listed in the [Hostname](/manual/appendix/config/zabbix_agentd#hostname) parameter of the agent configuration file; -   As active check - the name of the current hostname.
ca	 ##### agent.hostname  <br> Nom d'equip de l'agent.<br> Valor de retorn: *Cadena*.<br> Veieu [plataformes compatibles](#supported-platforms).  Devolucions:  - Com a comprovació passiva: el nom del primer equip que apareix al paràmetre [Hostname](/manual/appendix/config/zabbix_agentd#hostname) del fitxer de configuració de l'agent; - Com a verificació activa - el nom del nom d'equip actual.

en-us	#### Agent on UNIX-like systems  Zabbix agent on UNIX-like systems is run on the host being monitored.
ca	#### Agent a sistemes Unix  L’agent Zabbix a sistemes Unix s'executa a un equip monitorat.

en-us	#### Agent on Windows systems  Zabbix agent on Windows runs as a Windows service.
ca	#### Agent als sistemes Windows  L'agent Zabbix sota Windows s'executa com a servei de Windows.

en-us	##### Agent operation with persistent file  On startup Zabbix agent knows nothing about persistent files. Only after receiving a list of active checks from Zabbix server \(proxy\) the agent sees that some log items should be backed by persistent files under specified directories.  During agent operation the persistent files are opened for writing (with fopen(filename, "w")) and overwritten with the latest data.  The chance of losing persistent file data if the overwriting and file system mirror split happen at the same time is very small, no special handling for it.  Writing into persistent file is NOT followed by enforced synchronization to storage media \(fsync\(\) is not called\).  Overwriting with the latest data is done after successful reporting of matching log file record or metadata \(processed log size and modification time\) to Zabbix server. That may happen as often as every item check if log file keeps changing.  No special actions during agent shutdown.
ca	##### Funcionament de l'agent amb fitxer persistent  A l'inici, l'agent Zabbix no sap res dels fitxers persistents. Només després de rebre una llista de comprovacions actives del \(proxy\) o servidor Zabbix, l'agent entén que alguns elements de registre han de fer una còpia de seguretat mitjançant fitxers persistents als directoris especificats.  Mentre l'agent s'executa, els fitxers persistents s'obren per escriure (amb fopen(nom de fitxer, "w")) i es sobreescriuen amb les dades més recents. El risc de perdre dades de fitxers persistents si la rèplica del sistema de fitxers sobreescriu i es divideix al mateix temps és molt baix, no cal cap tractament especial. L'escriptura en un fitxer persistent NO és seguida d'una sincronització forçada amb el suport d'emmagatzematge \(fsync\(\) no s'anomena\).  La sobreescriptura amb les dades més recents es fa després d'informar amb èxit del registre o metadades del fitxer de registre corresponent (mida del registre processat i temps de modificació) al servidor Zabbix. Això pot passar tan sovint com cada element comprova si el fitxer de registre continua canviant.  No cal pas cap acció especial en aturar l'agent.

en-us	 ##### agent.ping  <br> The agent availability check.<br> Return value: Nothing - unavailable; 1 - available.<br> See [supported platforms](#supported-platforms).  Use the **nodata()** trigger function to check for host unavailability.
ca	 ##### agent.ping  <br> Comprovació de la disponibilitat de l'agent.<br> Valor de retorn: Res - no disponible; 1 - disponible.<br> Veieu [plataformes compatibles](#supported-platforms).  Empreu la funció trigger **nodata()** per comprovar la indisponibilitat de l'equip.

en-us	#### Agent process types  -   `active checks` - process for performing active checks -   `collector` - process for data collection -   `listener` - process for listening to passive checks  The agent log file can be used to observe these process types.
ca	#### Tipus de processos Agent  -   `​active checks`​ - processos que fan verificacions actives -   `​collector`​ - processos per recollir dades -   `​listener`​ - processos que escolten les verificacions passives  L'arxiu de registre de l'agent es pot emprar per observar aquests tipus de processos.

en-us	##### Agent  |Requirement|Mandatory status|Description| |--|-|-------| |*libpcre/libpcre2*|One of|PCRE/PCRE2 library is required for [Perl Compatible Regular Expression](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE) support.<br>The naming may differ depending on the GNU/Linux distribution, for example 'libpcre3' or 'libpcre1'. PCRE v8.x and PCRE2 v10.x (from Zabbix 6.0.0) are supported.<br>Required for log monitoring. Also required on Windows.| |*libpthread*|Yes|Required for mutex and read-write lock support (could be part of libc). Not required on Windows.| |*libresolv*|^|Required for DNS resolution (could be part of libc). Not required on Windows.| |*libiconv*|^|Required for text encoding/format conversion to UTF-8 in log items, file content, file regex and regmatch items (could be part of libc). Not required on Windows.| |*libgnutls* or *libopenssl*|No|Required if using [encryption](/manual/encryption#compiling_zabbix_with_encryption_support).<br>Minimum versions: *libgnutls* - 3.1.18, *libopenssl* - 1.0.1<br>On Microsoft Windows OpenSSL 1.1.1 or later is required.| |*libldap*|^|Required if LDAP is used. Not supported on Windows.| |*libcurl*|^|Required for `web.page.*` Zabbix agent [items](/manual/config/items/itemtypes/zabbix_agent). Not supported on Windows.<br>Version 7.28.0 or higher is recommended.| |*libmodbus*|^|Only required if Modbus monitoring is used.<br>Version 3.0 or higher.|  ::: noteclassic  Starting from version 5.0.3, Zabbix agent will not work on AIX platforms below versions 6.1 TL07 / AIX 7.1 TL01.  :::
ca	##### Agent  |Requisits previs|Obligació|Descripció| |--|-|-------| |*libpcre/libpcre2*|Una de les biblioteques |PCRE/PCRE2 és necessària per al suport d'[expressions regular compatibles amb Perl](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE).<br>El nom pot ser difereixen segons la distribució GNU/Linux, per exemple 'libpcre3' o 'libpcre1'. S'admeten PCRE v8.x i PCRE2 v10.x (de Zabbix 6.0.0).<br>Cal per al monitoratge del registre. També es requereix a Windows.| |*libpthread*|Sí|Cal per al suport de blocatge de mutex i lectura-escriptura (pot ser part de libc). No cal a Windows.| |*libresolv*|^|Cal per a la resolució DNS (pot ser part de libc). No cal a Windows.| |*libiconv*|^|Cal per a la codificació de text/conversió de format a UTF-8 en elements de registre, contingut del fitxer, expressió regular del fitxer i elements de concordança de regles (pot ser part de la libc). No cal a Windows.| |*libgnutls* o *libopenssl*|No|Cal si utilitzeu [encryption](/manual/encryption#compiling_zabbix_with_encryption_support).<br>Versions mínimes: *libgnutls* - 3.1.18, *libopenssl* - 1.0.1 <br >A Microsoft Windows, cal OpenSSL 1.1.1 o posterior.| |*libldap*|^|Cal si s'empra LDAP. No és compatible amb Windows.| |*libcurl*|^|Cal per als elements de l'agent Zabbix [`web.page.*`](/manual/config/items/itemtypes/zabbix_agent). No és compatible amb Windows.<br>Es recomana la versió 7.28.0 o superior.| |*libmodbus*|^|Només cal si s'empra el monitoratge de modbus.<br>Versió 3.0 o superior.|  :::noteclassic   A partir de la versió 5.0.3, l'agent Zabbix no funcionarà a les plataformes AIX anteriors a les versions 6.1 TL07 / AIX 7.1 TL01. :::

en-us	#### Agent upgrade process  ::: noteimportant Upgrading agents is not mandatory. You only need to upgrade agents if it is required to access the new functionality. :::  The upgrade procedure described in this section may be used for upgrading both the Zabbix agent and the Zabbix agent 2.
ca	#### Procés d'actualització de l'agent  ::: noteimportant L'actualització dels agents no és pas obligatòria. Només els hauríeu d'actualitzar si cal per accedir a la nova funcionalitat. :::  El procediment d'actualització descrit en aquesta secció es pot emprar per actualitzar tant l'agent Zabbix com l'agent Zabbix 2.

en-us	 ##### agent.variant  <br> The variant of Zabbix agent (Zabbix agent or Zabbix agent 2).<br> Return value: 1 - Zabbix agent; 2 - Zabbix agent 2.<br> See [supported platforms](#supported-platforms).
ca	 ##### agent.variant  <br> Variant de l'agent Zabbix (agent Zabbix o agent Zabbix 2).<br> Valor de retorn: 1 - agent Zabbix; 2 - Agent Zabbix 2.<br> Veieu [plataformes compatibles](#supported-platforms).

en-us	 ##### agent.version  <br> The version of Zabbix agent.<br> Return value: *String*.<br> See [supported platforms](#supported-platforms).  Example of returned value:       6.0.3
ca	 ##### agent.version  <br> Versió de l'agent Zabbix.<br> Valor de retorn: *String*.<br> Veieu [plataformes compatibles](#supported-platforms).  Exemple de valor retornat:      6.0.3

en-us	##### Agent  Zabbix agents are deployed on monitoring targets to actively monitor local resources and applications and report the gathered data to Zabbix server. Since Zabbix 4.4, there are two types of agents available: the [Zabbix agent](/manual/concepts/agent) (lightweight, supported on many platforms, written in C) and the [Zabbix agent 2](/manual/concepts/agent2) (extra-flexible, easily extendable with plugins, written in Go).
ca	##### Agent  Els Agents Zabbix es despleguen en objectius de monitoratge per monitorar activament els recursos i aplicacions locals i enviar les dades recollides al servidor Zabbix. Des de Zabbix 4.4, hi ha dos tipus d'agents disponibles: [Zabbix Agent](/manual/concepts/agent) (lleuger, compatible amb moltes plataformes, escrit en C) i [Zabbix Agent 2](/manual/concepts/agent2) (extra-flexible, fàcilment ampliable amb complements, escrit en Go).

en-us	### Aggregate functions  The **count_foreach** function now returns '0' for a matching item in the array, if no data are present for the item or  the data do not match the filter. Previously such items would be ignored (no data added to the aggregation).
ca	### Funcions d'afegit  La funció **count_foreach** ara retorna '0' per a un element que coincideixi a la taula, si no hi ha informació present per l'element o la informació no coincideix amb el filtre. Els elements previs s'ignoraran (no s'afegirà pas informació).

en-us	### Aggregate functions  The **count_foreach** function now returns '0' for a matching item in the array, if no data are present for the item or the data do not match the filter. Previously such items would be ignored (no data added to the aggregation).
ca	### Funcions d'afegit  La funció **count_foreach** ara retorna '0' per a un element que coincideixi a la taula, si no hi ha informació present per l'element o la informació no coincideix amb el filtre. Els elements previs s'ignoraran (no s'afegirà pas informació).

en-us	#### Aggregate functions  The **last_foreach** function is now also supported in the following [aggregate functions](/manual/appendix/functions/aggregate): kurtosis, mad, skewness, stddevpop, stddevsamp, sumofsquares, varpop, and varsamp.
ca	#### Funcions agregades  La funció **last_foreach** ara també s'admet a les [funcions agregades](/manual/appendix/functions/aggregate): kurtosis, mad, skewness, stddevpop, stddevsamp, sumofsquares, varpop i varsamp.

en-us	#### AIX  See values supported for 'memtype' parameter on AIX in the table.  |Supported value|Description|Source in procentry64 structure|Tries to be compatible with| |--|------|--|--| |vsize ^[1](proc_mem_notes#footnotes)^|Virtual memory size|pi\_size| | |pmem|Percentage of real memory|pi\_prm|ps -o pmem| |rss|Resident set size|pi\_trss + pi\_drss|ps -o rssize| |size|Size of process (code + data)|pi\_dvm|"ps gvw" SIZE column| |dsize|Data size|pi\_dsize|<| |tsize|Text (code) size|pi\_tsize|"ps gvw" TSIZ column| |sdsize|Data size from shared library|pi\_sdsize|<| |drss|Data resident set size|pi\_drss| | |trss|Text resident set size|pi\_trss| |
ca	#### AIX  En aquesta taula hi trobareu els valors admesos per el paràmetre 'memtype' sota AIX.  |Valor admès|Descripció|Font a l'estructura procentry64|Intents per ésser compatible| |--|------|--|--| |vsize ^[1](proc_mem_notes#footnotes)^|Mida de la memòria virtual|pi\_size| | |pmem|Percentatge de memòria real|pi\_prm|ps -o pmem| |rss|Mida del conjunt de residents|pi\_trss + pi\_drss|ps -o rssize| |size|Mida dels processos (codi + dades)|pi\_dvm|"ps gvw" SIZE column| |dsize|Mida de dades|pi\_dsize|<| |tsize|Mida del text (codi)|pi\_tsize|"ps gvw" Colonne TSIZ| |sdsize|Mida de les dades de la biblioteca compartida|pi\_sdsize|<| |drss|Mida del conjunt de residents de dades|pi\_drss| | |trss|Mida del conjunt de residents de text|pi\_trss| |

en-us	#### Alert customization
ca	#### Personalització d'alertes

en-us	#### Alerter process crash in RHEL 7  Instances of a Zabbix server alerter process crash have been encountered in RHEL 7. Please see [ZBX-10461](https://support.zabbix.com/browse/ZBX-10461) for details.
ca	#### Fallida del procés Alerter amb RHEL 7  S'han trobat bloquejos de les instàncies del procés d'alerta del servidor Zabbix a RHEL 7. Consulteu [ZBX-10461](https://support.zabbix.com/browse/ZBX-10461) per obtindre més informació.

en-us	# alert.get
ca	# alert.get