Zabbix Server con Docker Compose

Escribo esta entrada con el único propósito de aportar mi granito de arena y facilitaros la vida a la hora de desplegar una herramienta de monitorización cómo Zabbix.

El proyecto al completo están en la siguiente URL y por supuesto, esto es sólo un inicio ( a mi favor he de decir que es el primer proyecto que hago con esta tecnología ) , se aceptan mejoras y críticas:

https://github.com/miguelcarretas/zabbix_server-docker

De todas formas, aquí dejo los pasos a seguir y además, el fichero «Dockerfile» y el fichero «docker-compose.yml». Cómo digo, los demás ficheros los tenéis disponibles en la URL de arriba.

PASOS A SEGUIR:

Situarse en el directorio dónde se hayan descargado los ficheros de este proyecto y ejecutar en este orden:

docker-compose build

docker-compose up -d

Acceder al contenedor «zabbix-server» con una terminal bash:

docker exec -ti zabbix-server bash

Crear la base de datos para zabbix:

mysql -h db -u root -p

NOTA: la contraseña está definida en el fichero «docker-compose.yml» (123456789)

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabbix’;

mysql> grant all privileges on zabbix.* to zabbix@x.x.x.x identified by ‘zabbix’;

mysql> flush privileges;

mysql> quit;

NOTA: sustituir «x.x.x.x» por la dirección IP del contenedor zabbix-server (p.ej: 172.23.0.3)

Importar los esquemas de Zabbix a la nueva base de datos:

mysql -h db -uzabbix -pzabbix zabbix < /etc/zabbix/schema.sql

mysql -h db -uzabbix -pzabbix zabbix < /etc/zabbix/images.sql

mysql -h db -uzabbix -pzabbix zabbix < /etc/zabbix/data.sql

Abrir un navegador y poner en la URL la IP / Nombre DNS de la máquina anfitrión y acceder a zabbix con las credenciales por defecto:

P.ej: http://192.168.0.24/zabbix

User –> Admin Passwd –> zabbix

Finalmente, a jugar con nuestro Zabbix!

Dockerfile

FROM centos:7

ENV REPO 'https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm'

RUN yum -y install $REPO
RUN yum -y install mysql zabbix-get zabbix-server-mysql zabbix-web-mysql zabbix-agent

EXPOSE 80 443

COPY ./bin/start.sh /start.sh
COPY ./sql/schema.sql /etc/zabbix/schema.sql
COPY ./sql/images.sql /etc/zabbix/images.sql
COPY ./sql/data.sql /etc/zabbix/data.sql
COPY ./config/zabbix.conf /etc/httpd/conf.d/zabbix.conf
COPY ./config/zabbix_server.conf /etc/zabbix/zabbix_server.conf
COPY ./config/zabbix.conf.php /etc/zabbix/web/zabbix.conf.php

RUN chmod +x /start.sh

CMD /start.sh

docker-compose.yml

version: '3'

services:
   db:
      container_name: zabbix-sql
      image: mariadb:latest
      volumes:
        - zabbix-database:/var/lib/mysql
      environment:
          MYSQL_ROOT_PASSWORD: 123456789
          MYSQL_USER: zabbix
          MYSQL_PASSWORD: zabbix
      ports:
        - '3306:3306'
      networks:
        - zabbix-net
   zabbix:
      container_name: zabbix-server
      depends_on:
        - db
      image: zabbix-node
      build: .
      volumes:
        - zabbix-usr:/usr/share/zabbix
        - zabbix-etc:/etc/zabbix
        - httpd:/etc/httpd/conf.d/
      ports:
        - '80:80'
      networks:
        - zabbix-net
   
networks:
   zabbix-net:

volumes:
   zabbix-database:
   zabbix-usr:
   zabbix-etc:
   httpd:

Espero que os sea de utilidad.

Un salu2 Sysadmins! 🙂

About: Miguel Carretas Perulero

Miguel Carretas Perulero ha escrito 80 artículos en este blog.

Deja un comentario