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.
es	#### Agregar páginas  Para agregar una nueva página a un tablero:  -   Asegúrese de que el tablero esté en el [modo     edición](#viewing_and_editing_a_dashboard) -   Haga clic en la flecha al lado del botón *Agregar* y seleccione la opción *Agregar      página*  ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/dashboard_page_add.png)  - Complete los parámetros generales de la página y haga clic en *Aplicar*. Si se va y     el nombre está vacío, la página se agregará con un nombre de `Página N` donde     'N' es el número incremental de la página. El período de visualización de la página     permite personalizar cuánto tiempo se muestra una página en una presentación de diapositivas.  ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/dashboard_page_properties.png)  Se agregará una nueva página, indicada por una nueva pestaña (*Página 2*).  ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/dashboard_page_new.png)  Las páginas se pueden reordenar arrastrando y soltando las pestañas de las páginas. La reordenación mantiene el nombre de la página original. Siempre que sea posible acceda a cada página haciendo clic en su pestaña.  Cuando se agrega una nueva página, está vacía. Puede agregarle widgets como se describe arriba.

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.
es	##### Agregar permisos  De forma predeterminada, un nuevo usuario no tiene permisos para acceder a equipos y plantillas. Para conceder los derechos de usuario, haga clic en el grupo del usuario en la columna *Grupos* (en este caso - 'administradores de Zabbix'). En el formulario de propiedades del grupo, vaya a la pestaña *Permisos de equipo* para asignar permisos a los grupos de equipos.  ![](../../../assets/en/manual/quickstart/group_permissions.png){width="600"}  Este usuario debe tener acceso de sólo lectura al grupo *servidores Linux*, así que haga clic en en *Seleccionar* junto al campo de selección del grupo de equipos.  ![](../../../assets/en/manual/quickstart/add_permissions.png){width="600"}  En esta ventana emergente, marque la casilla de verificación junto a 'Servidores Linux' y luego haga clic en *Seleccionar*. *Servidores Linux* deben aparecer en el campo de selección. Haga clic en el botón 'Leer' para establecer el nivel de permiso y luego *Agregar* a agregue el grupo a la lista de permisos. En las propiedades del grupo de usuarios formulario, haga clic en *Actualizar*.  Para otorgar permisos a las plantillas, deberá cambiar a la pestaña *Permisos de plantilla* y especificar grupos de plantillas.  ::: noteimportant En Zabbix, los derechos de acceso a equipos y plantillas se asignan a los [grupos de usuarios](/manual/config/users_and_usergroups/usergroup), no a usuarios individuales. :::  ¡Hecho! Puede intentar iniciar sesión con las credenciales del nuevo usuario.

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
es	##### Agregar servidores proxy  Para configurar un proxy en la interfaz de Zabbix:  -   Ir a: *Administración → Proxies* -   Haga clic en *Crear proxy*  ![](../../../assets/en/manual/distributed_monitoring/proxy.png){width="600"}  |Parámetro|<|Descripción| |-|----------|----------------------------------------| |*Nombre del proxy*|<|Ingrese el nombre del proxy. Debe ser el mismo nombre que en el parámetro *Hostname* en el archivo de configuración del proxy.| |*Modo proxy*|<|Seleccione el modo proxy.<br>**Activo**: el proxy se conectará al servidor Zabbix y solicitará datos de configuración<br>**Pasivo**: el servidor Zabbix se conecta al proxy< br>*Tenga en cuenta* que sin comunicaciones cifradas (sensibles) los datos de configuración del proxy pueden estar disponibles para las partes que tienen acceso al puerto trampa del servidor Zabbix cuando usan un proxy activo. Esto es posible porque cualquiera puede pretender ser un proxy activo y solicitar datos de configuración si no se realiza la autenticación o las direcciones de proxy no están limitadas en el campo *Dirección de proxy*.| |*Dirección de proxy*|<|Si se especifica, las solicitudes de proxy activo solo se aceptan de esta lista de direcciones IP delimitadas por comas, opcionalmente en notación CIDR, o nombres DNS del proxy Zabbix activo.<br>Este campo solo está disponible si se El proxy activo está seleccionado en el campo *Modo proxy*. Las macros no son compatibles.<br>Esta opción es compatible desde Zabbix 4.0.0.| |*Interfaz*|<|Ingrese los detalles de la interfaz para el proxy pasivo.<br>Este campo solo está disponible si se selecciona un proxy pasivo en el campo *Modo de proxy*.| | |*Dirección IP*|Dirección IP del proxy pasivo (opcional).| |^|*Nombre DNS*|Nombre DNS del proxy pasivo (opcional).| |^|*Conectar a*|Al hacer clic en el botón respectivo, le indicará al servidor Zabbix qué usar para recuperar datos del proxy:<br>**IP** - Conéctese a la dirección IP del proxy (recomendado)<br>**DNS* * - Conéctese al nombre DNS del proxy | |^|*Puerto*|Número de puerto TCP del proxy pasivo (10051 por defecto).| |*Descripción*|<|Ingrese la descripción del proxy.|  La pestaña **Cifrado** le permite solicitar conexiones cifradas con el proxy.  |Parámetro|Descripción| |--|--------| |*Conexiones al proxy*|Cómo se conecta el servidor al proxy pasivo: sin cifrado (predeterminado), usando PSK (clave precompartida) o certificado.| |*Conexiones desde proxy*|Seleccione qué tipo de conexiones se permiten desde el proxy activo. Se pueden seleccionar varios tipos de conexión al mismo tiempo (útil para probar y cambiar a otro tipo de conexión). El valor predeterminado es "Sin cifrado".| |*Emisor*|Emisor de certificado permitido. El certificado se valida primero con CA (autoridad certificadora). Si es válido y está firmado por la CA, entonces el campo *Issuer* se puede utilizar para restringir aún más la CA permitida. Este campo es opcional y está pensado para utilizarse si su instalación de Zabbix utiliza certificados de varias CA.| |*Asunto*|Asunto permitido del certificado. El certificado se valida primero con CA. Si es válido y está firmado por la CA, entonces el campo *Asunto* se puede utilizar para permitir solo un valor de la cadena *Asunto*. Si este campo está vacío, se acepta cualquier certificado válido firmado por la CA configurada.| |*Identidad PSK*|Cadena de identidad de clave previamente compartida.<br>No incluya información confidencial en la identidad PSK, se transmite sin cifrar a través de la red para informar al receptor qué PSK usar.| |*PSK*|Clave previamente compartida (cadena hexadecimal). Longitud máxima: 512 dígitos hexadecimales (PSK de 256 bytes) si Zabbix usa la biblioteca GnuTLS u OpenSSL, 64 dígitos hexadecimales (PSK de 32 bytes) si Zabbix usa la biblioteca mbed TLS (PolarSSL). Ejemplo: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952|  El formulario de edición de un proxy existente tiene los siguientes botones adicionales:  -   *Actualizar configuración* - actualizar la configuración del proxy -   *Clonar*: crea un nuevo proxy basado en las propiedades del proxy existente -   *Eliminar* - eliminar 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).
es	#### Adición de formas  Además de los elementos del mapa, también es posible agregar algunas formas. Las formas no son elementos del mapa; son solo una representación visual. Para ejemplo, una forma de rectángulo se puede utilizar como fondo para agrupar algunos Hospedadores. Se pueden agregar formas de rectángulo y elipse.  Para agregar una forma, haga clic en *Agregar* junto a Forma. La nueva forma aparecerá en la esquina superior izquierda del mapa. Arrástralo y suéltalo donde quieras.  Se agrega una nueva forma con colores predeterminados. Al hacer clic en la forma, un se muestra el formulario y puede personalizar la apariencia de una forma, agregar texto, etc.  ![](../../../../../assets/en/manual/config/visualization/map_shape.png){width="600"}  Para seleccionar formas, seleccione una y luego mantenga presionada la tecla *Ctrl* para seleccionar la otros. Con varias formas seleccionadas, las propiedades comunes pueden ser masa actualizado, de forma similar a los elementos.  Se puede agregar texto en las formas. Expresión [macros](/manual/appendix/macros/supported_by_location) son compatibles en el texto, pero solo con las funciones `avg`, `last`, `min` y `max`, con time como parámetro (por ejemplo, `{?avg(/host/key,1h)}`).  Para mostrar texto, solo la forma se puede hacer invisible eliminando el borde de forma (seleccione 'Ninguno' en el campo *Borde*). Por ejemplo, tome nota de cómo la macro {MAP.NAME}, visible en la captura de pantalla anterior, es en realidad una forma de rectángulo con texto, que se puede ver al hacer clic en la macro:  ![](../../../../../assets/en/manual/config/visualization/map_name_macro.png)  {MAP.NAME} se resuelve en el nombre del mapa configurado al visualizar el mapa.  Si se utilizan hipervínculos en el texto, se puede hacer clic en ellos cuando se visualizan el mapa.  El ajuste de línea para el texto siempre está "activado" dentro de las formas. Sin embargo, dentro de un elipse, las líneas se envuelven como si la elipse fuera un rectángulo. El ajuste de palabras no está implementado, por lo que las palabras largas (palabras que no encajan la forma) no están envueltos, pero están enmascarados (página del constructor) o recortados (otras páginas con mapas).

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 } ```
es	#### Agregar plantillas a grupos de plantillas  Agregue dos plantillas a los grupos de plantillas con los ID 12 y 13.  [Solicitud](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "templategroup.massadd",     "params": {         "groups": [             {                 "groupid": "12"             },             {                 "groupid": "13"             }         ],         "templates": [             {                 "templateid": "10486"             },             {                 "templateid": "10487"             }         ]     },     "id": 1 } ```  Respuesta:  ```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.
es	#### Agregar plantilla  Para empezar a trabajar con plantillas, primero debemos crear una. Para hacer eso, en *Recopilación de datos* → *Plantillas* haga clic en *Crear plantilla*. Esto nos presentará un formulario de configuración de plantilla.  ![](../../../assets/en/manual/quickstart/new_template.png){width="600"}  Todos los campos de entrada obligatorios están marcados con un asterisco rojo.  Los parámetros requeridos para ingresar aquí son:  ***Nombre de la plantilla***  - Introduzca un nombre de plantilla. Los caracteres alfanuméricos, los espacios y los guiones bajos están     permitidos.  ***Grupos de plantillas***  - Seleccione uno o varios grupos haciendo clic en el botón *Seleccionar*.     La plantilla debe pertenecer a un grupo.  ::: noteclassic Los permisos de acceso a los grupos de plantillas se asignan en la configuración del [grupo de usuarios](/manual/quickstart/login#adding-permissions) en la pestaña **Permisos de plantilla** de la misma manera que los permisos de equipo. Todos los permisos de acceso se asignan a grupos, no a plantillas individuales, por eso es obligatorio incluir la plantilla en al menos un grupo. :::   Cuando termine, haga clic en *Agregar*. Su nueva plantilla debería estar visible en la lista de plantillas. También puede utilizar el [filtro](/manual/web_interface/frontend_sections/data_collection/templates#using-filter) para encontrar su plantilla.  ![](../../../assets/en/manual/quickstart/template_list.png){width="600"}  Como puede ver, la plantilla está ahí, pero no contiene nada, no tiene métricas, iniciadores ni otras entidades.

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.
es	#### Añadiendo un iniciador  Para configurar un iniciador para nuestra métrica, vaya a *Recopilación de datos → Equipos*, y busque 'Nuevo equipo' y haga clic en *Iniciadores* que está al lado y luego en *Crear iniciador*. Esto nos presenta un formulario de definición de iniciador.\ ![](../../../assets/en/manual/quickstart/new_trigger.png)  Para nuestro iniciador, la información esencial para introducir aquí es:  *Nombre*  - Ingrese *Carga de CPU demasiado alta en 'Nuevo equipo' durante 3 minutos* como valor.     Este será el nombre del iniciador que se mostrará en las listas y en otros lugares.  *Expresión*  - Ingrese: avg(/Nuevo host/system.cpu.load,3m)>2  Esta es la expresión del iniciador. Asegúrese de que se haya ingresado la expresión. correcta, hasta el último símbolo. La clave de la métrica (system.cpu.load) es utilizada para referirse a la métrica. Esta expresión en particular básicamente dice que el umbral del problema se excede cuando el valor promedio de carga de la CPU durante 3 minutos son más de 2. Puede obtener más información sobre la [sintaxis de las expresiones del iniciador](/manual/config/triggers/expression).  Cuando termine, haga clic en *Agregar*. El nuevo iniciador debería aparecer en la lista de iniciadores.

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"}
es	#### Agregar usuario  Para ver información sobre los usuarios, vaya a *Usuarios → Usuarios*.  ![](../../../assets/en/manual/quickstart/userlist.png){width="600"}  Para agregar un nuevo usuario, haga clic en *Crear usuario*.  En el formulario de nuevo usuario, asegúrese de agregar su usuario a uno de los  [grupos de usuarios](/manual/config/users_and_usergroups/usergroup) existentes, por ejemplo 'administradores de Zabbix'.  ![](../../../assets/en/manual/quickstart/new_user.png)  Todos los campos de entrada obligatorios están marcados con un asterisco rojo.  De forma predeterminada, los nuevos usuarios no tienen medios (métodos de entrega de notificaciones) definido para ellos. Para crear uno, vaya a la pestaña 'Medios' y haga clic en *Agregar*.  ![](../../../assets/en/manual/quickstart/new_media.png)  En esta ventana emergente, ingrese una dirección de correo electrónico para el usuario.  Puede especificar un período de tiempo en el que el medio estará activo (consulte la página [especificación del período de tiempo](/manual/appendix/time_period)  para una descripción del formato), por defecto un medio siempre está activo. También puede personalizar los niveles de [gravedad del iniciador](/manual/config/triggers/severity)  para los cuales el medio estará activo, pero déjelos todos habilitados por ahora.  Haga clic en *Agregar* para guardar el medio, luego vaya a la pestaña Permisos.  La pestaña Permisos tiene un campo obligatorio *Rol*. El rol determina los elementos de la interfaz que el usuario puede ver y qué acciones puede  llevar a cabo. Presione Seleccionar y seleccione uno de los roles de la lista. Por ejemplo, seleccione *Rol de administrador* para permitir el acceso a todas las secciones de la interfaz de Zabbix, excepto Administración. Más adelante podrá modificar los permisos o crear más roles de usuario. Al seleccionar un rol, aparecerán los permisos. en la misma pestaña:  ![usuario\_permissions.png](../../../assets/en/manual/config/user_permissions.png)   Haga clic en *Agregar* en el formulario de propiedades del usuario para guardar al usuario. El nuevo usuario aparece en la lista de usuarios.  ![](../../../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).
es	#### Agregar escenarios web  Para agregar escenarios web a una plantilla en *Recopilación de datos* → *Plantillas*, haga la siguiente:  1. Haga clic en *Web* en la fila de la plantilla. 2. Configure un escenario web siguiendo el método habitual de [configurar escenarios 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.
es	#### Agregar widgets  Para agregar un widget a un tablero:  -   Haga clic en el     ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/dashboard_add_button.png)     o la opción *Agregar widget* en el menú de acciones que se     abre haciendo clic en la flecha. Complete el formulario de configuración del widget.     El widget se creará en su tamaño predeterminado y se colocará después de los     widgets existentes (si los hay);  O  -   Mueva el mouse al lugar vacío deseado para el nuevo widget. Fíjese en     cómo aparece un marcador de posición, al pasar el mouse, en cualquier espacio vacío en el     tablero. Luego haga clic para abrir el formulario de configuración del widget. Después,     al completar el formulario, el widget se creará en su tamaño predeterminado o,     si su tamaño predeterminado es mayor que el disponible, toma el     espacio disponible. Alternativamente, puede hacer clic y arrastrar el     marcador de posición al tamaño de widget deseado, luego suéltelo y luego complete     el formulario de configuración del widget. (Tenga en cuenta que cuando hay un widget     copiado en el portapapeles, primero se le pedirá que seleccione     entre las opciones *Agregar widget* y *Pegar widget* para crear un widget).  ![](../../../../assets/en/manual/web_interface/dashboard_click.png)  ![](../../../../assets/en/manual/web_interface/dashboard_select.png)  En el formulario de configuración del widget:  -   Seleccione el *Tipo* de widget -   Introduzca los parámetros del widget -   Haga clic en *Agregar*  ![](../../../../assets/en/manual/web_interface/frontend_sections/dashboards/widget_add.png)  #### Widgets  Una amplia variedad de [widgets](/manual/web_interface/frontend_sections/dashboards/widgets) (por ejemplo, [Reloj](/manual/web_interface/frontend_sections/dashboards/widgets/clock), [Disponibilidad del equipo](/manual/web_interface/frontend_sections /dashboards/widgets/host_availability) o [Descripción general del iniciador](/manual/web_interface/frontend_sections/dashboards/widgets/trigger_overview)) se pueden agregar a un tablero: se pueden cambiar de tamaño y mover por el tablero en el modo de edición del tablero haciendo clic en la barra de título del widget y arrastrándolo a una nueva ubicación. Además, puede hacer clic en los siguientes botones en la esquina superior derecha del widget para:  - ![](../../../../assets/en/manual/web_interface/widget_edit.png) -     editar un widget; - ![](../../../../assets/en/manual/web_interface/button_widget_menu.png) -     acceder al [menú de widgets](#widget_menu)  Haga clic en *Guardar cambios* para que el tablero haga permanentes los cambios en los widgets.

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.
es	### Agregar repositorio Zabbix  Instale el paquete de configuración del repositorio. Este paquete contiene los archivos de configuración de yum (administrador de paquetes de software) .  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'   Tenga en cuenta que el proceso del servicio web Zabbix, que se utiliza para la [generación del informe  programado](/manual/web_interface/frontend_sections/reports/scheduled), requiere el navegador Google Chrome. El navegador no está incluido en los paquetes y debe instalarse manualmente.

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)*
es	 **Ubicaciones adicionales del menú de métricas**  [Menú contextual de la métrica](/manual/web_interface/menu/item_menu) ahora también está disponible en:  - *Recopilación de datos → Equipos → [Métricas](/manual/web_interface/frontend_sections/data_collection/hosts/items)* - *Recopilación de datos → Equipos → Reglas de descubrimiento → [Prototipos de métricas](/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.
es	##### Parámetros adicionales  Un tercer parámetro opcional es compatible con la función  *bucket\_rate\_foreach*:      bucket_rate_foreach(filtro de métrica,período de tiempo,<número de parámetro>)  donde <número de parámetro> es la posición del valor del "depósito" en la clave de la métrica. Por ejemplo, si el valor del "depósito" en myItem\[aaa,0.2\] es '0.2', entonces su posición es 2.  El valor predeterminado de <número de parámetro> es '1'.  Consulte [cálculos agregados](/manual/config/items/itemtypes/calculated/aggregate) para obtener más detalles y ejemplos sobre el uso de funciones 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.
es	 #### Opciones adicionales de ssh.run  El elemento **ssh.run[]** se actualizó y ahora permite pasar opciones SSH adicionales como parte de la clave de la métrica. Consulte [Comprobaciones SSH](/manual/config/items/itemtypes/ssh_checks) para obtener más detalles.

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"]     } } ```
es	### Agregar JavaScript al widget  En esta sección, aprenderá cómo agregar elementos Javascript al widget.  Agregará:  - Un gráfico de tipo gauge creado con JavaScript, para mostrar de un vistazo si el último valor es normal o demasiado alto o demasiado bajo. - Una sección de *Configuración avanzada* para parámetros opcionales, como color, valores mínimos y máximos, unidades y el campo *Descripción* creado anteriormente.  1. Cree un archivo *widget.edit.js.php* en el directorio *views*.  JavaScript será responsable de ocultar los campos opcionales detrás de la casilla de verificación *Configuración avanzada* e inicializar el selector de color en la vista de configuración. Puede agregarlo al mismo directorio que la vista de configuración.  Dado que el JavaScript para la vista de configuración debe cargarse con el formulario, deberá incluirlo en el archivo *widget.edit.php* como se muestra en los siguientes pasos.  **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. Cree un archivo *Widget.php* en el directorio principal de widgets *lesson_gauge_chart* para crear una nueva clase *Widget*.  La clase *Widget* ampliará la clase base *CWidget* para agregar/anular la configuración predeterminada del widget (en este caso, traducciones). El JavaScript, que se proporciona a continuación, muestra la cadena "Sin datos" en caso de que falten datos. La cadena "Sin datos" está presente en los archivos de traducción de la interfaz de usuario de Zabbix.  Si hay constantes de widget, se recomienda especificarlas también en la clase *Widget*.  **ui/modules/lesson_gauge_chart/Widget.php**  ```php <?php   namespace Modules\LessonGaugeChart;  use Zabbix\Core\CWidget;  class Widget extends CWidget {  public const UNIT_AUTO = 0; public const UNIT_STATIC = 1;  public function getTranslationStrings(): array { return [ 'class.widget.js' => [ 'No data' => _('No data') ] ]; } } ```  3. Abra *includes/WidgetForm.php* y agregue los nuevos campos: *Configuración avanzada* (casilla de verificación), *Color* (selector de color), *Min* (campo numérico), *Max* (campo numérico) y * Unidades* (selección).  **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. Abra *views/widget.edit.php* y agregue los componentes visuales del campo a la vista de configuración.  El método *addField()* de la clase *CWidgetFormView* toma una cadena de clase CSS como segundo parámetro. Agregue la cadena *js-advanced-configuration* a esos campos y sus etiquetas, que deben ocultarse si no se selecciona *Configuración avanzada*.  Para agregar un archivo JavaScript a la vista de configuración, use el método *includeJsFile()*. Para agregar JavaScript en línea, utilice el método *addJavaScript()*.  **ui/modules/lesson_gauge_chart/views/widget.edit.php**  ```php <?php  /**  * Gauge chart widget form view.  *  * @var CView $this  * @var array $data  */  use Zabbix\Widgets\Fields\CWidgetFieldGraphDataSet;  $lefty_units = new CWidgetFieldSelectView($data['fields']['value_units']); $lefty_static_units = (new CWidgetFieldTextBoxView($data['fields']['value_static_units'])) ->setPlaceholder(_('value')) ->setWidth(ZBX_TEXTAREA_TINY_WIDTH);  (new CWidgetFormView($data)) ->addField( new CWidgetFieldMultiSelectItemView($data['fields']['itemid'], $data['captions']['items']['itemid']) ) ->addField( new CWidgetFieldCheckBoxView($data['fields']['adv_conf']) ) ->addField( new CWidgetFieldColorView($data['fields']['chart_color']), 'js-advanced-configuration' ) ->addField( new CWidgetFieldNumericBoxView($data['fields']['value_min']), 'js-advanced-configuration' ) ->addField( new CWidgetFieldNumericBoxView($data['fields']['value_max']), 'js-advanced-configuration' ) ->addItem([ $lefty_units->getLabel()->addClass('js-advanced-configuration'), (new CFormField([ $lefty_units->getView()->addClass(ZBX_STYLE_FORM_INPUT_MARGIN), $lefty_static_units->getView() ]))->addClass('js-advanced-configuration') ]) ->addField( new CWidgetFieldTextBoxView($data['fields']['description']), 'js-advanced-configuration' ) ->includeJsFile('widget.edit.js.php') ->addJavaScript('widget_lesson_gauge_chart_form.init('.json_encode([ 'color_palette' => CWidgetFieldGraphDataSet::DEFAULT_COLOR_PALETTE ], JSON_THROW_ON_ERROR).');') ->show(); ```  5. Regrese al tablero, haga clic en el ícono de ajustes en el widget para abrir el formulario de configuración del widget. El formulario de configuración del widget ahora contiene una nueva casilla de verificación *Configuración avanzada*.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_advanced.png){width="600"}  6. Marque la casilla de verificación *Configuración avanzada* para ver campos de configuración de widgets adicionales. Complete los campos con valores y seleccione un color de widget.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_advanced_b.png){width="600"}  7. Haga clic en *Aplicar* en el formulario de configuración del widget. Luego haga clic en *Guardar cambios* en la esquina superior derecha para guardar el tablero.  8. Abra *actions/WidgetView.php* y actualice el controlador.  La propiedad **$this->fields_values** ahora contiene los valores de todos los campos de *Configuración avanzada*. Finalice el controlador para permitir pasar la configuración y el valor del elemento seleccionado a la vista del widget.  **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. Abra y modifique *views/widget.view.php*.  Debe crear un contenedor para el gráfico de tipo gauge, que dibujará en los siguientes pasos, y un contenedor para la descripción.  Para pasar valores a JavaScript como un objeto JSON, utilice el método *setVar()*.  **ui/modules/lesson_gauge_chart/views/widget.view.php**  ```php <?php  /**  * Gauge chart widget view.  *  * @var CView $this  * @var array $data  */  (new CWidgetView($data)) ->addItem([ (new CDiv())->addClass('chart'), $data['fields_values']['description'] ? (new CDiv($data['fields_values']['description']))->addClass('description') : null ]) ->setVar('history', $data['history']) ->setVar('fields_values', $data['fields_values']) ->show(); ```  10. Cree un nuevo directorio *assets* en el directorio *lesson_gauge_chart*. Este directorio se utilizará para almacenar JavaScript, CSS y potencialmente cualquier otro activo, como fuentes o imágenes.  11. Para la vista de widget JavaScript, cree un directorio *js* en el directorio *assets*.  12. Cree un archivo *class.widget.js* en el directorio *assets/js*.  Esta clase de widget de JavaScript ampliará la clase de JavaScript base de todos los widgets del tablero: *CWidget*.  El tablero se basa en una implementación correcta de un widget y comunica cualquier información relevante al widget mediante la llamada a los respectivos métodos de JavaScript. El tablero también espera que el widget genere eventos cuando se produzca alguna interacción. Por lo tanto, la clase *CWidget* contiene un conjunto de métodos con la implementación predeterminada del comportamiento del widget, que se puede personalizar extendiendo la clase.  En este caso, es necesaria cierta personalización; por lo tanto, se implementará una lógica personalizada para el siguiente comportamiento del widget:  -inicialización del widget que es responsable de definir el estado inicial del widget (ver el método *\_init()*); -mostrar el contenido del widget (es decir, dibujar el gráfico de indicadores) si el proceso de actualización del widget ha sido exitoso y sin errores (consulte el método *\_processUpdateResponse(response)* y los *\_resizeChart()* y *\_updatedChart() relacionados * métodos) -cambiar el tamaño del widget (consulte el método *resize()* y el método relacionado *\_resizeChart()*)  Para otros aspectos del widget del gráfico de indicadores, se utilizará la implementación predeterminada para el comportamiento del widget. Para obtener más información sobre los métodos JavaScript de la clase *CWidget*, consulte: [JavaScript](/devel/modules/widgets/presentation/javascript).  Dado que este JavaScript es necesario para la vista del widget, debe cargarse junto con la página del tablero. Para habilitar la carga de JavaScript, deberá actualizar los parámetros *assets/js* y *js_class* de **manifest.json** como se muestra en el siguiente paso.  **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. Abra *manifest.json* y agregue:  - nombre del archivo (*class.widget.js*) de la matriz en la sección *assets/js*; - nombre de la clase (*WidgetLessonGaugeChart*) al parámetro *js_class* en la sección *widget*.  La clase *WidgetLessonGaugeChart* ahora se cargará automáticamente con el panel.  **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"}
es	### Agregar configuraciones a una vista de configuración y usarlas en una vista de widget  En esta sección, aprenderá cómo agregar un campo de configuración del widget y mostrar el valor ingresado en la vista del widget como texto.  La configuración del widget consta de un formulario (*Zabbix\\Widgets\\CWidgetForm*) y una vista de formulario de widget (*widget.edit.php*). Para agregar campos (*Zabbix\\Widgets\\CWidgetField*), necesita crear una clase *WidgetForm*, que extenderá *Zabbix\\Widgets\\CWidgetForm*.  El formulario contiene el conjunto de campos (*Zabbix\\Widgets\\CWidgetField*) de varios tipos, que se utilizan para validar los valores ingresados por el usuario. El campo de formulario (*Zabbix\\Widgets\\CWidgetField*) para cada tipo de elemento de entrada convierte el valor a un formato único para almacenarlo en la base de datos.  :::noteclassic El archivo **form** del widget debe estar ubicado en el directorio *includes* (para este tutorial, *ui/modules/lesson_gauge_chart/includes/*). Si el archivo tiene el nombre predeterminado *WidgetForm.php*, no es necesario registrarlo en el archivo *manifest.json*. Si el archivo tiene un nombre diferente, especifíquelo en la sección *widget/form_class* del archivo [manifest.json](devel/modules/file_structure/manifest). :::  1. Cree un nuevo directorio *includes* en el directorio *lesson_gauge_chart*.  2. Cree un archivo *WidgetForm.php* en el directorio *includes*.  **ui/modules/lesson_gauge_chart/includes/WidgetForm.php**  ```php <?php  namespace Modules\LessonGaugeChart\Includes;  use Zabbix\Widgets\CWidgetForm;  class WidgetForm extends CWidgetForm { } ```  3. Agregue un campo *Description* al formulario de configuración del widget. Este es un campo de texto normal, donde un usuario puede ingresar cualquier conjunto de caracteres. Puede utilizar la clase *CWidgetFieldTextBox* para ello.  **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. En el directorio *views*, cree un archivo de vista de configuración del widget *widget.edit.php* y agregue una vista para el nuevo campo *Description*. Para la clase de campo *CWidgetFieldTextBox*, la vista es *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. Vaya al tablero y haga clic en el ícono de ajustes en el widget para abrir el formulario de configuración del widget.  6. El formulario de configuración del widget ahora contiene un nuevo campo de texto *Description*. Ingrese cualquier valor, por ejemplo, *Descripción del gráfico de indicadores*.  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_conf_descr.png){width="600"}  7. Haga clic en *Aplicar* en el formulario de configuración del widget. Luego haga clic en *Guardar cambios* en la esquina superior derecha para guardar el panel. Tenga en cuenta que la nueva descripción no es visible en ninguna parte y el widget aún muestra "¡Hola, mundo!".  Para que la nueva descripción aparezca en el widget, el valor del campo *Description* debe recuperarse de la base de datos y pasarse a la vista del widget. Para eso, necesitas crear una clase de acción.  8. Cree un nuevo directorio *actions* en el directorio *lesson_gauge_chart*.  9. Cree un archivo *WidgetView.php* en el directorio *actions*. La clase de acción *WidgetView* ampliará la clase *CControllerDashboardWidgetView*.  Los valores de los campos de configuración del widget se almacenan en la propiedad **$fields_values** de la clase de acción.  **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. Abra *manifest.json* y registre *WidgetView* como una clase de acción en la sección *actions/widget.lesson_gauge_chart.view*.  **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. Ahora puede utilizar el valor del campo de descripción, contenido en *$data['description']*, en la vista del widget. Abra *views/widget.view.php* y reemplace el texto estático "¡Hola, mundo!" con *$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. Actualice la página del tablero. Ahora deberías ver el texto de descripción del widget en lugar de "¡Hola, mundo!".  ![](../../../../assets/en/devel/modules/tutorials/widget/widget_view_descr.png){width="600"}

