/zabbix-container

Zabbix stack with Grafana on container docker

Primary LanguageShell

Install and Configure System Monitoring with Zabbix on Docker Container

Requirements

Zabbix Server

  • Hardware: Zabbix Documentation
  • Internet Access
  • Redhat Operation System Family
  • SSH Access
  • Docker 19.03+
  • Ansible 2.9.21+

Recomendations

Attention

The images are based on my public Docker Hub - fabianoflorentino.

Is very strongly recommended to build your own images.

Zabbix Server (Details)

Create new inventory:

cd inventories
cp sample <NEW INVENTORY>

Inventory File

Edit the file hosts.yml on <NEW INVENTORY>

---
all:
  vars:
    zabbix_web_server_name: "LAB ZABBIX SERVER" # Name of the Zabbix web server
    zabbix_server_ip:                           # IP of the Zabbix server
    zabbix_agent_port:                          # Port of the Zabbix agent
    mysql_zbx_db_pwd: ""                        # Password of the Zabbix database
    mysql_root_pwd: ""                          # Password of the root user of the MySQL server
  hosts:
    zabbix-server:
      ansible_host:                             # IP of the Zabbix server
  children:
    server:
      hosts:                                    # List of hosts for the Zabbix server
        zabbix-server:
    agent_linux:                                # List of hosts for the Zabbix agent on Linux
      hosts:
    agent_windows:                              # List of hosts for the Zabbix agent on Windows
      hosts:

Test the Inventory File

ansible -i inventories/lab/hosts.yml zabbix-server -u root -k -m ping
SSH password: 

zabbix-server | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

Install Zabbix Server

ansible-playbook -i inventories/lab/hosts.yml -u root -k zabbix-server.yml

When finished, this will be the infrastructure created:

img0

idempotent

This playbook will not be executed again if the log files already exist.

The logs file are:

  • /tmp/aix_check.log
  • /tmp/hostid_check.log
  • /tmp/ssl_check.log
  • /tmp/zabbix_custom.log
  • /tmp/zbx_hostgroup.out

Roles

common

  • Ajustando o Hostname
  • Atualizando /etc/hosts
  • Habilitando IP Forward
  • Atulizando o Sistema
  • Instalando pacotes essenciais
  • Modulo Pip
  • Verificando pre requisitos
  • Verificando se o repositorio Docker existe
  • Habilitando o repositorio do Docker
  • Instalando o Docker
  • Habilitando o Servico do Docker

mysql

  • Verificando se o container existe
  • Download da imagem
  • Criando Network
  • Criando volume
  • Iniciando o Container

server

  • Verificando se o container existe
  • Download da imagem
  • Criando volume
  • Iniciando o Container (server)
  • Zabbix Agent
  • Iniciando o Container (agent)

web

  • Verificando se o container existe (web)
  • Download da imagem (web)
  • Criando volume (web)
  • Iniciando o Container (web)

grafana

  • Verificando se o container existe (grafana)
  • Download da imagem (grafana)
  • Iniciando o Container (grafana)

custom

  • Aguardando o Zabbix Web
  • Zabbix Custom - Verificando as customizações do Zabbix
  • Token - Copiando o script para gerar o token
  • Token - Gerando um token de autenticação
  • Token - Removendo Scripts Temporários de Customização
  • HostID - Copiando o script para gerar o hostid
  • HostID - Gerando um token de autenticação
  • HostID - Removendo Scripts Temporários de Customização
  • Slack Alerts - Disponibilizando Scripts
  • Slack Alerts - Copiando o script para o zabbix server
  • Slack Alerts - Criando Media para Alerta
  • Slack Alerts - Removendo Scripts Temporários
  • Resultado da criação do Slack Alert
  • Slack Alerts - Configurando log
  • Slack Alerts - Gerando log
  • Auto Registro Linux - Copiando o script para gerar o auto regitro
  • Auto Registro Linux - Criando Auto Registro de Servidores Linux
  • Auto Registro Linux - Resultado da criação do Auto Registro de Servidores Linux
  • Auto Registro Linux - Removendo Scripts Temporários
  • Auto Registro Windows - Copiando o script para gerar o auto regitro
  • Auto Registro Windows - Criando Auto Registro de Servidores Windows
  • Resultado da criação do Auto Registro de Servidores Windows no Zabbix
  • Auto Registro Windows - Removendo Scripts Temporários de Customização
  • Reporte de Problemas - Copiando o script para gerar o reporte de problemas
  • Reporte de Problemas - Criando Slack Reporte de Problemas
  • Resultado da criação do Slack Report de Problema
  • Reporte de Problemas - Removendo Scripts Temporários
  • SSL Check - Disponibilizando Scripts
  • SSL Check - Copiando os scripts para o zabbix server
  • SSL Check - Removendo Scripts Temporários de Customização
  • SSL Check - Configurando log
  • SSL Check - Gerando log
  • Criação de Item - Copiando Script Adapterfail
  • Criação de Item - Criando o Item Adapterfail
  • Criação de Item - Resultado da criação do Adapterfail
  • Criação de Item - Configurando log
  • Criação de Item - Copiando Script Bootlist
  • Criação de Item - Resultado da criação do Bootlist
  • Criação de Item - Configurando log
  • Criação de Item - Gerando log
  • Criação de Item - Removendo Scripts Adapterfail
  • Criação de Item - Removendo Scripts Bootlist
  • HostID - Configurando log
  • Removendo Primeiro Registro Zabbix server - Copiando Script
  • Removendo Primeiro Registro Zabbix server - Deletando o Primeiro Registro "Zabbix server"
  • Removendo Primeiro Registro Zabbix server - Resultado da remoção
  • HostID - Removendo Scripts zbx_del_first_zbxsrv

Screenshots

img1 img2 img3 img4 img5 img6

Zabbix Agent (Details)