
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
1 | apt-get -y purge bind9* samba* rpcbind |
Modificamos la zona horarica del CT y actualizamos y instalamos algunas herramientas.
1 2 3 4 5 | 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.
1 | chmod u+s /usr/bin/fping |
Instalamos las librerias necesarias.
1 2 3 | 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
1 2 3 | 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.
1 2 3 4 5 6 | 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.
1 2 3 4 5 | 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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
1 2 3 4 | 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
1 2 3 4 5 6 7 8 9 | 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
1 2 3 4 5 6 | 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
1 2 3 4 5 6 | 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.
1 | ln -s /usr/share/zabbix /var/www/html |
Ahora ya podemos arrancar el Zabbix:
1 2 3 4 | 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.
1 2 3 | 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # 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
1 | 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
1 | mibs : |
quedando asi
1 | #mibs : |
Ahora editamos el fichero /etc/snmp/snmpd.conf el cual lo dejaremos como lo muestro ahora.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # 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 snmp@tudominio.cu # 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
1 | /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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # 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 adonis@ihatuey.cu # 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.
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.
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.
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.
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.
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Alguien con una buena guía de Check MK, OMD??
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36
Te refieres a chequear un Mikrotik?
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!
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