Henry
Tomcat 11 y Geoserver 3.0.1 implementado en Debian 13.x
Pre requisitos
Como todo servicio implementado para la web es necesario una serie de requisitos previos, Tomcat es un servidor web basado en java; por lo tanto es importante instalar previamente estas aplicaciones; considerando que todo lo haremos a través de la terminal o CLI de nuestro Debian 13; suponiendo naturalmente que Debian ya se encuentra instalado previamente, caso contrario visite el tutorial de instalación de Debian.
Dicho esto debemos instalar la ultima versión de java con la siguiente linea de comandos:
# apt install default-jdk -y
Una ves terminado el proceso podemos verificar la versión instalada de java con la instrucción:
# java -version
Donde veremos algo similar a esto:
Openjdk version "21.0.12.1" 2026-08-18 OpenJDK Runtime Environment (build 21.0.12.1+1-1-deb13u1-Debian) OpenJDK 64-Bit Server VM (build 21.0.12.1+1-1-deb13u1-Debian, mixed mode, sharing)
Instalación de Tomcat 11
Ahora bien es momento de instalar Tomacat desde el propio repositorio de Debian (es posible que encuentre otro métodos un poco mas complejos. sugiero seguir este método detallado en este tutorial)
Mediante el siguiente comando solicitamos la instalación de Tomcat 11 y todas sus complementos :
# apt install tomcat10 tomcat10-admin tomcat10-user tomcat10-docs
Ahora verificamos si el servidio instalado se encuentra operativo con la instrucción:
# systemctl status tomcat11
Si no se ha iniciado podemos intentarlo con:
# systemctl start tomcat11
Y si deseamos cerciorarnos que arranque automáticamente con el sistema lo hacemos con:
# systemctl enable tomcat11
Ahora bien, debemos saber donde se encuentran todos los archivos de configuración (conf) de tomacat 11; los cuales por lo general están en /etc/tomcat11 y los podemos ver con la instrucción en linea de comandos:
# ls /etc/tomcat11
Verificación de configuración del servidor Tomcat
Para poder verificar la configuración debemos editar el siguiente archivo:
# nano /etc/tomcat11/server.xml
Ahí debemos asegurarnos que el puerto este debidamente configurado, así:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
# systemctl restart tomcat11
Acceso a la plataforma Tomcat
http://tu_IP:8080

Configurar el Administrador web de Tomcat
# nano /etc/tomcat10/tomcat-users.xml
<role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="usuario" password="contraseña" roles="manager-gui,admin-gui"/>
# systemctl restart tomcat11
http://direccion_IP>:8080/manager/html

Geoserver
GeoServer es un servidor de código abierto escrito en Java que permite compartir, procesar, visualizar y editar datos geoespaciales a través de la web.
Características principales
• Código abierto y Java: Es gratuito y funciona en múltiples sistemas operativos.
• Interoperabilidad (OGC): Sigue los estándares del Open Geospatial Consortium, lo que permite que los mapas y datos se conecten fácilmente a visores web o software SIG.
• Múltiples fuentes de datos: Se conecta a bases de datos espaciales como PostGIS, archivos shapefile, GeoTIFF, entre otros.
• Interfaz web: Cuenta con un panel de administración basado en el navegador para configurar capas, estilos y servicios.
Principales servicios que ofrece
• WMS (Web Map Service): Genera y publica mapas en formato de imagen (mapas estáticos o dinámicos para visualizar).
• WFS (Web Feature Service): Permite consultar, descargar y editar los datos geográficos vectoriales reales.
• WCS (Web Coverage Service): Sirve datos de cobertura (como imágenes de satélite o modelos de elevación del terreno).
• WMTS (Web Map Tile Service): Entrega mapas precargados en teselas (tiles) para una visualización rápida en la web
Instalación de GeoServer
La instalación de Geoserver consiste en la descarga de la aplicación y su despliegue , para ello debemos ingresar al sitio web de GeoServer en la siguiente dirección:
https://geoserver.org/release/stable/
y desde ahí localizamos el link de descarga «Web Archive» y descargamos el archivo comprimido en formato .ZIP

