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.
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
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 (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 (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 (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 (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 (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.