en-us	## Administration  With the Zabbix API you can change administration settings of your monitoring system.
es	## Administración  Con la API de Zabbix puede cambiar la configuración de administración de su Sistema de monitoreo.

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`). |
es	#### Configuración avanzada  Las opciones de configuración avanzada están disponibles si la casilla de verificación *configuración avanzada* está marcada (ver captura de pantalla) y solo para aquellas métricas que están seleccionadas en el campo *Mostrar* (ver arriba).  Además, la configuración avanzada permite cambiar el color de fondo  para todo el widget.  ![](../../../../../../assets/en/manual/web_interface/frontend_sections/monitoring/clock_advanced.png){width=600}  | | | |--|--------| |*Color de fondo* |Seleccione el color de fondo en el selector de color.<br>`D` significa color predeterminado (depende del tema de la interfaz). Para volver al valor predeterminado, haga clic en el botón *Usar valor predeterminado* en el selector de color. | |_**Fecha**_ || |*Tamaño* |Ingrese la altura del tamaño de fuente para la fecha (en porcentaje relativo a la altura total del widget). | |*Negrita* |Marque la casilla de verificación para mostrar la fecha en negrita. | |*Color* |Seleccione el color de la fecha en el selector de color.<br>`D` significa color predeterminado (depende del tema de la interfaz). Para volver al valor predeterminado, haga clic en el botón *Usar valor predeterminado* en el selector de color. | |_**Hora**_ || |*Tamaño* |Ingrese la altura del tamaño de fuente para el momento (en porcentaje relativo a la altura total del widget). | |*Negrita* |Marque la casilla de verificación para mostrar la hora en negrita. | |*Color* |Seleccione el color de tiempo en el selector de color.<br>`D` significa color predeterminado (depende del tema de la interfaz). Para volver al valor predeterminado, haga clic en el botón *Usar valor predeterminado* en el selector de color. | |*Segundos* |Marque la casilla de verificación para mostrar los segundos. De lo contrario, sólo se mostrarán las horas y los minutos.| |*Formato* |Seleccione para mostrar una hora de 24 o 12 horas. | |_**Zona horaria**_ || |*Tamaño* |Ingrese la altura del tamaño de fuente para la zona horaria (en porcentaje relativo a la altura total del widget). | |*Negrita* |Marque la casilla de verificación para mostrar la zona horaria en negrita. | |*Color* |Seleccione el color de la zona horaria en el selector de color.<br>`D` significa color predeterminado (depende del tema de la interfaz). Para volver al valor predeterminado, haga clic en el botón *Usar valor predeterminado* en el selector de color. | |*Zona horaria*|Seleccione la zona horaria.| |*Formato* |Seleccione mostrar la zona horaria en formato corto (por ejemplo, `Nueva York`) o en formato completo (por ejemplo, `(UTC-04:00) América/Nueva 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.
es	#### Configuración avanzada  Las opciones de configuración avanzada están disponibles si la casilla de verificación  *configuración avanzada* está marcada (ver captura de pantalla) y solo para aquellas métricas que están seleccionadas en el campo *Mostrar* (ver arriba).  Además, la configuración avanzada permite cambiar el color de fondo (estático o dinámico) para todo el widget.  ![](../../../../../../assets/en/manual/web_interface/frontend_sections/monitoring/item_value_advanced.png)  | | | |--|--------| |***Descripción***|<| |*Descripción* |Ingrese la descripción de la métrica. Esta descripción puede anular el nombre de la métrica predeterminada. Se admiten descripciones de varias líneas. Es posible una combinación de texto y macros compatibles.<br>{HOST.\*}, {ITEM.\*}, {INVENTORY.\*} y las macros de usuario son compatibles. | |*Posición horizontal* |Seleccione la posición horizontal de la descripción de la métrica: izquierda, derecha o centro. | |*Posición vertical* |Seleccione la posición vertical de la descripción de la métrica: superior, inferior o media. | |*Tamaño* |Ingrese la altura del tamaño de fuente para la descripción de la métrica (en porcentaje relativo a la altura total del widget). | |*Negrita* |Marque la casilla de verificación para mostrar la descripción de la métrica en negrita. | |*Color* |Seleccione el color de descripción de la métrica en el selector de color.<br>`D` significa color predeterminado (depende del tema de la interfaz). Para volver al valor predeterminado, haga clic en el botón *Usar valor predeterminado* en el selector de color. | |***Valor***|<| |*Lugares decimales* |Seleccione cuántos decimales se mostrarán con el valor. Este valor afectará sólo a las métricas flotantes. | |*Tamaño* |Ingrese la altura del tamaño de fuente para los decimales (en porcentaje relativo a la altura total del widget). | |*Posición horizontal* |Seleccione la posición horizontal del valor de la métrica: izquierda, derecha o centro. | |*Posición vertical* |Seleccione la posición vertical del valor de la métrica: superior, inferior o central. | |*Tamaño* |Ingrese la altura del tamaño de fuente para el valor de la métrica (en porcentaje relativo a la altura total del widget).<br>Tenga en cuenta que se prioriza el tamaño del valor de la métrica; otros elementos tienen que ceder espacio al valor. Sin embargo, con el indicador de cambio, si el valor es demasiado grande, se truncará para mostrar el indicador de cambio. | |*Negrita* |Marque la casilla de verificación para mostrar el valor de la métrica en negrita. | |*Color* |Seleccione el color del valor de la métrica en el selector de color.<br>`D` significa color predeterminado (depende del tema de la interfaz). Para volver al valor predeterminado, haga clic en el botón *Usar valor predeterminado* en el selector de color. | |***Unidades***|<| |*Unidades* |Marque la casilla de verificación para mostrar las unidades con el valor de la métrica. Si ingresa un nombre de unidad, anulará la unidad de la configuración de la métrica. | |*Posición* |Seleccione la posición de la unidad de la métrica: arriba, abajo, antes o después del valor. | |*Tamaño* |Ingrese la altura del tamaño de fuente para la unidad de la métrica (en porcentaje relativo a la altura total del widget). | |*Negrita* |Marque la casilla de verificación para mostrar la unidad de la métrica en negrita. | |*Color* |Seleccione el color de la unidad de la métrica en el selector de color.<br>`D` significa color predeterminado (depende del tema de la interfaz). Para volver al valor predeterminado, haga clic en el botón *Usar valor predeterminado* en el selector de color. | |***Hora*** *(valor del reloj del historial de la métrica)*|<| |*Posición horizontal* |Seleccione la posición horizontal de la hora: izquierda, derecha o centro. | |*Posición vertical* |Seleccione la posición vertical de la hora: superior, inferior o media. | |*Tamaño* |Ingrese la altura del tamaño de fuente para el momento (en porcentaje relativo a la altura total del widget). | |*Negrita* |Marque la casilla de verificación para mostrar la hora en negrita. | |*Color* |Seleccione el color de tiempo en el selector de color.<br>`D` significa color predeterminado (depende del tema de la interfaz). Para volver al valor predeterminado, haga clic en el botón *Usar valor predeterminado* en el selector de color. | |***Indicador de cambio***|Seleccione el color de los indicadores de cambio en el selector de color. Los indicadores de cambio son los siguientes:<br>** ↑** - el valor del artículo ha aumentado (para elementos numéricos)<br>**↓** - el valor del artículo ha disminuido (para elementos numéricos)<br>**↕* * - el valor de la métrica ha cambiado (para elementos de cadena y elementos con asignación de valor)<br>`D` significa color predeterminado (depende del tema de la interfaz). Para volver al valor predeterminado, haga clic en el botón *Usar valor predeterminado* en el selector de color.<br>El tamaño vertical del indicador de cambio es igual al tamaño del valor (parte entera del valor para elementos numéricos).<br> Tenga en cuenta que los indicadores hacia arriba y hacia abajo no se muestran con un solo valor. | |***Color de fondo***|Seleccione el color de fondo para todo el widget desde el selector de color.<br>`D` significa color predeterminado (depende del tema de la interfaz). Para volver al valor predeterminado, haga clic en el botón *Usar valor predeterminado* en el selector de color. | |***Umbrales***|Configure el color de fondo dinámico para todo el widget. Haga clic en *Agregar* para agregar un umbral, seleccione el color de fondo en el selector de color y especifique un valor numérico. Una vez que el valor de la métrica sea igual o mayor que el valor umbral, el color de fondo cambiará.<br>La lista se ordenará en orden ascendente cuando se guarde. <br> Tenga en cuenta que el color de fondo dinámico se mostrará correctamente sólo para métricas numéricas.|  Tenga en cuenta que varios elementos no pueden ocupar el mismo espacio; si se colocan en el mismo espacio, se mostrará un mensaje de 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.  :::
es	 #### Configuración avanzada  ![](../../../assets/en/manual/web_interface/service_a.png){width=600}  |Parámetro|Descripción| |--|--------| |_**Reglas adicionales**_|Haga clic en *Agregar* para definir reglas de cálculo de estado adicionales.| |*Establecer estado en*|Establezca el estado del servicio en *OK* (predeterminado), *No clasificado*, *Información*, *Advertencia*, *Promedio*, *Alto* o *Desastre* en caso de que coincida una condición. | |*Condición*|Seleccione la condición para servicios dependientes directos:<br>**si al menos (N) servicios dependientes tienen estado (Estado) o superior**<br>**si al menos (N%) de servicios dependientes tienen estado (Estado) o superior**<br>**si menos de (N) servicios dependientes tienen estado (Estado) o inferior**<br>**si menos de (N%) de servicios dependientes tienen (Estado) o inferior**<br>**si el peso de los servicios dependientes con estado (Estado) o superior es al menos (W)**<br>**si el peso de los servicios dependientes con estado (Estado) o superior es al menos (N%)**<br>**si el peso de los servicios dependientes con estado (Estado) o inferior es menor que (W)**<br>**si el peso de los servicios dependientes con estado (Estado) o inferior es menor que (N%)** <br><br> Si se especifican varias condiciones y la situación coincide con más de una condición, se establecerá la gravedad más alta.| |*N (W)*|Establezca el valor de N o W (1-100000), o N% (1-100) en la condición.| |*Estado*|Seleccione el valor de *Estado* en la condición: *OK* (predeterminado), *No clasificado*, *Información*, *Advertencia*, *Promedio*, *Alto* o *Desastre*.| |_**Regla de propagación de estado**_|Regla para propagar el estado del servicio al servicio principal:<br>**Tal como está**: el estado se propaga sin cambios<br>**Aumentar en**: puede aumentar el estado propagado de 1 a 5 niveles de gravedad<br>**Disminuir en**: puede disminuir el estado propagado de 1 a 5 niveles de gravedad<br>**Ignorar este servicio**: el estado no se propaga al servicio principal en absoluto<br>**Estado dependiente** - el estado se propaga estáticamente, es decir, como siempre el mismo| |_**Peso**_|Peso del servicio (entero en el rango de 0 (predeterminado) a 1000000).|  :::noteclassic Las reglas de cálculo de estado adicionales solo se pueden utilizar para aumentar el nivel de gravedad por encima del nivel calculado según el parámetro principal *Regla de cálculo de estado*. Si según reglas adicionales el estado debería ser Advertencia, pero según la *regla de cálculo de estado* el estado es Desastre - el servicio tendrá estado 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.|
es	#### Configuración avanzada  Los siguientes parámetros son compatibles si *Configuración avanzada* está configurado en "Activado".  ::: noteclassic El número en el nombre de la propiedad *Thresholds* (por ejemplo, thresholds.color.0) hace referencia al lugar del umbral en una lista, ordenada en orden ascendente. Sin embargo, si los umbrales se configuran en un orden diferente, los valores se ordenarán en orden ascendente después de actualizar la configuración del widget en la interfaz de Zabbix. (por ejemplo, `"threshold.threshold.0":"5"` → `"threshold.threshold.0":"1"`; `"threshold.threshold.1":"1"` → `"threshold.threshold. 1": "5"`). :::  |Parámetro|<|[tipo](/manual/api/reference/dashboard/object#dashboard-widget-field)|nombre|valor| |-|--------|--|--------|-------------------------------| |*Background color*|<|1|bg_color|Código de color hexadecimal (por ejemplo, `FF0000`).<br><br>Predeterminado: `""` (vacío).| |*Umbrales*|<|<|<|<| |<|*Color*|1|thresholds.color.0|Código de color hexadecimal (por ejemplo, `FF0000`).| |^|*Threshold*|1|thresholds.threshold.0|Cualquier valor de cadena.|

