Como usar mais completo.
This commit is contained in:
parent
39432b41f7
commit
16adbaf201
164
readme.md
164
readme.md
@ -27,123 +27,7 @@ Um compose personalizado do zabbix para instalar pacotes sem a necessidade de um
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Via Portainer
|
#### Via Portainer
|
||||||
|
- 1° Criar um arquivo chamado **zabbix-init.sh** com o conteudo abaixo:
|
||||||
- Para portainer, crie uma nova stack com o conteudo abaixo:
|
|
||||||
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
---
|
|
||||||
services:
|
|
||||||
zbx-postgres:
|
|
||||||
image: postgres:alpine
|
|
||||||
container_name: zbx-postgres
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: zabbix
|
|
||||||
POSTGRES_USER: zabbix
|
|
||||||
POSTGRES_PASSWORD: zabbix
|
|
||||||
volumes:
|
|
||||||
- ./db:/var/lib/postgresql/data
|
|
||||||
networks:
|
|
||||||
- zbx-net
|
|
||||||
|
|
||||||
zbx-server:
|
|
||||||
image: zabbix/zabbix-server-pgsql:alpine-latest
|
|
||||||
container_name: zbx-server
|
|
||||||
restart: unless-stopped
|
|
||||||
user: root
|
|
||||||
environment:
|
|
||||||
DB_SERVER_HOST: zbx-postgres
|
|
||||||
POSTGRES_USER: zabbix
|
|
||||||
POSTGRES_PASSWORD: zabbix
|
|
||||||
ZBX_CACHESIZE: 8G
|
|
||||||
ZBX_STARTPOLLERS: 19
|
|
||||||
ZBX_HOSTNAME: "zbx-server"
|
|
||||||
ZBX_TIMEOUT: 10
|
|
||||||
volumes:
|
|
||||||
- "./data/alertscripts:/usr/lib/zabbix/alertscripts"
|
|
||||||
- "./data/externalscripts:/usr/lib/zabbix/externalscripts"
|
|
||||||
- "./data/modules:/var/lib/zabbix/modules"
|
|
||||||
- "./data/snmptraps:/var/lib/zabbix/snmptraps"
|
|
||||||
- "./data/mibs:/var/lib/zabbix/mibs"
|
|
||||||
- "./data/export:/var/lib/zabbix/export"
|
|
||||||
- "/etc/localtime:/etc/localtime:ro"
|
|
||||||
- "./zabbix-init.sh:/usr/local/bin/zabbix-entrypoint.sh"
|
|
||||||
depends_on:
|
|
||||||
- zbx-postgres
|
|
||||||
entrypoint: ["/usr/local/bin/zabbix-entrypoint.sh"]
|
|
||||||
command: ["docker-entrypoint.sh"]
|
|
||||||
networks:
|
|
||||||
- zbx-net
|
|
||||||
|
|
||||||
zbx-web:
|
|
||||||
image: zabbix/zabbix-web-nginx-pgsql:alpine-latest
|
|
||||||
container_name: zbx-web
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
DB_SERVER_HOST: zbx-postgres
|
|
||||||
POSTGRES_USER: zabbix
|
|
||||||
POSTGRES_PASSWORD: zabbix
|
|
||||||
ZBX_SERVER_HOST: zbx-server
|
|
||||||
ZBX_MEMORYLIMIT: 512M
|
|
||||||
ZBX_SERVER_NAME: Instant
|
|
||||||
PHP_TZ: "America/Sao_Paulo"
|
|
||||||
depends_on:
|
|
||||||
- zbx-server
|
|
||||||
ports:
|
|
||||||
- 14201:8080
|
|
||||||
networks:
|
|
||||||
- zbx-net
|
|
||||||
|
|
||||||
zbx-agent:
|
|
||||||
image: zabbix/zabbix-agent:alpine-latest
|
|
||||||
container_name: zbx-agent
|
|
||||||
restart: unless-stopped
|
|
||||||
user: root
|
|
||||||
environment:
|
|
||||||
- ZBX_SERVER_HOST=zbx-server,zbx-agent
|
|
||||||
- ZBX_SERVER=zbx-server
|
|
||||||
- ZBX_HOSTNAME=zbx-server
|
|
||||||
#- ZBX_DEBUGLEVEL=5
|
|
||||||
- ZBX_LISTENIP=0.0.0.0
|
|
||||||
volumes:
|
|
||||||
- "./data/agent:/etc/zabbix/zabbix_agentd.d"
|
|
||||||
- "./data/agentmodules:/var/lib/zabbix/modules"
|
|
||||||
- "/etc/localtime:/etc/localtime:ro"
|
|
||||||
depends_on:
|
|
||||||
- zbx-server
|
|
||||||
networks:
|
|
||||||
zbx-net:
|
|
||||||
aliases:
|
|
||||||
- zbx-agent
|
|
||||||
- zbx-agent-passive
|
|
||||||
- zbx-agent-ubuntu
|
|
||||||
|
|
||||||
zbx-walert:
|
|
||||||
container_name: zbx-walert
|
|
||||||
image: grandow/walert
|
|
||||||
restart: always
|
|
||||||
ports:
|
|
||||||
- 14211:4000
|
|
||||||
volumes:
|
|
||||||
- "./tokens:/opt/whatsapp/tokens"
|
|
||||||
environment:
|
|
||||||
- TZ=America/Sao_Paulo
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "bash", "-c", "curl -s http://localhost:4000/status | grep -o 'successChat' || exit 1"]
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
start_period: 60s
|
|
||||||
retries: 5
|
|
||||||
networks:
|
|
||||||
- zbx-net
|
|
||||||
|
|
||||||
networks:
|
|
||||||
zbx-net:
|
|
||||||
```
|
|
||||||
|
|
||||||
- Criar um arquivo chamado zabbix-init.sh com o conteudo abaixo:
|
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
echo "[INIT] Instalando mtr no container..."
|
echo "[INIT] Instalando mtr no container..."
|
||||||
@ -152,15 +36,34 @@ echo "[INIT] Executando entrypoint original..."
|
|||||||
# Usa exec sem su, preservando variáveis de ambiente como DB_SERVER_HOST
|
# Usa exec sem su, preservando variáveis de ambiente como DB_SERVER_HOST
|
||||||
exec /usr/bin/docker-entrypoint.sh /usr/sbin/zabbix_server --foreground -c /etc/zabbix/zabbix_server.conf
|
exec /usr/bin/docker-entrypoint.sh /usr/sbin/zabbix_server --foreground -c /etc/zabbix/zabbix_server.conf
|
||||||
```
|
```
|
||||||
|
- 2° Ajuste as permissões do arquivo criado com o comando:
|
||||||
- Após criar o arquivo execute os seguintes comandos:
|
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
chmod +x zabbix-init.sh && chmod 755 zabbix-init.sh
|
chmod +x zabbix-init.sh && chmod 755 zabbix-init.sh
|
||||||
```
|
```
|
||||||
- Inicie a imagem.
|
|
||||||
- Ja dentro do zabbix, importe o **walert.xml** em Alertas > Tipos de midias.
|
- 3° Crie o arquivo com o gatilho de envio de mensagens com os comandos abaixo:
|
||||||
- Crie uma nova ação de trigger em: **Alertas** > **Ações** > **Ações de Trigger**
|
```shell
|
||||||
|
mkdir -p -v data/alertscripts && touch data/alertscripts/walert && chmod +x data/alertscripts/walert
|
||||||
|
```
|
||||||
|
- 4° Copie todo conteudo de **data/alertscripts/walert** do repositorio, para dentro do arquivo **walert** que foi criado no passo anterior:
|
||||||
|
```shell
|
||||||
|
#!/bin/bash
|
||||||
|
# Baseado em BEEZAP - Bee Solutions.
|
||||||
|
|
||||||
|
URL="http://zbx-walert:4000/api/send"
|
||||||
|
PHONE="$1"
|
||||||
|
TITULO="$2"
|
||||||
|
MESSAGE="$TITULO$3"
|
||||||
|
|
||||||
|
wget -q -O- --post-data "{\"number\": \"${PHONE}\", \"message\": \"${MESSAGE}\"}" "$URL" --header "content-type: application/json"
|
||||||
|
```
|
||||||
|
|
||||||
|
- 4° Dentro do portainer, crie uma nova stack com o conteudo de **docker-compose.yml**
|
||||||
|
- 5° Aguarde todos os containers da stack iniciarem corretamente.
|
||||||
|
- 6° Abra pagina do zabbix no seu browser: **http://seuip:14201**
|
||||||
|
- 7° Ja dentro do zabbix, importe o **walert.xml** em Alertas > Tipos de midias.
|
||||||
|
- 7,5° Abra em outra aba do seu browser: **http://seuip:14201/status** e scaneie o QrCode pra logar no whatsapp
|
||||||
|
- 8° Crie uma nova ação de trigger em: **Alertas** > **Ações** > **Ações de Trigger**
|
||||||
* Nome: Notificacoes Walert
|
* Nome: Notificacoes Walert
|
||||||
- Aba: **Ações**:
|
- Aba: **Ações**:
|
||||||
* Adicione uma nova condição:
|
* Adicione uma nova condição:
|
||||||
@ -168,14 +71,25 @@ chmod +x zabbix-init.sh && chmod 755 zabbix-init.sh
|
|||||||
- Operador: **Não**.
|
- Operador: **Não**.
|
||||||
|
|
||||||
- Aba: **Operações**:
|
- Aba: **Operações**:
|
||||||
* Adicione uma nova condição:
|
* Adicione uma nova condição em (**Operação**):
|
||||||
- **Enviar aos usuarios**: Admin
|
- **Enviar aos usuarios**: Admin
|
||||||
- Enviar aos tipos de midia (selecione): **Walert**.
|
- Enviar aos tipos de midia (selecione): **Walert**.
|
||||||
|
* Repita o processo acima para condição (**Operação Recuperação**)
|
||||||
|
- 9° Va em Usuarios > usuarios > Admin (selecione) > Midia
|
||||||
|
* Adicione uma nova midia:
|
||||||
|
- Tipo: **Walert**
|
||||||
|
- Enviar para: 55<ddd><seu_numero_whastapp>
|
||||||
|
- Usar severidade: **Atenção**, **Média**, **Alta**, **Desastre**
|
||||||
|
- Adicionar
|
||||||
|
* De um atualizar.
|
||||||
|
- 10° Teste, Adicione um host ficticio agente snmp e template: **icmp-ping** pra ser mais rapido.
|
||||||
--
|
--
|
||||||
|
|
||||||
>[!TIP]
|
>[!TIP]
|
||||||
> - Garanta que todas as pastas / volumes estejam criados e com as corretas permissões configuradas.
|
> - Garanta que todas as pastas / volumes estejam criados e com as corretas permissões configuradas.
|
||||||
|
> - **Nos passos 8° e 9° As opções podem e devem ser customizadas para o seu cenário.**
|
||||||
|
> - **No passo 7,5° atente-se porque o codigo é invalidado a cada 1minuto, caso não funcione, reinicie a stack e pule direto pra teste passo.**
|
||||||
|
|
||||||
##👤 Autores
|
##👤 Autores
|
||||||
- William grando.
|
- William Grando.
|
||||||
- Agradecimento a Fernando Almondes (Bee Solutions), serviu como base para este projeto.
|
- Agradecimento a Fernando Almondes (Bee Solutions), serviu como base para este projeto.
|
||||||
Loading…
x
Reference in New Issue
Block a user