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 [email protected] 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! 🙂