en-us	#### Advanced extensions
es	#### Extensiones avanzadas

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',             // ...         ],         // ...     ];
es	 ##### Ajustes avanzados  Se pueden configurar parámetros SAML adicionales en el archivo de configuración de la interfaz de Zabbix (*zabbix.conf.php*):  - $SSO\['SP\_KEY'\] = '<ruta al archivo de clave privada del SP>'; - $SSO\['SP\_CERT'\] = '<ruta al archivo de certificado SP>'; - $SSO\['IDP\_CERT'\] = '<ruta al archivo del certificado IDP>'; - $SSO\['SETTINGS'\]  ::: noteclassic  Zabbix utiliza [SAML PHP de OneLogin Kit de herramientas] (https://github.com/onelogin/php-saml/tree/3.4.1) biblioteca (versión 3.4.1). La estructura de la sección $SSO\['SETTINGS'\] debe ser  similar a la estructura utilizada por la biblioteca. Para la descripción de opciones de configuración, ver la [documentación] (https://github.com/onelogin/php-saml/tree/3.4.1/#user-content-settings) de la biblioteca oficial.  :::  Solo las siguientes opciones se pueden configurar como parte de $SSO\['SETTINGS'\]:  -   *strict* - *baseurl* - *compress* -   *contactPerson* -   *organization* - *sp* (solo opciones especificadas en esta lista)     - *attributeConsumingService*     - *x509certNew* - *idp* (solo opciones especificadas en esta lista)     - *singleLogoutService* (sólo una opción)         - *responseUrl*     - *certFingerprintAlgorithm*     - *certFingerprintAlgorithm*     - *x509certMulti* - *securitysignMetadata* (solo opciones especificadas en esta lista)     - *signMetadata*     - *wantNameId*     - *requestedAuthnContext*     - *requestedAuthnContextComparison*     - *wantXMLValidation*     - *relaxDestinationValidation*     - *destinationStrictlyMatches*     - *rejectUnsolicitedResponsesWithInResponseTo*     - *signatureAlgorithm*     - *digestAlgorithm*     - *lowercaseUrlencoding*  Todas las demás opciones se tomarán de la base de datos y no se pueden anular. La opción *debug* será ignorada.  Además, si la interfaz de usuario de Zabbix está detrás de un proxy o un balanceador de carga,  se puede utilizar la opción personalizada *use\_proxy\_headers*:  - *false* (predeterminado): ignora la opción; - *true*: utilice encabezados HTTP X-Forwarded-\* para crear la URL base.    Si utiliza un balanceador de carga para conectarse a la instancia de Zabbix, donde el balanceador de carga usa TLS/SSL y Zabbix no, debe indicar los parámetros 'baseurl', 'strict' y 'use_proxy_headers' de la siguiente manera:      $SSO_SETTINGS=['strict' => false, 'baseurl' => "https://zabbix.example.com/zabbix/", 'use_proxy_headers' => true]   **Ejemplo de configuración:**      $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. :::
es	Después de recibir una lista de cheques activos, el agente marca obsoletos persistentes archivos para su eliminación. Un archivo persistente se vuelve obsoleto si: 1) el correspondiente el elemento de registro ya no se supervisa, 2) un elemento de registro se reconfigura con un elemento diferente **persistent\_dir** ubicación que antes.  La eliminación se realiza con un retraso de 24 horas porque los archivos de registro se encuentran en un estado NO COMPATIBLE no están incluidos en la lista de cheques activos, pero pueden convertirse en COMPATIBLES más tarde y sus archivos persistentes serán útiles.  Si el agente se detiene antes de que expiren las 24 horas, los archivos obsoletos se no se eliminará ya que el agente de Zabbix no obtiene información sobre su ubicación de servidor Zabbix más.  ::: nota de advertencia Reconfigurar el **persistent\_dir** de un elemento de registro de nuevo al antiguo **persistent\_dir** ubicación mientras el agente está detenido, sin eliminar el antiguo archivo persistente por usuario: hará que se restablezca el estado del agente del antiguo archivo persistente que genera mensajes perdidos o alertas falsas. :::

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. 
es	 #### Complementos del Agente 2  ##### MySQL  Ahora se devuelve el equipo maestro correcto si se especifica el parámetro "masterHost" en la [métrica](/manual/config/items/itemtypes/zabbix_agent/zabbix_agent2#mysql) `mysql.replication.get_slave_status[]`. Anteriormente, el parámetro "masterHost" se ignoraba y siempre se devolvía el primer equipo maestro.  Si no se especifica este parámetro, se devuelven todos los equipos.

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)
es	##### Agente 2  |Requisito|Estado obligatorio|Descripción| |--|-|-------| |*libpcre/libpcre2*|Uno de|Se requiere una de las bibliotecas PCRE/PCRE2 para admitir [Expresión regular compatible con Perl](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE).<br>El nombre puede diferir dependiendo de la distribución GNU/Linux, por ejemplo 'libpcre3' o 'libpcre1'. Se admiten PCRE v8.x y PCRE2 v10.x (desde Zabbix 6.0.0).<br>Requerido para el monitoreo de registros. También requerido en Windows.| |*libopenssl*|No|Requerido cuando se usa cifrado.<br>Se requiere OpenSSL 1.0.1 o posterior en plataformas UNIX.<br>La biblioteca OpenSSL debe tener habilitada la compatibilidad con PSK. LibreSSL no es compatible.<br>En sistemas Microsoft Windows, se requiere OpenSSL 1.1.1 o posterior.|  **Bibliotecas Go**  |Requisito|Estado obligatorio|Versión mínima|Descripción| |--|-|-|-------| |[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 de soporte propia de Zabbix. Principalmente para complementos. | |[github.com/BurntSushi/locker](https://github.com/BurntSushi/locker)|^|0.0.0|Bloqueos de lectura/escritura con nombre, sincronización de acceso. | |[github.com/chromedp/cdproto](https://github.com/chromedp/cdproto)|^|0.0.0|Comandos, tipos y eventos generados para los dominios del protocolo Chrome DevTools. | |[github.com/chromedp/chromedp](https://github.com/chromedp/chromedp)|^|0.6.0|Compatibilidad con el protocolo Chrome DevTools (generación de informes). | |[github.com/dustin/gomemcached](https://github.com/dustin/gomemcached)|^|0.0.0|Un conjunto de herramientas de protocolo binario Memcached para Go. | |[github.com/eclipse/paho.mqtt.golang](https://github.com/eclipse/paho.mqtt.golang)|^|1.2.0|Una biblioteca para manejar conexiones MQTT. | |[github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify)|^|1.4.9|Notificaciones del sistema de archivos multiplataforma para Go. | |[github.com/go-ldap/ldap](https://github.com/go-ldap/ldap)|^|3.0.3|Funcionalidad LDAP v3 básica para el lenguaje de programación Go. | |[github.com/go-ole/go-ole](https://github.com/go-ole/go-ole)|^|1.2.4|Implementación ole de Win32 para Go. | |[github.com/godbus/dbus](https://github.com/godbus/dbus)|^|4.1.0|Enlaces Native Go para 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 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|Cliente Redis. | |[github.com/memcachier/mc/v3](https://github.com/memcachier/mc)|^|3.0.1|Cliente binario de Memcached. | |[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|Almacén de cadenas de claves asignadas del sistema de archivos incrustable. | |[github.com/goburrow/modbus](https://github.com/goburrow/modbus)|^|0.1.0|Implementación tolerante a fallos de Modbus. | |[golang.org/x/sys](https://pkg.go.dev/golang.org/x/sys)|^|0.0.0|Paquetes Go para interacciones de bajo nivel con el sistema operativo.<br > También se utiliza en la biblioteca de soporte de complementos. Utilizado en complementos de MongoDB y PostgreSQL. | |[github.com/Microsoft/go-winio](https://github.com/microsoft/go-winio)|En Windows.<br>Sí, indirecto^**1**^|0.6.0|Windows implementación de canalización con nombre.<br>También se utiliza en la biblioteca de soporte de complementos. Utilizado en complementos de MongoDB y PostgreSQL. | |[github.com/goburrow/serial](https://github.com/goburrow/serial)|Sí, indirecto^**1**^|0.1.0|Biblioteca serial para Modbus. | |[golang.org/x/xerrors](https://pkg.go.dev/golang.org/x/xerrors)|^|0.0.0|Funciones para manipular errores. | |[gopkg.in/asn1-ber.v1](https://gopkg.in/asn1-ber.v1)|^|1.0.0|Biblioteca de codificación/decodificación para ASN1 BER. | |[github.com/go-stack/stack](https://github.com/go-stack/stack)|No, indirecto^**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**^ "Indirecto" significa que se usa en una de las bibliotecas que usa el agente. Es obligatorio ya que Zabbix usa la biblioteca que usa el paquete.  Vea también dependencias para complementos cargables:  -   [PostgreSQL](/manual/instalación/requisitos/plugins/postgresql) -   [MongoDB](/manual/instalación/requisitos/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.
es	**Configuración del agente**  Agregue la siguiente línea al archivo de configuración del agente:      HostMetadata=Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae  donde "Linux" es una plataforma y el resto de la cadena es el Texto secreto difícil de adivinar.  No olvide reiniciar el agente después de realizar cualquier cambio en el archivo de configuración.  ***Paso 2***  Es posible agregar monitoreo adicional para un equipo ya registrado.

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 ```
es	##### Configuración del agente  Para habilitar las conexiones a varios servidores en una configuración de alta disponibilidad, enumerar las direcciones de los nodos HA en ServerActive [parámetro](/manual/appendix/config/zabbix_agentd) del agente, separados por un punto y coma.

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.
es	**Configuración del agente**  Ahora necesita configurar los agentes. Agregue la siguiente línea al agente Archivos de configuración:      HostMetadataItem=system.uname  De esta manera se asegura de que los metadatos del equipo contengan "Linux" o "Windows". dependiendo del equipo en el que se esté ejecutando un agente. Un ejemplo de metadatos de equipo en este caso:      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  No olvide reiniciar el agente después de realizar cualquier cambio en el archivo de configuración.

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.
es	**Configuración del agente**  Actualice la siguiente línea en el archivo de configuración del agente:      HostMetadata=MySQL en Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae  No olvide reiniciar el agente después de realizar cualquier cambio en el archivo de configuración.

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" } ```
es	 ### Solicitud de datos del agente  La solicitud de datos del agente contiene los valores recopilados de las métricas.  | Campo |<| Tipo | Obligatorio | Valor | |-|------|--|-|-----------------------| | request |<| _cadena_ | si | `datos del agente` | | host |<| _cadena_ | si | Nombre del anfitrión. | | version |<| _cadena_ | si | La versión del agente: \<principal>.\<menor>. | | session |<| _cadena_ | si | Identificador de sesión único generado cada vez que se inicia el agente. | | data |<| _conjunto de objetos_ | si | Valores de artículos. | | | id | _número_ | si | El identificador de valor (contador incremental utilizado para comprobar valores duplicados en caso de problemas de red). | |^| itemid | _número_ | si | Identificador de la métrica. | |^| value | _cadena_ | no | El valor de la métrica. | |^| lastlogsize | _número_ | no | El último tamaño del registro de la métrica. | |^| mtime | _número_ | no | mtime de la métrica. | |^| state | _número_ | no | El estado de la métrica. | |^| source | _cadena_ | no | El origen del registro de eventos de valor. | |^| eventid | _número_ | no | El valor del registro de eventos eventid. | |^| severity | _número_ | no | El valor de gravedad del registro de eventos. | |^| timestamp | _número_ | no | La marca de tiempo del registro de eventos del valor. | |^| clock | _número_ | si | La marca de tiempo del valor (segundos desde la época). | |^| ns | _número_ | si | La marca de tiempo del valor es nanosegundos. |  Ejemplo: ```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" } ```
es	 ### Respuesta de datos del agente  El servidor envía la respuesta de datos del agente al agente después de procesar la solicitud de datos del agente.  | Campo | Tipo | Obligatorio | Valor | |-|-|-|--------| | response | _cadena_ | si | `éxito` \| `fallido` | | info | _cadena_ | si | Resultados del procesamiento de métricas. |  Ejemplo: ```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.
es	 ##### agent.hostmetadata  <br> Los metadatos del equipo del agente.<br> Valor de retorno: *Cadena*.<br> Consulte [plataformas compatibles](#supported-platforms).  Devuelve el valor de los parámetros [HostMetadata](/manual/appendix/config/zabbix_agentd#hostmetadata) o [HostMetadataItem](/manual/appendix/config/zabbix_agentd#hostmetadataitem), o una cadena vacía si no hay ninguno definido.

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.
es	 ##### agent.hostname  <br> El nombre de equipo del agente.<br> Valor de retorno: *Cadena*.<br> Consulte [plataformas compatibles](#supported-platforms).  Devuelve:  - Como comprobación pasiva: el nombre del primer equipo que figura en el parámetro [Hostname](/manual/appendix/config/zabbix_agentd#hostname) del archivo de configuración del agente; - Como comprobación activa: el nombre del equipo actual.

en-us	#### Agent on UNIX-like systems  Zabbix agent on UNIX-like systems is run on the host being monitored.
es	#### Agente en sistemas tipo UNIX  El agente Zabbix en sistemas similares a UNIX se ejecuta en el equipo que se está monitoreando.