# wget https://sourceforge.net/projects/geoserver/files/GeoServer/3.0.1/geoserver-3.0.1-war.zip
# mv gesoserver.war /var/lib/tomcat11/webapps
# systemctl restart tomacat11
http://tu_IP:8080/geoserver/

Lanzar aplicación desde Apache
Inicialmente debemos suponer que no esta instalado el apache, para ello debemos instalarlo con el siguiente comando:
# apt install apache2 -y
Si queremos verificar su funcionamiento:
# systemctl status apache2
Para ello debemos crear un servidor virtual y como siempre dichas configuraciones se encuentran en el siguiente directorio o ruta: /etc/apache2/sites-available/
Es aquí donde debemos crear el archivo tomcat.conf con la siguiente instrucción:
# nano /etc/apache2/sites-available/tomcat.conf
Dentro colocamos las siguientes instrucciones:
<VirtualHost *:80>
ServerName 192.168.1.14
ProxyRequests Off
ProxyPreserveHost On
# Redireccion de GeoServer
ProxyPass /geoserver http://localhost:8080/geoserver
ProxyPassReverse /geoserver http://localhost:8080/geoserver
# Opcional: Permitir CORS para visualizadores de mapas web
Header set Access-Control-Allow-Origin "*"
ErrorLog ${APACHE_LOG_DIR}/geoserver_error.log
CustomLog ${APACHE_LOG_DIR}/geoserver_access.log combined
</VirtualHost>
Habilitar la configuración de Apache y reiniciar el servicio
# a2ensite tomcat.conf
# systemctl restart apache2
Perdiste la clave de root de tu gestor de base de datos?
Eliminar clave de root en MariaDB (MySQL)
Si has perdido el acceso a tu sistema de base de datos de MariaDB o MySQL por cualquier circunstancia; en ese caso deberiamos tener la posibilidad de reiniciar las clave a password para poder ingresar y desde ahí cambiar la misma.
OJO: debes ser administrador del servidor o servicios o de un VPS ya que para poder ejecutar estos comandos debes haber ingresado como tal al sistema.
Úsalos con mucho cuidado y bajo tu propia responsabilidad.
Primero debemos ingresar detener el servicio del SGDB MySQL con el comando
# systemctl stop mysql
Luego ingresamos a MySQL sin la verificación de privilegios con la siguiente linea, lo que hace es iniciar el servidor de manera segura ignorando las tablas de permisos y desactivando la red:
# mysqld_safe --skip-grant-tables --skip-networking &
Ahora nos conectamos a la base de datos
# mysql -u root
y ya dentro podemos cambiar la contraseña del root con las siguientes sentencias SQL
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'NuevaClave123'; # FLUSH PRIVILEGES;
Finalmente reinica el servicio SGDB
# pkill mysqld_safe # pkill mysqld # systemctl start mysql
o de plano reincidas todo el servidor y listo
Instalación de Docker en Debian 13.x
Docker es una plataforma creada con el fin de desarrollar, implementar y ejecutar aplicaciones dentro de contenedores. Lo cual permite a los desarrolladores realizar el empaquetado de nuestras aplicaciones junto a sus correspondientes dependencias dentro de una sola unidades estandarizadas conocidas bajo el término de contenedores de software.
El uso de esta tecnología permite construir sistemas bajo el principio de micro-servicios que permiten trabajar de manera transparente compartiendo recursos entre los servicios y cada uno en su propio contenedor.
Cómo instalarlo.
Como siempre se recomienda primero actualizar el sistema operativo, para ello realizamos los comando siguientes:
# sudo apt update # sudo apt install ca-certificates curl
Luego instalamos las llaves PGP para asegurar la autenticidad del sitio de descargas, esto lo hacemos en nuestro sistema operativo:
# install -m 0755 -d /etc/apt/keyrings # curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc # chmod a+r /etc/apt/keyrings/docker.asc
Luego debemos agregar el repositorio para APT que permitirá instalar Docker; para eso creamos el siguiente archivo docker.sources en la ruta de directorio /etc/apt/sources.list.d/ como siempre lo hacemos desde la CLI con la instrucción:
# tee /etc/apt/sources.list.d/docker.sources <<EOF Types: deb URIs: https://download.docker.com/linux/debian Suites: $(. /etc/os-release && echo "$VERSION_CODENAME") Components: stable Architectures: $(dpkg --print-architecture) Signed-By: /etc/apt/keyrings/docker.asc EOF
Ahora actualizamos el sistema una ves mas para que tome efecto las claves PGP y los repositorios que hemos y creado y a su ves instalamos Docker con:
# apt update # apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Verificamos la Instalación
Para verificar actualizamos una ves mas el sistema y ejecutamos el comando de verificacoin:
# apt update
# apt list --all-versions docker-ce
Estado del servicio Docker
Docker se ejecuta como un servicio dentro del Sistema Operativo; por lo tanto podemos además verificar si el mismo se esta ejecutando o no, e inclusive suspender su ejecución:
# systemctl status docker # systemctl stop docker # systemctl start docker
Listo, Docker esta openado!
Instalar PostgreSQL 18 en Debian 13.x
Que es Postgres ?
PostgreSQL es un Sistema de Gestión de Bases de Datos (SGDB) relacional orientado a objetos además libre, publicado bajo la licencia PostgreSQL.
Para instalar la versión 18.4 – siendo la más actualizada la momento de realizar este tutorial – es fundamental colocar el archivo que referencia al repositorio; en este caso usaremos el nuevo método que permite organizar de mejor manera el acceso a los repositorios.
Instalación de repositorio
Para Debian 13.x este paso ya no es necesario – OJO –
Para ello primero debemos traer las firmas que validan la autenticidad del repositorio con los siguientes comando:
# apt install curl ca-certificates
# sudo install -d /usr/share/postgresql-common/pgdg
# curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc –fail https://www.postgresql.org/media/keys/ACCC4CF8.asc
Con esto ya tenemos las firmas correctas; ahora debemos crear el fichero (archivo) que contiene el repositorio:
Ejecutamos:
# nano /etc/apt/sources.list.d/pgdg.sources
Se crea una archivo vacío y dentro colocamos lo siguiente:
Types: deb deb-src
URIs: https://apt.postgresql.org/pub/repos/apt
Suites: trixie-pgdg
Architectures: amd64
Components: main
Signed-By: /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc
Guardamos con Ctrl+o y salimos con Ctrl+x
Ahora si podemos ejecutar la actualización del sistema y por ende de este nuevo repositorio.
# sudo apt update
Una ves actualizado ya podemos instalar el postgresql versión 18.x, con la siguiente línea de comandos:
# apt install postgresql-18
Esperamos que el proceso finalice.
➡ Para las nuevas versiones de Debian empieza aquí
Instalación de postgres en nuestro Debian 13.x
# apt install -y postgresql postgresql-contrib
Verificamos si se instaló correctamente y esta activo con
# systemctl status postgresql
Si ese no es el caso podemos usar estas instrucciones para iniciar y activar los servicios
# sudo systemctl start postgresql # sudo systemctl enable postgresql
Comprobar la instalación
Una vez realizado los pasos anteriores verificamos que el servicio de SGDB postgresql, se encuentre operando usamos para ello el comando:
# systemctl status postgresql
Donde veremos que efectivamente se encuentra Activo.
Si deseamos verificar la versión usamos el comando:
# psql -V
Crear una bases de datos
Crear una base de datos es muy sencillo, desde la consola de postgres usamos la sentencia SQL y listo
$ CREATE DATABASE mi_base_de_datos;
Para listar las bases de datos disponible, simplemente podemos hacerlo de dos maneras, la primera es suponiendo que estamos dentro de la consola de postgres, simplemente colocamos el siguiente comando:
\l
Y si estamos fuera de la consola de postgres, pero dentro del shell de usuario postgres colocamos:
$ psql -l
También lo puedes hacer con una consulta directa SQL , suponiendo que estas dentro de la terminal de postgres, con la lineal
$ SELECT datname FROM pg_database;
y listo!
Eliminar una base de datos
Desde la consola de postgres lo hacemos con la instrucción SQL:
$ DROP DATABASE [IF EXISTS] nombre_de_la_base [WITH (FORCE)];
Crear Usuarios
Crear un usuario administrador del sistema al que llamamos «postgres»
Para eso ingresamos en modo administrador con este usuario – que previamente al instalar se creo, pero no tiene permisos ni claves – nos logeamos con:
# su – postgres
Luego ingresamos al motor de postgres con
# psql
CREATE USER emilio WITH PASSWORD ‘password-del-usuario-emilio’;
GRANT ALL PRIVILEGES ON DATABASE facturas TO emilio;
para salir solo digita \q
Crear SUPERusuario para gestionar todas las bases de datos
Usamos la siguiente lineal de comandos a nivel de SQL:
$ CREATE ROLE nombre_usuario WITH SUPERUSER LOGIN PASSWORD ‘tu_contraseña’;
También podemos darle esos privilegios a un usuario común previamente creado:
$ ALTER ROLE nombre_usuario SUPERUSER;
Y así mismo otorgarle privilegios sobre una base de datos determinada
$ GRANT ALL PRIVILEGES ON DATABASE nombre_base_de_datos TO nombre_usuario;
Eliminar usuarios de las bases de datos postgres
A veces es necesario eliminar algún usuario creado en el motor de base de datos de postgres, para ello podemos usar varias tánicas, pero la mas usada y directa es la instrucción SQL, suponiendo obviamente que estamos dentro de la consola de postgres:
DROP USER nombre_del_usuario;
O desde el shell del usuario «postgres», colocamos la siguiente línea directamente
$ dropuser nombre_del_usuario
se puede colocar una lista de usuarios solo separándolos con comas entre ellos.
Algunos comando para mostrar privilegios de los Usuarios
\du
Muestra una lista de todos los roles (usuarios) del clúster, sus atributos (como superusuario o capacidad de crear bases de datos) y los grupos a los que pertenecen.
\du+
Muestra una versión extendida con información adicional de cada rol (como descripción o comentarios asignados).
\l
Muestra las bases de datos existentes junto con su propietario (dueño) y los permisos de acceso de cada una.
Pero también lo puedes hacer desde las instrucciones SQL asi:
SELECT rolname, rolsuper, rolinherit, rolcreaterole, rolcreatedb, rolcanlogin FROM pg_roles;
ó
SELECT usename, usesysid, usecreatedb, usesuper, userepl FROM pg_user;
Y finalmente así:
SELECT datname, datacl FROM pg_database;
Configurar un servidor DNS en Debian 11, 12, 13
DNS es el acrónimo de Domain Name System o Sistema de Nombres de Dominio, que es el método utilizado por Internet para traducir, de forma fácil de recordar, los nombres de dominios como por ejemplo ueb.edu.ec en lugar de su IP 181.224.197.134 de manera que sean entendibles por las personas y más fácil que si se trata de recordar secuencias numéricas, como es el caso de las direcciones IP.
Es el método utilizado por Internet para traducir, de forma fácil de recordar, los nombres de dominios, todo equipo o dispositivo conectado a Internet necesita de una dirección IP y que esta sea única de forma que pueda ser accesible desde cualquier punto de la red; generalmente estas IPs se denominan públicas.
Instalar bind
# apt install bind9 bind9-dnsutils
Luego debemos trasladarnos al directorio en el cual se instaló bind
# cd /etc/bind/
Y realizamos una copia del archivo named.conf.local por seguridad
# cp named.conf.local named.conf.local.bak
Ahora editaremos el archivo de configuración:
# nano /etc/bind/named.conf.local
Dentro del archivo colocaremos lo siguientes (este es un caso de ejemplo ud debe colocar el dominio que disponga); considerando que aquí agregamos las zonas que correspondan, pueden haber tantas como se requieran.
zone "tecnisoft.net" {
type master;
file "/etc/bind/db.tecnisoft.net";
};
Debe respetar la sintaxis tanto las comillas, llaves y punto y comas.
Para chequear si hemos hecho todo correcto usamos el comando:
# named-checkconf
Si todo estuvo bien hasta aquí no debe arrojar ningún mensaje, caso contrario se indicará que error ocurrió.
Ahora debemos crear los archivos de zona, con nano dentro del mismo directorio /etc/bind/ editamos el siguiente archivo de zona
# nano db.tecnisoft.net
y dentro colocamos la siguientes líneas, respetando la sintaxis, recuerde que cada zona va a requerir un archivo de configuración similar:
$TTL 86400 @ IN SOA ns1.tecnisoft.net. admin.tecnisoft.net. ( 2026042001 ; Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Negative Cache TTL ) ; @ IN NS ns1.tecnisoft.net. @ IN A 192.168.1.100 www IN A 192.168.1.100
Ahora bien nos queda finalmente editar el fichero named.conf.options en el mismo directorio.
# nano named.conf.options
Y dentro colocamos:
acl "trusted" {
127.0.0.0/8;
192.168.1.0/24; # Reemplaza con tu red local
localhost;
};
options {
directory "/var/cache/bind";
# Reenviadores: Consultas externas
forwarders {
8.8.8.8;
8.8.4.4;
};
# Seguridad: Consultas permitidas
allow-query { trusted; };
recursion yes;
# Escuchar en interfaces
listen-on { any; };
listen-on-v6 { any; };
dnssec-validation auto;
};
La instrucción forwarders va a permitir que para poder navegan en internet bind debe resolver las búsquedas hacia la internet; por ello colocamos el DNS de google u otro que mas nos convenga; en mi caso he usado el de Cloudflare.
Una ves hecha la configuración debemos reiniciar el servidor bind con el comando:
# systemctl restart bind9
Luego comprobamos las zonas en este caso:
# named-checkzone tecnisoft.com /etc/bind/db.tecnisoft.net
Si todo sale bien aparecerá lo siguiente:
zone tecnisoft.com/IN: loaded serial 2020121201
OK
Bien ya casi terminamos, ahora hay que decirle a nuestra máquina que resuelva las peticiones desde nuestra DNS; para ello debemos modificar lo siguiente:
# nano /etc/resolv.conf
Y dentro colocamos la IP de la máquina que tiene nuestro DNS, usando el comando nslookup indagamos si se resuelve el dominio.
# nslookup tecnisoft.net
LEMP en Debian 13, con MariaDB, PHP 8.x y phpMyAdmin 4.6.x
Un servidor LEMP consiste en instalar sobre un distro Linux; que en nuestro caso será Debian 13, NGINX como servidor web, MySQL como motor de bases de datos y PHP como lenguaje que permita la conexión entre la base de datos y las paginas web.Instalación de NGINX
# apt install nginx
# systemctl status nginx

