One place for hosting & domains

      Zabbix

      How to Monitor Docker Using Zabbix on Ubuntu 20.04


      The author selected the Open Source Initiative to receive a donation as part of the Write for DOnations program.

      Docker is a popular application that simplifies managing application processes in containers. Containers are similar to virtual machines, but since they are more dependent on the host operating system, they are more portable and resource-friendly.

      When using containers in a production environment, you should know if they are all running and what resources they are consuming. Zabbix is a monitoring system that can monitor the state of almost any element of your IT infrastructure, such as networks, servers, virtual machines, and applications.

      Zabbix recently introduced a new agent (Zabbix agent 2) with advanced capabilities. One of the key advantages of the new agent is the ability to expand functionality using plugins. At the moment, there are several plugins available, including one for monitoring Docker.

      In this tutorial, you will set up Docker monitoring in Zabbix using Zabbix agent 2 on Ubuntu 20.04. You’ll explore metrics and simulate a crash to generate a notification. In the end, you will have a monitoring system in place for your Docker application, which will notify you of any problems with containers.

      Prerequisites

      To follow this tutorial, you will need:

      • Two Ubuntu 20.04 servers set up by following the Initial Server Setup Guide for Ubuntu 20.04, including a non-root user with sudo privileges and a firewall configured with ufw.
      • The first server, where you’ll install Zabbix, will be the Zabbix server. Install the following components:
      • The second server, where you’ll install Docker (and the Zabbix agent), will be the Docker server. Install Docker by following Step 1 of the tutorial How To Install and Use Docker on Ubuntu 20.04.
      • A fully registered domain name. This tutorial will use your_domain as an example throughout. You can purchase a domain name on Namecheap, get one for free on Freenom, or use the domain registrar of your choice.

      • An A record with your_domain pointing to your Zabbix server’s public IP address. You can follow this introduction to DigitalOcean DNS for details on how to add it.

      Step 1 — Installing and Configuring Zabbix Agent 2

      A Zabbix agent is a very small application that must be installed on every server or virtual machine you want to monitor. It will send monitoring data to the Zabbix server. Zabbiх suggests using one of two agents: Zabbix agent or Zabbix agent 2. (You can learn about their differences in the documentation.) For this tutorial, we’ll use Zabbix agent 2, since it can work with Docker. In this step, you will learn how to install and configure it.

      Start by installing the agent software. Log in to the Docker server:

      • ssh sammy@docker_server_ip_address

      Run the following commands to install the repository configuration package:

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Next, update the package index:

      Then install the Zabbix agent:

      • sudo apt install zabbix-agent2

      Next, you will need to edit the agent configuration file, which contains all the agent’s settings. These settings specify the address to transfer data to, the port to use for connections to and from the server, whether to use a secure connection, and much more. In most cases, the default settings will be fine. All settings within this file are documented via informative comments throughout the file.

      For this tutorial, you will need to edit the Zabbix agent settings to set up its connection to the Zabbix server. Open the agent configuration file in your text editor:

      • sudo nano /etc/zabbix/zabbix_agent2.conf

      By default, the agent is configured to send data to a server on the same host as the agent, so you will need to add the IP address of the Zabbix server. Find the following section:

      /etc/zabbix/zabbix_agent2.conf

      ...
      ### Option: Server
      #       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.
      #       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: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
      #
      # Mandatory: yes, if StartAgents is not explicitly set to 0
      # Default:
      # Server=
      
      Server=127.0.0.1
      ...
      

      Change the default value to the IP of your Zabbix server:

      /etc/zabbix/zabbix_agent2.conf

      ...
      Server=zabbix_server_ip_address
      ...
      

      By default, the Zabbix server connects to the agent. But for some checks (for example, monitoring the logs), a reverse connection is required. For correct operation, you need to specify the Zabbix server address and a unique host name.

      Find the section that configures the active checks and change the default values as shown below:

      /etc/zabbix/zabbix_agent2.conf

      ...
      ##### Active checks related
      
      ### Option: ServerActive
      #       List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
      #       If port is not specified, default port is used.
      #       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
      #       If port is not specified, square brackets for IPv6 addresses are optional.
      #       If this parameter is not specified, active checks are disabled.
      #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
      #
      # Mandatory: no
      # Default:
      # ServerActive=
      
      ServerActive=zabbix_server_ip_address
      
      ### Option: Hostname
      #       Unique, case sensitive hostname.
      #       Required for active checks and must match hostname as configured on the server.
      #       Value is acquired from HostnameItem if undefined.
      #
      # Mandatory: no
      # Default:
      # Hostname=
      
      Hostname=Docker server
      ...
      

      Save and close the file.

      For the Zabbix agent to monitor Docker, you’ll need to add the zabbix user to the docker group:

      • sudo usermod -aG docker zabbix

      Now you can restart the Zabbix agent and set it to start at boot time:

      • sudo systemctl restart zabbix-agent2
      • sudo systemctl enable zabbix-agent2

      For good measure, check that the Zabbix agent is running correctly:

      • sudo systemctl status zabbix-agent2

      The output will look similar to this, indicating that the agent is running:

      Output

      ● zabbix-agent2.service - Zabbix Agent 2 Loaded: loaded (/lib/systemd/system/zabbix-agent2.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2021-09-03 07:05:05 UTC; 1min 23s ago ...

      The agent will listen on port 10050 for connections from the server. Configure UFW to allow connections to this port:

      You can learn more about UFW in How To Set Up a Firewall with UFW on Ubuntu 20.04.

      In this step, you installed Zabbix agent 2, configured it to allow connections from your Zabbix server, and prepared to monitor Docker.

      Your agent is now ready to send data to the Zabbix server. But in order to use it, you have to link to it from the server’s web console and enable the Docker template. In the next step, you will complete the configuration.

      Step 2 — Adding the New Host to the Zabbix Server

      Installing an agent on the server you want to monitor is only half of the process. Each host you want to monitor needs to be registered on the Zabbix server, which you can do through the web interface. You also need to connect the appropriate template to it. Using templates, you can apply the same monitoring items, triggers, graphs, and low-level discovery rules to multiple hosts. When a template is linked to a host, all entities (items, triggers, graphs, etc.) of the template are added to the host.

      Log in to the Zabbix server web interface by navigating to the address http://zabbix_server_name or https://zabbix_server_name. (As mentioned in the tutorial linked in the prerequisites, How To Install and Configure Zabbix to Securely Monitor Remote Servers on Ubuntu 20.04, the default user is Admin and the password is zabbix.)

      Log in

      When you have logged in, click Configuration and then Hosts in the left navigation bar. Then click the Create host button in the top right corner of the screen. This will open the host configuration page.

      Create host

      Adjust the Host name and IP address to reflect the host name and IP address of your Docker server, then add the host to a group. You can select an existing group, such as Linux servers, or create your own group, such as Docker servers. Each host must be in a group and it can also be in multiple groups. To do this, enter the name of an existing or new group in the Groups field and select the desired value from the proposed list.

      After adding the group, click the Templates tab.

      Host templates

      To enable the necessary checks, you need to add a template. The template includes all the necessary checks, triggers, and graphs. The host can have multiple templates. To do this, enter the name of the template in the Search field and select it from the proposed list.

      For this tutorial, type Template App Docker and then select it from the list to add this template to the host. This will attach to the host all the items, triggers, and graphs required for Docker monitoring that were pre-configured in the template.

      Finally, click the Add button at the bottom of the form to create the host.

      You will see your new host in the list. Wait for a minute and reload the page to see green labels indicating that everything is working fine.

      Hosts

      In this step, you added a new host to the server and used ready-made templates to add the required checks.

      The Zabbix server is now monitoring your Docker server. In the next step, you will launch a test container and explore what metrics Zabbix can collect.

      Step 3 — Accessing Docker Metrics

      If you are running this tutorial in a new environment, then you have no containers running and nothing to monitor yet. In this step, you will start a test container and see what metrics are available. In this tutorial, you will run a test container based on ubuntu.

      Run the following command on the Docker server:

      • sudo docker run --name test_container -it ubuntu bash

      This will launch a test container named test_container using the ubuntu:latest image. The -it flag instructs Docker to allocate a pseudo-TTY connected to the container’s standard input, creating an interactive bash shell in the container.

      The output will look similar to this:

      Output

      Unable to find image 'ubuntu:latest' locally latest: Pulling from library/ubuntu 35807b77a593: Pull complete Digest: sha256:9d6a8699fb5c9c39cf08a0871bd6219f0400981c570894cd8cbea30d3424a31f Status: Downloaded newer image for ubuntu:latest

      Note: Do not leave the shell, as you will need it in the next step.

      A couple of minutes after starting the container, Zabbix will automatically find a new container and add the appropriate metrics.

      To see a list of all metrics, click Monitoring and then Hosts in the left navigation bar. Then click Latest data in the corresponding line.

      Hosts

      You will see a table with all the metrics that the Zabbix agent collects for a given host. For each item, you can see the name, the history storage period, the time of the last check, and the last value.

      You can scroll through the list and see the metrics associated with the test_container. You can also enter the name of the container in the Name field and click Apply to find all the relevant metrics.

      Metrics

      To view the history of changes for a specific metric, click Graph (for numerical values) or History (for text values).

      You can also select one or more metrics in the list and click the Display graph button at the very bottom of the list to see several graphs together.

      Select metrics

      Graphs

      In this step, you launched a test container and viewed its metrics in the Zabbix web interface. Next, you will trigger a notification.

      Step 4 — Generating a Test Alert

      In this step, you’ll see how monitoring works by simulating an unexpected shutdown of the container, which triggers a notification from Zabbix.

      Begin by simulating a container crash. Execute the following command in the container shell:

      With this command, you terminated the container with error code 1. This exit code is passed on to the caller of docker run, and is recorded in the test container’s metadata.

      To see the alert, click Monitoring and then Dashboard in the left navigation bar of the Zabbix web interface. In a minute or less, you will see the notification “Container has been stopped with error code”:

      Global view

      If you have previously configured email or other notifications, you will also receive a message similar to this:

      Problem started at 11:17:31 on 2021.09.03
      Problem name: Container /test_container: Container has been stopped with error code
      Host: Docker Server
      Severity: Average
      Operational data: 1
      Original problem ID: 103
      

      After checking the notifications, you can restart the container and the problem will disappear automatically.

      To restart the container, run the following command on the Docker server.

      • sudo docker start test_container

      You can check that the container is running with this command:

      The output will look similar to this:

      Output

      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c9b8a264c2e1 ubuntu "bash" 23 minutes ago Up 7 seconds test_container

      To see the history of all alerts in the Zabbix interface, click Monitoring and then Problems in the left navigation bar. You can use options and filters to see events for a specific period of time, for specific hosts, etc. To view history, select the option Show: History

      Problems

      In this step, you simulated a container crash and received a notification in Zabbix.

      Conclusion

      In this tutorial, you learned how to set up a simple monitoring solution to help you track the health of your Docker containers. Now it can alert you to problems and you can analyze the processes taking place in your Docker application.

      With Zabbix, you can monitor not just containers, but also servers, databases, web applications, and much more using ready-made Zabbix official templates.

      To learn more about monitoring infrastructure, check out our Monitoring topic page.



      Source link

      Cómo instalar y configurar Zabbix para monitorizar servidores remotos de forma segura en Ubuntu 20.04


      El autor seleccionó el Computer History Museum para recibir una donación como parte del programa Write for DOnations.

      Introducción

      Zabbix es un software de monitorización de código abierto para redes y aplicaciones. Ofrece monitorización en tiempo real de miles de métricas recogidas de servidores, equipos virtuales, dispositivos de red y aplicaciones web. Estas métricas pueden ayudarle a determinar el estado actual de su infraestructura TI y a detectar problemas con los componentes de hardware o software antes de que los clientes se quejen. La información útil se almacena en una base de datos para que pueda analizar datos a lo largo del tiempo y mejorar la calidad de los servicios proporcionados o planificar mejoras de su equipo.

      Zabbix usa varias opciones para recoger métricas, incluyendo la monitorización sin agente de los servicios del usuario y de la arquitectura cliente-servidor. Para recoger métricas del servidor, utiliza un agente pequeño en el cliente monitorizado para recopilar datos y enviarlos al servidor Zabbix. Zabbix admite la comunicación cifrada entre el servidor y los clientes conectados, de forma que sus datos están protegidos mientras recorren redes inseguras.

      El servidor Zabbix almacena sus datos en una base de datos relacional alimentada con MySQL o PostgreSQL. También puede almacenar datos históricos en bases de datos NoSQL como Elasticsearch y TimescaleDB. Zabbix ofrece una interfaz web para que pueda ver los datos y configurar los ajustes del sistema.

      En este tutorial, configurará Zabbix en dos equipos Ubuntu 20.04. Uno será configurado como el servidor Zabbix y el otro como un cliente que monitorizará. El servidor Zabbix usará una base de datos MySQL para registrar los datos de monitorización y utilizará Nginx para presentar la interfaz web.

      Requisitos previos

      Para seguir este tutorial, necesitará lo siguiente:

      • Dos servidores de Ubuntu 20.04 configurado siguiendo la Guía de configuración inicial del servidor para Ubuntu 20.04, que incluye un usuario no root con privilegios sudo y un firewall configurado con ufw. En un servidor, instalará Zabbix; este tutorial lo llamará servidor Zabbix. Monitorizará su segundo servidor; este segundo servidor se llamará segundo servidor Ubuntu.

      • El servidor que ejecutará el servidor Zabbix necesita tener instalados Nginx, MySQL y PHP. Siga los pasos 1 a 3 de nuestra guía Pila LEMP en Ubuntu 20.04 para configurarlos en su servidor Zabbix.

      • Un nombre de dominio registrado. Para este tutorial, se utilizará your_domain en todo momento. Puede adquirir un nombre de dominio en Namecheap, obtener uno gratuito en Freenom o utilizar un registrador de dominios de su elección.

      • Los dos registros DNS que se indican a continuación se han configurado para su servidor Zabbix. Si está usando DigitalOcean, consulte nuestra documentación DNS para obtener más información sobre cómo añadirlos.

        • Un registro A con your_domain orientado a la dirección IP pública de su servidor Zabbix.
        • Un registro A con www.your_domain orientado a la dirección IP pública de su servidor Zabbix.

      Además, debido a que el Servidor Zabbix se usa para acceder a información valiosa sobre su servidor a la que no quiere que accedan usuarios no autorizados, es importante que mantenga su servidor protegido instalando un certificado TLS o SSL. Esto es opcional, pero se recomienda encarecidamente. Si desea proteger su servidor, siga la guía sobre Let´s Encrypt en Ubuntu 20.04 tras el paso 3 de este tutorial.

      Paso 1: Instalar el servidor Zabbix

      Primero, debe instalar Zabbix en el servidor donde instaló MySQL, Nginx y PHP. Inicie sesión en este equipo como su usuario no root:

      • ssh sammy@zabbix_server_ip_address

      Zabbix está disponible en el administrador de paquetes de Ubuntu, pero está obsoleto, de forma que utilice el repositorio oficial de Zabbix para instalar la última versión estable. Descargue e instale el paquete de configuración del repositorio:

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Verá lo siguiente:

      Output

      Selecting previously unselected package zabbix-release. (Reading database ... 64058 files and directories currently installed.) Preparing to unpack zabbix-release_5.0-1+focal_all.deb ... Unpacking zabbix-release (1:5.0-1+focal) ... Setting up zabbix-release (1:5.0-1+focal) ...

      Actualice el índice del paquete para que se incluya el nuevo repositorio:

      A continuación, instale el servidor Zabbix y el frontend web con el soporte de la base de datos de MySQL:

      • sudo apt install zabbix-server-mysql zabbix-frontend-php

      Instale también el agente Zabbix, que le permitirá recoger datos sobre el estado del servidor Zabbix.

      • sudo apt install zabbix-agent

      Antes de poder usar Zabbix, tendrá que configurar una base de datos para albergar los datos que el servidor Zabbix recogerá de sus agentes. Puede hacer esto en el siguiente paso.

      Paso 2: Configurar la base de datos MySQL para Zabbix

      Deberá crear una nueva base de datos MySQL y completarla con cierta información básica para hacer que sea adecuada para Zabbix. También creará un usuario específico para esta base de datos de forma que Zabbix no esté iniciando sesión en MySQL con la cuenta root.

      Inicie sesión en MySQL como el usuario root:

      Cree la base de datos Zabbix con compatibilidad de caracteres UTF-8:

      • create database zabbix character set utf8 collate utf8_bin;

      A continuación cree un usuario que el servidor Zabbix usará, proporciónele acceso a la nueva base de datos y establezca la contraseña para el usuario.

      • create user zabbix@localhost identified by 'your_zabbix_mysql_password';
      • grant all privileges on zabbix.* to zabbix@localhost;

      Con esto tendremos el usuario y la base de datos. Salga de la consola de la base de datos.

      A continuación, tendrá que importar el esquema inicial y los datos. La instalación de Zabbix le proporcionó un archivo que configura esto.

      Ejecute el siguiente comando para configurar el esquema e importar los datos a la base de datos zabbix. Utilice zcat ya que los datos en el archivo están comprimidos:

      • zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

      Introduzca la contraseña para el usuario MySQL zabbix que configuró cuando se le pida.

      Este comando puede tardar un minuto o dos en ejecutarse. Si ve el error ERROR 1045 (28000): Access denied for userzabbix@'localhost' (using password: YES), asegúrese de usar la contraseña adecuada para el usuario zabbix.

      Para que el servidor Zabbix utilice esta base de datos, deberá establecer la contraseña de la base de datos en el archivo de configuración del servidor Zabbix. Abra el archivo de configuración en su editor de texto preferido: En este tutorial, se usará nano:

      • sudo nano /etc/zabbix/zabbix_server.conf

      Busque la siguiente sección del archivo:

      /etc/zabbix/zabbix_server.conf

      ...
      ### Option: DBPassword                           
      #       Database password. Ignored for SQLite.   
      #       Comment this line if no password is used.
      #                                                
      # Mandatory: no                                  
      # Default:                                       
      # DBPassword=
      ...
      

      Estos comentarios en el archivo explican cómo conectar con la base de datos. Deberá establecer el valor DBPassword en el archivo a la contraseña para su usuario de la base de datos. Añada esta línea tras esos comentarios para configurar la base de datos:

      /etc/zabbix/zabbix_server.conf

      ...
      DBPassword=your_zabbix_mysql_password
      ...
      

      Guarde y cierre zabbix_server.conf pulsando CTRL+X, seguido de Y y ENTER si está usando nano.

      Ahora ha configurado el servidor Zabbix para que se conecte a la base de datos. A continuación, configurará el servidor web Nginx para presentar el frontend de Zabbix.

      Paso 3: Configurar Nginx para Zabbix

      Para configurar Nginx de forma automática, instale el paquete de configuración automática:

      • sudo apt install zabbix-nginx-conf

      Como resultado, obtendrá el archivo de configuración /etc/zabbix/nginx.conf, así como un enlace a él en el directorio de configuración de Nginx /etc/zabbix/nginx.conf.

      A continuación, debe realizar cambios a este archivo. Abra el archivo de configuración:

      • sudo nano /etc/zabbix/nginx.conf

      El archivo contiene una configuración del bloque de servidor Nginx generada automáticamente. Contiene dos líneas que determinan el nombre del servidor y el puerto en el que está escuchando:

      /etc/zabbix/nginx.conf

      server {
      #        listen          80;
      #        server_name     example.com;
      ...
      

      Borre las dos líneas y sustituya example.com con su nombre de dominio. Sus ajustes tendrán este aspecto:

      /etc/zabbix/nginx.conf

      server {
              listen          80;
              server_name     your_domain;
      ...
      

      Guarde y cierre el archivo. A continuación, compruebe que no haya errores de sintaxis en ninguno de sus archivos de Nginx y vuelva a cargar la configuración:

      • sudo nginx -t
      • sudo nginx -s reload

      Ahora que Nginx está configurado para presentar el frontend de Zabbix, realizará algunas modificaciones a su configuración PHP para que la interfaz web de Zabbix funcione correctamente.

      Nota: Como se indica en la sección de requisitos previos, se le recomienda habilitar SSL o TLS en su servidor. Si desea hacer esto, siga nuestro tutorial de Let´s Encrypt para Ubuntu 20.04 antes de pasar al Paso 4 para obtener un certificado gratuito SSL para Nginx. Este proceso detectará automáticamente el bloque de servidores Zabbix y lo configurará para HTTPS. Una vez que obtenga sus certificados SSL y TLS, puede volver y completar este tutorial.

      Paso 4: Configurar PHP para Zabbix

      La interfaz web Zabbix se escribe en PHP y requiere algunos ajustes especiales del servidor PHP. El proceso de instalación de Zabbix creó un archivo de configuración PHP-FPM que contiene estos ajustes. Está ubicado en el directorio /etc/zabbix y PHP-FPM lo carga automáticamente. Deberá realizar un pequeño cambio a este archivo, de forma que ábralo con lo siguiente:

      • sudo nano /etc/zabbix/php-fpm.conf

      El archivo contiene los ajustes PHP que cumplen con los requisitos necesarios para la interfaz web de Zabbix. Sin embargo, el ajuste de zona horaria está eliminado por defecto. Para asegurar que Zabbix utiliza la hora correcta, deberá establecer la zona horaria apropiada:

      /etc/zabbix/php-fpm.conf

      ...
      php_value[max_execution_time] = 300
      php_value[memory_limit] = 128M
      php_value[post_max_size] = 16M
      php_value[upload_max_filesize] = 2M
      php_value[max_input_time] = 300
      php_value[max_input_vars] = 10000
      ; php_value[date.timezone] = Europe/Riga
      

      Borre la línea timezone resaltada en el bloque de código anterior y cámbiela a su zona horaria. Puede usar esta lista de zonas horarias compatibles para encontrar la adecuada para usted. Luego, guarde y cierre el archivo.

      Ahora reinicie PHP-FPM para aplicar esta nueva configuración:

      • sudo systemctl restart php7.4-fpm.service

      Ahora puede iniciar el servidor Zabbix:

      • sudo systemctl start zabbix-server

      A continuación, compruebe si el servidor Zabbix está funcionando correctamente:

      • sudo systemctl status zabbix-server

      Verá el siguiente estado:

      Output

      ● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 05:59:32 UTC; 36s ago Process: 27026 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...

      Finalmente, habilite el servidor para que se inicie en el momento del arranque:

      • sudo systemctl enable zabbix-server

      El servidor está configurado y conectado a la base de datos. A continuación, configure el frontend web.

      Paso 5: Configurar los ajustes de la interfaz web de Zabbix

      La interfaz web le permite ver los informes y añadir los hosts que desea monitorizar, pero necesita cierta configuración inicial antes de poder usarla. Abra su servidor y vaya a la dirección http://zabbix_server_name o https://zabbix_server_name si configuró Let´s Encrypt. En la primera pantalla, verá un mensaje de bienvenida. Haga clic en Siguiente paso para continuar.

      En la siguiente pantalla, verá la tabla que enumera todos los requisitos previos para ejecutar Zabbix.

      Requisitos previos

      Todos los valores de esta tabla deben estar en OK, de forma que verifique que así es. Asegúrese de desplazarse hacia abajo y ver todos los requisitos previos. Una vez que haya verificado que todo está listo, haga clic en Siguiente paso para continuar.

      La siguiente pantalla pide información sobre la conexión con la base de datos.

      Conexión con la BBDD

      Le ha hablado al servidor Zabbix sobre su base de datos, pero la interfaz web de Zabbix también necesita acceder a la base de datos para administrar los hosts y leer datos. Por tanto, introduzca las credenciales de MySQL que configuró en el Paso 2. Haga clic en Siguiente paso para continuar.

      En la siguiente pantalla, puede dejar las opciones en sus valores predeterminados.

      Detalles del servidor Zabbix

      El Nombre es opcional; se usa en la interfaz web para distinguir un servidor de otro en caso de que tenga varios servidores de monitorización. Haga clic en Siguiente paso para continuar.

      La siguiente pantalla mostrará el resumen de la preinstalación para que pueda confirmar que todo es correcto.

      Resumen

      Haga clic en Siguiente paso para continuar a la pantalla final.

      Ha finalizado la configuración de la interfaz web. Este proceso crea el archivo de configuración /usr/share/zabbix/conf/zabbix.conf.php, del que podría realizar copias de seguridad para su uso en el futuro. Haga clic en Finalizar para continuar a la pantalla de inicio de sesión. El usuario predeterminado es Admin y la contraseña es zabbix.

      Antes de iniciar sesión, configure el agente Zabbix en su segundo servidor Ubuntu.

      Paso 6: Instalar y configurar el agente Zabbix

      Ahora, deberá configurar el software agente que enviará datos de monitorización al servidor Zabbix.

      Inicie sesión en el segundo servidor Ubuntu:

      • ssh sammy@second_ubuntu_server_ip_address

      Al igual que en el servidor Zabbix, ejecute los siguientes comandos para instalar el paquete de configuración del repositorio:

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      A continuación, actualice el índice del paquete:

      Luego instale el agente Zabbix:

      • sudo apt install zabbix-agent

      Aunque Zabbix es compatible con el cifrado basado en certificados, configurar una autoridad de certificado está fuera del ámbito de este tutorial. Pero puede usar claves precompartidas (PSK) para proteger la conexión entre el servidor y el agente.

      Primero, genere una PSK:

      • sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

      Muestre la clave usando cat para que pueda copiarla en otra parte:

      • cat /etc/zabbix/zabbix_agentd.psk

      La clave tendrá un aspecto similar a este:

      Output

      75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca

      Guarde esto para más tarde; la necesitará para configurar el host.

      Ahora edite los ajustes del agente Zabbix para configurar su conexión segura al servidor Zabbix. Abra el archivo de configuración en su editor de texto:

      • sudo nano /etc/zabbix/zabbix_agentd.conf

      Cada ajuste en este archivo se documenta a través de comentarios informativos por todo el archivo, pero solo necesitará editar algunos de ellos.

      Primero tendrá que editar la dirección IP del servidor Zabbix. Busque la siguiente sección:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: Server
      #       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.
      #       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: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
      #
      # Mandatory: yes, if StartAgents is not explicitly set to 0
      # Default:
      # Server=
      
      Server=127.0.0.1
      ...
      

      Cambie el valor predeterminado a la IP de su servidor Zabbix:

      /etc/zabbix/zabbix_agentd.conf

      ...
      Server=zabbix_server_ip_address
      ...
      

      Por defecto, el servidor Zabbix se conecta con el agente. Pero para algunas comprobaciones (por ejemplo, monitorizar los registros), se requiere una conexión inversa. Para obtener un funcionamiento correcto, deberá especificar la dirección del servidor Zabbix y un nombre de host único.

      Busque la sección que configura las comprobaciones activas y cambie los valores predeterminados:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ##### Active checks related
      
      ### Option: ServerActive
      #       List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
      #       If port is not specified, default port is used.
      #       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
      #       If port is not specified, square brackets for IPv6 addresses are optional.
      #       If this parameter is not specified, active checks are disabled.
      #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
      #
      # Mandatory: no
      # Default:
      # ServerActive=
      
      ServerActive=zabbix_server_ip_address
      
      ### Option: Hostname
      #       Unique, case sensitive hostname.
      #       Required for active checks and must match hostname as configured on the server.
      #       Value is acquired from HostnameItem if undefined.
      #
      # Mandatory: no
      # Default:
      # Hostname=
      
      Hostname=Second Ubuntu Server
      ...
      

      A continuación, busque la sección que configura la conexión segura con el servidor Zabbix y habilite el soporte con clave precompartida. Busque la sección TLSConnect, que tiene el siguiente aspecto:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSConnect
      #       How the agent should connect to server or proxy. Used for active checks.
      #       Only one value can be specified:
      #               unencrypted - connect without encryption
      #               psk         - connect using TLS and a pre-shared key
      #               cert        - connect using TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSConnect=unencrypted
      ...
      

      A continuación añada esta línea para configurar el soporte de clave precompartida:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSConnect=psk
      ...
      

      Luego, localice la sección TLSAccept, que tiene el siguiente aspecto:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSAccept
      #       What incoming connections to accept.
      #       Multiple values can be specified, separated by comma:
      #               unencrypted - accept connections without encryption
      #               psk         - accept connections secured with TLS and a pre-shared key
      #               cert        - accept connections secured with TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSAccept=unencrypted
      ...
      

      Configure las conexiones entrantes para que admitan las claves precompartidas añadiendo esta línea:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSAccept=psk
      ...
      

      Luego, localice la sección TLSPSKIdentity, que tiene el siguiente aspecto:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKIdentity
      #       Unique, case sensitive string used to identify the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKIdentity=
      ...
      

      Elija un nombre único para identificar su clave precompartida añadiendo esta línea:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKIdentity=PSK 001
      ...
      

      Usará esto como el PSK ID cuando añada su host a través de la interfaz web de Zabbix.

      A continuación establezca la opción que apunta a su clave precompartida creada previamente. Busque la opción TLSPSKFile:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKFile
      #       Full pathname of a file containing the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKFile=
      ...
      

      Añada esta línea para apuntar el agente Zabbix al archivo PSK que ha creado:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
      ...
      

      Guarde y cierre el archivo. Ahora puede reiniciar el agente Zabbix y configurarlo para que se inicie en el arranque:

      • sudo systemctl restart zabbix-agent
      • sudo systemctl enable zabbix-agent

      Por seguridad, compruebe que el agente Zabbix se está ejecutando correctamente:

      • sudo systemctl status zabbix-agent

      Verá el siguiente estado, que indica que el agente se está ejecutando:

      Output

      ● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 08:19:54 UTC; 25s ago ...

      El agente escuchará en el puerto 10050 las conexiones del servidor. Configure UFW para permita las conexiones con este puerto:

      Puede obtener más información sobre UFW en Cómo configurar un firewall con UFW en Ubuntu 20.04.

      Su agente está listo para enviar datos al servidor Zabbix. Pero para usarlo, tendrá que vincularlo desde la consola web del servidor. En el siguiente paso, completará la configuración.

      Paso 7: Añadir el nuevo host al servidor Zabbix

      Instalar un agente en un servidor que desea monitorizar es solo la mitad del proceso. Cada host que desee monitorizar debe estar registrado en el servidor Zabbix, lo cual puede hacer a través de la interfaz web.

      Inicie sesión en la interfaz web del servidor Zabbix navegando a la dirección http://zabbix_server_name o https://zabbix_server_name:

      La pantalla de inicio de sesión de Zabbix

      Cuando haya iniciado sesión, haga clic en Configuración y, luego, en Hosts en la barra de navegación izquierda. A continuación haga clic en el botón Crear host en la esquina superior derecha de la pantalla. Esto abrirá la página de configuración del host.

      Crear un host

      Ajuste el Nombre del host y la Dirección IP para reflejar el nombre de host y la dirección IP de su segundo servidor Ubuntu y luego añada el host a un grupo. Puede seleccionar un grupo existente, por ejemplo Servidores Linux o crear su propio grupo. El host puede estar en varios grupos. Para hacer esto, introduzca el nombre de un grupo existente o uno nuevo en el campo Grupos y seleccione el valor deseado de la lista propuesta.

      Antes de añadir el grupo, haga clic en la pestaña Plantillas.

      Añadir una plantilla al host

      Escriba Template OS Linux by Zabbix agent en el campo Buscar y selecciónela de la lista para añadir esta plantilla al host.

      A continuación, navegue a la pestaña Cifrado. Seleccione PSK para Conexiones al host y Conexiones desde el host. A continuación, establezca la identidad PSK a PSK 001, que es el valor del ajuste TLSPSKIdentity del agente Zabbix que configuró previamente. Ahora configure el valor PSK a la clave que generó para el agente Zabbix. Es la almacenada en el archivo /etc/zabbix/zabbix_agentd.psk en el equipo agente.

      Configurar el cifrado

      Finalmente, haga clic en el botón Añadir en la parte inferior del formulario para crear el host.

      Verá su nuevo host en la lista. Espere un minuto y vuelva a cargar la página para ver etiquetas verdes que indican que todo funciona bien y la conexión está cifrada.

      Zabbix muestra su nuevo host

      Si tiene servidores adicionales que desea monitorizar, inicie sesión en cada host, instale el agente Zabbix, genere una PSK, configure el agente y añada el host a la interfaz web siguiendo los mismos pasos que siguió para añadir su primer host.

      El servidor Zabbix está ahora monitorizando su segundo servidor Ubuntu. Ahora, configure notificaciones por correo electrónico para recibir avisos sobre problemas.

      Paso 8: Configurar notificaciones por correo electrónico

      Zabbix admite automáticamente muchos tipos de notificaciones: correo electrónico, OTRS, Slack, Telegram, SMS, etc. Puede ver la lista completa de integraciones en el sitio web de Zabbix.

      Como ejemplo, este tutorial configurará notificaciones para el tipo de medio Correo electrónico.

      Haga clic en Administración, y a continuación en Tipos de medio en la barra de navegación izquierda. Verá la lista de todos los tipos de medios. Existen dos opciones preconfiguradas para correos electrónicos: para la notificación de texto sin formato y para las notificaciones HTML. En este tutorial, usará la notificación de texto sin formato. Haga clic en Correo electrónico.

      Ajuste las opciones SMTP según los ajustes proporcionados por su servicio de correo electrónico. Este tutorial utiliza las capacidades SMTP de Gmail para configurar las notificaciones por correo electrónico; si desea obtener más información sobre cómo configurar esto, consulte Cómo usar el servicio SMTP de Google.

      Nota: Si utiliza la Verificación de 2 pasos con Gmail, deberá generar una contraseña de aplicación para Zabbix. Solo tendrá que introducir una contraseña de aplicación una vez durante la configuración. Encontrará instrucciones sobre cómo generar esta contraseña en el Centro de Ayuda de Google.

      Si está usando Gmail, escriba smtp.gmail.com para el campo Servidor SMTP, 465 para el campo Puerto del servidor SMTP, gmail.com para SMTP helo, y su correo electrónico para Correo electrónico SMTP. Luego seleccione SSL/TLS para Seguridad de la conexión y Nombre de usuario y contraseña para Autenticación. Introduzca su dirección de Gmail como el Nombre de usuario, y la Contraseña de aplicación que generó desde su cuenta de Google como Contraseña.

      Configurar el tipo de medio de correo electrónico

      En la pestaña Plantillas de mensaje, puede ver la lista de mensajes predefinidos para varios tipos de notificaciones. Finalmente, haga clic en el botón Actualizar en la parte inferior del formulario para actualizar los parámetros del correo electrónico.

      Ahora puede probar el envío de notificaciones. Para hacer esto, haga clic en el enlace subrayado Prueba en la línea correspondiente.

      Ahora verá una ventana emergente. Introduzca su dirección de correo electrónico en el campo Enviar a *y haga clic en el botón *Prueba. Verá un mensaje sobre el envío correcto y recibirá un mensaje de prueba.

      Correo electrónico de prueba

      Cierre la ventana emergente haciendo clic en el botón Cancelar.

      Ahora cree un nuevo usuario. Haga clic en Administración y, a continuación, en** Usuarios** en la barra de navegación izquierda. Verá la lista de usuarios. A continuación haga clic en el botón Crear usuario en la esquina superior derecha de la pantalla. Esto abrir la página de configuración del usuario:

      Crear un usuario

      Introduzca el nuevo nombre de usuario en el campo Alias y configure una nueva contraseña. A continuación, añada el usuario al grupo del administrador. Escriba Zabbix administrators en el campo Grupos y selecciónelo desde la lista propuesta.

      Una vez que haya añadido el grupo, haga clic en la pestaña Medios y haga clic en el enlace subrayado Añadir (no el botón Añadir debajo). Ahora verá una ventana emergente.

      Añadir un correo electrónico

      Seleccione la opción Correo electrónico desde el desplegable Tipo. Introduzca su dirección de correo en el campo Enviar a. Puede dejar el resto de las opciones en sus valores predeterminados. Haga clic en el botón Añadir en la parte inferior para enviar.

      Ahora navegue a la pestaña Permisos. Seleccione Zabbix Super Admin desde el menú desplegable Tipo de usuario.

      Finalmente, haga clic en el botón Añadir en la parte inferior del formulario para crear el usuario.

      Nota: Usar la contraseña predeterminada no es seguro. Para cambiar la contraseña del usuario integrado Admin, haga clic en el alias en la lista de usuarios. Luego haga clic en Cambiar contraseña, introduzca una nueva contraseña y confirme los cambios haciendo clic en el botón Actualizar.

      Ahora debe habilitar las notificaciones. Haga clic en la pestaña Configuración y a continuación en Acciones en la barra de navegación izquierda. Verá una acción preconfigurada, que es responsable de enviar notificaciones a todos los administradores Zabbix. Puede revisar y cambiar los ajustes haciendo clic en su nombre. A efectos de este tutorial, utilice los parámetros predeterminados. Para habilitar la acción, haga clic en el enlace rojo Deshabilitado en la columna Estado.

      Ahora está listo para recibir alertas. En el siguiente paso, generará una para probar la configuración de notificaciones.

      Paso 9: Generar una alerta de prueba

      En este paso, generará una alerta de prueba para garantizar que todo está conectado. Por defecto, Zabbix realiza un seguimiento de la cantidad de espacio libre en el disco de su servidor. Detecta automáticamente todos los montajes en disco y añade las comprobaciones correspondientes. Este descubrimiento se ejecuta cada hora, de forma que deberá esperar un poco para que se active la notificación.

      Cree un archivo temporal que sea lo suficientemente grande para activar la alerta de uso del sistema de archivos de Zabbix. Para hacer esto, inicie sesión en su segundo servidor Ubuntu si aún no está conectado:

      • ssh sammy@second_ubuntu_server_ip_address

      A continuación, determine cuánto espacio libre tiene en el servidor. Puede usar el comando df para averiguarlo:

      El comando df informará del uso del espacio en el disco de su sistema de archivos, y -h hará que el resultado sea legible para el ser humano. Verá un resultado como el siguiente:

      Output

      Filesystem Size Used Avail Use% Mounted on /dev/vda1 78G 1.4G 77G 2% /

      En este caso, el espacio libre es 77G. Su espacio libre puede ser diferente.

      Utilice el comando fallocate, que le permite preasignar o desasignar el espacio a un archivo, para crear un archivo que ocupa más del 80 % del espacio disponible en el disco. Esto será suficiente para activar la alerta:

      • fallocate -l 70G /tmp/temp.img

      Tras aproximadamente una hora, Zabbix activará una alerta sobre la cantidad de espacio libre en el disco y ejecutará la acción que configuró, enviando el mensaje de notificación. Puede comprobar su buzón de entrada en busca del mensaje del servidor Zabbix. Verá un mensaje como este:

      Problem started at 09:49:08 on 2020.06.12
      Problem name: /: Disk space is low (used > 80%)
      Host: Second Ubuntu Server
      Severity: Warning
      Operational data: Space used: 71.34 GB of 77.36 GB (92.23 %)
      Original problem ID: 106
      

      También puede navegar a la pestaña Monitorización y luego a Panel de control para ver la notificación y sus detalles.

      Panel de control principal

      Ahora que sabe que las alertas están funcionando, elimine el archivo temporal que creó para que pueda reclamar su espacio en disco:

      Tras un minuto Zabbix enviará un mensaje de recuperación y la alerta desaparecerá del panel de control principal.

      Conclusión

      En este tutorial, ha aprendido a configurar una solución de monitorización sencilla y segura que le ayudará a monitorizar el estado de sus servidores. Ahora puede avisarle si existen problemas, y podrá analizar los procesos que se producen en su infraestructura de TI.

      Para obtener más información sobre cómo configurar una infraestructura de monitorización, consulte nuestra página sobre el tema Monitorización.



      Source link

      Installieren und Konfigurieren von Zabbix zur sicheren Überwachung von Remoteservern unter Ubuntu 20.04


      Der Autor wählte das Computer History Museum, um eine Spende im Rahmen des Programms Write for DOnations zu erhalten.

      Einführung

      Zabbix ist eine Open-Source-basierte Überwachungssoftware für Netzwerke und Anwendungen. Sie ermöglicht eine Echtzeitüberwachung von Tausenden von Metriken, die von Servern und virtuellen Maschinen, Netzwerkgeräten und Webanwendungen gesammelt werden. Diese Metriken können Ihnen helfen, den aktuellen Status Ihrer IT-Infrastruktur zu ermitteln und Probleme mit Hardware- oder Softwarekomponenten zu erkennen, bevor sich Kunden beschweren. Nützliche Informationen werden in einer Datenbank gespeichert, damit Sie diese im Laufe der Zeit analysieren und die Qualität der bereitgestellten Dienste verbessern oder Upgrades für Ihre Geräte planen können.

      Zabbix verwendet verschiedene Optionen zum Sammeln von Metriken, darunter Überwachung ohne Agent von Benutzerdiensten und Client-Server-Architektur. Um Servermetriken zu sammeln, gibt es auf dem überwachten Client einen kleinen Agenten zum Erfassen von Daten und Senden dieser Daten an den Zabbix-Server. Zabbix unterstützt verschlüsselte Kommunikation zwischen dem Server und verbundenen Clients. So werden Ihre Daten geschützt, wenn sie über unsichere Netzwerke übertragen werden.

      Der Zabbix-Server speichert seine Daten in einer relationalen Datenbank, die auf MySQL oder PostgreSQL basiert. Außerdem können Sie historische Daten in NoSQL-Datenbanken wie Elasticsearch und TimescaleDB speichern. Zabbix bietet eine Weboberfläche, mit der Sie Daten anzeigen und Systemeinstellungen konfigurieren können.

      In diesem Tutorial konfigurieren Sie Zabbix auf zwei Ubuntu 20.04-Rechnern. Einer wird als Zabbix-Server konfiguriert, der andere als Client, den Sie überwachen möchten. Der Zabbix-Server wird eine MySQL-Datenbank nutzen, um Überwachungsdaten zu erfassen, und Nginx zur Bereitstellung der Weboberfläche verwenden.

      Voraussetzungen

      Um dieser Anleitung zu folgen, benötigen Sie:

      • Zwei Ubuntu 20.04-Server, die gemäß des Leitfadens zur Ersteinrichtung des Servers für Ubuntu 20.04 eingerichtet wurden, einschließlich eines Nicht-root-Benutzers, der über sudo-Berechtigungen verfügt, und einer mit ufw konfigurierten Firewall. Auf einem Server installieren Sie Zabbix; in diesem Tutorial wird dieser Server als Zabbix-Server bezeichnet. Er wird Ihren zweiten Server überwachen; dieser zweite Server wird als zweiter Ubuntu-Server bezeichnet.

      • Der Server, auf dem der Zabbix-Server ausgeführt wird, setzt installiertes Nginx, MySQL und PHP voraus. Folgen Sie Schritt 1-3 unserer Anleitung zum Ubuntu 20.04-LEMP-Stack, um diese Anwendungen auf Ihrem Zabbix-Server zu konfigurieren.

      • Einen registrierten Domänennamen. Dieses Tutorial verwendet in allen Bereichen your_domain. Sie können einen Domänennamen unter Namecheap erwerben oder einen kostenlosen von Freenom herunterladen oder einfach die Domänenregistrierungsstelle Ihrer Wahl verwenden.

      • Die beiden folgenden DNS-Einträge, eingerichtet für Ihren Zabbix-Server. Wenn Sie DigitalOcean verwenden, lesen Sie bitte unsere DNS Dokumentation für Details, wie Sie sie hinzufügen.

        • Einen A-Datensatz, wobei your_domain auf die öffentliche IP-Adresse Ihres Zabbix-Servers verweist.
        • Einen A-Datensatz, wobei www.your_domain auf die öffentliche IP-Adresse Ihres Zabbix-Servers verweist.

      Da der Zabbix-Server dazu dient, wertvolle Informationen über Ihre Infrastruktur aufzurufen, auf die nicht autorosierte Benutzer nicht zugreifen sollen, sollten Sie Ihren Server unbedingt schützen, indem Sie ein TLS/SSL-Zertifikat installieren. Dieser Schutz ist optional, wird jedoch ausdrücklich empfohlen. Wenn Sie Ihren Server schützen möchten, folgen Sie nach Schritt 3 dieses Tutorials dem Leitfaden Let’s Encrypt unter Ubuntu 20.04.

      Schritt 1 — Installieren des Zabbix-Servers

      Zuerst müssen Sie Zabbix auf dem Server installieren, auf dem Sie MySQL, Nginx und PHP installiert haben. Melden Sie sich bei diesem Rechner als Ihr non-root user an:

      • ssh sammy@zabbix_server_ip_address

      Zabbix ist im Paketmanager von Ubuntu verfügbar, ist jedoch veraltet. Verwenden Sie daher das offizielle Ubuntu-Repository zum Installieren der neuesten stabilen Version. Laden Sie das Repository-Konfigurationspaket herunter und installieren Sie es:

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Sie sehen die folgende Ausgabe:

      Output

      Selecting previously unselected package zabbix-release. (Reading database ... 64058 files and directories currently installed.) Preparing to unpack zabbix-release_5.0-1+focal_all.deb ... Unpacking zabbix-release (1:5.0-1+focal) ... Setting up zabbix-release (1:5.0-1+focal) ...

      Aktualisieren Sie den Paketindex, sodass das neue Repository enthalten ist:

      Installieren Sie dann den Zabbix-Server und das Web-Frontend mit Unterstützung der MySQL-Datenbank:

      • sudo apt install zabbix-server-mysql zabbix-frontend-php

      Installieren Sie außerdem den Zabbix-Agenten, mit dem Sie Daten über den Status des Zabbix-Servers selbst sammeln können.

      • sudo apt install zabbix-agent

      Bevor Sie Zabbix nutzen können, müssen Sie eine Datenbank einrichten, um die Daten zu speichern, die der Zabbix-Server von seinen Agenten erfassen wird. Sie können dies im nächsten Schritt tun.

      Schritt 2 — Konfigurieren der MySQL-Datenbank für Zabbix

      Sie müssen eine neue MySQL-Datenbank erstellen und sie mit einigen grundlegenden Daten befüllen, um sie bereit für Zabbix zu machen. Außerdem erstellen Sie einen bestimmten Benutzer für diese Datenbank, damit Zabbix sich nicht mit dem root-Konto bei MySQL anmeldet.

      Melden Sie sich als root user bei MySQL an:

      Erstellen Sie die Zabbix-Datenbank mit Unterstützung für UTF-8-Zeichen:

      • create database zabbix character set utf8 collate utf8_bin;

      Erstellen Sie dann einen Benutzer, den der Zabbix-Server verwenden wird, gewähren Sie ihm Zugriff auf die neue Datenbank und legen Sie das Passwort für den Benutzer fest:

      • create user zabbix@localhost identified by 'your_zabbix_mysql_password';
      • grant all privileges on zabbix.* to zabbix@localhost;

      Damit sind der Benutzer und die Datenbank einsatzbereit. Beenden Sie die Datenbankkonsole.

      Als Nächstes müssen Sie das erste Schema und die Daten importieren. Die Zabbix-Installation bietet Ihnen eine Datei, die diese Einrichtung übernimmt.

      Führen Sie folgenden Befehl aus, um das Schema einzurichten und die Daten in die zabbix-Datenbank zu importieren. Verwenden Sie zcat, da die Daten in der Datei komprimiert sind:

      • zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

      Geben Sie das Passwort für den von Ihnen konfigurierten zabbix-MySQL-Benutzer ein, wenn Sie dazu aufgefordert werden.

      Die Ausführung des Befehls kann eine oder zwei Minuten dauern. Wenn Sie den Fehler ERROR 1045 (28000): Access denied for userzabbix@'localhost' (using password: YES) erhalten, sollten Sie sich vergewissern, dass Sie das richtige Passwort für den zabbix verwendet haben.

      Damit der Zabbix-Server diese Datenbank nutzt, müssen Sie in der Konfigurationsdatei für den Zabbix-Server das Datenbankpasswort festlegen. Öffnen Sie die Konfigurationsdatei in Ihrem bevorzugten Editor. Dieses Tutorial verwendet nano:

      • sudo nano /etc/zabbix/zabbix_server.conf

      Suchen Sie nach dem folgenden Abschnitt der Datei:

      /etc/zabbix/zabbix_server.conf

      ...
      ### Option: DBPassword                           
      #       Database password. Ignored for SQLite.   
      #       Comment this line if no password is used.
      #                                                
      # Mandatory: no                                  
      # Default:                                       
      # DBPassword=
      ...
      

      Diese Kommentare in der Datei erklären, wie Sie eine Verbindung mit der Datenbank herstellen können. Sie müssen den Wert von DBPassword in der Datei auf das Passwort für Ihren Datenbankbenutzer setzen. Fügen Sie die Zeile nach den Kommentaren hinzu, um die Datenbank zu konfigurieren:

      /etc/zabbix/zabbix_server.conf

      ...
      DBPassword=your_zabbix_mysql_password
      ...
      

      Speichern und schließen Sie zabbix_server.conf, indem Sie Strg+X drücken, gefolgt von Y und dann der Eingabetaste, wenn Sie nano verwenden.

      Sie haben den Zabbix-Server nun so konfiguriert, dass er eine Verbindung zur Datenbank herstellt. Als Nächstes konfigurieren Sie den Nginx-Webserver, um das Zabbix-Frontend bereitzustellen.

      Schritt 3 — Konfigurieren von Nginx für Zabbix

      Installieren Sie das automatische Konfigurationspaket, um Nginx automatisch zu konfigurieren:

      • sudo apt install zabbix-nginx-conf

      Dadurch erhalten Sie die Konfigurationsdatei /etc/zabbix/nginx.conf sowie einen Link dahin im Nginx-Konfigurationsverzeichnis /etc/nginx/conf.d/zabbix.conf.

      Als Nächstes müssen Sie Änderungen an dieser Datei vornehmen. Öffnen Sie die Konfigurationsdatei:

      • sudo nano /etc/zabbix/nginx.conf

      Die Datei enthält eine automatisch generierte Nginx-Serverblock-Konfiguration. Sie enthält zwei Zeilen, die den Namen des Servers bestimmen und festlegen, an welchem Port er lauscht:

      /etc/zabbix/nginx.conf

      server {
      #        listen          80;
      #        server_name     example.com;
      ...
      

      Heben Sie die Kommentierung der beiden Zeilen auf und ersetzen Sie example.com durch Ihren Domänennamen. Ihre Einstellungen werden wie folgt aussehen:

      /etc/zabbix/nginx.conf

      server {
              listen          80;
              server_name     your_domain;
      ...
      

      Speichern und schließen Sie die Datei. Als Nächstes testen Sie, um sicherzustellen, dass es in keiner Ihrer Nginx-Dateien Syntaxfehler gibt, und laden Sie die Konfiguration neu:

      • sudo nginx -t
      • sudo nginx -s reload

      Nachdem Nginx so eingerichtet ist, dass das Zabbix-Frontend bereitgestellt wird, werden Sie nun einige Änderungen an Ihrer PHP-Einrichtung vornehmen, damit die Zabbix-Weboberfläche ordnungsgemäß funktioniert.

      Anmerkung: Wie im Voraussetzungsbereich erwähnt, sollten Sie auf Ihrem Server SSL/TLS aktivieren. Wenn Sie dies tun möchten, folgen Sie unserem Ubuntu 20.04-Tutorial für Let’s Encrypt, bevor Sie mit Schritt 4 fortfahren, um ein kostenloses SSL-Zertifikat für Nginx zu erhalten. Dieser Prozess wird Ihren Zabbix-Serverblock automatisch erkennen und ihn für HTTPS konfigurieren. Nach der Erlangung Ihrer SSL/TLS-Zertifikate können Sie zurückkehren und dieses Tutorial abschließen.

      Schritt 4 — Konfigurieren von PHP für Zabbix

      Die Zabbix-Weboberfläche ist in PHP geschrieben und erfordert einige spezielle PHP-Servereinstellungen. Der Zabbix-Installationsprozess hat eine PHP-FPM-Konfigurationsdatei erstellt, die diese Einstellungen enthält. Sie befindet sich im Verzeichnis /etc/zabbix und wird von PHP-FPM automatisch geladen. Sie müssen eine kleine Änderung in dieser Datei vornehmen; öffnen Sie sie also folgendermaßen:

      • sudo nano /etc/zabbix/php-fpm.conf

      Die Datei enthält PHP-Einstellungen, die die erforderlichen Anforderungen für die Zabbix-Weboberfläche erfüllen. Die Einstellung der Zeitzone ist jedoch standardmäßig auskommentiert. Um sicherzustellen, dass Zabbix die richtige Zeit verwendet, müssen Sie die richtige Zeitzone festlegen:

      /etc/zabbix/php-fpm.conf

      ...
      php_value[max_execution_time] = 300
      php_value[memory_limit] = 128M
      php_value[post_max_size] = 16M
      php_value[upload_max_filesize] = 2M
      php_value[max_input_time] = 300
      php_value[max_input_vars] = 10000
      ; php_value[date.timezone] = Europe/Riga
      

      Heben Sie die Kommentierung der im vorigen Codeblock markierten Zeitzonenzeile auf und ändern Sie sie in Ihre Zeitzone. Sie können diese Liste der unterstützten Zeitzonen verwenden, um die richtige für Sie zu finden. Speichern und schließen Sie die Datei.

      Starten Sie PHP-FPM nun neu, um die neuen Einstellungen anzuwenden:

      • sudo systemctl restart php7.4-fpm.service

      Sie können den Zabbix-Server nun starten:

      • sudo systemctl start zabbix-server

      Überprüfen Sie dann, ob der Zabbix-Server ordnungsgemäß ausgeführt wird:

      • sudo systemctl status zabbix-server

      Sie werden den folgenden Status sehen:

      Output

      ● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 05:59:32 UTC; 36s ago Process: 27026 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...

      Aktivieren Sie den Server abschließend so, dass er beim Booten gestartet wird:

      • sudo systemctl enable zabbix-server

      Der Server ist eingerichtet und mit der Datenbank verbunden. Erstellen Sie als Nächstes das Web-Frontend.

      Schritt 5 — Konfigurieren von Einstellungen für die Zabbix-Weboberfläche

      Mit der Weboberfläche können Sie Berichte anzeigen und Hosts hinzufügen, die Sie überwachen möchten. Dies muss jedoch vor der Verwendung eingerichtet werden. Starten Sie dazu Ihren Browser und rufen Sie die Adresse http://zabbix_server_name oder https://zabbix_server_name auf, wenn Sie Let’s Encrypt verwenden. Im ersten Bildschirm sehen Sie eine Willkommensnachricht. Klicken Sie auf Nächster Schritt um fortzufahren.

      Im nächsten Bildschirm sehen Sie die Tabelle, die alle Voraussetzungen zur Ausführung von Zabbix auflistet.

      Voraussetzungen

      Alle Werte in dieser Tabelle müssen OK sein. Überprüfen Sie also, ob sie es sind. Stellen Sie sicher, dass Sie nach unten scrollen und alle Voraussetzungen ansehen. Sobald Sie geprüft haben, ob alles bereit ist, klicken Sie auf Nächster Schritt um fortzufahren.

      Der nächste Bildschirm bittet um Informationen zur Datenbankverbindung.

      DB-Verbindung

      Sie haben den Zabbix-Server über Ihre Datenbank informiert. Die Zabbix-Weboberfläche benötigt jedoch auch Zugriff auf die Datenbank, um Hosts verwalten und Daten lesen zu können. Geben Sie daher die MySQL-Anmeldedaten ein, die Sie in Schritt 2 konfiguriert haben. Klicken Sie auf Nächster Schritt um fortzufahren.

      Im nächsten Bildschirm können Sie die Optionen bei ihren Standardwerten belassen.

      Zabbix Server-Details

      Der Name ist optional; er wird in der Weboberfläche verwendet, um einen Server vom anderen zu unterscheiden, falls Sie über mehrere Überwachungsserver verfügen. Klicken Sie auf Nächster Schritt um fortzufahren.

      Im nächsten Bildschirm wird die Zusammenfassung vor der Installation angezeigt, sodass Sie prüfen können, ob alles korrekt ist.

      Zusammenfassung

      Klicken Sie auf Nächster Schritt, um mit dem letzten Bildschirm fortzufahren.

      Die Einrichtung der Weboberfläche ist nun abgeschlossen. Dieser Prozess erstellt die Konfigurationsdatei /usr/share/zabbix/conf/zabbix.conf.php, die Sie sichern und in Zukunft verwenden können. Klicken Sie auf Fertig stellen, um mit dem Anmeldebildschirm fortzufahren. Der Standardbenutzer ist Admin und das Passwort lautet zabbix.

      Richten Sie, bevor Sie sich anmelden, den Zabbix-Agenten auf Ihrem zweiten Ubuntu-Server ein.

      Schritt 6 — Installieren und Konfigurieren des Zabbix-Agenten

      Jetzt müssen Sie die Agentensoftware konfigurieren, die Überwachungsdaten an den Zabbix-Server senden wird.

      Melden Sie sich beim zweiten Ubuntu-Server an:

      • ssh sammy@second_ubuntu_server_ip_address

      Führen Sie wie auf dem Zabbix-Server die folgenden Befehle aus, um das Repository-Konfigurationspaket zu installieren:

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Aktualisieren Sie als Nächstes den Paketindex:

      Installieren Sie dann den Zabbix-Agenten:

      • sudo apt install zabbix-agent

      Zwar unterstützt Zabbix zertifikatbasierte Verschlüsselung, doch ist die Einrichtung einer Zertifizierungsstelle nicht Teil dieses Tutorials. Sie können jedoch Pre-Shared Keys (PSK) verwenden, um die Verbindung zwischen dem Server und Agenten zu sichern.

      Erstellen Sie zunächst einen PSK:

      • sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

      Zeigen Sie den Schlüssel mit cat an, damit Sie ihn kopieren können:

      • cat /etc/zabbix/zabbix_agentd.psk

      Der Schlüssel wird in etwa so aussehen:

      Output

      75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca

      Speichern Sie ihn für später; Sie brauchen ihn noch, um den Host konfigurieren.

      Bearbeiten Sie nun die Zabbix-Agenteneinstellungen, um die sichere Verbindung zum Zabbix-Server einzurichten. Öffnen Sie die Konfigurationsdatei für den Agenten in Ihrem Texteditor:

      • sudo nano /etc/zabbix/zabbix_agentd.conf

      Jede Einstellung innerhalb dieser Datei wird über informative Kommentare in der Datei dokumentiert; Sie müssen jedoch nur einige von ihnen bearbeiten.

      Zuerst müssen Sie die IP-Adresse des Zabbix-Servers bearbeiten. Suchen Sie nach dem folgenden Abschnitt:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: Server
      #       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.
      #       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: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
      #
      # Mandatory: yes, if StartAgents is not explicitly set to 0
      # Default:
      # Server=
      
      Server=127.0.0.1
      ...
      

      Ändern Sie den Standardwert in die IP-Adresse Ihres Zabbix-Servers:

      /etc/zabbix/zabbix_agentd.conf

      ...
      Server=zabbix_server_ip_address
      ...
      

      Standardmäßig verbindet sich der Zabbix-Server mit dem Agenten. Bei einigen Überprüfungen (z. B. Überwachung der Protokolle) ist jedoch eine umgekehrte Verbindung erforderlich. Für eine korrekte Funktionsweise müssen Sie die Adresse des Zabbix-Servers und einen eindeutigen Hostnamen angeben.

      Finden Sie den Abschnitt, der die aktiven Prüfungen konfiguriert, und ändern Sie die Standardwerte:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ##### Active checks related
      
      ### Option: ServerActive
      #       List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
      #       If port is not specified, default port is used.
      #       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
      #       If port is not specified, square brackets for IPv6 addresses are optional.
      #       If this parameter is not specified, active checks are disabled.
      #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
      #
      # Mandatory: no
      # Default:
      # ServerActive=
      
      ServerActive=zabbix_server_ip_address
      
      ### Option: Hostname
      #       Unique, case sensitive hostname.
      #       Required for active checks and must match hostname as configured on the server.
      #       Value is acquired from HostnameItem if undefined.
      #
      # Mandatory: no
      # Default:
      # Hostname=
      
      Hostname=Second Ubuntu Server
      ...
      

      Suchen Sie als Nächstes nach dem Bereich, der die sichere Verbindung mit dem Zabbix-Server konfiguriert, und aktivieren Sie PSK-Unterstützung. Finden Sie den Abschnitt TLSConnect, der so aussieht:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSConnect
      #       How the agent should connect to server or proxy. Used for active checks.
      #       Only one value can be specified:
      #               unencrypted - connect without encryption
      #               psk         - connect using TLS and a pre-shared key
      #               cert        - connect using TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSConnect=unencrypted
      ...
      

      Fügen Sie dann diese Zeile hinzu, um PSK-Unterstützung zu konfigurieren:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSConnect=psk
      ...
      

      Suchen Sie als Nächstes den Abschnitt TLSAccept, der so aussieht:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSAccept
      #       What incoming connections to accept.
      #       Multiple values can be specified, separated by comma:
      #               unencrypted - accept connections without encryption
      #               psk         - accept connections secured with TLS and a pre-shared key
      #               cert        - accept connections secured with TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSAccept=unencrypted
      ...
      

      Konfigurieren Sie eingehende Verbindungen so, dass sie Pre-Shared Keys unterstützen, indem Sie folgende Zeile hinzufügen:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSAccept=psk
      ...
      

      Suchen Sie als Nächstes den Abschnitt TLSPSKIdentity, der so aussieht:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKIdentity
      #       Unique, case sensitive string used to identify the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKIdentity=
      ...
      

      Wählen Sie einen eindeutigen Namen, um Ihren Pre-Shared Key zu identifizieren, indem Sie diese Zeile hinzufügen:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKIdentity=PSK 001
      ...
      

      Sie werden ihn als PSK ID verwenden, wenn Sie Ihren Host über die Zabbix-Weboberfläche hinzufügen.

      Legen Sie dann die Option fest, die auf Ihren zuvor erstellten Pre-Shared Key verweist. Suchen Sie nach der Option TLSPSKFile:

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKFile
      #       Full pathname of a file containing the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKFile=
      ...
      

      Fügen Sie diese Zeile hinzu, um den Zabbix-Agent auf die von Ihnen erstellte PSK-Datei zu verweisen:

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
      ...
      

      Speichern und schließen Sie die Datei. Jetzt können Sie den Zabbix-Agenten neu starten und ihn so einrichten, dass er beim Booten gestartet wird:

      • sudo systemctl restart zabbix-agent
      • sudo systemctl enable zabbix-agent

      Überprüfen Sie zur Sicherheit, ob der Zabbix-Agent ordnungsgemäß ausgeführt wird:

      • sudo systemctl status zabbix-agent

      Sie werden den folgenden Status sehen, was zeigt, dass der Agent ausgeführt wird:

      Output

      ● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 08:19:54 UTC; 25s ago ...

      Der Agent wird an Port 10050 nach Verbindungen vom Server lauschen. Konfigurieren Sie UFW so, dass Verbindungen zu diesem Port zugelassen werden:

      Mehr über UFW erfahren Sie in Einrichten einer Firewall mit UFW unter Ubuntu 20.04.

      Ihr Agent ist nun bereit, Daten an den Zabbix-Server zu senden. Um ihn verwenden zu können, müssen Sie ihn jedoch noch über die Webkonsole des Servers verlinken. Im nächsten Schritt werden Sie die Konfiguration abschließen.

      Schritt 7 — Hinzufügen des neuen Host zum Zabbix-Server

      Die Installation des Agenten auf einem Server, den Sie überwachen möchten, ist nur die halbe Arbeit. Jeder Host, den Sie überwachen möchten, muss beim Zabbix-Server registriert werden. Das können Sie über die Weboberfläche tun.

      Melden Sie sich bei der Weboberfläche des Zabbix-Servers an, indem Sie zur Adresse http://zabbix_server_name oder https://zabbix_server_name navigieren:

      Der Zabbix-Anmeldebildschirm

      Nachdem Sie sich angemeldet haben, klicken Sie auf Konfiguration und dann in der linken Navigationsleiste auf Hosts. Klicken Sie dann in der rechten oberen Ecke des Bildschirms auf die Schaltfläche Host erstellen. Dadurch wird die Hostkonfigurationsseite geöffnet.

      Erstellen eines Hosts

      Passen Sie den Hostnamen und die IP-Adresse so an, dass sie den Hostnamen und die IP-Adresse Ihres zweiten Ubuntu-Servers widerspiegeln. Fügen Sie den Host dann einer Gruppe hinzu. Sie können eine bestehende Gruppe auswählen, z. B. Linux-Server, oder eine eigene Gruppe erstellen. Der Host kann Mitglied in mehreren Gruppen sein. Geben Sie dazu den Namen einer bestehenden oder neuen Gruppe im Feld Gruppen ein und wählen Sie den gewünschten Wert aus der vorgeschlagenen Liste aus.

      Klicken Sie vor dem Hinzufügen der Gruppe auf die Registerkarte Vorlagen.

      Hinzufügen einer Vorlage zum Host

      Geben Sie im Suchfeld Template OS Linux by Zabbix agent ein und wählen Sie dann die Vorlage aus der Liste aus, um sie dem Host hinzuzufügen.

      Navigieren Sie als Nächstes zur Registerkarte Verschlüsselung. Wählen Sie sowohl für Verbindungen zu Host als auch für Verbindungen von Host PSK aus. Setzen Sie dann die PSK-Identität auf PSK 001, was der Wert der zuvor konfigurierten TLSPSKIdentity-Einstellung des Zabbix-Agenten ist. Setzen Sie dann den PSK-Wert auf den Schlüssel, den Sie für den Zabbix-Agenten generiert haben. Es ist der Wert, den Sie in der Datei /etc/zabbix/zabbix_agentd.psk auf dem Agentengerät gespeichert haben.

      Einrichten der Verschlüsselung

      Klicken Sie abschließend unten im Formular auf die Schaltfläche Hinzufügen, um den Host zu erstellen.

      Sie werden Ihren neuen Host in der Liste sehen. Warten Sie eine Minute lang und laden Sie die Seite neu, bis Sie grüne Markierungen sehen, was bedeutet, dass alles ordnungsgemäß funktioniert und die Verbindung verschlüsselt ist.

      Zabbix zeigt Ihren neuen Host

      Wenn Sie zusätzliche Server haben, die Sie überwachen möchten, müssen Sie sich bei jedem Host anmelden, den Zabbix-Agenten installieren, einen PSK generieren, den Agenten konfigurieren und den Host zur Weboberfläche hinzufügen (genauso wie beim ersten Host).

      Der Zabbix-Server überwacht nun Ihren zweiten Ubuntu-Server. Erstellen Sie nun E-Mail-Benachrichtigungen, um über Probleme informiert zu werden.

      Schritt 8 — Konfigurieren von E-Mail-Benachrichtigungen

      Zabbix unterstützt automatisch verschiedene Arten von Benachrichtigungen: E-Mail, OTRS, Slack, Telegram, SMS etc. Eine vollständige Liste von Integrationen finden Sie auf der Zabbix-Website.

      Als Beispiel werden wir in diesem Tutorial Benachrichtigungen für den Medientyp E-Mail konfigurieren.

      Klicken Sie auf Administration und dann in der linken Navigationsleiste auf Medientypen. Sie werden eine Liste mit allen Medientypen sehen. Es gibt zwei vorkonfigurierte Optionen für E-Mails: für die Klartextbenachrichtigung und für die HTML-Benachrichtigungen. In diesem Tutorial werden Sie eine Klartextbenachrichtigung verwenden. Klicken Sie auf E-Mail.

      Passen Sie die SMTP-Optionen gemäß den Einstellungen Ihres E-Mail-Dienstes an. In diesem Tutorial werden SMTP-Funktionen von Gmail verwendet, um E-Mail-Benachrichtigungen einzurichten; wenn Sie weitere Informationen dazu wünschen, lesen Sie Verwenden des SMTP-Servers von Google.

      Anmerkung: Wenn Sie eine 2-Schritt-Verifizierung mit Gmail verwenden, müssen Sie ein App-Passwort für Zabbix generieren. Sie müssen bei der Einrichtung ein App-Passwort nur einmal eingeben. Anweisungen zum Generieren dieses Passworts finden Sie im Google Help Center.

      Wenn Sie Gmail verwenden, geben Sie smtp.gmail.com in das Feld SMTP-Server ein, 465 in das Feld SMTP-Serverport, gmail.com in SMTP helo und Ihre E-Mail-Adresse in SMTP-E-Mail. Wählen Sie dann SSL/TLS für Verbindungssicherheit und Benutzername und Passwort für Authentifizierung. Geben Sie Ihre Gmail-Adresse als Benutzernamen und das von Ihnen über Ihr Google-Konto generierte App-Passwort als Passwort ein.

      Einrichten des Medientyps E-Mail

      Auf der Registerkarte Nachrichtenvorlagen können Sie die Liste der vordefinierten Nachrichten für verschiedene Arten von Benachrichtigungen sehen. Klicken Sie abschließend unten im Formular auf die Schaltfläche Aktualisieren, um die E-Mail-Parameter zu aktualisieren.

      Jetzt können Sie das Senden von Benachrichtigungen testen. Klicken Sie dazu in der entsprechenden Zeile auf den unterstrichenen Link Testen.

      Sie werden ein Popup-Fenster sehen. Geben Sie Ihre E-Mail-Adresse in das Feld Senden an ein und klicken Sie auf Testen. Sie werden eine Nachricht zum erfolgreichen Versand sehen und eine Testnachricht erhalten.

      Testen von E-Mail

      Schließen Sie das Popup-Fenster durch Klicken auf die Schaltfläche Abbrechen.

      Erstellen Sie nun einen neuen Benutzer. Klicken Sie auf Administration und dann in der linken Navigationsleiste auf Benutzer. Sie werden die Liste der Benutzer sehen. Klicken Sie dann in der rechten oberen Ecke des Bildschirms auf die Schaltfläche Benutzer erstellen. Damit wird die Seite für die Benutzerkonfiguration geöffnet:

      Erstellen eines Benutzers

      Geben Sie den neuen Benutzernamen im Feld Alias ein und legen Sie ein neues Passwort fest. Fügen Sie als Nächstes den Benutzer zur Administratorgruppe hinzu. Geben Sie Zabbix administrators in das Feld Gruppen ein und wählen Sie die Gruppe aus der vorgeschlagenen Liste aus.

      Sobald Sie die Gruppe hinzugefügt haben, klicken Sie auf die Registerkarte Medien und dann auf den unterstrichenen Link Hinzufügen (nicht auf die Schaltfläche Hinzufügen darunter). Sie werden ein Popup-Fenster sehen.

      Hinzufügen einer E-Mail-Adresse

      Wählen Sie die Option E-Mail aus dem Dropdownmenü Typ aus. Geben Sie Ihre E-Mail-Adresse in das Feld Senden an ein. Sie können die restlichen Optionen bei ihren Standardwerten belassen. Klicken Sie unten zum Übermitteln auf die Schaltfläche Hinzufügen.

      Navigieren Sie nun zur Registerkarte Berechtigungen. Wählen Sie Zabbix Super Admin aus dem Dropdownmenü Benutzertyp aus.

      Klicken Sie abschließend unten im Formular auf die Schaltfläche Hinzufügen, um den Benutzer zu erstellen.

      Anmerkung: Eine Verwendung des Standardpassworts ist nicht sicher. Um das Passwort des integrierten Benutzers Admin zu ändern, klicken Sie in der Benutzerliste auf das entsprechende Alias. Klicken Sie dann auf Passwort ändern, geben Sie ein neues Passwort ein und bestätigen Sie die Änderung durch Klicken auf Aktualisieren.

      Jetzt müssen Sie Benachrichtigungen aktivieren. Klicken Sie auf die Registerkarte Konfiguration und dann in der linken Navigationsleiste auf Aktionen. Sie werden eine vorkonfigurierte Aktion sehen, die zum Senden von Benachrichtigungen an alle Zabbix-Administratoren dient. Sie können die Einstellungen überprüfen und ändern, indem Sie auf den Namen klicken. Verwenden Sie für die Zwecke dieses Tutorials die Standardparameter. Um die Aktion zu aktivieren, klicken Sie in der Spalte Status auf den roten Link für Deaktiviert.

      Jetzt sind Sie bereit dazu, Warnungen zu erhalten. Im nächsten Schritt werden Sie eine Warnung erstellen, um Ihre Benachrichtigungskonfiguration zu testen.

      Schritt 9 — Erstellen einer Testwarnung

      In diesem Schritt erstellen Sie eine Testwarnung, um sicherzustellen, dass alles richtig verbunden ist. Standardmäßig behält Zabbix den Überblick über die Menge an freien Speicherplatz auf Ihrem Server. Der Server erkennt automatisch alle bereitgestellten Datenträger und fügt die entsprechenden Prüfungen hinzu. Diese Erkennungsfunktion wird jede Stunde ausgeführt; Sie müssen also eine Weile warten, bis die Benachrichtigung ausgelöst wird.

      Erstellen Sie eine temporäre Datei, die groß genug ist, um die Zabbix-Warnung bei Auslastung des Dateisystems auszulösen. Melden Sie sich dazu bei Ihrem zweiten Ubuntu-Server an, wenn Sie nicht bereits verbunden sind:

      • ssh sammy@second_ubuntu_server_ip_address

      Überprüfen Sie als Nächstes den freien Speicherplatz auf dem Server. Sie können den Befehl df verwenden, um das herauszufinden:

      Der Befehl df wird die Auslastung des Datenträgers in Ihrem Dateisystem melden. Der Befehl -h wird die Ausgabe für Menschen lesbar machen. Sie sehen eine Ausgabe wie die folgende:

      Output

      Filesystem Size Used Avail Use% Mounted on /dev/vda1 78G 1.4G 77G 2% /

      In diesem Fall beträgt der freie Speicherplatz 77 GB. Ihr freier Speicherplatz kann sich davon unterscheiden.

      Verwenden Sie den Befehl fallocate, mit dem Sie den Speicherplatz für eine Datei vorab zuweisen oder freigeben können, um eine Datei zu erstellen, die mehr als 80 % des verfügbaren Speicherplatzes benötigt. Das wird ausreichen, um die Warnung auszulösen:

      • fallocate -l 70G /tmp/temp.img

      Nach etwa einer Stunde wird Zabbix eine Warnung zur Menge des freien Speicherplatzes auslösen und die von Ihnen konfigurierte Aktion ausführen (also die Benachrichtigungsmeldung senden). Sie können Ihren Posteingang auf die Nachricht vom Zabbix-Server prüfen. Sie werden eine Nachricht sehen, die wie folgt aussieht:

      Problem started at 09:49:08 on 2020.06.12
      Problem name: /: Disk space is low (used > 80%)
      Host: Second Ubuntu Server
      Severity: Warning
      Operational data: Space used: 71.34 GB of 77.36 GB (92.23 %)
      Original problem ID: 106
      

      Sie können auch zur Registerkarte Überwachung und dann zum Dashboard navigieren, um die Benachrichtigung und ihre Details anzuzeigen.

      Haupt-Dashboard

      Nachdem Sie nun wissen, dass die Warnungen funktionieren, löschen Sie die von Ihnen erstellte temporäre Datei, um den Speicherplatz wieder freizugeben:

      Nach einer Minute wird Zabbix die Wiederherstellungsnachricht senden und die Warnmeldung aus dem Haupt-Dashboard verschwindet.

      Zusammenfassung

      In diesem Tutorial haben Sie gelernt, wie Sie eine einfache und sichere Überwachungslösung einrichten können, die Ihnen bei der Überwachung des Status Ihrer Server hilft. Die Lösung kann Sie nun vor Problemen warnen und bietet Ihnen die Möglichkeit, die in Ihrer IT-Infrastruktur vorkommenden Prozesse zu analysieren.

      Um mehr über die Einrichtung einer Überwachungsinfrastruktur zu erfahren, lesen Sie unsere Seite zum Thema Überwachung.



      Source link