en-us	#### Agent on Windows systems  Zabbix agent on Windows runs as a Windows service.
es	#### Agente en sistemas Windows  El agente de Zabbix en Windows se ejecuta como un servicio 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.
es	##### Operación del agente con archivo persistente  En el inicio, el agente Zabbix no sabe nada acerca de los archivos persistentes. Solo después Al recibir una lista de cheques activos del servidor Zabbix \(proxy\), el agente ve que algunos registros los elementos deben estar respaldados por archivos persistentes en directorios específicos.  Durante la operación del agente, los archivos persistentes se abren para escritura (con fopen (nombre de archivo, "w")) y sobrescrito con los datos más recientes. la oportunidad de perder datos de archivos persistentes si la sobrescritura y el espejo del sistema de archivos se dividen suceder al mismo tiempo es muy pequeño, no hay un manejo especial para ello. Escritura en un archivo persistente NO va seguido de una sincronización forzada con el almacenamiento media \(fsync\(\) no se llama\).  La sobrescritura con los datos más recientes se realiza después de informar con éxito la coincidencia registro de archivo de registro o metadatos \(tamaño de registro procesado y tiempo de modificación\) a Servidor Zabbix. Eso puede suceder tan a menudo como cada elemento verifica si el archivo de registro se mantiene. cambiando.  Sin acciones especiales durante el apagado del agente.

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.
es	 ##### agent.ping  <br> La verificación de disponibilidad del agente.<br> Valor de retorno: Nada - no disponible; 1 - disponible.<br> Consulte [plataformas compatibles](#supported-platforms).  Utilice la función de iniciador **nodata()** para comprobar si el equipo no está disponible.

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.
es	#### Tipos de procesos de agentes  - `controles activos` - proceso para realizar controles activos - `collector` - proceso para la recopilación de datos - `listener` - proceso para escuchar cheques pasivos  El archivo de registro del agente se puede utilizar para observar estos tipos de procesos.

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.  :::
es	##### Agente  |Requisito|Estado obligatorio|Descripción| |--|-|-------| |*libpcre/libpcre2*|Uno de|Se requiere una de las bibliotecas PCRE/PCRE2 para admitir [Expresión regular compatible con Perl](https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions) (PCRE).<br>El nombre puede diferir dependiendo de la distribución GNU/Linux, por ejemplo 'libpcre3' o 'libpcre1'. Se admiten PCRE v8.x y PCRE2 v10.x (desde Zabbix 6.0.0).<br>Requerido para el monitoreo de registros. También requerido en Windows.| |*libpthread*|Sí|Requerido para soporte de mutex y bloqueo de lectura-escritura (podría ser parte de libc). No es necesario en Windows.| |*libresolv*|^|Requerido para la resolución DNS (podría ser parte de libc). No es necesario en Windows.| |*libiconv*|^|Requerido para la codificación de texto/conversión de formato a UTF-8 en elementos de registro, contenido de archivos, expresiones regulares de archivos y elementos de coincidencia (podría ser parte de libc). No es necesario en Windows.| |*libgnutls* o *libopenssl*|No|Obligatorio si se usa [encryption](/manual/encryption#compiling_zabbix_with_encryption_support).<br>Versiones mínimas: *libgnutls* - 3.1.18, *libopenssl* - 1.0.1<br> En Microsoft Windows se requiere OpenSSL 1.1.1 o posterior.| |*libldap*|^|Obligatorio si se utiliza LDAP. No compatible con Windows.| |*libcurl*|^|Requerido para las [métricas](/manual/config/items/itemtypes/zabbix_agent) del agente Zabbix `web.page.*`. No es compatible con Windows.<br>Se recomienda la versión 7.28.0 o superior.| |*libmodbus*|^|Solo es necesario si se utiliza la monitorización Modbus.<br>Versión 3.0 o superior.|  ::: noteclassic  A partir de la versión 5.0.3, el agente Zabbix no funcionará en plataformas AIX inferiores a las versiones 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.
es	#### Proceso de actualización del agente  ::: nota importante La actualización de los agentes no es obligatoria. Solo se precisa actualizar los agentes si es necesario acceder a nuevas funcionalidades. :::  El procedimiento de actualización descrito en esta sección se puede utilizar para la actualización tanto del agente Zabbix como del agente 2 de Zabbix.

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).
es	 ##### agent.variant  <br> La variante del agente Zabbix (agente Zabbix o agente Zabbix 2).<br> Valor de retorno: 1 - Agente Zabbix; 2 - Agente Zabbix 2.<br> Consulte [plataformas 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
es	 ##### agent.version  <br> La versión del agente Zabbix.<br> Valor de retorno: *Cadena*.<br> Consulte [plataformas compatibles](#supported-platforms).  Ejemplo de valor devuelto:      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).
es	##### Agente  Los agentes de Zabbix se despliegan en objetivos de monitoreo para monitorear activamente recursos y aplicaciones locales e informar los datos recopilados al servidor Zabbix. Desde Zabbix 4.4, hay dos tipos de agentes disponibles: el [Agente Zabbix](/manual/concepts/agent) (ligero, compatible con muchas plataformas, escrito en C) y el [agente Zabbix 2](/manual/concepts/agent2) (extraflexible, fácilmente ampliable con plugins, escrito 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).
es	### Funciones agregadas  La función **count_foreach** ahora devuelve '0' para una métrica coincidente en la matriz, si no hay datos presentes para la métrica o los datos no coinciden con el filtro. Anteriormente, estas métricas se ignoraban (no se agregaban datos a la agregación).

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).
es	### Funciones agregadas  La función **count_foreach** ahora devuelve '0' para una métrica coincidente en la matriz, si no hay datos presentes para la métrica o los datos no coinciden con el filtro. Anteriormente, estas métricas se ignoraban (no se agregaban datos a la agregación).

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.
es	#### Funciones agregadas  La función **last_foreach** ahora también es compatible con las siguientes [funciones agregadas](/manual/appendix/functions/aggregate): kurtosis, mad, skewness, stddevpop, stddevsamp, sumofsquares, varpop y 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| |
es	#### AIX  Consulte los valores admitidos para el parámetro 'memtype' en AIX en la tabla.  |Valor admitido|Descripción|Fuente en la estructura procentry64|Intenta ser compatible con| |--|------|--|--| |vsize ^[1](proc_mem_notes#footnotes)^|Tamaño de memoria virtual|pi\_size| | |pmem|Porcentaje de memoria real|pi\_prm|ps -o pmem| |rss|Tamaño del conjunto residente|pi\_trss + pi\_drss|ps -o rssize| |size|Tamaño del proceso (código + datos)|pi\_dvm|Columna TAMAÑO "ps gvw"| |dsize|Tamaño de datos|pi\_dsize|<| |tsize|Tamaño del texto (código)|pi\_tsize|Columna TSIZ "ps gvw"| |sdsize|Tamaño de datos de la biblioteca compartida|pi\_sdsize|<| |drss|Tamaño del conjunto residente de datos|pi\_drss| | |trss|Tamaño del conjunto residente de texto|pi\_trss| |

en-us	#### Alert customization
es	#### Personalización de alertas

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.
es	#### Fallo del proceso de alerta en RHEL 7  Se han encontrado casos de fallas en el proceso de alerta del servidor Zabbix en RHEL 7. Consulte [ZBX-10461](https://support.zabbix.com/browse/ZBX-10461) para obtener más detalles.

en-us	# alert.get
es	# alert.get

en-us	### Alert  ::: noteclassic Alerts are created by Zabbix server and cannot be modified via the API. :::  The alert object contains information about whether certain action operations have been executed successfully. It has the following properties.  |Property|[Type](/manual/api/reference_commentary#data_types)|Description| |--|--|------| |alertid|string|ID of the alert.| |actionid|string|ID of the action that generated the alert.| |alerttype|integer|Alert type.<br><br>Possible values:<br>0 - message;<br>1 - remote command.| |clock|timestamp|Time when the alert was generated.| |error|string|Error text if there are problems sending a message or running a command.| |esc\_step|integer|Action escalation step during which the alert was generated.| |eventid|string|ID of the event that triggered the action.| |mediatypeid|string|ID of the media type that was used to send the message.| |message|text|Message text.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `alerttype` is set to "message"| |retries|integer|Number of times Zabbix tried to send the message.| |sendto|string|Address, user name or other identifier of the recipient.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `alerttype` is set to "message"| |status|integer|Status indicating whether the action operation has been executed successfully.<br><br>Possible values if `alerttype` is set to "message":<br>0 - message not sent;<br>1 - message sent;<br>2 - failed after a number of retries;<br>3 - new alert is not yet processed by alert manager.<br><br>Possible values if `alerttype` is set to "remote command":<br>0 - command not run;<br>1 - command run;<br>2 - tried to run the command on Zabbix agent, but it was unavailable.| |subject|string|Message subject.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *supported* if `alerttype` is set to "message"| |userid|string|ID of the user that the message was sent to.| |p\_eventid|string|ID of problem event, which generated the alert.| |acknowledgeid|string|ID of acknowledgment, which generated the alert.|
es	### Alerta  ::: noteclassic Las alertas son creadas por el servidor Zabbix y no pueden ser modificadas vía API ::: El objeto alerta contiene información sobre si ciertas operaciones de acción han sido ejecutadas con éxito. Tiene las siguientes propiedades.  |Propiedad|[Tipo](/manual/api/reference_commentary#data_types) | Descripción | |--|--|------| |alertid|string|ID de la alerta.| |actionid|string|ID de la acción que genera la alerta.| |alerttype|integer|tipo de Alerta.<br><br>Valores Posibles:<br>0 - Mensaje;<br>1 - Comando remoto.| |clock|timestamp|Tiempo cuando la aleta fue generada.| |error|string|Texto de error si hay problemas enviando un mensaje o corriendo un comando.| |esc\_step|integer|Paso de escalación de una acción durante el cual la acción fue generada.| |eventid|string|ID del evento que desencadenó la acción.| |mediatypeid|string|ID del tipo de media usado para enviar el mensaje.| |message|text| Mensaje de texto usado para los mensajes de alerta. <br><br>[Comportamiento de la propiedad](/manual/api/reference_commentary#property-behavior):<br>- *soportado* si `alerttype` está configurada como "message"| |retries|integer|Número de veces que Zabbix trató de enviar un mensaje.| |sendto|string|Dirección, Nombre d usuarios u otro identificador del destinatario. Usado para mensajes de alerta.| |status|integer|Status indicando si la operación de acción ha sido ejecutado exitosamente.<br><br>Posibles valores para mensajes de alerta:<br>0 - mensaje no enviado.<br>1 - mensaje enviado.<br>2 - fallado después de un número de intentos.<br>3 - nueva alerta aún no es procesada por el administrador de alerta.<br><br> Posibles valores para el comando de alertas:<br>0 - comando no se ejecutó.<br>1 - comando se ejecutó.<br>2 - Se trató de correr el comando en el agente Zabbix pero no estaba disponible.| |subject|string|Asunto del mensaje. Usado para los mensajes de alertaUsed for message alerts.| |userid|string|ID del usuario del cual el mensaje fue enviado.| |p\_eventid|string|ID del evento del problema, el cual generó la alerta.| |acknowledgeid|string|ID de reconocimiento (acknowledgment), el cual generó la alerta.|

en-us	# > Alert object  The following objects are directly related to the `alert` API.
es	# > Objeto Alerta  Los siguientes objetos están directamente relacionados al API `alert`.

en-us	##### Alert scripts  An [alert script](/manual/config/notifications/media/script) is a Zabbix [media type](/manual/config/notifications/media) that provides an option to create an alternative way (script) to handle Zabbix alerts. Alert scripts are useful if you are not satisfied with the existing media types for sending alerts in Zabbix.
es	##### Scripts de alerta  Un [script de alerta](/manual/config/notifications/media/script) es un [tipo de medio](/manual/config/notifications/media) de Zabbix que proporciona una opción para crear una forma alternativa (script) para manejar las alertas de Zabbix. Los scripts de alerta son útiles si no está satisfecho con los tipos de medios existentes para enviar alertas en Zabbix.

en-us	##### AlertScriptsPath The location of custom alert scripts (depends on the *datadir* compile-time installation variable).  Default: `/usr/local/share/zabbix/alertscripts`
es	##### Ruta de scripts de alerta La ubicación de los scripts de alerta personalizados (depende de la variable de instalación en tiempo de compilación *datadir*).  Predeterminado: `/usr/local/share/zabbix/alertscripts`

en-us	## Alerts  The Zabbix API allows you to manage the actions and alerts of your monitoring system.
es	## Alertas  La API de Zabbix le permite gestionar las acciones y alertas de su sistema de monitorización.

en-us	# Alert  This class is designed to work with alerts.  Object references:\  -   [Alert](/manual/api/reference/alert/object#alert)  Available methods:\  -   [alert.get](/manual/api/reference/alert/get) - retrieve alerts
es	# Alerta  Esta clase está diseñada para trabajar con alertas.  Referencias de objetos:\  - [Alert](/manual/api/reference/alert/object#alert)  Métodos disponibles:\  - [alert.get](/manual/api/reference/alert/get) - recuperar alertas

en-us	##### Alias  Sets an alias for an item key. It can be used to substitute a long and complex item key with a shorter and simpler one.<br> Multiple *Alias* parameters may be present. Multiple parameters with the same *Alias* key are not allowed.<br> Different *Alias* keys may reference the same item key.<br> Aliases can be used in *HostMetadataItem* but not in *HostnameItem* or *PerfCounter* parameter.  Example 1: Retrieving the paging file usage in percentage from the server.      Alias=pg_usage:perf_counter[\Paging File(_Total)\% Usage]      Now the shorthand key **pg_usage** may be used to retrieve data.  Example 2: Getting the CPU load with default and custom parameters.      Alias=cpu.load:system.cpu.load     Alias=cpu.load[*]:system.cpu.load[*]  This allows use **cpu.load** key to get the CPU load with default parameters as well as use **cpu.load[percpu,avg15]** to get specific data about the CPU load.  Example 3: Running multiple [low-level discovery](/manual/discovery/low_level_discovery) rules processing the same discovery items.      Alias=vfs.fs.discovery[*]:vfs.fs.discovery  Now it is possible to set up several discovery rules using **vfs.fs.discovery** with different parameters for each rule, e.g., **vfs.fs.discovery[foo]**, **vfs.fs.discovery[bar]**, etc.
es	##### Alias  Establece un alias para una clave de elemento. Se puede utilizar para sustituir una clave de elemento larga y compleja por una más corta y sencilla.<br> Es posible que estén presentes varios parámetros *Alias*. No se permiten múltiples parámetros con la misma clave *Alias*.<br> Diferentes claves *Alias* pueden hacer referencia a la misma clave de artículo.<br> Los alias se pueden utilizar en *HostMetadataItem* pero no en el parámetro *HostnameItem* o *PerfCounter*.  Ejemplo 1: Recuperar el uso del archivo de paginación en porcentaje del servidor.      Alias=pg_usage:perf_counter[\Archivo de paginación(_Total)\% de uso]      Ahora se puede utilizar la clave abreviada **pg_usage** para recuperar datos.  Ejemplo 2: Obtener la carga de la CPU con parámetros predeterminados y personalizados.      Alias=cpu.carga:sistema.cpu.carga     Alias=cpu.load[*]:sistema.cpu.load[*]  Esto permite usar la clave **cpu.load** para obtener la carga de la CPU con parámetros predeterminados, así como usar **cpu.load[percpu,avg15]** para obtener datos específicos sobre la carga de la CPU.  Ejemplo 3: ejecutar varias reglas de [descubrimiento de bajo nivel](/manual/discovery/low_level_discovery) que procesan los mismos elementos de descubrimiento.      Alias=vfs.fs.discovery[*]:vfs.fs.discovery  Ahora es posible configurar varias reglas de descubrimiento usando **vfs.fs.discovery** con diferentes parámetros para cada regla, por ejemplo, **vfs.fs.discovery[foo]**, **vfs.fs.discovery[ barra]**, etc.

en-us	##### Alias  Sets an alias for an item key. It can be used to substitute a long and complex item key with a shorter and simpler one.<br> Multiple *Alias* parameters may be present. Multiple parameters with the same *Alias* key are not allowed.<br> Different *Alias* keys may reference the same item key.<br> Aliases can be used in *HostMetadataItem* but not in *HostnameItem* parameter.  Example 1: Retrieving the ID of user 'zabbix'.      Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,"^zabbix:.:([0-9]+)",,,,\1]      Now the **zabbix.userid** shorthand key may be used to retrieve data.  Example 2: Getting CPU utilization with default and custom parameters.      Alias=cpu.util:system.cpu.util     Alias=cpu.util[*]:system.cpu.util[*]  This allows use the **cpu.util** key to get CPU utilization percentage with default parameters as well as use **cpu.util[all, idle, avg15]** to get specific data about CPU utilization.  Example 3: Running multiple [low-level discovery](/manual/discovery/low_level_discovery) rules processing the same discovery items.      Alias=vfs.fs.discovery[*]:vfs.fs.discovery  Now it is possible to set up several discovery rules using **vfs.fs.discovery** with different parameters for each rule, e.g., **vfs.fs.discovery[foo]**, **vfs.fs.discovery[bar]**, etc.
es	##### Alias  Establece un alias para una clave de métrica. Se puede utilizar para sustituir una clave de métrica larga y compleja por una más corta y sencilla.<br> Es posible que estén presentes varios parámetros *Alias*. No se permiten múltiples parámetros con la misma clave *Alias*.<br> Diferentes claves *Alias* pueden hacer referencia a la misma clave de métrica.<br> Los alias se pueden utilizar en *HostMetadataItem* pero no en el parámetro *HostnameItem*.  Ejemplo 1: Recuperar el ID del usuario 'zabbix'.      Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,"^zabbix:.:([0-9]+)",,,,\1]      Ahora se puede utilizar la clave abreviada **zabbix.userid** para recuperar datos.  Ejemplo 2: obtener utilización de la CPU con parámetros predeterminados y personalizados.      Alias=cpu.util:system.cpu.util     Alias=cpu.util[*]:system.cpu.util[*]  Esto permite usar la clave **cpu.util** para obtener el porcentaje de utilización de la CPU con parámetros predeterminados, así como usar **cpu.util[all, idle, avg15]** para obtener datos específicos sobre la utilización de la CPU.  Ejemplo 3: ejecutar varias reglas de [descubrimiento de bajo nivel](/manual/discovery/low_level_discovery) que procesan las mismas métricas de descubrimiento.      Alias=vfs.fs.discovery[*]:vfs.fs.discovery  Ahora es posible configurar varias reglas de descubrimiento usando **vfs.fs.discovery** con diferentes parámetros para cada regla, por ejemplo, **vfs.fs.discovery[foo]**, **vfs.fs.discovery[ barra]**, etc.

en-us	##### Alias  Sets an alias for an item key. It can be used to substitute a long and complex item key with a shorter and simpler one.<br> Multiple *Alias* parameters may be present. Multiple parameters with the same *Alias* key are not allowed.<br> Different *Alias* keys may reference the same item key.<br> Aliases can be used in *HostMetadataItem* but not in *HostnameItem* parameter.  Example 1: Retrieving the ID of user 'zabbix'.      Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,"^zabbix:.:([0-9]+)",,,,\1]      Now the **zabbix.userid** shorthand key may be used to retrieve data.  Example 2: Getting CPU utilization with default and custom parameters.      Alias=cpu.util:system.cpu.util     Alias=cpu.util[*]:system.cpu.util[*]  This allows use the **cpu.util** key to get CPU utilization percentage with default parameters as well as use **cpu.util[all, idle, avg15]** to get specific data about CPU utilization.  Example 3: Running multiple [low-level discovery](/manual/discovery/low_level_discovery) rules processing the same discovery items.      Alias=vfs.fs.discovery[*]:vfs.fs.discovery  Now it is possible to set up several discovery rules using **vfs.fs.discovery** with different parameters for each rule, e.g., **vfs.fs.discovery[foo]**, **vfs.fs.discovery[bar]**, etc.
es	##### Alias  Establece un alias para una clave de métrica. Se puede utilizar para sustituir una clave de métrica larga y compleja por una más corta y sencilla.<br> Es posible que estén presentes varios parámetros *Alias*. No se permiten múltiples parámetros con la misma clave *Alias*.<br> Diferentes claves *Alias* pueden hacer referencia a la misma clave de métrica.<br> Los alias se pueden utilizar en *HostMetadataItem* pero no en el parámetro *HostnameItem*.  Ejemplo 1: Recuperar el ID del usuario 'zabbix'.      Alias=zabbix.userid:vfs.file.regexp[/etc/passwd,"^zabbix:.:([0-9]+)",,,,\1]      Ahora se puede utilizar la clave abreviada **zabbix.userid** para recuperar datos.  Ejemplo 2: obtener utilización de la CPU con parámetros predeterminados y personalizados.      Alias=cpu.util:system.cpu.util     Alias=cpu.util[*]:system.cpu.util[*]  Esto permite usar la clave **cpu.util** para obtener el porcentaje de utilización de la CPU con parámetros predeterminados, así como usar **cpu.util[all, idle, avg15]** para obtener datos específicos sobre la utilización de la CPU.  Ejemplo 3: ejecutar varias reglas de [descubrimiento de bajo nivel](/manual/discovery/low_level_discovery) que procesan las mismas métricas de descubrimiento.      Alias=vfs.fs.discovery[*]:vfs.fs.discovery  Ahora es posible configurar varias reglas de descubrimiento usando **vfs.fs.discovery** con diferentes parámetros para cada regla, por ejemplo, **vfs.fs.discovery[foo]**, **vfs.fs.discovery[ barra]**, etc.