# systemctl restart nginx
Instalación de PHP
# apt install php-fpm

Configuración de NGINX con PHP
# /etc/nginx/sites-available/default

# systemctl reload nginx
http:192.168.1.132/info.php

Instalación de MariaDB
# apt install mariadb-client mariadb-server php-mysql

Lo que habrá instalado el servidor y cliente de mariaDB y también la librería de conexión entre php y mysql; ambos lenguajes, el primero de script o gateway para las paginas web y el segundo la conexión con lenguaje mysql.
Es probable que durante la instalación nos solicite la contraseña del root para MySQL; de igual forma esperamos que el proceso termine; luego activamos e iniciamos los servicios de MariaDB:
# systemctl enable mariadb # systemctl start mariadb
y comprobamos con
# systemctl status mariadb
Listo ya podemos usar nuestro servidor LEMP !
Adminer

Adminer es una herramienta de gestión de bases de datos en línea, gratuita y de código abierto, escrita en PHP. Es una alternativa más ligera y sencilla a otras herramientas como phpMyAdmin, ya que se implementa fácilmente subiendo un único archivo PHP a un servidor. Adminer permite a los usuarios gestionar una amplia variedad de bases de datos, como MySQL, PostgreSQL, SQLite, MS SQL, Oracle y MongoDB, a través de una interfaz web.
Es una herramienta muy útil (si no te gusta la linea de comandos de Linux o CLI) para poder gestionar nuestras bases de datos sin complicaciones, muy fácil y sencillo de usar.
Para poder conseguir la herramienta puedes visitar la siguiente dirección web: https://www.adminer.org/en/.
Características clave
- Ligero: Al ser un solo archivo PHP, es muy fácil de implementar en un servidor, simplemente subiendo el archivo y accediendo a él desde un navegador.
- Múltiples bases de datos: Admite varios sistemas de gestión de bases de datos (SGBD) además de MySQL y MariaDB, incluyendo PostgreSQL, SQLite, MS SQL, Oracle, MongoDB y Elasticsearch.
- Interfaz sencilla: Ofrece una interfaz de usuario limpia e intuitiva para realizar tareas comunes como:
- Ver y editar la estructura de las tablas.
- Insertar, actualizar y eliminar registros.
- Ejecutar comandos SQL personalizados.
- Importar y exportar datos en formato SQL o CSV.
- Alternativa a phpMyAdmin: A menudo se prefiere a phpMyAdmin por su facilidad de instalación, mejor rendimiento y mayor seguridad
Instalación
Para instalar el Adminer bastaría con localizar el URL de descarga de la aplicación que en este caso al momento de crear este mini tutorial se encuentra en:
https://github.com/vrana/adminer/releases/download/v5.4.2/adminer-5.4.2.php
Por lo tanto el comando para su descarga seria:
# wget https://github.com/vrana/adminer/releases/download/v5.4.2/adminer-5.4.2.php
o en su defecto para no estar moviendo el archivo PHP a la carpeta de desarrollo de nuestra aplicación podemos indicar directamente que lo descargue donde corresponda, para la mayoría de nuestros ejemplo seria en: /var/www/html/
Entonces colocamos la línea de comando completa:
# wget https://github.com/vrana/adminer/releases/download/v5.4.2/adminer-5.4.2.php /var/www/html/
Quizá tengas que instalar la liberia de conexion entre php y mysql, para eso ejecuta:
# apt install php-mysql
y listo no demora nada ya que es un solo archivo .PHP
NOTA: Por otra parte si no logras conectarte a las bases de datos o mirar las mismas esto se debe a que no tienes permisos en el gestor de bases de datos; por lo tanto hay que crear este usuario con su clave respectiva; para ello ingresamos al mysql – es mi caso –
# mysql -u root -p
una ves dentro de mariadb, creamos el usuario respectivo asi:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'usuario'@'localhost' IDENTIFIED BY 'clave';
y luego para que los cambios se registren:
MariaDB [(none)]> FLUSH PRIVILEGES;
Ejecución
Para ejecutar la aplicación entonces bastaría con colocar la URL: http://localhost/adminer-5.4.2.php
y listo!!
y veríamos lo siguiente:



Instalar Zabbix
Zabbix es un software de código abierto para el monitoreo distribuido de sistemas y redes, que recopila datos sobre la salud y el rendimiento de servidores, máquinas virtuales, aplicaciones, bases de datos, redes y más. Utiliza un sistema flexible de alertas por correo electrónico, SMS o Telegram, junto con informes visuales para el análisis de datos y la planificación de la capacidad. La plataforma se gestiona a través de una interfaz web y permite el monitoreo en tiempo real, la detección de anomalías y la visualización del estado de la infraestructura de TI.
Para empezar debemos saber que en el link compartido bajo estas líneas se encuentra el asistente para elegir la versión y la plataforma de nuestra elección.
Link del asistente para instalar zabbix
La instalación en nuestro caso será sobre el sistema operativo Debian 13, para poder bajar la aplicación debemos cerciorarnos tener instalada la aplicación en línea de comando wget, ya que la usaremos para descargar zabbix.
Para descargar zabbix ejecutamos las siguientes líneas de comandos una a una a través de CLI
# wget https://repo.zabbix.com/zabbix/7.4/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.4+debian13_all.deb # dpkg -i zabbix-release_latest_7.4+debian13_all.deb # apt update
Hecho esto instalamos el Server, el frontal (frontend) y el agente de Zabbix, con la siguiente linea de comando:
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
Ahora bien debemos crear la instancia de la base de datos donde se guardaran los registros y datos monitoreados, asegurándonos que MariaDB o MySQL este activo y funcionando.
si por algún motivo no esta instalado MariaDB ejecutamos :
# apt install mariadb-server mariadb-client
Ahora ingresamos al gestor de base de datos para crear la base de datos de zabbix
# mysql -u root -p (root debe ser reemplazado por el nombre de usuario root o de acceso a la gestor de base de datos)
y ejecutamos las líneas siguientes:
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin; mysql> create user zabbix@localhost identified by 'password'; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql> set global log_bin_trust_function_creators = 1; mysql> quit;
En el host del servidor Zabbix, importe el esquema y los datos iniciales. Se le solicitará que ingrese su contraseña recién creada.
# zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Deshabilite la opción log_bin_trust_function_creators después de importar el esquema de la base de datos.
# mysql -u root -p mysql> set global log_bin_trust_function_creators = 0; mysql> quit;
Configurar la base de datos para el servidor Zabbix
Para ello editamos el archivo con nano /etc/zabbix/zabbix_server.conf y colocamos en la linea la clave que habiamos creado previamente para la base de datos :
DBPassword=password
Iniciar los procesos del servidor y del agente Zabbix
Ahora ya podemos iniciar los procesos del servidor y del agente Zabbix y haga que se inicien al arrancar el sistema.
# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2
NOTA: Recuerda que cada equipo a ser monitoreado debe tener instalado el agente de monitoreo; que es el encargado de enviar los datos al servidor mediante el protocolo ICMP ; por ejemplo en el caso de maquinad linux/debian se puede instalar dicho agente de la siguiente manetra:
# apt install zabbix-agent
y para verificar si esta operativo ejecutamos la siguiente instrucción mediante CLI
# systemctl status zabbix-agent
donde veremos lo siguiente:

