Instalación de Zabbix+Nginx+Postgres sobre Debian 10

Instalación de zabbix+nginx+postgres sobre debian 10.

Se que pocos lo usan, pero realmente es una herramienta muy poderosa para la gestión de nuestras infraestructuras, hoy quiero compartir como instalarlo desde cero, la versión 4.2, sobre un container de Debian 10, usare Postgres en el mismo servidor como gestor de base de datos y lo servirá un Nginx con PHP 7.3.

Zabbix cuenta con grandes funcionalidades.

  • Alto rendimiento y alta capacidad (posibilidad de monitorizar cientos de miles de dispositivos).
  • Auto descubrimiento de servidores y dispositivos de red.
  • Monitorización distribuida y una administración web centralizada.
  • Agentes nativos en múltiples plataformas.
  • Posibilidad de monitorización sin agentes.
  • Monitorización JMX.
  • Monitorización Web.
  • Configuración de permisos por usuarios y grupos.
  • Métricas SLA y ITIL.
  • Sistema flexible de notificación de eventos (Email, XMPP, etc).

Entonces, MANOS A LA OBRA.

Crear un CT con Debian 10, 1G de RAM y 2 núcleos (esto puede variar en dependencia de cada uno).
Al modificar /etc/apt/sources.list tenemos que utilizar los non-free.

Eliminamos paquetes que no usaremos

apt-get -y purge bind9* samba* rpcbind

Modificamos la zona horarica del CT y actualizamos y instalamos algunas herramientas.

timedatectl set-timezone America/Havana
apt update 
apt upgrade -y
apt dist-upgrade -y
apt -y install sudo git nano ccze mc iptraf net-tools dnsutils net-tools fping

Le damos permiso el uso del fping.

chmod u+s /usr/bin/fping

Instalamos las librerias necesarias.

apt -y install  nginx php php-cli php-fpm php-pgsql php-bcmath php-mbstring php-gd php-xml php-snmp
apt -y install snmp snmpd nmap snmp-mibs-downloader
nmap localhost

Instalamos el gestor de bases y los paquetes de zabbix

apt -y install postgresql
apt -y install postgresql-all
apt -y install zabbix-server-pgsql zabbix-frontend-php zabbix-agent

Creamos el usuario y la base de datos.

sudo su postgres
psql
CREATE DATABASE zabbix;
CREATE USER zabbix WITH PASSWORD 'zabbix';
GRANT ALL PRIVILEGES ON DATABASE zabbix to zabbix;
\q

Importamos el esquema de la base de datos.

postgres@
gunzip --stdout /usr/share/zabbix-server-pgsql/schema.sql.gz | psql -h localhost -U zabbix -d zabbix -W
gunzip --stdout /usr/share/zabbix-server-pgsql/images.sql.gz | psql -h localhost -U zabbix -d zabbix -W 
gunzip --stdout /usr/share/zabbix-server-pgsql/data.sql.gz | psql -h localhost -U zabbix -d zabbix -W
exit

Ajustamos la configuracion del /etc/zabbix/zabbix_server.conf dejandolo de esta forma.

ListenPort=10051
SourceIP=0.0.0.0
LogType=file
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=128
DebugLevel=3
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=5432
Timeout=4
LogSlowQueries=3000

Explicando las opciones

DBHost=localhost (Indica donde esta el Servidor de Bases.)
DBName=zabbix (Nombre de la Base de Datos)
DBUser=zabbix (User con acceso a la Base de datos Zabbix)
DBPassword=zabbix (Password del User con acceso a la base de datos zabbix)

Ajustar configuracion del agente /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogType=file
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=1024
DebugLevel=3
Server=127.0.0.1
ListenPort=10050
ServerActive=127.0.0.1
Hostname=Zabbix server

modifica /etc/php/7.3/php.ini y cambiar estos valores

max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
date.timezone = America/Havana

modifica /etc/php/7.3/fpm/php.ini y cambiar estos valores

max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
date.timezone = America/Havana

Creamos un enlace simbolico del zabbix en la carpeta root de Nginx.

ln -s /usr/share/zabbix /var/www/html

Ahora ya podemos arrancar el Zabbix:

update-rc.d zabbix-agent enable
update-rc.d zabbix-server enable
service zabbix-agent start
service zabbix-server start

Modificamos los permisos y mostrando las ip en uso por zabbix.

chmod o+w /etc/zabbix
ifconfig |grep inet |grep netmask
chmod o-w /etc/zabbix

Eliminamos el contenido del fichero /etc/nginx/sites-available/default
y le agregamos este