en-us	##### Alias  Sets an alias for an item key. It can be used to substitute a long and complex item key with a shorter and simpler one.<br> Multiple *Alias* parameters may be present. Multiple parameters with the same *Alias* key are not allowed.<br> Different *Alias* keys may reference the same item key.<br> Aliases can be used in *HostMetadataItem* but not in the *HostnameItem* parameter.  Example 1: Retrieving the paging file usage in percentage from the server.      Alias=pg_usage:perf_counter[\Paging File(_Total)\% Usage]      Now the shorthand key **pg_usage** may be used to retrieve data.  Example 2: Getting the CPU load with default and custom parameters.      Alias=cpu.load:system.cpu.load     Alias=cpu.load[*]:system.cpu.load[*]  This allows use **cpu.load** key to get the CPU load with default parameters as well as use **cpu.load[percpu,avg15]** to get specific data about the CPU load.  Example 3: Running multiple [low-level discovery](/manual/discovery/low_level_discovery) rules processing the same discovery items.      Alias=vfs.fs.discovery[*]:vfs.fs.discovery  Now it is possible to set up several discovery rules using **vfs.fs.discovery** with different parameters for each rule, e.g., **vfs.fs.discovery[foo]**, **vfs.fs.discovery[bar]**, etc.
es	##### Alias  Establece un alias para una clave de elemento. Se puede utilizar para sustituir una clave de métrica larga y compleja por una más corta y sencilla.<br> Es posible que estén presentes varios parámetros *Alias*. No se permiten múltiples parámetros con la misma clave *Alias*.<br> Diferentes claves *Alias* pueden hacer referencia a la misma clave de métrica.<br> Los alias se pueden utilizar en *HostMetadataItem* pero no en el parámetro *HostnameItem*.  Ejemplo 1: Recuperar el uso del archivo de paginación en porcentaje del servidor.      Alias=pg_usage:perf_counter[\Paging File(_Total)\% Usage]      Ahora se puede utilizar la clave abreviada **pg_usage** para recuperar datos.  Ejemplo 2: Obtener la carga de la CPU con parámetros predeterminados y personalizados.      Alias=cpu.load:system.cpu.load     Alias=cpu.load[*]:system.cpu.load[*]  Esto permite usar la clave **cpu.load** para obtener la carga de la CPU con parámetros predeterminados, así como usar **cpu.load[percpu,avg15]** para obtener datos específicos sobre la carga de la CPU.  Ejemplo 3: ejecutar varias reglas de [descubrimiento de bajo nivel](/manual/discovery/low_level_discovery) que procesan los mismos elementos de descubrimiento.      Alias=vfs.fs.discovery[*]:vfs.fs.discovery  Ahora es posible configurar varias reglas de descubrimiento usando **vfs.fs.discovery** con diferentes parámetros para cada regla, por ejemplo, **vfs.fs.discovery[foo]**, **vfs.fs.discovery[bar]**, etc.

en-us	##### Aligning time zones for proxies and agent 2  Note that Zabbix proxies and agent 2 use their local time zones when processing scheduling intervals.  For this reason, when scheduling intervals are applied to items monitored by Zabbix proxy or agent 2 active items, it is recommended to set the time zone of the respective proxies or agent 2 the same as Zabbix server, otherwise the [queue](/manual/config/items/queue) may report item delays incorrectly.  The time zone for Zabbix proxy or agent 2 can be set using the environment variable `TZ` in the `systemd` unit file:      [Service]     ...     Environment="TZ=Europe/Amsterdam"
es	##### Alineación de zonas horarias para proxies y agente 2  Tenga en cuenta que los proxies de Zabbix y el agente 2 utilizan sus zonas horarias locales al procesar intervalos de programación.  Por esta razón, cuando se aplican intervalos de programación a métricas monitoreados por el proxy Zabbix o las métricas activas del agente 2, se recomienda configurar la zona horaria de los respectivos proxy o agente 2 igual que la del servidor Zabbix; de lo contrario, la [cola](/manual /config/items/queue) puede informar retrasos en las métricas de forma incorrecta.  La zona horaria para el proxy o agente 2 de Zabbix se puede configurar usando la variable de entorno `TZ` en el archivo de unidad `systemd`:      [Service]     ...     Environment="TZ=Europe/Amsterdam"

en-us	 All of these parameters can be changed in *Administration* → [*Housekeeping*](/manual/web_interface/frontend_sections/administration/housekeeping) after the installation.  ::: notetip You may want to run the timescaledb-tune tool provided by TimescaleDB to optimize PostgreSQL configuration parameters in your `postgresql.conf`. :::
es	 Todos estos parámetros se pueden cambiar en *Administración* → [*Limpiador interno*](/manual/web_interface/frontend_sections/administration/housekeeping) después de la instalación.  ::: notetip Es posible que desee ejecutar la herramienta timescaledb-tune proporcionada por TimescaleDB para optimizar los parámetros de configuración de PostgreSQL en su `postgresql.conf`. :::

en-us	##### AllowedIP A list of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies. Incoming connections will be accepted only from the hosts listed here.<br>If IPv6 support is enabled then `127.0.0.1`, `::127.0.0.1`, `::ffff:127.0.0.1` are treated equally and `::/0` will allow any IPv4 or IPv6 address. `0.0.0.0/0` can be used to allow any IPv4 address.  Example:       127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com  Mandatory: yes
es	##### AllowedIP Una lista de direcciones IP delimitadas por comas, opcionalmente en notación CIDR, o nombres DNS de servidores Zabbix y proxies Zabbix. Las conexiones entrantes solo se aceptarán desde los equipos enumerados aquí.<br>Si la compatibilidad con IPv6 está habilitada, entonces `127.0.0.1`, `::127.0.0.1`, `::ffff:127.0.0.1` se tratan por igual y `: :/0` permitirá cualquier dirección IPv4 o IPv6. `0.0.0.0/0` se puede utilizar para permitir cualquier dirección IPv4.  Ejemplo:      127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com  Obligatorio: sí

en-us	##### AllowKey  Allow the execution of those item keys that match a pattern. The key pattern is a wildcard expression that supports the "\*" character to match any number of any characters.<br>Multiple key matching rules may be defined in combination with DenyKey. The parameters are processed one by one according to their appearance order. See also: [Restricting agent checks](/manual/config/items/restrict_checks).
es	##### AllowKey  Permitir la ejecución de aquellas claves de métrica que coincidan con un patrón. El patrón de clave es una expresión comodín que admite el carácter "\*" para que coincida con cualquier número de caracteres.<br>Se pueden definir varias reglas de coincidencia de claves en combinación con DenyKey. Los parámetros se procesan uno por uno según su orden de aparición. Consulte también: [Restricción de comprobaciones de agentes](/manual/config/items/restrict_checks).

en-us	##### AllowKey  Allow the execution of those item keys that match a pattern. The key pattern is a wildcard expression that supports the "\*" character to match any number of any characters.<br>Multiple key matching rules may be defined in combination with DenyKey. The parameters are processed one by one according to their appearance order. See also: [Restricting agent checks](/manual/config/items/restrict_checks).
es	##### AllowKey  Permitir la ejecución de aquellas claves de métrica que coincidan con un patrón. El patrón de clave es una expresión comodín que admite el carácter "\*" para que coincida con cualquier número de caracteres.<br>Se pueden definir varias reglas de coincidencia de claves en combinación con DenyKey. Los parámetros se procesan uno por uno según su orden de aparición. Consulte también: [Restricción de comprobaciones de agentes](/manual/config/items/restrict_checks).

en-us	##### AllowKey  Allow the execution of those item keys that match a pattern. The key pattern is a wildcard expression that supports the "\*" character to match any number of any characters.<br>Multiple key matching rules may be defined in combination with DenyKey. The parameters are processed one by one according to their appearance order. See also: [Restricting agent checks](/manual/config/items/restrict_checks).
es	##### AllowKey  Permitir la ejecución de aquellas claves de métrica que coincidan con un patrón. El patrón de clave es una expresión comodín que admite el carácter "\*" para que coincida con cualquier número de caracteres.<br>Se pueden definir varias reglas de coincidencia de claves en combinación con DenyKey. Los parámetros se procesan uno por uno según su orden de aparición. Consulte también: [Restricción de comprobaciones de agentes](/manual/config/items/restrict_checks).

en-us	##### AllowKey  Allow the execution of those item keys that match a pattern. The key pattern is a wildcard expression that supports the "\*" character to match any number of any characters.<br>Multiple key matching rules may be defined in combination with DenyKey. The parameters are processed one by one according to their appearance order. See also: [Restricting agent checks](/manual/config/items/restrict_checks).
es	##### AllowKey  Permitir la ejecución de aquellas claves de métrica que coincidan con un patrón. El patrón de clave es una expresión comodín que admite el carácter "\*" para que coincida con cualquier número de caracteres.<br>Se pueden definir varias reglas de coincidencia de claves en combinación con DenyKey. Los parámetros se procesan uno por uno según su orden de aparición. Consulte también: [Restricción de comprobaciones de agentes](/manual/config/items/restrict_checks).

en-us	##### AllowRoot  Allow the agent to run as 'root'. If disabled and the agent is started by 'root', the agent will try to switch to user 'zabbix' instead. Has no effect if started under a regular user.  Default: `0`<br> Values: 0 - do not allow; 1 - allow
es	##### AllowRoot  Permita que el agente se ejecute como 'root'. Si está deshabilitado y el agente lo inicia 'root', el agente intentará cambiar al usuario 'zabbix'. No tiene ningún efecto si se inicia con un usuario normal.  Predeterminado: `0`<br> Valores: 0 - no permitir; 1 - permitir

en-us	##### AllowRoot  Allow the proxy to run as 'root'. If disabled and the proxy is started by 'root', the proxy will try to switch to the 'zabbix' user instead. Has no effect if started under a regular user.  Default: `0`<br> Values: 0 - do not allow; 1 - allow
es	##### AllowRoot  Permita que el proxy se ejecute como 'root'. Si está deshabilitado y el proxy lo inicia 'root', el proxy intentará cambiar al usuario 'zabbix'. No tiene ningún efecto si se inicia con un usuario normal.  Predeterminado: `0`<br> Valores: 0 - no permitir; 1 - permitir

en-us	##### AllowRoot Allow the server to run as 'root'. If disabled and the server is started by 'root', the server will try to switch to the 'zabbix' user instead. Has no effect if started under a regular user.  Default: `0`<br> Values: 0 - do not allow; 1 - allow
es	##### AllowRoot Permita que el servidor se ejecute como 'root'. Si está deshabilitado y el servidor se inicia con 'root', el servidor intentará cambiar al usuario 'zabbix'. No tiene ningún efecto si se inicia con un usuario normal.  Predeterminado: `0`<br> Valores: 0 - no permitir; 1 - permitir

en-us	##### Allow specific check, deny others  -   Whitelist specific checks with AllowKey parameters, deny others with     `DenyKey=*`  For example:      # Allow reading logs:     AllowKey=vfs.file.*[/var/log/*]      # Allow localtime checks     AllowKey=system.localtime[*]      # Deny all other keys     DenyKey=*
es	##### Permitir verificación específica, negar otras  - Incluya verificaciones específicas en la lista blanca con parámetros AllowKey, deniegue otros con     `DenyKey=*`  Por ejemplo:      # Permitir la lectura de registros:     AllowKey=vfs.archivo.*[/var/log/*]      # Permitir comprobaciones de hora local     AllowKey=sistema.horalocal[*]      # Denegar todas las demás claves     Denegar clave=*

en-us	##### AllowUnsupportedDBVersions  Allow the proxy to work with unsupported database versions.  Default: `0`<br> Values: 0 - do not allow; 1 - allow
es	##### AllowUnsupportedDBVersions  Permite que el proxy funcione con versiones de bases de datos no compatibles.  Predeterminado: `0`<br> Valores: 0 - no permitir; 1 - permitir

en-us	##### AllowUnsupportedDBVersions Allow the server to work with unsupported database versions.  Default: `0`<br> Values: 0 - do not allow; 1 - allow
es	##### AllowUnsupportedDBVersions Permite que el servidor funcione con versiones de bases de datos no compatibles.  Predeterminado: `0`<br> Valores: 0 - no permitir; 1 - permitir

en-us	 A new template has been added: [Google Cloud Platform (GCP) by HTTP](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/cloud/gcp/README.md?at=refs%2Fheads%2Frelease%2F6.4).  The template *Azure by HTTP* now also works with Azure Cosmos DB for MongoDB.
es	 Se ha agregado una nueva plantilla: [Google Cloud Platform (GCP) por HTTP](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/cloud/gcp/README.md?at= refs%2Fheads%2Frelease%2F6.4).  La plantilla *Azure by HTTP* ahora también funciona con Azure Cosmos DB para MongoDB.

en-us	##### Another example with an inline regex modifier  Use of the following regular expression including multiple inline modifiers to match the characters after a specific line:      (?<=match (?i)everything(?-i) after this line\n)(?sx).*# we add s modifier to allow . match newline characters  ![regexp\_expr\_4\_new.png](../../assets/en/manual/regular_expressions/regexp_expr_4_new.png)  Chosen Expression type: "Result is TRUE". Characters after a specific line are matched.  ::: noteimportant  **g** modifier can't be specified in line. The list of available modifiers can be found in [pcresyntax man page](https://www.pcre.org/original/doc/html/pcresyntax.html#SEC16). For more information about PCRE syntax please refer to [PCRE HTML documentation](https://www.pcre.org/original/doc/html/pcrepattern.html).  :::
es	##### Otro ejemplo con un modificador de expresiones regulares en línea  Uso de la siguiente expresión regular que incluye múltiples en línea modificadores para hacer coincidir los caracteres después de una línea específica:     (?<=match (?i)everything(?-i) after this line\n)(?sx).*# we add s modifier to allow . match newline characters  ![regexp\_expr\_4\_new.png](../../assets/en/manual/regular_expressions/regexp_expr_4_new.png)  Tipo de expresión elegido: "El resultado es VERDADERO". Personajes después de un específico. línea coinciden.  ::: noteimportant  El modificador **g** no se puede especificar en la línea. La lista de modificadores disponibles se puede encontrar en la página de manual de [pcresyntax ](https://www.pcre.org/original/doc/html/pcresyntax.html#SEC16). Para obtener más información sobre la sintaxis PCRE, consulte [PCRE HTML documentación](https://www.pcre.org/original/doc/html/pcrepattern.html). :::

en-us	### API information  Retrieve the version of the Zabbix API so that your application could use version-specific features.  [API info API](/manual/api/reference/apiinfo)
es	### Información de la API  Obtenga la versión de la API de Zabbix, para que su aplicación pueda utilizar las características específicas de esa versión.  [API info API](/manual/api/reference/apiinfo)

en-us	# API info  This class is designed to retrieve meta information about the API.  Available methods:\  -   [apiinfo.version](/manual/api/reference/apiinfo/version) -     retrieving the version of the Zabbix API
es	# información de la API  Esta clase está diseñada para recuperar metainformación sobre la API.  Métodos disponibles:\  - [apiinfo.versión](/manual/api/referencia/apiinfo/versión) -     recuperando la versión de la API de Zabbix

en-us	# apiinfo.version
es	# apiinfo.version

en-us	#### API login  A large number of open user sessions can be created when using custom scripts with the `user.login` [method](/manual/api/reference/user/login) without a following `user.logout`.
es	#### inicio de sesión API  Se puede crear una gran cantidad de sesiones de usuario abiertas cuando se usa scripts con `user.login` [método](/manual/api/reference/user/login) sin su correspondiente `user.logout`.

en-us	#### API tokens  API tokens section allows to view tokens assigned to the user, edit token details and [create new tokens](/manual/web_interface/frontend_sections/users/api_tokens). This section is only available to a user if *Manage API tokens* action is allowed in the [user role](/manual/web_interface/frontend_sections/users/user_roles) settings.  ![](../../../assets/en/manual/web_interface/user_tokens.png){width="600"}  You may filter API tokens by name, expiry date, or status (*Enabled*/*Disabled*). Click on the token status in the list to quickly enable/disable a token. You may also mass enable/disable tokens by selecting them in the list and then clicking on the *Enable*/*Disable* buttons below the list.   ::: noteimportant Users cannot view *Auth token* value of the tokens assigned to them in Zabbix. *Auth token* value is displayed only once - immediately after creating a token. If it has been lost, the token has to be regenerated.  :::
es	#### Tokens API  La sección de tokens API permite ver los tokens asignados al usuario y editar los detalles del token y [crear nuevos tokens](/manual/web_interface/frontend_sections/users/api_tokens). Esta sección solo está disponible para un usuario si la acción *Administrar tokens de API* está permitida en la configuración del [rol de usuario](/manual/web_interface/frontend_sections/users/user_roles).  ![](../../../assets/en/manual/web_interface/user_tokens.png){width="600"}  Puede filtrar tokens de API por nombre, fecha de vencimiento o estado (*Habilitado Deshabilitado*). Haga clic en el estado del token en la lista para rápidamente habilitar/deshabilitar un token. También puede habilitar/deshabilitar tokens de forma masiva seleccionándolos en la lista y luego haciendo clic en los botones *Activar*/*Desactivar* debajo de la lista.  ::: noteimportant Los usuarios no pueden ver el valor de *Token de  autenticación* de los tokens que se les asignaron en Zabbix. El valor del  *Token de autenticación* se muestra solo una vez, inmediatamente después de crear un token. Si se se ha perdido, el token debe ser regenerado. :::

en-us	#### API Tokens  Manage authorization tokens.  [Token API](/manual/api/reference/token)
es	#### Tokens de API  Administre los tokens de autorización.  [API de Token](/manual/api/reference/token)

en-us	### API versions  To simplify API versioning, since Zabbix 2.0.4, the version of the API matches the version of Zabbix itself. You can use the [apiinfo.version](/manual/api/reference/apiinfo/version) method to find out the version of the API you are working with. This can be useful for adjusting your application to use version-specific features.  Zabbix guarantees feature backward compatibility inside a major version. When making backward incompatible changes between major releases, Zabbix usually leaves the old features as deprecated in the next release, and only removes them in the release after that. Occasionally, Zabbix may remove features between major releases without providing any backward compatibility. It is important that you never rely on any deprecated features and migrate to newer alternatives as soon as possible.  ::: notetip You can follow all the changes made to the API in the [API changelog](/manual/api/changes). :::
es	### Versiones de API  Para simplificar el versionado de API, desde Zabbix 2.0.4, la versión de la API coincide con la versión misma de Zabbix . Puede usar el método [apiinfo.version](/manual/api/reference/apiinfo/version) para encontrar la versión de la API con la que está trabajando. Esto puede ser muy útil para ajustar su aplicación y usar las funciones especificas de la versión.   Zabbix garantiza la compatibilidad con versiones anteriores en una misma versión principal. Cuando hacemos cambios incompatibles entre versiones principales, solemos dejar las características anteriores como obsoletas en la nueva versión, y solo las eliminamos después del lanzamiento de la siguiente versión.  Ocasionalmente podríamos eliminar funciones entre versiones principales sin proveer compatibilidad. Es importante que nunca confíe en ninguna función obsoleta y actualice cuanto antes a las nuevas alternativas.  ::: notetip Puede seguir todos los cambios de la API en el [API changelog](/manual/api/changes). ::::

en-us	#### API  [ZBXNEXT-8051](https://support.zabbix.com/browse/ZBXNEXT-8051) Authorization method changed from `auth` parameter to `Authorization` header.\ [ZBXNEXT-8051](https://support.zabbix.com/browse/ZBXNEXT-8051) Deprecated parameter `auth`.\
es	#### API  [ZBXNEXT-8051](https://support.zabbix.com/browse/ZBXNEXT-8051) El método de autorización cambió del parámetro `auth` al encabezado `Authorization`.\ [ZBXNEXT-8051](https://support.zabbix.com/browse/ZBXNEXT-8051) Parámetro obsoleto `auth`.\

en-us	# Appendix 1. Reference commentary
es	# Apéndice 1. Comentario de referencia

en-us	# Appendix 2. Changes from 6.2 to 6.4
es	# Apéndice 2. Cambios desde la 6.2 a 6.4

en-us	#### Architecture  Zabbix consists of several major software components. Their responsibilities are outlined below.
es	#### Arquitectura  Zabbix consta de varios componentes de software importantes. Sus responsabilidades se describen a continuación.

en-us	#### A real life scenario  In this example, we would like to set up network discovery for the local network having an IP range of 192.168.1.1-192.168.1.254.  In our scenario we want to:  -   discover those hosts that have Zabbix agent running -   run discovery every 10 minutes -   add a host to monitoring if the host uptime is more than 1 hour -   remove hosts if the host downtime is more than 24 hours -   add Linux hosts to the "Linux servers" group -   add Windows hosts to the "Windows servers" group -   use the template *Linux* for Linux hosts -   use the template *Windows* for Windows hosts
es	#### Un escenario de la vida real  En este ejemplo, nos gustaría configurar el descubrimiento de red para la red local que tiene un rango de IP de 192.168.1.1-192.168.1.254.  En nuestro escenario queremos:  -   descubrir aquellos equipos que tienen el agente Zabbix ejecutándose -   ejecutar el descubrimiento cada 10 minutos -   agregar un equipo al monitoreo si el tiempo de actividad del equipo es superior a 1 hora -   eliminar equipos si el tiempo de inactividad del equipo es de más de 24 horas -   agregar equipos Linux al grupo "servidores Linux" -   agregar equipos de Windows al grupo "servidores de Windows" -   utilizar la plantilla *Linux* para equipos Linux -   utilizar la plantilla *Windows* para equipos de Windows

