One place for hosting & domains

      segura

      Cómo usar SFTP para transferir archivos con un servidor remoto de manera segura


      Introducción

      FTP, o “File Transfer Protocol” (Protocolo de transferencia de archivos), era un método popular sin cifrar para transferir archivos entre dos sistemas remotos.

      SFTP, que significa Protocolo de transferencia de archivos SSH o Protocolo de transferencia segura de archivos, es un protocolo independiente empaquetado con SSH que funciona de forma similar pero a través de una conexión segura. La ventaja es la capacidad de aprovechar una conexión segura para transferir archivos y recorrer el sistema de archivos en los sistemas local y remoto.

      En casi todos los casos, es preferible usar SFTP, en vez de FTP, debido a sus características de seguridad subyacentes y a su capacidad para aprovechar una conexión SSH. FTP es un protocolo no seguro que solo debería utilizarse en casos limitados o en redes de confianza.

      Aunque SFTP está integrado en muchas herramientas gráficas, esta guía mostrará cómo utilizarlo en su interfaz de línea de comandos interactiva.

      Cómo conectarse con SFTP

      De forma predeterminada, SFTP utiliza el protocolo SSH para autenticarse y establecer una conexión segura. Por eso, están disponibles los mismos métodos de autenticación que en SSH.

      Aunque las contraseñas son fáciles de usar y se configuran de forma predeterminada, le recomendamos crear claves SSH y transferir su clave pública a cualquier sistema al que necesite acceder. Eso es mucho más seguro y puede ahorrarle tiempo a largo plazo.

      Consulte esta guía para configurar claves SSH para acceder a su servidor si aún no lo hizo.

      Si puede conectarse al equipo usando SSH, habrá completado todos los requisitos necesarios para usar SFTP para administrar archivos. Pruebe el acceso SSH con el siguiente comando:

      • ssh sammy@your_server_ip_or_remote_hostname

      Si esto funciona, salga de nuevo escribiendo:

      Ahora, podemos establecer una sesión SFTP ejecutando el siguiente comando:

      • sftp sammy@your_server_ip_or_remote_hostname

      Conectará el sistema remoto, y la entrada de su línea de comandos cambiará a una instrucción SFTP.

      Si está trabajando en un puerto SSH personalizado (no el puerto 22 predeterminado), puede iniciar una sesión SFTP de la siguiente manera:

      • sftp -oPort=custom_port sammy@your_server_ip_or_remote_hostname

      Eso lo conectará al sistema remoto mediante el puerto especificado.

      Cómo obtener ayuda en SFTP

      El comando más útil que debe conocer primero es el comando help. Este comando le da acceso a un resumen de la ayuda en SFTP. Puede invocarlo escribiendo cualquiera de estos en la instrucción:

      o

      Eso mostrará una lista de los comandos disponibles:

      Output

      Available commands: bye Quit sftp cd path Change remote directory to 'path' chgrp grp path Change group of file 'path' to 'grp' chmod mode path Change permissions of file 'path' to 'mode' chown own path Change owner of file 'path' to 'own' df [-hi] [path] Display statistics for current directory or filesystem containing 'path' exit Quit sftp get [-Ppr] remote [local] Download file help Display this help text lcd path Change local directory to 'path' . . .

      En las siguientes secciones, exploraremos algunos de los comandos que verá.

      Cómo navegar con SFTP

      Podemos navegar a través de la jerarquía de archivos del sistema remoto usando varios comandos que funcionan de forma similar a sus contrapartes de shell.

      Primero, orientémonos averiguando en qué directorio estamos actualmente en el sistema remoto. Al igual que en una sesión típica de shell, podemos escribir lo siguiente para obtener el directorio actual:

      Output

      Remote working directory: /home/demouser

      Podemos ver el contenido del directorio actual del sistema remoto con otro comando familiar:

      Output

      Summary.txt info.html temp.txt testDirectory

      Tenga en cuenta que los comandos en la interfaz SFTP no son los comandos de shell normales y no cuentan con la misma cantidad de funciones, pero implementan algunos de los indicadores opcionales más importantes:

      Output

      drwxr-xr-x 5 demouser demouser 4096 Aug 13 15:11 . drwxr-xr-x 3 root root 4096 Aug 13 15:02 .. -rw------- 1 demouser demouser 5 Aug 13 15:04 .bash_history -rw-r--r-- 1 demouser demouser 220 Aug 13 15:02 .bash_logout -rw-r--r-- 1 demouser demouser 3486 Aug 13 15:02 .bashrc drwx------ 2 demouser demouser 4096 Aug 13 15:04 .cache -rw-r--r-- 1 demouser demouser 675 Aug 13 15:02 .profile . . .

      Para llegar a otro directorio, podemos ejecutar este comando:

      Ahora, podemos recorrer el sistema de archivos remotos, pero ¿qué pasa si necesitamos acceder a nuestro sistema de archivos local? Podemos dirigir los comandos al sistema de archivos locales precediéndolos con una l que hace referencia a “local”.

      Todos los comandos examinados hasta ahora tienen equivalentes locales. Podemos imprimir el directorio local de trabajo:

      Output

      Local working directory: /Users/demouser

      Podemos enumerar el contenido del directorio actual en el equipo local:

      Output

      Desktop local.txt test.html Documents analysis.rtf zebra.html

      También podemos cambiar el directorio con el que deseamos interactuar en el sistema local:

      Cómo transferir archivos con SFTP

      Navegar por los sistemas de archivos locales y remotos es muy poco útil si no se puede transferir archivos entre ambos.

      Transferencia de archivos remotos al sistema local

      Si queremos descargar archivos de nuestro host remoto, podemos hacerlo ejecutando el siguiente comando:

      Output

      Fetching /home/demouser/remoteFile to remoteFile /home/demouser/remoteFile 100% 37KB 36.8KB/s 00:01

      Como puede ver, de forma predeterminada, el comando get descarga un archivo remoto a un archivo con el mismo nombre en el sistema de archivos locales.

      Podemos copiar el archivo remoto a un nombre diferente especificando el nombre después:

      El comando get también toma algunos indicadores de opción. Por ejemplo, podemos copiar un directorio y todo su contenido especificando la opción recursiva:

      Podemos indicarle a SFTP que mantenga los permisos y los tiempos de acceso adecuados utilizando el indicador -P o -p:

      Transferencia de archivos locales al sistema remoto

      Transferir archivos al sistema remoto es tan fácil como utilizar el comando correctamente llamado “put”:

      Output

      Uploading localFile to /home/demouser/localFile localFile 100% 7607 7.4KB/s 00:00

      Los mismos indicadores que funcionan con get se aplican a put. Para copiar un directorio local completo, puede ejecutar:

      Nota: Actualmente, hay un error en las versiones de OpenSSH incluidas en las versiones actuales de Ubuntu (al menos de la versión 14.04 a la 15.10) que impide que el comando anterior funcione correctamente. Cuando se ejecuta el comando anterior para transferir contenido a un servidor utilizando la versión con errores de OpenSSH, se producirá el siguiente error: Couldn't canonicalise: No such file or directory (No se pudo canonizar: no existe tal archivo o directorio).

      Para resolver este problema, primero cree el directorio de destino en el extremo remoto escribiendo mkdir localDirectory. Luego, el comando anterior debería completarse sin errores.

      Una herramienta familiar que es útil para descargar y cargar archivos es el comando df, que funciona de forma similar a la versión de la línea de comandos. Al utilizarla, puede verificar que tiene suficiente espacio para completar las transferencias que le interesan:

      Output

      Size Used Avail (root) %Capacity 19.9GB 1016MB 17.9GB 18.9GB 4%

      Tenga en cuenta que no hay ninguna variación local de este comando, pero podemos solucionarlo ejecutando ! como comando.

      El comando ! nos lleva a un shell local, donde podemos ejecutar cualquier comando disponible en nuestro sistema local. Podemos verificar el uso del disco escribiendo lo siguiente:

      y luego

      Output

      Filesystem Size Used Avail Capacity Mounted on /dev/disk0s2 595Gi 52Gi 544Gi 9% / devfs 181Ki 181Ki 0Bi 100% /dev map -hosts 0Bi 0Bi 0Bi 100% /net map auto_home 0Bi 0Bi 0Bi 100% /home

      Cualquier otro comando local funcionará de la manera esperada. Para volver a su sesión SFTP, escriba lo siguiente:

      Ahora, debería ver el retorno de la instrucción de SFTP.

      Manipulaciones de archivos simples con SFTP

      SFTP le permite realizar el tipo de mantenimiento básico de archivos que es útil cuando se trabaja con jerarquías de archivos.

      Por ejemplo, puede cambiar el propietario de un archivo en el sistema remoto con:

      Observe cómo, a diferencia del comando chmod del sistema, el comando SFTP no acepta nombres de usuario, sino que utiliza UID. Lamentablemente, no hay una manera sencilla de saber el UID adecuado desde la interfaz SFTP.

      Se puede realizar una solución alternativa más compleja con:

      • get /etc/passwd
      • !less passwd

      Output

      root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh . . .

      Observe cómo en vez de utilizar el comando ! en sí, lo utilizamos como prefijo para un comando de shell local. Eso funciona para ejecutar cualquier comando disponible en nuestro equipo local y podría haberse utilizado anteriormente con el comando local df.

      El UID se encuentra en la tercera columna del archivo, delimitado por caracteres de dos puntos.

      De manera similar, podemos cambiar el propietario del grupo de un archivo con:

      De nuevo, no existe una forma sencilla de obtener una lista de los grupos del sistema remoto. Podemos solucionarlo con el siguiente comando:

      • get /etc/group
      • !less group

      Output

      root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4: tty:x:5: disk:x:6: lp:x:7: . . .

      La tercera columna contiene el ID del grupo asociado con el nombre en la primera columna. Eso es lo que buscamos.

      Por suerte, el comando chmod funciona correctamente en el sistema de archivos remotos:

      Output

      Changing mode on /home/demouser/publicFile

      No existe ningún comando para manipular permisos de archivo locales, pero puede quitar la máscara local para que todos los archivos que se copien al sistema local tengan los permisos adecuados.

      Eso se puede lograr con el comando lumask:

      Output

      Local umask: 022

      Ahora, todos los archivos regulares descargados (siempre que no se utilice el indicador -p) tendrán 644 permisos.

      SFTP permite crear directorios en sistemas locales y en sistemas remotos con lmkdir y mkdir, respectivamente. Estos funcionan de la manera prevista.

      El resto de los comandos del archivo solo apuntan al sistema de archivos remotos:

      Estos comandos replican el comportamiento básico de las versiones del shell. Si necesita realizar estas acciones en el sistema de archivos local, recuerde que puede ingresar a un shell ejecutando este comando:

      O ejecutar un comando único en el sistema local anteponiendo ! al comando de esta manera:

      Cuando termine con la sesión SFTP, utilice exit o bye para cerrar la conexión.

      Conclusión

      Aunque SFTP es una herramienta simple, es muy útil para administrar servidores y transferir archivos entre ellos.

      Por ejemplo, puede usar SFTP para permitir que determinados usuarios transfieran archivos sin acceso SSH. Para obtener más información sobre este proceso, consulte nuestro tutorial Cómo habilitar SFTP sin acceso de shell.

      Si está acostumbrado a utilizar FTP o SCP para realizar sus transferencias, SFTP es una buena forma de aprovechar las ventajas de ambos. Si bien no es adecuado para todas las situaciones, es útil tenerlo en su repertorio por ser una herramienta flexible.



      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