# Zabbix
server {
   listen 80;
   server_name zabbix.tudominio.cu;
   root   /var/www/html/zabbix;
   index index.php;

   location ~ [^/]\.php(/|$) {
      fastcgi_split_path_info  ^(.+\.php)(/.+)$;
      fastcgi_index            index.php;
      fastcgi_pass             unix:/var/run/php/php7.3-fpm.sock;
      include                  fastcgi_params;
      fastcgi_param            SCRIPT_FILENAME $document_root$fastcgi_script_name;
      fastcgi_param            SCRIPT_NAME $fastcgi_script_name;
   }

   access_log      /var/log/nginx/zabbix-access.log combined;
   error_log       /var/log/nginx/zabbix-error.log warn;
}

Reiniciamos el Nginx

service nginx restart

Y listo, se hace la magia, ahora accedemos a nuestro virtualhost creado y configuramos.

http://zabbix.tudominio.cu

Para el uso correcto del snmp, primero debemos realizar algunos cambios.
comentamos /etc/snmp/snmp.conf

mibs :

quedando asi

#mibs :

Ahora editamos el fichero /etc/snmp/snmpd.conf el cual lo dejaremos como lo muestro ahora.

#  Escuchar en todas las interfaces (en IPv4 *e* IPv6)
agentAddress udp:161,udp6:[::1]:161

# Configurar comunidad de "sólo lectura"
# y restringir quién se puede conectar
rocommunity clavecomunidadxxx  127.0.0.1

# Información sobre este servidor
sysLocation    info del nodo
sysContact     [email protected]

# Cuáles capas OSI están activas
# (applicación + extremo a extremo)
sysServices    72

# Incluye MIB de dskTable que es propietario (además de hrStorageTable)
includeAllDisks  10%

Reiciamos el SNMP

/etc/init.d/snmpd restart

Ahora, esto mismo debemos de hacer el los server que deseamos gestionar por SNMP, en los Router, Access Point, Swith y otros, deben de crear la comunidad que pusieron en el rocommunity del zabbix.

#  Escuchar en todas las interfaces (en IPv4 *e* IPv6)
agentAddress udp:161,udp6:[::1]:161

# Configurar comunidad de "sólo lectura"
# y restringir quién se puede conectar
rocommunity NetManage  ip-del-zabbix/32
rocommunity NetManage  127.0.0.1

# Información sobre este servidor
sysLocation    EEPF Network Indio Hatuey
sysContact     [email protected]

# Cuáles capas OSI están activas
# (applicación + extremo a extremo)
sysServices    72

# Incluye MIB de dskTable que es propietario (además de hrStorageTable)
includeAllDisks  10%

Hasta aquí tenemos nuestro Zabbix en función, en próximo manual comenzaremos agregar plantillas, host, alertas y si algunos desean lo ponemos mas chulo.

Espero lograr ayudar a los que se inclinan por esta poderosa herramienta.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 5 / 5. Recuento de votos: 3

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

8 comentarios

  1. Firefox 70.0 Firefox 70.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0

    Importamos el esquema de la base de datos….
    creo el problema debe ser aquí
    gzip: /usr/share/zabbix-server-pgsql/schema.sql.gz: No such file or directory

  2. Firefox 70.0 Firefox 70.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0

    Details Cannot connect to the database.
    The frontend does not match Zabbix databa

    Database host localhost
    Database port 0
    Database name zabbix
    Database schema zabbix
    User zabbix
    Password zabbix

    ———————————————
    Y me da ese error!

  3. Google Chrome 75.0.3770.142 Google Chrome 75.0.3770.142 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36

    Herma lo uso para la gestion de toda mi infraestructura, los paquetes non-free son para instalar las MIB para la gestion snmp.

  4. Firefox 68.0 Firefox 68.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0

    Buen articulo, lo utilizas para tener control de todas tus maquinas, o solo para el control de los servidores, te pregunto por la activacion de snmp,
    – Que paquetes del non-free usas, tengo intencion de montarlo sobre ubuntuLTS y quiero saber que paquetes del non-free de debian usas por si los necesito.

  5. Firefox 68.0 Firefox 68.0 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0

    Colega he hecho tu guia del Pi al Pa y me da bien todo hasta que llega a la base de datos del zabbix que me dice que no coincide.

    A lo mejor me perdi en la parte
    postgres@
    gunzip –stdout /usr/share/zabbix-server-pgsql/schema.sql.gz | psql -h localhost -U zabbix -d zabbix -W
    gunzip –stdout /usr/share/zabbix-server-pgsql/images.sql.gz | psql -h localhost -U zabbix -d zabbix -W
    gunzip –stdout /usr/share/zabbix-server-pgsql/data.sql.gz | psql -h localhost -U zabbix -d zabbix -W
    exit

    Pero para poder yo crear la base de datos tuve que ejecutar el comando:
    sudo -i -u postgres psql

    y de ahi importamos el esquema de la base de datos

    Que paso estoy haciendo mal.

    • Firefox 68.0 Firefox 68.0 GNU/Linux x64 GNU/Linux x64
      Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0

      Mucho cuidado con los guiones medios — a la hora de copiar y ejecutar comandos. Salu2.

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*