en-us	 ##### ascii(value) {#ascii}  The ASCII code of the leftmost character of the value.<br> Supported value types: *String*, *Text*, *Log*.  Parameter:   -   **value** - the value to check  For example, a value like 'Abc' will return '65' (ASCII code for 'A').  Example:      ascii(last(/host/key))
es	 ##### ascii (valor) {#ascii}  El código ASCII del carácter más a la izquierda del valor.<br> Tipos de valores admitidos: *Cadena*, *Texto*, *Registro*.  Parámetro:  - **valor** - el valor a comprobar  Por ejemplo, un valor como 'Abc' devolverá '65' (código ASCII para 'A').  Ejemplo:      ascii(last(/host/key))

en-us	 ##### asin(value) {#asin}  The arcsine of a value as an angle, expressed in radians.  Parameter:   -   **value** - the value to check  The value must be between -1 and 1. For example, the arcsine of a value '0.5' will be '-0.523598776'.  Example:      asin(last(/host/key)) 
es	 ##### asin(valor) {#asin}  El arcoseno de un valor como ángulo, expresado en radianes.  Parámetro:  - **valor** - el valor a comprobar  El valor debe estar entre -1 y 1. Por ejemplo, el arcoseno de un valor '0,5' será '-0,523598776'.  Ejemplo:      asin(last(/host/key))

en-us	 ### assets/css  *assets/css* is reserved and should only contain CSS style files. To be used by the widget, specify these files in the *[manifest.json](/devel/modules/file_structure/manifest)*.  For example:  ```json "assets": {     "css": ["mywidget.css"] } ```
es	### assets/css  *assets/css* está reservado y solo debe contener archivos de estilo CSS. Para que los utilice el widget, especifique estos archivos en *[manifest.json](/devel/modules/file_structure/manifest)*.  Por ejemplo:  ```json "assets": {     "css": ["mywidget.css"] } ```

en-us	 ### assets  CSS styles and JavaScript files to include.  *Type*: Object  *Supported object keys:*  -   **css** (array) - CSS files to include. The files must be located in the *assets/css*. -   **js** (array) - JavaScript files to include. The files must be located in the *assets/js*.  *Example*:   ```json "assets": {     "css": ["widget.css"],     "js": ["class.widget.js"] } ```
es	### assets  Estilos CSS y archivos JavaScript para incluir.  *Tipo*: Objeto  *Claves de objetos compatibles:*  -**css** (matriz) - Archivos CSS para incluir. Los archivos deben estar ubicados en *assets/css*. -**js** (matriz) - Archivos JavaScript para incluir. Los archivos deben estar ubicados en *assets/js*.  *Ejemplo*:  ```json "assets": {     "css": ["widget.css"],     "js": ["widget.js"] } ```

en-us	 ### assets/js  *assets/js* directory is reserved and should only contain JavaScript files. To be used by the widget, specify these files in the *[manifest.json](/devel/modules/file_structure/manifest)*.  For example:  ```json "assets": {     "js": ["class.widget.js"] } ```
es	 ### activos/js  El directorio *assets/js* está reservado y solo debe contener archivos JavaScript. Para que los utilice el widget, especifique estos archivos en *[manifest.json](/devel/modules/file_structure/manifest)*.  Por ejemplo: For example:  ```json "assets": {     "js": ["class.widget.js"] } ```

en-us	 # Assets  The folder *assets* may contain any files and subfolders that do not belong to other directories. You can use it for:  - JavaScript styles (must be inside *[assets/js](#assetsjs)*); - CSS styles (must be inside *[assets/css](#assetscss)*); - Images; - Fonts; - Anything else you need to include.
es	# Activos  La carpeta *assets* puede contener archivos y subcarpetas que no pertenecen a otros directorios. Puedes usarlo para:  - Estilos JavaScript (deben estar dentro de *[assets/js](#assetsjs)*); - Estilos CSS (deben estar dentro de *[assets/css](#assetscss)*); - Imágenes; - Fuentes; - Cualquier otra cosa que necesites incluir.

en-us	#### Assigning different hosts  Replace the hosts currently assigned to maintenance with two different ones.  [Request](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "maintenance.update",     "params": {         "maintenanceid": "3",         "hosts": [             {"hostid": "10085"},             {"hostid": "10084"}         ]     },     "id": 1 } ```  Response:  ```json {     "jsonrpc": "2.0",     "result": {         "maintenanceids": [             "3"         ]     },     "id": 1 } ```
es	#### Asignación de diferentes anfitriones  Reemplazar los hosts actualmente asignados a mantenimiento por dos diferentes.  [Solicitud](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "maintenance.update",     "params": {         "maintenanceid": "3",         "hosts": [             {"hostid": "10085"},             {"hostid": "10084"}         ]     },     "id": 1 } ```  Response:  ```json {     "jsonrpc": "2.0",     "result": {         "maintenanceids": [             "3"         ]     },     "id": 1 } ```

en-us	 ##### atan2(value,abscissa) {#atan2}  The arctangent of the ordinate (value) and abscissa coordinates specified as an angle, expressed in radians.  Parameter:   -   **value** - the value to check; -   **abscissa** - the abscissa value.  For example, the arctangent of the ordinate and abscissa coordinates of a value '1' will be '2.21429744'.  Example:      atan(last(/host/key),2)
es	 ##### atan2(valor,abscisa) {#atan2}  El arcotangente de las coordenadas de ordenadas (valor) y abscisas especificadas como un ángulo, expresadas en radianes.  Parámetro:  - **valor** - el valor a comprobar; - **abscisa** - el valor de la abscisa.  Por ejemplo, el arcotangente de las coordenadas de ordenadas y abscisas de un valor '1' será '2,21429744'.  Ejemplo:      atan(last(/host/key),2)

en-us	 ##### atan(value) {#atan}  The arctangent of a value as an angle, expressed in radians.  Parameter:   -   **value** - the value to check  The value must be between -1 and 1. For example, the arctangent of a value '1' will be '0.785398163'.  Example:      atan(last(/host/key))
es	 ##### atan(valor) {#atan}  El arcotangente de un valor como ángulo, expresado en radianes.  Parámetro:  - **valor** - el valor a comprobar  El valor debe estar entre -1 y 1. Por ejemplo, el arcotangente de un valor '1' será '0,785398163'.  Ejemplo:      atan(last(/host/key))

en-us	#### Attempting to use Zabbix sender compiled with TLS support to send data to Zabbix server/proxy compiled without TLS
es	#### Intentando utilizar el remitente Zabbix compilado con soporte TLS para enviar datos al servidor/proxy Zabbix compilado sin TLS

en-us	##### Attributes returning composite data  It becomes more complicated when your attribute returns composite data. For example: your attribute name is "apple" and it returns a hash representing its parameters, like "weight", "color" etc. Your key may look like this:      jmx[com.example:Type=Hello,apple.weight]  This is how an attribute name and a hash key are separated, by using a dot symbol. Same way, if an attribute returns nested composite data the parts are separated by a dot:      jmx[com.example:Type=Hello,fruits.apple.weight]
es	##### Atributos que devuelven datos compuestos  Se vuelve más complicado cuando su atributo devuelve datos compuestos. Por ejemplo: el nombre de su atributo es "manzana" y devuelve un hash representando sus parámetros, como "peso", "color", etc. Su clave puede se parece a esto:      jmx[com.ejemplo:Tipo=Hola,apple.peso]  Así es como se separan un nombre de atributo y una clave hash, utilizando un símbolo de punto De la misma manera, si un atributo devuelve datos compuestos anidados, el las partes están separadas por un punto:      jmx[com.ejemplo:Tipo=Hola,frutas.manzana.peso]

en-us	##### Attributes returning tabular data  Tabular data attributes consist of one or multiple composite attributes. If such an attribute is specified in the attribute name parameter then this item value will return the complete structure of the attribute in JSON format. The individual element values inside the tabular data attribute can be retrieved using preprocessing.  Tabular data attribute example:       jmx[com.example:type=Hello,foodinfo]  Item value:  ``` {.javascript} [   {     "a": "apple",     "b": "banana",     "c": "cherry"   },   {     "a": "potato",     "b": "lettuce",     "c": "onion"   } ] ```
es	##### Atributos que devuelven datos tabulares  Los atributos de datos tabulares constan de uno o varios atributos compuestos. Si dicho atributo se especifica en el parámetro de nombre de atributo, entonces este valor del elemento devolverá la estructura completa del atributo en formato JSON. Los valores de los elementos individuales dentro de los datos tabulares El atributo se puede recuperar mediante preprocesamiento.  Ejemplo de atributo de datos tabulares:       jmx[com.ejemplo:tipo=Hola,foodinfo]  Valor del ítem:  ``` {.javascript} [   {     "una manzana",     "b": "plátano",     "c": "cereza"   },   {     "una papa",     "b": "lechuga",     "c": "cebolla"   } ] ```

en-us	# auditlog.get
es	# auditlog.get

en-us	# > Audit log object  The following objects are directly related to the `auditlog` API.
es	# > Objeto de registro de auditoría  Los siguientes objetos están directamente relacionados con la API `auditlog`.

en-us	### Audit log  The audit log object contains information about user actions. It has the following properties.  |Property|[Type](/manual/api/reference_commentary#data_types)|Description| |--|--|------| |auditid|string|ID of audit log entry. Generated using CUID algorithm.| |userid|string|Audit log entry author userid.| |username|string|Audit log entry author username.| |clock|timestamp|Audit log entry creation timestamp.| |ip|string|Audit log entry author IP address.| |action|integer|Audit log entry action.<br><br>Possible values:<br>0 - Add;<br>1 - Update;<br>2 - Delete;<br>4 - Logout;<br>7 - Execute;<br>8 - Login;<br>9 - Failed login;<br>10 - History clear;<br>11 - Config refresh.| |resourcetype|integer|Audit log entry resource type.<br><br>Possible values:<br>0 - User;<br>3 - Media type;<br>4 - Host;<br>5 - Action;<br>6 - Graph;<br>11 - User group;<br>13 - Trigger;<br>14 - Host group;<br>15 - Item;<br>16 - Image;<br>17 - Value map;<br>18 - Service;<br>19 - Map;<br>22 - Web scenario;<br>23 - Discovery rule;<br>25 - Script;<br>26 - Proxy;<br>27 - Maintenance;<br>28 - Regular expression;<br>29 - Macro;<br>30 - Template;<br>31 - Trigger prototype;<br>32 - Icon mapping;<br>33 - Dashboard;<br>34 - Event correlation;<br>35 - Graph prototype;<br>36 - Item prototype;<br>37 - Host prototype;<br>38 - Autoregistration;<br>39 - Module;<br>40 - Settings;<br>41 - Housekeeping;<br>42 - Authentication;<br>43 - Template dashboard;<br>44 - User role;<br>45 - API token;<br>46 - Scheduled report;<br>47 - High availability node;<br>48 - SLA;<br>49 - User directory;<br>50 - Template group;<br>51 - Connector.| |resourceid|string|Audit log entry resource identifier.| |resourcename|string|Audit log entry resource human readable name.| |recordsetid|string|Audit log entry recordset ID. The audit log records created during the same operation will have the same recordset ID. Generated using CUID algorithm.| |details|text|Audit log entry details. The details are stored as a JSON object, where each property name is a path to the property or nested object in which the change occurred, and where each value contains the data (in array format) about the change in this property or nested object.<br><br>Possible value formats:<br>\["add"\] - Nested object has been added;<br>\["add", "<value>"\] - The property of the added object equals <value>;<br>\["update"\] - Nested object has been updated;<br>\["update", "<new value>", "<old value>"\] - The property of the updated object was changed from <old value> to <new value>;<br>\["delete"\] - Nested object has been deleted.|
es	### Registro de auditoría  El objeto de registro de auditoría contiene información sobre las acciones del usuario. tiene el siguientes propiedades.  |Propiedad|[Tipo](/manual/api/reference_commentary#data_types)|Descripción| |--|--|------| |auditid|cadena|ID de la entrada del registro de auditoría. Generado utilizando el algoritmo CUID.| |userid|cadena|ID de usuario del autor de la entrada del registro de auditoría.| |username|cadena|Nombre de usuario del autor de la entrada del registro de auditoría.| |clock|marca de tiempo|Marca de tiempo de creación de entrada de registro de auditoría.| |ip|cadena|Dirección IP del autor de la entrada del registro de auditoría.| |action|entero|Acción de entrada del registro de auditoría.<br><br>Valores posibles:<br>0 - Agregar;<br>1 - Actualizar;<br>2 - Eliminar;<br>4 - Cerrar sesión;<br> 7 - Ejecutar;<br>8 - Iniciar sesión;<br>9 - Inicio de sesión fallido;<br>10 - Borrar historial;<br>11 - Actualización de configuración.| |resourcetype|entero|Tipo de recurso de entrada de registro de auditoría.<br><br>Valores posibles:<br>0 - Usuario;<br>3 - Tipo de medio;<br>4 - Equipo;<br>5 - Acción;< br>6 - Gráfico;<br>11 - Grupo de usuarios;<br>13 - Iniciador;<br>14 - Grupo de equipos;<br>15 - Métrica;<br>16 - Imagen;<br>17 - Mapa de valores ;<br>18 - Servicio;<br>19 - Mapa;<br>22 - Escenario web;<br>23 - Regla de descubrimiento;<br>25 - Script;<br>26 - Proxy;<br>27 - Mantenimiento;<br>28 - Expresión regular;<br>29 - Macro;<br>30 - Plantilla;<br>31 - Prototipo de iniciador;<br>32 - Mapeo de iconos;<br>33 - Tablero;<br> 34 - Correlación de eventos;<br>35 - Prototipo de gráfico;<br>36 - Prototipo de métrica;<br>37 - Prototipo de equipo;<br>38 - Autorregistro;<br>39 - Módulo;<br>40 - Configuración; <br>41 - Limpieza;<br>42 - Autenticación;<br>43 - Panel de plantilla;<br>44 - Rol de usuario;<br>45 - Token API;<br>46 - Informe programado;<br>47 - Nodo de alta disponibilidad;<br>48 - SLA;<br>49 - Directorio de usuarios;<br>50 - Grupo de plantillas;<br>51 - Conector.| |resourceid|cadena|Identificador de recurso de entrada del registro de auditoría.| |resourcename|cadena|Nombre legible por humanos del recurso de entrada de registro de auditoría.| |recordsetid|cadena|ID del conjunto de registros de entrada del registro de auditoría. Los registros de auditoría creados durante la misma operación tendrán el mismo ID de conjunto de registros. Generado utilizando el algoritmo CUID.| |details|texto|Detalles de la entrada del registro de auditoría. Los detalles se almacenan como un objeto JSON, donde cada nombre de propiedad es una ruta a la propiedad u objeto anidado en el que ocurrió el cambio, y donde cada valor contiene los datos (en formato de matriz) sobre el cambio en esta propiedad u objeto anidado. <br><br>Formatos de valores posibles:<br>\["add"\] - Se ha agregado un objeto anidado;<br>\["add", "<value>"\] - La propiedad del objeto agregado es igual a <valor>;<br>\["update"\] - El objeto anidado ha sido actualizado;<br>\["update", "<new value>", "<old value>"\] - La propiedad de el objeto actualizado se cambió de <valor anterior> a <valor nuevo>;<br>\["delete"\] - El objeto anidado ha sido eliminado.|

en-us	# Audit log  This class is designed to work with audit log.  Object references:\  -   [Audit log object](/manual/api/reference/auditlog/object)  Available methods:\  -   [auditlog.get](/manual/api/reference/auditlog/get) - retrieve audit     log records
es	# Registro de auditoría  Esta clase está diseñada para trabajar con el registro de auditoría.  Referencias de objeto:\  -   [Objeto de registro de auditoría](/manual/api/reference/auditlog/object)  Métodos disponibles:\  -   [auditlog.get](/manual/api/reference/auditlog/get) - obtener registros del registro de auditoría

en-us	#### Audit log  Track configuration changes each user has done.  [Audit log API](/manual/api/reference/auditlog)
es	#### Registro de auditoría  Realice un seguimiento de los cambios de configuración que ha realizado cada usuario.  [API de registro de auditoría](/manual/api/reference/auditlog)

en-us	#### auditlog  [ZBXNEXT-8105](https://support.zabbix.com/browse/ZBXNEXT-8105) Added new [audit log](/manual/api/reference/auditlog/object#audit-log) entry resource type (51 - Connector).\
es	#### auditlog  [ZBXNEXT-8105](https://support.zabbix.com/browse/ZBXNEXT-8105) Se agregó un nuevo tipo de recurso de entrada del [registro de auditoría](/manual/api/reference/auditlog/object#audit-log) (51 - Conector).\

en-us	#### Authenticating a user  Authenticate a user.  [Request](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "user.login",     "params": {         "username": "Admin",         "password": "zabbix"     },     "id": 1 } ```  Response:  ```json {     "jsonrpc": "2.0",     "result": "0424bd59b807674191e7d77572075f33",     "id": 1 } ```
es	#### Autenticar a un usuario  Autenticar a un usuario.  [Solicitud](/manual/api#performing-requests):  ```json {     "jsonrpc": "2.0",     "method": "user.login",     "params": {         "username": "Admin",         "password": "zabbix"     },     "id": 1 } ```  Respuesta:  ```json {     "jsonrpc": "2.0",     "result": "0424bd59b807674191e7d77572075f33",     "id": 1 } ```

en-us	#### Authentication  Change authentication configuration options.  [Authentication API](/manual/api/reference/authentication)
es	#### Autenticación  Cambie las opciones de configuración de autenticación.  [API de Autenticación](/manual/api/reference/authentication)

en-us	# authentication.get
es	# authentication.get

en-us	# > Authentication object  The following objects are directly related to the `authentication` API.
es	# > Objeto de autenticación  Los siguientes objetos están directamente relacionados con la API `authentication`.

