Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 60 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -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
59 changes: 25 additions & 34 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
version: '3.1'
version: '3.9'

networks:
network-zabbix:
Expand All @@ -7,90 +7,81 @@ 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:
- /var/run:/var/run
ports:
- '10050:10050'
environment:
- ZBX_HOSTNAME=Zabbix server
- ZBX_SERVER_HOST=172.18.0.1

ZBX_HOSTNAME: Zabbix server
ZBX_SERVER_HOST: zabbix-server