Continuar la instalación del servidor
Y ahora ya podemos abrir el servicio colocando la URL:
http://host/zabbix

NOTA: Para poner en idioma español la interface mira al fina la sección idiomas.





El usuario y clave por defecto para ingresar al dashboard del servidor de monitoreo es:
Usuario: Admin Password: zabbix

Poner en español los menús e interfaces

La forma más practica es ejecutando en Debian el programa dpkg-reconfigure
# dpkg-reconfigure locales
Ahí es muy importante escoger el idioma es_ES.UTF-8, suele confundir puesto que para Ecuador seria ec_ES.UTF-8; pero no funcionará ya que la interface de zabbix no tiene definido dicho registro.

Luego simplemente ejecuta:
# locale-gen
Luego reiniciar el servidor Apache, así:
# service apache2 restart
Otra forma un poco más larga puede ser modificar el archivo de idioma de nuestro Linux (Debian), editando el siguiente archivo (recuerda seleccionar el idioma es_ES.UTF-8):
# nano /etc/locale.gen

Luego debemos ejecutar el comando que descarga el conjunto de idiomas
# apt-get install -y locales && echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && locale-gen
Y luego ejecutamos el siguiente comando que se generó al redireccionar a locale-gen:
# locale-gen
Esto lo que hará es instalar las tablas de lenguaje con formato UTF8 de español latino en todo el sistema, finalmente reiniciamos el servidor Apache y todo queda actualizado.
# service apache2 restart
Si tienes NGinx debes reiniciarlo con:
# systemctl restart nginx
Instalar el Agente SNMP
Un agente es un programa que se encarga de enviar la información al servidor zabbix; recoge todos los datos del equipo y los envía mediante el protocolo SNMP hacia el servidor.
Existen agentes propios de la aplicación, como es el caso de zabbix (zabbix-agent) y los genéricos o estándares como snmp y snmpd.
Para nuestro caso instalaremos el SNMP standard en Debian; el caso es muy similar para otros sistemas operativos.
# apt install snmpd snmp -y
Hecho esto debemos configurarlo mediante el comando:
# nano /etc/snmp/snmpd.conf
En este archivo, puede configurar la cadena de comunidad, que actúa como contraseña para controlar el acceso a la información de su red. Por razones de seguridad, es fundamental cambiar la cadena de comunidad predeterminada a una más segura.
Buscamos la siguiente línea y colocamos los datos:
rocommunity public
y nos aseguramos que no esté comentada (sin un # al principio). Si no existe la línea, añádela.
Luego descomentamos la línea agentaddress o añádela y colocamos la dirección correcta desde donde zabbix escucha, por ejemplo,
agentaddress UDP:161 o agentaddress 192.168.1.100:161
# systemctl restart snmpd
Instalar el Agente Zabbix
Para el caso del agente de zabbix visita la página web de la aplicación y en el menú de selección busca el agente de acuerdo al sistema operativo en el que deseas instalarlo y sigue los pasos que indica el wizard

Y seguimos las líneas de comandos que se indican el el wizard…
Configuración del Agente Zabbix
Para que el agente envíe los datos al servidor debemos configurarlo de la siguiente forma:
editamos el archivo de configuración con la siguiente linea de comandos:
# nano /etc/zabbix/zabbix_agentd.conf
Dentro del archivos localizamos las siguientes líneas y las modificamos como corresponda:
Server= (dirección IP o nombre DNS del servidor Zabbix)
ServerActive= (misma que Server si el agente inicia la comunicación es decir agente activo)
Hostname= (un nombre único para identificar este host en el servidor Zabbix)
Guardamos los cambios y reiniciamos el agente de la siguiente forma:
# systemctl restart zabbix-agent
Configurar tarjeta de red en Debian (manualmente)
Cuando se instala Debían, las tarjetas de red alámbrica e inalámbrica se configuran automáticamente; sin embargo la configuración de asignación de IP por defecto suele ser asignada mediante protocolo DHCP; es posible que sea necesario instalar dicha IP de manera manual y que la misma permanezca fija, para ello debemos hacer lo siguiente:
Como todo en Linux las configuraciones se las realiza en archivos de texto, los cuales deben ser editados y modificados de acuerdo a nuestras necesidades, en lo particular el archivo se encuentra en el siguiente directorio: /etc/network y ahí encontraremos el archivo interfaces el cual te recomiendo hagas un respaldo por si algo falla en la configuración; hagamos entonces el respaldo:
# cp /etc/network/interfaces /etc/network/interfaces.bak
Configuración de las IP estática
Una vez abierto el archivo debemos fijarnos que los datos que se encuentran dentro del archivo es el que corresponde a la auto configuración y la adquisición de la IP mediante DHCP; podemos eliminar estas línea o comentarlas con el # colocado delante de cada línea.
Luego colocamos las direcciones IP según nuestra necesidad y de acuerdo al segmento de red que usaremos; para nuestro caso son IP de uso local.
Ahora si con mas confianza editaremos el archivo con el siguiente comando:
# nano /etc/network/interfaces
auto eth0iface eth0 inet staticaddress 192.168.1.100netmask 255.255.255.0gateway 192.168.1.1dns-nameservers 8.8.8.8 8.8.4.4
Luego reiniciamos las tarjetas de red con el comando:
# systemctl restart networking
NOTA: debes identificar claramente el nombre asignado al dispositivo o tarjeta de red; para este ejemplo es eth0 sin embargo de acuerdo a la marca o fabricante inclusive a la versión del SO, esta designación puede cambiar. Si deseas saber como conseguir esta identificación usa el siguiente comando.
# ip -c a

Instalar Cacti en Debian 13.x
Como siempre empezamos actualizando nuestro sistema operativo con el comando 
# sudo apt update && sudo apt upgrade -y
Luego instalamos el servidor web Apache
# apt install apache2 -y
Luego procedemos a ionstalar el motor de bases de datos mariadb
# apt install mariadb-server mariadb-client -y mysql_secure_installation
Posteriormente instalamos el lenguaje PHP para poder comunicarnos
con la base de datos
# apt install php php-mysql libapache2-mod-php php-xml php-ldap php-mbstring php-gd php-gmp php-json php-cli php-snmp -y
Ahora procedemos a crear la base de datos para cacti con lo siguientes comandos:
# mysql -u root -p
CREATE DATABASE cacti; GRANT ALL PRIVILEGES ON cacti.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'tu_contraseña_segura'; FLUSH PRIVILEGES; EXIT;
Ahora es el momento de instalar CACTI, procedemos de la siguiente manera
# apt install cacti -y
Finalmente configuramos el servidor virtual en Apache con los comandos siguientes:
# a2enmod rewrite
# sudo systemctl restart apache2
Finalmente para acceder a la pagina de nuestro Monitor de red Cacti, debemos ingresa a la IP donde instalamos todo http://tu-direccion-ip/cacti.