en-us	### Authentication  The authentication object has the following properties.  |Property|[Type](/manual/api/reference_commentary#data_types)|Description| |--|--|------| |authentication\_type|integer|Default authentication.<br><br>Possible values:<br>0 - *(default)* Internal;<br>1 - LDAP.| |http\_auth\_enabled|integer|HTTP authentication.<br><br>Possible values:<br>0 - *(default)* Disabled;<br>1 - Enabled.| |http\_login\_form|integer|Default login form.<br><br>Possible values:<br>0 - *(default)* Zabbix login form;<br>1 - HTTP login form.| |http\_strip\_domains|string|Domain name to remove.| |http\_case\_sensitive|integer|HTTP case sensitive login.<br><br>Possible values:<br>0 - Off;<br>1 - *(default)* On.| |ldap\_auth\_enabled|integer|LDAP authentication.<br><br>Possible values:<br>0 - *(default)* Disabled;<br>1 - Enabled.| |ldap\_case\_sensitive|integer|LDAP case sensitive login.<br><br>Possible values:<br>0 - Off;<br>1 - *(default)* On.| |ldap\_userdirectoryid|string|Default user directory for LDAP authentication. Used for user groups with `gui_access` set to LDAP or System default.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `ldap_auth_enabled` is set to "Enabled"| |saml\_auth\_enabled|integer|SAML authentication.<br><br>Possible values:<br>0 - *(default)* Disabled;<br>1 - Enabled.| |saml\_case\_sensitive|integer|SAML case sensitive login.<br><br>Possible values:<br>0 - Off;<br>1 - *(default)* On.| |passwd\_min\_length|integer|Password minimal length requirement.<br><br>Valid values range from 1 to 70.<br><br>Default: 8.| |passwd\_check\_rules|integer|Password checking rules.<br>This is a bitmask field, any combination of possible bitmap values is acceptable.<br><br>Possible bitmap values:<br>0 - check password length;<br>1 - check if password uses uppercase and lowercase Latin letters;<br>2 - check if password uses digits;<br>4 - check if password uses special characters;<br>8 - *(default)* check if password is not in the list of commonly used passwords, does not contain derivations of word "Zabbix" or user's name, last name or username.| |ldap\_jit\_status|integer|Status of LDAP provisioning.<br><br>Possible values:<br>0 - Disabled for configured LDAP IdPs;<br>1 - Enabled for configured LDAP IdPs.| |saml\_jit\_status|integer|Status of SAML provisioning.<br><br>Possible values:<br>0 - Disabled for configured SAML IdPs;<br>1 - Enabled for configured SAML IdPs.| |jit\_provision\_interval|string|Time interval between JIT provision requests for logged-in user.<br>Accepts seconds and time unit with suffix with month and year support (3600s,60m,1h,1d,1M,1y). Minimum value: 1h.<br><br>Default: 1h.<br><br>Available only for LDAP provisioning.| |disabled\_usrgrpid|integer|User group ID to assign the deprovisioned user to.<br>The user group must be disabled and cannot be enabled or deleted when configured.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *required* if `ldap_jit_status` is set to "Enabled for configured LDAP IdPs", or `saml_jit_status` is set to "Enabled for configured SAML IdPs"|
es	### Autenticación  El objeto de autenticación tiene las siguientes propiedades.  |Propiedad|[Tipo](/manual/api/reference_commentary#data_types)|Descripción| |--|--|------| |authentication\_type|entero|Autenticación predeterminada.<br><br>Valores posibles:<br>0 - *(predeterminado)* Interno;<br>1 - LDAP.| |http\_auth\_enabled|entero|Autenticación HTTP.<br><br>Valores posibles:<br>0 - *(predeterminado)* Deshabilitado;<br>1 - Habilitado.| |http\_login\_form|entero|Formulario de inicio de sesión predeterminado.<br><br>Valores posibles:<br>0 - *(predeterminado)* Formulario de inicio de sesión de Zabbix;<br>1 - Formulario de inicio de sesión HTTP.| |http\_strip\_domains|cadena|Nombre de dominio a eliminar.| |http\_case\_SENSITIVE|entero|Inicio de sesión HTTP que distingue entre mayúsculas y minúsculas.<br><br>Valores posibles:<br>0 - Desactivado;<br>1 - *(predeterminado)* Activado.| |ldap\_auth\_enabled|entero|Autenticación LDAP.<br><br>Valores posibles:<br>0 - *(predeterminado)* Deshabilitado;<br>1 - Habilitado.| |http\_case\_sensitive|entero|Inicio de sesión LDAP que distingue entre mayúsculas y minúsculas.<br><br>Valores posibles:<br>0 - Desactivado;<br>1 - *(predeterminado)* Activado.| |ldap\_userdirectoryid|cadena|Directorio de usuarios predeterminado para la autenticación LDAP. Se utiliza para grupos de usuarios con `gui_access` configurado en LDAP o predeterminado del sistema.<br><br>[Comportamiento de la propiedad](/manual/api/reference_commentary#property-behavior):<br>- *obligatorio* si `ldap_auth_enabled` está establecido en "Habilitado"| |saml\_auth\_enabled|entero|Autenticación SAML.<br><br>Valores posibles:<br>0 - *(predeterminado)* Deshabilitado;<br>1 - Habilitado.| |saml\_case\_sensitive|entero|Inicio de sesión SAML que distingue entre mayúsculas y minúsculas.<br><br>Valores posibles:<br>0 - Desactivado;<br>1 - *(predeterminado)* Activado.| |passwd\_min\_length|entero|Requisito de longitud mínima de la contraseña.<br><br>Los valores válidos oscilan entre 1 y 70.<br><br>Predeterminado: 8.| |passwd\_check\_rules|entero|Reglas de verificación de contraseñas.<br>Este es un campo de máscara de bits, cualquier combinación de posibles valores de mapa de bits es aceptable.<br><br>Posibles valores de mapa de bits:<br>0 - verificar la longitud de la contraseña; <br>1 - comprobar si la contraseña utiliza letras latinas mayúsculas y minúsculas;<br>2 - comprobar si la contraseña utiliza dígitos;<br>4 - comprobar si la contraseña utiliza caracteres especiales;<br>8 - *(predeterminado)* comprobar si La contraseña no está en la lista de contraseñas de uso común, no contiene derivaciones de la palabra "Zabbix" ni el nombre, apellido o nombre de usuario del usuario.| |ldap\_jit\_status|entero|Estado del aprovisionamiento LDAP.<br><br>Valores posibles:<br>0: deshabilitado para los IdP LDAP configurados;<br>1: habilitado para los IdP LDAP configurados.| |saml\_jit\_status|entero|Estado del aprovisionamiento de SAML.<br><br>Valores posibles:<br>0: deshabilitado para los IdP de SAML configurados;<br>1: habilitado para los IdP de SAML configurados.| |jit\_provision\_interval|cadena|Intervalo de tiempo entre solicitudes de provisión JIT para un usuario que ha iniciado sesión.<br>Acepta segundos y unidades de tiempo con sufijo con soporte mensual y anual (3600s,60m,1h,1d,1M,1y). Valor mínimo: 1h.<br><br>Predeterminado: 1h.<br><br>Disponible solo para aprovisionamiento LDAP.| |disabled\_usrgrpid|entero|ID del grupo de usuarios al que asignar el usuario dado de baja.<br>El grupo de usuarios debe estar deshabilitado y no se puede habilitar ni eliminar cuando se configura.<br><br>[Comportamiento de la propiedad](/manual/api /reference_commentary#property-behavior):<br>- *obligatorio* si `ldap_jit_status` está configurado en "Habilitado para IdP LDAP configurados" o `saml_jit_status` está configurado en "Habilitado para IdP SAML configurados"|

en-us	# Authentication  This class is designed to work with authentication settings.  Object references:\  -   [Authentication](/manual/api/reference/authentication/object#authentication)  Available methods:\  -   [authentication.get](/manual/api/reference/authentication/get) -     retrieve authentication -   [authentication.update](/manual/api/reference/authentication/update) -     update authentication
es	# Autenticación  Está clase está diseñada para trabajar sobre las configuraciones de autenticación.  Referencias del objeto:\  -   [Autenticación](/manual/api/reference/authentication/object#authentication)  Métodos disponibles:\  -   [authentication.get](/manual/api/reference/authentication/get) -     obtener autenticación -   [authentication.update](/manual/api/reference/authentication/update) -     actualizar autenticación

en-us	#### Authentication  To access any data in Zabbix, you need to either:  -   use an existing [API token](/manual/web_interface/frontend_sections/users/api_tokens) (created in Zabbix frontend or using the [Token API](/manual/api/reference/token)); -   use an authentication token obtained with the [user.login](/manual/api/reference/user/login) method.  For example, if you wanted to obtain a new authentication token by logging in as a standard *Admin* user, then a JSON request would look like this:  ```bash curl --request POST \   --url 'https://example.com/zabbix/api_jsonrpc.php' \   --header 'Content-Type: application/json-rpc' \   --data '{"jsonrpc":"2.0","method":"user.login","params":{"username":"Admin","password":"zabbix"},"id":1}' ```  If you provided the credentials correctly, the response returned by the API should contain the user authentication token:  ```json {     "jsonrpc": "2.0",     "result": "0424bd59b807674191e7d77572075f33",     "id": 1 } ```
es	#### Autenticación  Para acceder a cualquier dato en Zabbix, necesita:  - usar un [token API](/manual/web_interface/frontend_sections/users/api_tokens) existente (creado en la interfaz de Zabbix o usando el [Token API](/manual/api/reference/token)); - utilizar un token de autenticación obtenido con el método [user.login](/manual/api/reference/user/login).  Por ejemplo, si desea obtener un nuevo token de autenticación iniciando sesión como usuario *Admin* estándar, entonces una solicitud JSON se vería así:  ```bash curl --request POST \ --url 'https://example.com/zabbix/api_jsonrpc.php' \ --header 'Content-Type: application/json-rpc' \ --data '{"jsonrpc":"2.0","method":"user.login","params":{"username":"Admin","password":"zabbix"},"id":1}' ```  Si proporcionó las credenciales correctamente, la respuesta devuelta por la API debe contener el token de autenticación del usuario:  ```json { "jsonrpc": "2.0", "result": "0424bd59b807674191e7d77572075f33", "id": 1 } ```

en-us	# authentication.update
es	# authentication.update

en-us	#### authentication  [ZBXNEXT-276](https://support.zabbix.com/browse/ZBXNEXT-276) Removed properties `saml_idp_entityid`, `saml_sso_url`, `saml_slo_url`, `saml_username_attribute`, `saml_sp_entityid`, `saml_nameid_format`, `saml_sign_messages`, `saml_sign_assertions`, `saml_sign_authn_requests`, `saml_sign_logout_requests`, `saml_sign_logout_responses`, `saml_encrypt_nameid`, `saml_encrypt_assertions`. These properties are now part of [User directory](/manual/api/changes#userdirectory) API.\ [ZBXNEXT-276](https://support.zabbix.com/browse/ZBXNEXT-276) Renamed property `ldap_configured` to `ldap_auth_enabled`.\ [ZBXNEXT-276](https://support.zabbix.com/browse/ZBXNEXT-276) Added new properties `ldap_jit_status`, `saml_jit_status`, `jit_provision_interval`, `disabled_usrgrpid`.\
es	#### authentication  [ZBXNEXT-276](https://support.zabbix.com/browse/ZBXNEXT-276) Eliminadas las propiedades `saml_idp_entityid`, `saml_sso_url`, `saml_slo_url`, `saml_username_attribute`, `saml_sp_entityid`, `saml_nameid_format`, `saml_sign_messages`, `saml_sign_assertions`, `saml_sign_authn_requests`, `saml_sign_logout_requests`, `saml_sign_logout_responses`, `saml_encrypt_nameid`, `saml_encrypt_assertions`. These properties are now part of [User directory](/manual/api/changes#userdirectory) API.\ [ZBXNEXT-276](https://support.zabbix.com/browse/ZBXNEXT-276) Renombrada la propiedad `ldap_configured` a `ldap_auth_enabled`.\ [ZBXNEXT-276](https://support.zabbix.com/browse/ZBXNEXT-276) Añadidas nuevas propiedades `ldap_jit_status`, `saml_jit_status`, `jit_provision_interval`, `disabled_usrgrpid`.\

en-us	## AUTHOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}
es	## AUTOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}

en-us	## AUTHOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}
es	## AUTOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}

en-us	## AUTHOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}
es	## AUTOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}

en-us	## AUTHOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}
es	## AUTOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}

en-us	## AUTHOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}
es	## AUTOR  Alexei Vladishev <<alex@zabbix.com>>  ------------------------------------------------------------------------  [ ]{#index}

en-us	#### Authorization methods
es	#### Métodos de autorización

en-us	##### Authorization  |Parameter|Description| |--|--------| |*Login attempts*|Number of unsuccessful login attempts before the possibility to log in gets blocked.| |*Login blocking interval*|Period of time for which logging in will be prohibited when *Login attempts* limit is exceeded.|
es	##### Autorización  |Parámetro|Descripción| |--|--------| |*Intentos de inicio de sesión*|Número de intentos fallidos de inicio de sesión antes de que se bloquee la posibilidad de iniciar sesión.| |*Intervalo de bloqueo de inicio de sesión*|Período de tiempo durante el cual se prohibirá el inicio de sesión cuando se exceda el límite de *intentos de inicio de sesión*.|

en-us	 ### author  Module author. The author will be displayed in the Administration section.  *Type*: String  *Example*:   ```json "author": "John Smith" ```
es	### autor  Autor del módulo. El autor se mostrará en la sección Administración.  *Tipo*: Cadena  *Ejemplo*:  ```json "author": "John Smith" ```

en-us	## AUTHOR  Zabbix LLC  ------------------------------------------------------------------------  [ ]{#index}
es	## AUTOR  Zabbix LLC  ------------------------------------------------------------------------  [ ]{#index}

en-us	## AUTHOR  Zabbix LLC  ------------------------------------------------------------------------  [ ]{#index}
es	## AUTOR  Zabbix LLC  ------------------------------------------------------------------------  [ ]{#index}

en-us	 #### Automated database upgrade on proxies with SQLite  Upon the first launch after an upgrade, Zabbix proxy with SQLite3 now automatically dumps the existing older version of the database file and creates a new one for the current version. History data that has been stored in the SQLite database file is not preserved. Previously, the SQLite database file had to be recreated manually.
es	 #### Actualización automatizada de la base de datos en servidores proxy con SQLite  Tras el primer inicio después de una actualización, el proxy Zabbix con SQLite3 ahora descarga automáticamente la versión anterior existente del archivo de base de datos y crea una nueva para la versión actual. Los datos históricos que se han almacenado en el archivo de base de datos SQLite no se conservan. Anteriormente, el archivo de la base de datos SQLite debía recrearse manualmente.

en-us	 #### Automated database upgrade on proxies with SQLite  Upon the first launch after an upgrade, Zabbix proxy with SQLite3 now automatically dumps the existing older version of the database file and creates a new one for the current version. History data that has been stored in the SQLite database file is not preserved. Previously, the SQLite database file had to be recreated manually.  If Zabbix proxy version is older than the database file version, the proxy will log an error and terminate.
es	 #### Actualización automatizada de la base de datos en servidores proxy con SQLite  Tras el primer inicio después de una actualización, el proxy Zabbix con SQLite3 ahora descarga automáticamente la versión anterior existente del archivo de base de datos y crea una nueva para la versión actual. Los datos históricos que se han almacenado en el archivo de base de datos SQLite no se conservan. Anteriormente, el archivo de la base de datos SQLite debía recrearse manualmente.  Si la versión del proxy de Zabbix es anterior a la versión del archivo de la base de datos, el proxy registrará un error y finalizará.

en-us	##### Automatic mode  Host inventory can also be populated automatically. For that to work, when configuring a host the inventory mode in the *Inventory* tab must be set to *Automatic*.  Then you can [configure host items](/manual/config/items/item) to populate any host inventory field with their value, indicating the destination field with the respective attribute (called *Item will populate host inventory field*) in item configuration.  Items that are especially useful for automated inventory data collection:  -   system.hw.chassis\[full|type|vendor|model|serial\] - default is     \[full\], root permissions needed -   system.hw.cpu\[all|cpunum,full|maxfreq|vendor|model|curfreq\] -     default is \[all,full\] -   system.hw.devices\[pci|usb\] - default is \[pci\] -   system.hw.macaddr\[interface,short|full\] - default is \[all,full\],     interface is regexp -   system.sw.arch -   system.sw.os\[name|short|full\] - default is \[name\] -   system.sw.packages\[regexp,manager,short|full\] - default is     \[all,all,full\]
es	##### Modo automático  El inventario del equipo también se puede completar automáticamente. Para que eso funcione, al configurar un equipo, el modo de inventario en la pestaña *Inventario* debe configurarse en *Automático*.  Luego puede [configurar métricas del equipo](/manual/config/items/item) para llenar cualquier campo del inventario de equipo con su valor, indicando el campo de destino con el atributo respectivo (llamado *La métrica completará el campo de inventario del equipo*) en la configuración de la métrica.  Recopilación de métricas que son especialmente útiles para datos de inventario  automatizados:  - system.hw.chassis\[full|type|vendor|model|serial\] - el valor predeterminado es     \[full\], se necesitan permisos de root - system.hw.cpu\[all|cpunum,full|maxfreq|vendor|model|curfreq\] -     el valor predeterminado es \[all,full\] - system.hw.devices\[pci|usb\] - el valor predeterminado es \[pci\] - system.hw.macaddr\[interface,short|full\] - el valor predeterminado es \[all,full\],     interface es regexp - sistema.sw.arch - system.sw.os\[name|short|full\] - el valor predeterminado es \[name\] - system.sw.packages\[regexp,manager,short|full\] - el valor predeterminado es     \[all,all,full\]

en-us	 #### Automation for Gmail/Office365 media types  Gmail or Office365 users may now benefit from easier media type configuration. The new *Email provider* field in the mail media type configuration allows to select pre-configured options for Gmail and Office 365 (alongside the "Generic SMTP" option, which works as before).  ![](../../../../assets/en/manual/introduction/media_type_conf.png)  When selecting the Gmail/Office365 related options, it is **only** required to supply the sender email address/password to create a working media type.  ![](../../../../assets/en/manual/introduction/media_type_gmail.png)  If the email address/password is supplied, Zabbix is able to automatically fill all required settings for Gmail/Office365 media types with the actual/recommended values, i.e. *SMTP server*, *SMTP server port*, *SMTP helo*, and *Connection security*. Because of this automation, these fields are not even shown, however, it is possible to see the SMTP server and email details in the [media type list](/manual/web_interface/frontend_sections/alerts/mediatypes) (see the *Details* column).  Note also that:  -   The password is not required for the relay options. -   For Office365 relay, the domain name of the provided email address will be used to dynamically fill the SMTP server      (i.e. replace "example.com" in `example-com.mail.protection.outlook.com` with the real value). -   The SMTP helo value is the domain name extracted from the provided email address.  In other changes:  -   The *SMTP email* field is now called simply *Email*. -   The *SMTP helo* field is now optional (if empty, it will send the domain part of the sender email). -   New default media types have been added: *Gmail*, *Gmail relay*, *Office365*, *Office365 relay*. -   In new installations, all media types are disabled by default. -   In user media, where specific recipient addresses are specified, only enabled media types can be selected. -   In user media, there is now a yellow icon and status column shown indicating if the media type has been disabled.  See also:  -   [Email media type](/manual/config/notifications/media/email#configuration) -   [Media types](/manual/config/notifications/media) -   [User media](/manual/config/users_and_usergroups/user#user-media) -   [User profile media](/manual/web_interface/user_profile#user-profile)
es	 #### Automatización para tipos de medios de Gmail/Office365  Los usuarios de Gmail u Office365 ahora pueden beneficiarse de una configuración de tipos de medios más sencilla. El nuevo campo *Proveedor de correo electrónico* en la configuración del tipo de medio de correo permite seleccionar opciones preconfiguradas para Gmail y Office 365. (junto con la opción "SMTP genérico", que funciona como antes).  ![](../../../../assets/en/manual/introduction/media_type_conf.png)  Al seleccionar las opciones relacionadas con Gmail/Office365, **solo** es necesario proporcionar la dirección de correo electrónico/contraseña del remitente para crear un tipo de medio que funcione.  ![](../../../../assets/en/manual/introduction/media_type_gmail.png)  Si se proporciona la dirección de correo electrónico/contraseña, Zabbix puede completar automáticamente todas las configuraciones requeridas para los tipos de medios de Gmail/Office365 con los valores reales/recomendados. es decir, *servidor SMTP*, *puerto del servidor SMTP*, *helo SMTP* y *seguridad de conexión*. Debido a esta automatización, Estos campos ni siquiera se muestran, sin embargo, es posible ver el servidor SMTP y los detalles del correo electrónico en la [lista de tipos de medios](/manual/web_interface/frontend_sections/alerts/mediatypes) (ver la columna *Detalles*).  Tenga en cuenta también que:  - La contraseña no es necesaria para las opciones de retransmisión. - Para la retransmisión de Office365, el nombre de dominio de la dirección de correo electrónico proporcionada se utilizará para llenar dinámicamente el servidor SMTP.     (es decir, reemplace "example.com" en `example-com.mail.protection.outlook.com` con el valor real). - El valor de helo SMTP es el nombre de dominio extraído de la dirección de correo electrónico proporcionada.  En otros cambios:  - El campo *Correo electrónico SMTP* ahora se llama simplemente *Correo electrónico*. - El campo *SMTP helo* ahora es opcional (si está vacío, enviará la parte del dominio del correo electrónico del remitente). - Se han agregado nuevos tipos de medios predeterminados: *Gmail*, *retransmisión de Gmail*, *Office365*, *retransmisión de Office365*. - En instalaciones nuevas, todos los tipos de medios están deshabilitados de forma predeterminada. - En los medios de usuario, donde se especifican direcciones de destinatarios específicas, solo se pueden seleccionar los tipos de medios habilitados. - En los medios del usuario, ahora se muestra un ícono amarillo y una columna de estado que indica si el tipo de medio se ha deshabilitado.  Ver también:  - [Tipo de medio de correo electrónico](/manual/config/notifications/media/email#configuration) - [Tipos de medios](/manual/config/notifications/media) - [Medios de usuario](/manual/config/users_and_usergroups/user#user-media) - [Medios de perfil de usuario](/manual/web_interface/user_profile#user-profile)

