diff --git a/README.md b/README.md index 6f8452b..95bc003 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,64 @@ -# Zabbix com Docker Compose +# Zabbix Monitoring Stack with MySQL and Grafana -O arquivo docker-compose.yml que disponibilizamos em nosso Github, foi configurado de forma que o Docker crie 4 containers: zabbix-server, zabbix-frontend, grafana e mysql. Foram utilizadas as imagens oficiais do Zabbix, do Grafana e do MySQL. Os links para consulta estão no final deste artigo. +This repository contains a Docker Compose configuration to set up a complete Zabbix monitoring environment. It includes the Zabbix Server, Zabbix Frontend, MySQL, Grafana, and Zabbix Agent, all orchestrated via Docker containers. -Ao executar o comando docker-compose up, o Docker irá subir de forma automática os containers do Zabbix, do Grafana e do MySQL. Além disso, o Zabbix já estará conectado ao banco de dados MySQL e o Grafana já estará com o plugin do Zabbix instalado. +## Table of Contents + +- [Overview](#overview) +- [Services](#services) +- [Prerequisites](#prerequisites) +- [Installation](#installation) +- [Usage](#usage) +- [Volumes](#volumes) +- [Configuration](#configuration) +- [Contributing](#contributing) +- [License](#license) + +## Overview + +This setup provides a robust monitoring solution with the following components: +- **Zabbix Server**: Central component for monitoring. +- **Zabbix Frontend**: Web interface for managing and viewing monitoring data. +- **MySQL**: Database for storing Zabbix data. +- **Grafana**: Advanced dashboarding and visualization for Zabbix data. +- **Zabbix Agent**: Collects metrics from the host machine and sends them to the Zabbix Server. + +## Services + +### MySQL +- **Image**: `mysql:8.0` +- **Ports**: `3306:3306` +- **Volumes**: `./zabbix/mysql:/var/lib/mysql` +- **Environment Variables**: + - `MYSQL_ROOT_PASSWORD` + - `MYSQL_DATABASE` + - `MYSQL_USER` + - `MYSQL_PASSWORD` + +### Zabbix Server +- **Image**: `zabbix/zabbix-server-mysql:ubuntu-6.0-latest` +- **Ports**: `10051:10051` +- **Volumes**: `./zabbix/alertscripts:/usr/lib/zabbix/alertscripts` +- **Depends on**: `mysql` + +### Zabbix Frontend +- **Image**: `zabbix/zabbix-web-apache-mysql:ubuntu-6.0-latest` +- **Ports**: `80:8080`, `443:8443` +- **Depends on**: `mysql` + +### Grafana +- **Image**: `grafana/grafana:latest` +- **Ports**: `3000:3000` +- **Depends on**: `mysql`, `zabbix-server` + +### Zabbix Agent +- **Image**: `zabbix/zabbix-agent2:alpine-6.0-latest` +- **Ports**: `10050:10050` +- **Depends on**: `zabbix-server` + +## Prerequisites + +- Docker installed on your machine. +- Docker Compose installed. -Executar o seguinte comando na pasta que esta localizado o arquivo docker-compose.yml para suber os containers: -docker-compose up -d diff --git a/docker-compose.yml b/docker-compose.yml index e09012b..3849497 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.1' +version: '3.9' networks: network-zabbix: @@ -7,83 +7,75 @@ networks: services: mysql: container_name: mysql - image: mysql:5.7 + image: mysql:8.0 networks: - network-zabbix ports: - '3306:3306' volumes: - - './zabbix/mysql:/var/lib/data' + - './zabbix/mysql:/var/lib/mysql' # Corrected path environment: - - MYSQL_ROOT_PASSWORD=carryontech - - MYSQL_DATABASE=zabbix - - MYSQL_USER=zabbix - - MYSQL_PASSWORD=carryontech + MYSQL_ROOT_PASSWORD: carryontech + MYSQL_DATABASE: zabbix + MYSQL_USER: zabbix + MYSQL_PASSWORD: carryontech zabbix-server: container_name: zabbix-server - image: zabbix/zabbix-server-mysql:ubuntu-5.0.1 + image: zabbix/zabbix-server-mysql:ubuntu-6.0-latest networks: - network-zabbix - links: - - mysql restart: always ports: - '10051:10051' volumes: - './zabbix/alertscripts:/usr/lib/zabbix/alertscripts' environment: - - DB_SERVER_HOST=mysql - - MYSQL_DATABASE=zabbix - - MYSQL_USER=zabbix - - MYSQL_PASSWORD=carryontech + DB_SERVER_HOST: mysql + MYSQL_DATABASE: zabbix + MYSQL_USER: zabbix + MYSQL_PASSWORD: carryontech depends_on: - mysql zabbix-frontend: container_name: zabbix-frontend - image: zabbix/zabbix-web-apache-mysql:ubuntu-5.0.1 + image: zabbix/zabbix-web-apache-mysql:ubuntu-6.0-latest networks: - network-zabbix - links: - - mysql restart: always ports: - '80:8080' - '443:8443' environment: - - DB_SERVER_HOST=mysql - - MYSQL_DATABASE=zabbix - - MYSQL_USER=zabbix - - MYSQL_PASSWORD=carryontech - - PHP_TZ=America/Sao_Paulo + DB_SERVER_HOST: mysql + MYSQL_DATABASE: zabbix + MYSQL_USER: zabbix + MYSQL_PASSWORD: carryontech + PHP_TZ: America/Sao_Paulo depends_on: - mysql - + grafana: container_name: grafana - image: grafana/grafana + image: grafana/grafana:latest networks: - network-zabbix - links: - - mysql - - zabbix-server restart: always ports: - '3000:3000' environment: - - GF_INSTALL_PLUGINS=alexanderzobnin-zabbix-app + GF_INSTALL_PLUGINS: alexanderzobnin-zabbix-app depends_on: - mysql - zabbix-server + zabbix-agent: container_name: zabbix-agent - image: zabbix/zabbix-agent2:alpine-5.0.1 + image: zabbix/zabbix-agent2:alpine-6.0-latest user: root networks: - network-zabbix - links: - - zabbix-server restart: always privileged: true volumes: @@ -91,6 +83,5 @@ services: ports: - '10050:10050' environment: - - ZBX_HOSTNAME=Zabbix server - - ZBX_SERVER_HOST=172.18.0.1 - \ No newline at end of file + ZBX_HOSTNAME: Zabbix server + ZBX_SERVER_HOST: zabbix-server