en-us	#### Autoregistration actions  The following conditions can be used in actions based on active agent autoregistration:  |Condition type|Supported operators|Description| |--|--|------| |*Host metadata*|contains<br>does not contain<br>matches<br>does not match|Specify host metadata or host metadata to exclude.<br>**contains** - host metadata contains the string.<br>**does not contain** - host metadata does not contain the string.<br>Host metadata can be specified in an [agent configuration file](/manual/appendix/config/zabbix_agentd).<br>**matches** - host metadata matches regular expression.<br>**does not match** - host metadata does not match regular expression.| |*Host name*|contains<br>does not contain<br>matches<br>does not match|Specify a host name or a host name to exclude.<br>**contains** - host name contains the string.<br>**does not contain** - host name does not contain the string.<br>**matches** - host name matches regular expression.<br>**does not match** - host name does not match regular expression.| |*Proxy*|equals<br>does not equal|Specify a proxy or a proxy to exclude.<br>**equals** - using this proxy.<br>**does not equal** - using any other proxy except this one.|
es	#### Acciones de registro automático  Las siguientes condiciones se pueden utilizar en acciones basadas en el agente activo registro automático:  |Tipo de condición|Operadores admitidos|Descripción| |--|--|------| |*Metadatos del host*|contiene<br>no contiene<br>coincide<br>no coincide|Especifique los metadatos del host o metadatos del host para excluir.<br>**contiene**: los metadatos del host contienen la cadena.<br >**no contiene**: los metadatos del host no contienen la cadena.<br>Los metadatos del host se pueden especificar en un [archivo de configuración del agente](/manual/appendix/config/zabbix_agentd).<br>**coincidencias* * - Los metadatos del host coinciden con la expresión regular.<br>**no coinciden** - Los metadatos del host no coinciden con la expresión regular.| |*Nombre de host*|contiene<br>no contiene<br>coincide<br>no coincide|Especifique un nombre de host o un nombre de host para excluir.<br>**contiene**: el nombre de host contiene la cadena. <br>**no contiene**: el nombre de host no contiene la cadena.<br>**coincide**: el nombre de host coincide con la expresión regular.<br>**no coincide**: el nombre de host no coincide expresión regular.| |*Proxy*|es igual a<br>no es igual|Especifique un proxy o un proxy para excluir.<br>**es igual a** - usando este proxy.<br>**no es igual** - usando cualquier otro proxy excepto este.|

en-us	# autoregistration.get
es	# autoregistration.get

en-us	 #### Autoregistration heartbeat for Zabbix server  The active agent autoregistration heartbeat for Zabbix server has been set to 120 seconds (the same as for Zabbix proxy). So in case a discovered host is deleted, the autoregistration will be rerun in 120 seconds.
es	 #### Latido de registro automático para el servidor Zabbix  El latido del registro automático del agente activo para el servidor Zabbix se ha establecido en 120 segundos (lo mismo que para el proxy Zabbix). Entonces, en caso de que se elimine un equipo descubierto, el registro automático se volverá a ejecutar en 120 segundos.

en-us	#### - Autoregistration  In this section, you can configure the encryption level for active agent autoregistration.  ![adm\_autoreg2.png](../../../../../assets/en/manual/web_interface/frontend_sections/administration/adm_autoreg2.png)  Parameters marked with an asterisk are mandatory.  Configuration parameters:  |Parameter|Description| |--|--------| |*Encryption level*|Select one or both options for encryption level:<br>**No encryption** - unencrypted connections are allowed<br>**PSK** - TLS encrypted connections with a pre-shared key are allowed| |*PSK identity*|Enter the pre-shared key identity string.<br>This field is only available if 'PSK' is selected as *Encryption level*.<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*|Enter the pre-shared key (an even number of hexadecimal characters).<br>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.<br>Example: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952<br>This field is only available if 'PSK' is selected as *Encryption level*.|  See also: [Secure autoregistration](/manual/discovery/auto_registration#secure_autoregistration)
es	#### - Autorregistro  En esta sección, puede configurar el nivel de cifrado para el autorregistro del agente activo.  ![adm\_autoreg2.png](../../../../../assets/en/manual/web_interface/frontend_sections/administration/adm_autoreg2.png)  Los parámetros marcados con un asterisco son obligatorios.  Parámetros de configuración:  |Parámetro|Descripción| |--|--------| |*Nivel de cifrado*|Seleccione una o ambas opciones para el nivel de cifrado:<br>**Sin cifrado**: se permiten conexiones no cifradas<br>**PSK**: se permiten conexiones cifradas TLS con una clave previamente compartida| |*Identidad PSK*|Ingrese la cadena de identidad de clave previamente compartida.<br>Este campo solo está disponible si se selecciona 'PSK' como *Nivel de cifrado*.<br>No incluya información confidencial en la identidad PSK, ya que es transmitido sin cifrar a través de la red para informar al receptor qué PSK utilizar.| |*PSK*|Ingrese la clave precompartida (un número par de caracteres hexadecimales).<br>Longitud máxima: 512 dígitos hexadecimales (PSK de 256 bytes) si Zabbix usa la biblioteca GnuTLS u OpenSSL, 64 dígitos hexadecimales (32 -byte PSK) si Zabbix usa la biblioteca mbed TLS (PolarSSL).<br>Ejemplo: 1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952<br>Este campo solo está disponible si 'PSK' está seleccionado como *Nivel de cifrado*.|  Ver también: [Registro automático seguro](/manual/discovery/auto_registration#secure_autoregistration)

en-us	# > Autoregistration object  The following objects are directly related to the `autoregistration` API.
es	# > Objeto de autorregistro  Los siguientes objetos están directamente relacionados con el API `autoregistration`.

en-us	 #### Autoregistration table cleared from orphaned records  Previously the `autoreg_host` table was never cleared. Now orphaned records that reference neither an autoregistration event nor an existing host will be removed by the Housekeeper.
es	 #### Tabla de registro automático borrada de registros huérfanos  Anteriormente, la tabla `autoreg_host` nunca se borraba. Ahora el limpieador eliminará los registros huérfanos que no hacen referencia a un evento de registro automático ni a un equipo existente.

en-us	### Autoregistration  The autoregistration object has the following properties.  |Property|[Type](/manual/api/reference_commentary#data_types)|Description| |--|--|------| |tls\_accept|integer|Type of allowed incoming connections for autoregistration.<br><br>Possible values:<br>1 - allow insecure connections;<br>2 - allow TLS with PSK;<br>3 - allow both insecure and TLS with PSK connections.| |tls\_psk\_identity|string|PSK identity string.<br><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.<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *write-only*| |tls\_psk|string|PSK value string (an even number of hexadecimal characters).<br><br>[Property behavior](/manual/api/reference_commentary#property-behavior):<br>- *write-only*|
es	### Autorregistro  El objeto de autoregistro tiene las siguientes propiedades.  |Propiedad|[Tipo](/manual/api/reference_commentary#data_types)|Descripción| |--|--|------| |tls\_accept|entero|Tipo de conexiones entrantes permitidas para el registro automático.<br><br>Valores posibles:<br>1: permite conexiones inseguras;<br>2: permite TLS con PSK;<br>3: permite ambas inseguro y TLS con conexiones PSK.| |tls\_psk\_identity|cadena|Cadena de identidad PSK.<br><br>No coloque información confidencial en la identidad PSK, se transmite sin cifrar a través de la red para informar al receptor qué PSK usar.<br><br >[Comportamiento de la propiedad](/manual/api/reference_commentary#property-behavior):<br>- *solo escritura*| |tls\_psk|cadena|Cadena de valor PSK (un número par de caracteres hexadecimales).<br><br>[Comportamiento de la propiedad](/manual/api/reference_commentary#property-behavior):<br>- *solo escritura *|

en-us	# Autoregistration  This class is designed to work with autoregistration.  Object references:\  -   [Autoregistration](/manual/api/reference/autoregistration/object#autoregistration)  Available methods:\  -   [autoregistration.get](/manual/api/reference/autoregistration/get) -     retrieve autoregistration -   [autoregistration.update](/manual/api/reference/autoregistration/update) -     update autoregistration
es	# Autorregistro  Esta clase está diseñada para trabajar con el registro automático.  Referencias de objetos:\  - [Registro automático](/manual/api/reference/autoregistration/object#autoregistration)  Métodos disponibles:\  - [autoregistration.get](/manual/api/reference/autoregistration/get) -     recuperar autoregistro - [autoregistration.update](/manual/api/reference/autoregistration/update) -     actualizar autoregistro

en-us	# autoregistration.update
es	# autoregistration.update

en-us	##### Average request count to Nginx server  View the average request count per second per day to the Nginx server:  -   add the request count per second item to the data set -   select the aggregate function `avg` and specify interval `1d` -   a bar graph is displayed, where each bar represents the average     number of requests per second per day
es	##### Recuento promedio de solicitudes al servidor Nginx  Vea el recuento promedio de solicitudes por segundo por día al servidor Nginx:  - agregue el recuento de solicitudes por segundo elemento al conjunto de datos - seleccione la función agregada `avg` y especifique el intervalo `1d` - se muestra un gráfico de barras, donde cada barra representa el promedio     número de solicitudes por segundo por día

en-us	 ##### avg(/host/key,(sec|#num)<:time shift>) {#avg}  The average value of an item within the defined evaluation period.<br> Supported value types: *Float*, *Integer*.<br> Supported [foreach functions](/manual/appendix/functions/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.  Parameters: see [common parameters](#common-parameters).  Time shift is useful when there is a need to compare the current average value with the average value some time ago.  Examples:      avg(/host/key,1h) #the average value for the last hour until now     avg(/host/key,1h:now-1d) #the average value for an hour from 25 hours ago to 24 hours ago from now     avg(/host/key,#5) #the average value of the five latest values     avg(/host/key,#5:now-1d) #the average value of the five latest values excluding the values received in the last 24 hours
es	 ##### avg(/host/key,(sec|#num)<:time shift>) {#avg}  El valor promedio de una métrica dentro del período de evaluación definido.<br> Tipos de valores admitidos: *Flotante*, *Entero*.<br> [Funciones foreach] admitidas (/manual/appendix/functions/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*.  Parámetros: consulte [parámetros comunes](#common-parameters).  El desplazamiento del tiempo es útil cuando es necesario comparar el valor promedio actual con el valor promedio de hace algún tiempo.  Ejemplos:      avg(/host/key,1h) #el valor promedio de la última hora hasta ahora     avg(/host/key,1h:now-1d) #el valor promedio de una hora desde hace 25 horas hasta hace 24 horas a partir de ahora     avg(/host/key,#5) #el valor promedio de los cinco últimos valores     avg(/host/key,#5:now-1d) #el valor promedio de los cinco últimos valores excluyendo los valores recibidos en las últimas 24 horas

en-us	 ##### avg(<value1>,<value2>,...) {#avg}  The average value of the referenced item values.  Parameter:   -   **valueX** - the value returned by another function that is working with item history.  Example:      avg(avg(/host/key),avg(/host2/key2))
es	 ##### avg(<valor1>,<valor2>,...) {#avg}  El valor promedio de los valores de las métricas referenciadas.  Parámetro:  - **valueX**: el valor devuelto por otra función que trabaja con el historial de métricas.  Ejemplo:      avg(avg(/host/key),avg(/host2/key2))

en-us	#### Axes The **Axes** tab allows to customize how axes are displayed:  ![](../../../../../../assets/en/manual/web_interface/frontend_sections/monitoring/graph_axes.png)  |   |   | |--|--------| |*Left Y*|Mark this checkbox to make left Y-axis visible. The checkbox may be disabled if unselected either in *Data set* or in *Overrides* tab.| |*Right Y*|Mark this checkbox to make right Y-axis visible. The checkbox may be disabled if unselected either in *Data set* or in *Overrides* tab.| |*X-Axis*|Unmark this checkbox to hide X-axis (marked by default).| |*Min*|Set the minimum value of the corresponding axis. Visible range minimum value of Y-axis is specified.| |*Max*|Set the maximum value of the corresponding axis. Visible range maximum value of Y-axis is specified.| |*Units*|Choose the unit for the graph axis values from the dropdown. If the *Auto* option is chosen axis values are displayed using units of the first item of the corresponding axis. *Static* option allows you to assign the corresponding axis' custom name. If the *Static* option is chosen and the *value* input field left blank the corresponding axis' name will only consist of a numeric value.|
es	#### Ejes La pestaña **Ejes** permite personalizar cómo se muestran los ejes:  ![](../../../../../../assets/en/manual/web_interface/frontend_sections/monitoring/graph_axes.png)  | | | |--|--------| |*Y izquierdo*|Marque esta casilla de verificación para hacer visible el eje Y izquierdo. La casilla de verificación puede estar deshabilitada si no está seleccionada en la pestaña *Conjunto de datos* o *Anulaciones*.| |* Y Derecho*|Marque esta casilla de verificación para hacer visible el eje Y derecho. La casilla de verificación puede estar deshabilitada si no está seleccionada en la pestaña *Conjunto de datos* o *Anulaciones*.| |*Eje X*|Desmarque esta casilla de verificación para ocultar el eje X (marcado de forma predeterminada).| |*Min*|Establece el valor mínimo del eje correspondiente. Se especifica el valor mínimo del rango visible del eje Y.| |*Max*|Establece el valor máximo del eje correspondiente. Se especifica el valor máximo del rango visible del eje Y.| |*Unidades*|Elija la unidad para los valores del eje del gráfico en el menú desplegable. Si se elige la opción *Auto*, los valores del eje se muestran usando las unidades del primer elemento del eje correspondiente. La opción *Estática* le permite asignar el nombre personalizado del eje correspondiente. Si se elige la opción *Estático* y el campo de entrada *valor* se deja en blanco, el nombre del eje correspondiente solo consistirá en un valor numérico.|

en-us	#### Axes  The following parameters are supported for configuring *Axes*.  |Parameter|[type](/manual/api/reference/dashboard/object#dashboard-widget-field)|name|value| |-----|-|-----|-------------------| |*Left Y*|0|lefty|0 - Disabled;<br>1 - *(default)* Enabled.<br><br>Parameter available if *Y-axis* (in *Data set* configuration) is set to "Left".| |*Right Y*|0|righty|0 - *(default)* Disabled;<br>1 - Enabled.<br><br>Parameter available if *Y-axis* (in *Data set* configuration) is set to "Right".| |*Min*|1|lefty_min|Any numeric value.<br><br>Default: `""` (empty).| |^|^|righty_min|^| |*Max*|1|lefty_max|Any numeric value.<br><br>Default: `""` (empty).| |^|^|righty_max|^| |*Units* (type)|0|lefty_units|0 - *(default)* Auto;<br>1 - Static.| |^|^|righty_units|^| |*Units* (value)|1|lefty_static_units|Any string value.<br><br>Default: `""` (empty).| |^|^|righty_static_units|^| |*X-Axis*|0|xaxis|0 - Disabled;<br>1 - *(default)* Enabled.|
es	#### Ejes  Los siguientes parámetros son compatibles para configurar *Ejes*.  |Parámetro|[tipo](/manual/api/reference/dashboard/object#dashboard-widget-field)|nombre|valor| |-----|-|-----|-------------------| |*Izquierda Y*|0|lefty|0 - Deshabilitado;<br>1 - *(predeterminado)* Habilitado.<br><br>Parámetro disponible si *Eje Y* (en la configuración del *Conjunto de datos*) está configurado a "Izquierda".| |*Derecha Y*|0|righty|0 - *(predeterminado)* Deshabilitado;<br>1 - Habilitado.<br><br>Parámetro disponible si *Eje Y* (en la configuración del *Conjunto de datos*) está configurado a "Derecha".| |*Min*|1|lefty_min|Cualquier valor numérico.<br><br>Predeterminado: `""` (vacío).| |^|^|righty_min|^| |*Max*|1|lefty_max|Cualquier valor numérico.<br><br>Predeterminado: `""` (vacío).| |^|^|righty_max|^| |*Unidades* (tipo)|0|lefty_units|0 - *(predeterminado)* Automático;<br>1 - Estático.| |^|^|unidades_derechas|^| |*Unidades* (valor)|1|lefty_static_units|Cualquier valor de cadena.<br><br>Predeterminado: `""` (vacío).| |^|^|righty_static_units|^| |*Eje X*|0|xaxis|0 - Deshabilitado;<br>1 - *(predeterminado)* Habilitado.|

en-us	## Backward incompatible changes
es	## Cambios incompatibles hacia atrás

en-us	 ##### baselinedev(/host/key,data period:time shift,season unit,num seasons) {#baselinedev}  Returns the number of deviations (by stddevpop algorithm) between the last data period and the same data periods in preceding seasons.<br>  Parameters:   -   See [common parameters](#common-parameters);<br> -   **data period** - the data gathering period within a season, defined as <N><time unit> where:<br>`N` - the number of time units<br>`time unit` - h (hour), d (day), w (week), M (month) or y (year), must be equal to or less than season<br> -   **season unit** - the duration of one season (h, d, w, M, y), cannot be smaller than data period; -   **num seasons** - the number of seasons to evaluate.  Examples:      baselinedev(/host/key,1d:now/d,"M",6) #calculating the number of standard deviations (population) between the previous day and the same day in the previous 6 months. If the date doesn't exist in a previous month, the last day of the month will be used (Jul,31 will be analysed against Jan,31, Feb, 28,... June, 30)     baselinedev(/host/key,1h:now/h,"d",10)  #calculating the number of standard deviations (population) between the previous hour and the same hours over the period of ten days before yesterday
es	 ##### baselinedev(/host/key, período de datos: cambio de tiempo, unidad de temporada, número de temporadas) {#baselinedev}  Devuelve el número de desviaciones (mediante el algoritmo stddevpop) entre el último período de datos y los mismos períodos de datos de temporadas anteriores.<br>  Parámetros:  - Ver [parámetros comunes](#common-parameters);<br> - **período de datos** - el período de recopilación de datos dentro de una temporada, definido como <N><unidad de tiempo> donde:<br>`N` - el número de unidades de tiempo<br>`unidad de tiempo` - h (hora ), d (día), w (semana), M (mes) o y (año), debe ser igual o menor que la temporada<br> - **unidad de temporada**: la duración de una temporada (h, d, w, M, a), no puede ser menor que el período de datos; - **número de temporadas**: el número de temporadas a evaluar.  Ejemplos:      baselinedev(/host/key,1d:now/d,"M",6) #calculando el número de desviaciones estándar (población) entre el día anterior y el mismo día en los 6 meses anteriores. Si la fecha no existe en un mes anterior, se utilizará el último día del mes (se analizará el 31 de julio con el 31 de enero, 28 de febrero,... 30 de junio).     baselinedev(/host/key,1h:now/h,"d",10) #calculando el número de desviaciones estándar (población) entre la hora anterior y las mismas horas durante el período de diez días antes de ayer