├── Ambientes ├── Zabbix.All.In.One.md ├── Zabbix7-HA-docker.md └── ZabbixProxy.md ├── README.md ├── Scripts ├── Script-add-host-powershell.md ├── ZabbixAllinOneContainer.md └── ZabbixProxyContainer.md └── Templates └── NAS Asustor ├── README.md └── TEMPLATE-NAS-ASUSTOR.yaml /Ambientes/Zabbix.All.In.One.md: -------------------------------------------------------------------------------- 1 | # Zabbix 2 | 3 | Então. nesse docker compose está a instalação All in one do zabbix, que seria o Zabbix completo em um único servidor. Nesse servidor irá conter o Zabbix Database, Zabbix Server, Front-end e o Zabbix Agent. 4 | Porém iremos usar em container, para ambientes de teste é muito fácil a implementação, porém para ambientes de produção não recomendamos essa configuração da infraestrutura do Zabbix. 5 | 6 | ## Sobre o Zabbix em Container 7 | 8 | Você pode implantar facilmente um Zabbix usando o Docker Compose. Aqui está um exemplo de arquivo `docker-compose.yml` para iniciar um Zabbix completo junto com um banco de dados PostgreSQL. 9 | 10 | ``` yaml 11 | version: '3.5' 12 | services: 13 | zabbix-server: 14 | container_name: "zabbix-server" 15 | image: zabbix/zabbix-server-pgsql:alpine-trunk 16 | restart: always 17 | ports: 18 | - 10051:10051 19 | networks: 20 | - zabbix7 21 | volumes: 22 | - /etc/localtime:/etc/localtime:ro 23 | - /etc/timezone:/etc/timezone:ro 24 | environment: 25 | ZBX_CACHESIZE: 4096M 26 | ZBX_HISTORYCACHESIZE: 1024M 27 | ZBX_HISTORYINDEXCACHESIZE: 1024M 28 | ZBX_TRENDCACHESIZE: 1024M 29 | ZBX_VALUECACHESIZE: 1024M 30 | DB_SERVER_HOST: "IP" 31 | DB_PORT: 5432 32 | POSTGRES_USER: "zabbix" 33 | POSTGRES_PASSWORD: "zabbix123" 34 | POSTGRES_DB: "zabbix_db" 35 | stop_grace_period: 30s 36 | labels: 37 | com.zabbix.description: "Zabbix server with PostgreSQL database support" 38 | com.zabbix.company: "Zabbix LLC" 39 | com.zabbix.component: "zabbix-server" 40 | com.zabbix.dbtype: "pgsql" 41 | com.zabbix.os: "alpine" 42 | 43 | zabbix-web-nginx-pgsql: 44 | container_name: "zabbix-web" 45 | image: zabbix/zabbix-web-nginx-pgsql:alpine-trunk 46 | restart: always 47 | ports: 48 | - 8080:8080 49 | - 8443:8443 50 | volumes: 51 | - /etc/localtime:/etc/localtime:ro 52 | - /etc/timezone:/etc/timezone:ro 53 | - ./cert/:/usr/share/zabbix/conf/certs/:ro 54 | networks: 55 | - zabbix7 56 | environment: 57 | DB_SERVER_HOST: "IP" 58 | DB_PORT: 5432 59 | POSTGRES_USER: "zabbix" 60 | POSTGRES_PASSWORD: "zabbix123" 61 | POSTGRES_DB: "zabbix_db" 62 | ZBX_MEMORYLIMIT: "1024M" 63 | depends_on: 64 | - zabbix-server 65 | healthcheck: 66 | test: ["CMD", "curl", "-f", "http://localhost:8080/ping"] 67 | interval: 10s 68 | timeout: 5s 69 | retries: 3 70 | start_period: 30s 71 | stop_grace_period: 10s 72 | labels: 73 | com.zabbix.description: "Zabbix frontend on Nginx web-server with PostgreSQL database support" 74 | com.zabbix.company: "Zabbix LLC" 75 | com.zabbix.component: "zabbix-frontend" 76 | com.zabbix.webserver: "nginx" 77 | com.zabbix.dbtype: "pgsql" 78 | com.zabbix.os: "alpine" 79 | 80 | zabbix-db-agent2: 81 | container_name: "zabbix-agent2" 82 | image: zabbix/zabbix-agent2:alpine-trunk 83 | user: root 84 | depends_on: 85 | - zabbix-server 86 | volumes: 87 | - /etc/localtime:/etc/localtime:ro 88 | - /etc/timezone:/etc/timezone:ro 89 | - /run/docker.sock:/var/run/docker.sock 90 | environment: 91 | ZBX_HOSTNAME: "zabbix7" 92 | ZBX_SERVER_HOST: "127.0.0.1" 93 | ZBX_PASSIVE_ALLOW: "true" 94 | ZBX_PASSIVESERVERS: "IP" 95 | ZBX_ENABLEREMOTECOMMANDS: "1" 96 | ZBX_ACTIVE_ALLOW: "false" 97 | ZBX_DEBUGLEVEL: "3" 98 | privileged: true 99 | pid: "host" 100 | ports: 101 | - 10050:10050 102 | - 31999:31999 103 | networks: 104 | - zabbix7 105 | stop_grace_period: 5s 106 | 107 | db: 108 | container_name: "zabbix_db" 109 | image: postgres:15.6-bullseye 110 | restart: always 111 | volumes: 112 | - zbx_db15:/var/lib/postgresql/data 113 | ports: 114 | - 5432:5432 115 | networks: 116 | - zabbix7 117 | environment: 118 | POSTGRES_USER: "zabbix" 119 | POSTGRES_PASSWORD: "zabbix123" 120 | POSTGRES_DB: "zabbix_db" 121 | 122 | 123 | 124 | networks: 125 | zabbix7: 126 | driver: bridge 127 | volumes: 128 | zbx_db15: 129 | ``` 130 | 131 | ## Como Contribuir 132 | 133 | Se você tem algo para contribuir, como novos templates, scripts ou guias de configuração, fique à vontade para enviar uma solicitação de pull. Contribuições são bem-vindas e apreciadas! 134 | 135 | ## Licença 136 | 137 | Este repositório é fornecido sob a [Licença MIT](LICENSE). Sinta-se à vontade para usar, modificar e distribuir o conteúdo conforme necessário. 138 | 139 | ## Contato 140 | 141 | Para perguntas, sugestões ou apenas para dizer olá, você pode entrar em contato com os mantenedores deste repositório através das issues ou por e-mail em fvcunhaa@gmail.com. 142 | -------------------------------------------------------------------------------- /Ambientes/Zabbix7-HA-docker.md: -------------------------------------------------------------------------------- 1 | # Zabbix 7 em alta disponibilidade com proxy group 2 | 3 | Bem-vindo ao repositório onde abordaremos a instalação do Zabbix containerizado em alta disponibilidade. Neste guia, você encontrará as instruções e os arquivos necessários para configurar um ambiente distribuído de alta disponibilidade com Zabbix, utilizando containers Docker. 4 | 5 | ## Arquitetura do Ambiente 6 | 7 | Este setup distribui as aplicações do Zabbix em servidores separados, garantindo uma maior resiliência e performance. A arquitetura é composta por: 8 | 9 | Servidor 1: Zabbix Server 01 10 | Servidor 2: Zabbix Server 02 (failover) 11 | Servidor 3: Front-end 12 | Servidor 4: Database 13 | Servidores 5-8: Proxies 14 | 15 | Cada aplicação será configurada em containers Docker, com os arquivos docker-compose fornecidos abaixo. 16 | 17 | ## Composes 18 | 19 | ## Zabbix Server 01/02 20 | 21 | Será apenas um compose do Server, pois você só deve alterar os dados pertinentes, pois o restante é igual. 22 | 23 | ``` yaml 24 | services: 25 | zabbix-server: 26 | container_name: "zabbix-server" 27 | image: zabbix/zabbix-server-pgsql:7.0-ubuntu-latest 28 | restart: always 29 | volumes: 30 | - /etc/localtime:/etc/localtime:ro 31 | - /etc/timezone:/etc/timezone:ro 32 | environment: 33 | ZBX_STARTLLDPROCESSORS: 50 34 | ZBX_STARTESCALATORS: 10 35 | ZBX_STARTTIMERS: 3 36 | ZBX_STARTDBSYNCERS: 10 37 | ZBX_CACHESIZE: 64M 38 | ZBX_HISTORYCACHESIZE: 64M 39 | ZBX_HISTORYINDEXCACHESIZE: 64M 40 | ZBX_STARTHISTORYPOLLERS: 150 41 | ZBX_TRENDCACHESIZE: 64M 42 | ZBX_VALUECACHESIZE: 64M 43 | ZBX_HOUSEKEEPINGFREQUENCY: 1 44 | ZBX_MAXHOUSEKEEPERDELETE: 10000 45 | ZBX_PROBLEMHOUSEKEEPINGFREQUENCY: 60 46 | DB_SERVER_HOST: "192.168.0.240" # DEVE COLOCAR O IP DO SEU BANCO DE DADOS 47 | POSTGRES_USER: "zabbix" # USUARIO DO BANCO DE DADOS 48 | POSTGRES_PASSWORD: "P@ssword" # SENHA DO BANCO DE DADOS 49 | POSTGRES_DB: "zabbix_db" # NOME DO BANCO DE DADOS 50 | # ZBX_AUTOHANODENAME=fqdn # Allowed values: fqdn, hostname. Available since 6.0.0 51 | ZBX_HANODENAME: zbx7-server01 # Available since 6.0.0 ## AQUI VOCE VAI COLOCAR O NOME DO NODE DO HA 52 | # ZBX_AUTONODEADDRESS=fqdn # Allowed values: fqdn, hostname. Available since 6.0.0 53 | # ZBX_NODEADDRESSPORT: 10051 # Allowed to use with ZBX_AUTONODEADDRESS varia ble only. Available since 6.0.0 54 | ZBX_NODEADDRESS: 192.168.0.235:10051 # Available since 6.0.0 # AQUI VOCE VAI COLOCAR O IP E A PORTA DO NODE DO HA 55 | network_mode: host 56 | stop_grace_period: 30s 57 | labels: 58 | com.zabbix.description: "Zabbix server with PostgreSQL database support" 59 | com.zabbix.company: "Zabbix LLC" 60 | com.zabbix.component: "zabbix-server" 61 | com.zabbix.dbtype: "pgsql" 62 | com.zabbix.os: "alpine" 63 | ``` 64 | 65 | ## Zabbix Frontend 66 | 67 | ``` yaml 68 | services: 69 | zabbix-web-nginx-pgsql: 70 | container_name: "zabbix-web" 71 | image: zabbix/zabbix-web-nginx-pgsql:7.0-ubuntu-latest 72 | restart: always 73 | volumes: 74 | - /etc/localtime:/etc/localtime:ro 75 | - /etc/timezone:/etc/timezone:ro 76 | - ./cert/:/usr/share/zabbix/conf/certs/:ro 77 | environment: 78 | # ZBX_SERVER_HOST: "" # SE FOR USAR HA NAO PRECISA DESSA INFORMACAO 79 | ZBX_SERVER_NAME: "Zabbix Chico" # NOME QUE DESEJA QUE APARECA NO SEU ZABBIX 80 | DB_SERVER_HOST: "192.168.0.240" #COLOQUE O IP DO SEU BANCO DE DADOS 81 | POSTGRES_USER: "zabbix" # USUARIO DO BANCO DE DADOS 82 | POSTGRES_PASSWORD: "P@ssword" # SENHA DO BANCO DE DADOS 83 | POSTGRES_DB: "zabbix_db" # NOME DO BANCO DE DADOS 84 | ZBX_MEMORYLIMIT: "1024M" 85 | healthcheck: 86 | test: ["CMD", "curl", "-f", "http://localhost:8080/ping"] 87 | interval: 10s 88 | timeout: 5s 89 | retries: 3 90 | start_period: 30s 91 | network_mode: host 92 | stop_grace_period: 10s 93 | labels: 94 | com.zabbix.description: "Zabbix frontend on Nginx web-server with PostgreS QL database support" 95 | com.zabbix.company: "Zabbix LLC" 96 | com.zabbix.component: "zabbix-frontend" 97 | com.zabbix.webserver: "nginx" 98 | com.zabbix.dbtype: "pgsql" 99 | com.zabbix.os: "alpine" 100 | ``` 101 | 102 | ## Zabbix Database 103 | 104 | ``` yaml 105 | services: 106 | timescale-server: 107 | container_name: timescaledb 108 | restart: always 109 | image: timescale/timescaledb-ha:pg16-all 110 | environment: 111 | POSTGRES_USER: "zabbix" # USUARIO DO BANCO DE DADOS 112 | POSTGRES_PASSWORD: "P@ssword" # SENHA DO BANCO DE DADOS 113 | POSTGRES_DB: "zabbix_db" # NOME DO BANCO DE DADOS 114 | TS_TUNE_MAX_CONNS: 5000 115 | TS_TUNE_MAX_BG_WORKERS: 32 116 | command: postgres -c 'max_connections=5000' 117 | volumes: 118 | - timescaledb_data:/home/postgres/pgdata/data 119 | - ./pg_hba.conf:/etc/postgresql/15/main/pg_hba.conf:ro 120 | network_mode: host 121 | 122 | volumes: 123 | timescaledb_data: 124 | ``` 125 | 126 | ## Zabbix Proxy 127 | 128 | Só pegar o mesmo arquivo e colocar nos outros servidores que serão proxy e mudar o nome dos mesmo. 129 | 130 | ``` yaml 131 | services: 132 | zabbix-proxy: 133 | container_name: "zabbix-proxy" 134 | image: zabbix/zabbix-proxy-sqlite3:7.0-ubuntu-latest 135 | pull_policy: always 136 | environment: 137 | - ZBX_PROXYMODE=0 # 0 - active proxy and 1 - passive proxy 138 | - ZBX_SERVER_HOST=192.168.0.235;192.168.0.236 #IP DOS ZABBIX SERVER 139 | - ZBX_SERVER_PORT=10051 #PORTA UTILIZADA 140 | - ZBX_HOSTNAME=zbx7-proxy01 #NOME DO SEU PROXY 141 | - ZBX_DEBUGLEVEL=3 # 0 - basic info, 1 - critical, 2 - error, 3 - warning s, 4 - for debugging, 5 - extended debugging 142 | - ZBX_ENABLEREMOTECOMMANDS=1 143 | - ZBX_PROXYLOCALBUFFER=0 # mantém cópia dos eventos mesmo depois de envia r ao server (valor em horas) 144 | - ZBX_PROXYOFFLINEBUFFER=1 # 6 horas 145 | - ZBX_PROXYHEARTBEATFREQUENCY=60 # 60 seg 146 | - ZBX_PROXYCONFIGFREQUENCY=200 147 | - ZBX_DATASENDERFREQUENCY=1 # 1 Seg 148 | - ZBX_STARTHISTORYPOLLERS=2 # ---------------- 149 | - ZBX_STARTPOLLERS=10 #500 150 | - ZBX_STARTPREPROCESSORS=20 #500 151 | - ZBX_STARTPOLLERSUNREACHABLE=10 #300 152 | - ZBX_STARTPINGERS=10 #100 153 | - ZBX_STARTDISCOVERERS=5 154 | - ZBX_STARTHTTPPOLLERS=5 155 | - ZBX_HOUSEKEEPINGFREQUENCY=1 156 | - ZBX_STARTVMWARECOLLECTORS=1 157 | - ZBX_VMWAREFREQUENCY=60 158 | - ZBX_VMWAREPERFFREQUENCY=60 159 | - ZBX_VMWARECACHESIZE=32M 160 | - ZBX_VMWARETIMEOUT=300 161 | - ZBX_CACHESIZE=32M 162 | - ZBX_STARTDBSYNCERS=10 #20 163 | - ZBX_HISTORYCACHESIZE=32M 164 | - ZBX_HISTORYINDEXCACHESIZE=32M 165 | - ZBX_TIMEOUT=30 # 30 Seg 166 | - ZBX_UNREACHABLEPERIOD=10 167 | - ZBX_UNAVAILABLEDELAY=10 168 | - ZBX_UNREACHABLEDELAY=10 169 | - ZBX_LOGSLOWQUERIES=3000 170 | - ZBX_STATSALLOWEDIP=127.0.0.1 171 | - ZBX_TLSCONNECT=psk 172 | - ZBX_TLSACCEPT=psk 173 | - ZBX_TLSPSKIDENTITY=zbx7-proxy01 #NOME DO SEU PROXY, EU GOSTO DE UTILIZAR NO IDENTIFICAR DE PSK DO PROXY 174 | - ZBX_TLSPSKFILE=zabbix_proxy.psk 175 | restart: always 176 | network_mode: host 177 | volumes: 178 | - /etc/localtime:/etc/localtime:ro 179 | - /zabbix-proxy/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts:r o 180 | - /zabbix-proxy/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscr ipts:ro 181 | - /zabbix-proxy/var/lib/zabbix/enc:/var/lib/zabbix/enc:ro 182 | - /zabbix-proxy/var/lib/zabbix/mibs:/var/lib/zabbix/mibs:ro 183 | ``` 184 | 185 | Todas as máquinas tem que estar com docker instalado. 186 | 187 | ### Os três primeiros comando é para instalar o docker e update do SO 188 | sudo curl -fsSL https://get.docker.com -o get-docker.sh 189 | 190 | sudo sh get-docker.sh 191 | 192 | sudo apt update 193 | 194 | ### Após isso recomendo criar uma pasta. 195 | sudo mkdir -p /home/zabbix/ 196 | 197 | ### Depois tu vai entrar na pasta e colocar o docker compose, lembrando que deve salvar da seguinte maneira. 198 | 199 | docker-compose.yaml 200 | 201 | ### Após isso é apenas usar o comando para baixar as imagens e subir os container. 202 | 203 | sudo docker compose up -d 204 | 205 | ### Para ver ps containers rodando, deve utilizar o comando 206 | 207 | docker ps 208 | 209 | ## Como Contribuir 210 | 211 | Se você tem algo para contribuir, como novos templates, scripts ou guias de configuração, fique à vontade para enviar uma solicitação de pull. Contribuições são bem-vindas e apreciadas! 212 | 213 | ## Licença 214 | 215 | Este repositório é fornecido sob a [Licença MIT](LICENSE). Sinta-se à vontade para usar, modificar e distribuir o conteúdo conforme necessário. 216 | 217 | ## Contato 218 | 219 | Para perguntas, sugestões ou apenas para dizer olá, você pode entrar em contato com os mantenedores deste repositório através das issues ou por e-mail em fvcunhaa@gmail.com. 220 | -------------------------------------------------------------------------------- /Ambientes/ZabbixProxy.md: -------------------------------------------------------------------------------- 1 | # Zabbix Proxy 2 | 3 | O Zabbix Proxy é um intermediário entre os agentes e o servidor Zabbix. Ele coleta dados de hosts remotos e os envia para o servidor Zabbix, permitindo monitoramento distribuído e reduzindo a carga de trabalho nos servidores principais. 4 | 5 | https://www.zabbix.com/documentation/current/en/manual/concepts/proxy 6 | 7 | ## Sobre o Zabbix Proxy em container 8 | 9 | Você pode implantar facilmente um Zabbix Proxy usando o Docker Compose. Aqui está um exemplo de arquivo `docker-compose.yml` para iniciar um Zabbix Proxy junto com um banco de dados SQLite. 10 | 11 | ``` yaml 12 | version: '3.8' 13 | services: 14 | zabbix-proxy: 15 | container_name: "zbx-proxy" 16 | image: zabbix/zabbix-proxy-sqlite3:6.4.4-ubuntu 17 | user: root 18 | environment: 19 | - ZBX_PROXYMODE=0 # 0 - active proxy and 1 - passive proxy 20 | - ZBX_SERVER_HOST= # IP OU DNS DO SEU ZABBIX SERVER 21 | - ZBX_SERVER_PORT=10051 22 | - ZBX_HOSTNAME=prx-teste 23 | - ZBX_DEBUGLEVEL=3 # 0 - basic info, 1 - critical, 2 - error, 3 - warnings, 4 - for debugging, 5 - extended debugging 24 | - ZBX_ENABLEREMOTECOMMANDS=1 25 | - ZBX_PROXYLOCALBUFFER=0 # mantém cópia dos eventos mesmo depois de enviar ao server (valor em horas) 26 | - ZBX_PROXYOFFLINEBUFFER=1 # 6 horas 27 | - ZBX_PROXYHEARTBEATFREQUENCY=60 # 60 seg 28 | - ZBX_CONFIGFREQUENCY=300 # 300 Seg 29 | - ZBX_DATASENDERFREQUENCY=1 # 1 Seg 30 | - ZBX_STARTHISTORYPOLLERS=3 # ---------------- 31 | - ZBX_STARTPOLLERS=5 #500 32 | - ZBX_STARTPREPROCESSORS=5 #500 33 | - ZBX_STARTPOLLERSUNREACHABLE=30 #300 34 | - ZBX_STARTPINGERS=5 #100 35 | - ZBX_STARTDISCOVERERS=3 36 | - ZBX_STARTHTTPPOLLERS=5 37 | - ZBX_HOUSEKEEPINGFREQUENCY=1 38 | - ZBX_STARTVMWARECOLLECTORS=1 39 | - ZBX_CACHESIZE=128M 40 | - ZBX_STARTDBSYNCERS=20 #20 41 | - ZBX_HISTORYCACHESIZE=256M 42 | - ZBX_HISTORYINDEXCACHESIZE=256M 43 | - ZBX_TIMEOUT=30 # 30 Seg 44 | - ZBX_UNREACHABLEPERIOD=400 45 | - ZBX_UNAVAILABLEDELAY=400 46 | - ZBX_UNREACHABLEDELAY=400 47 | - ZBX_LOGSLOWQUERIES=3000 48 | - ZBX_STATSALLOWEDIP=127.0.0.1 49 | - ZBX_TLSCONNECT=psk 50 | - ZBX_TLSACCEPT=psk 51 | - ZBX_TLSPSKIDENTITY=prx-teste 52 | - ZBX_TLSPSKFILE=zabbix_proxy.psk 53 | restart: always 54 | volumes: 55 | - /etc/localtime:/etc/localtime:ro 56 | - /zabbix-proxy/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts 57 | - /zabbix-proxy/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts 58 | - /zabbix-proxy/var/lib/zabbix/enc:/var/lib/zabbix/enc 59 | - /zabbix-proxy/var/lib/zabbix/mibs:/var/lib/zabbix/mibs 60 | ``` 61 | ## Como Utilizar 62 | Você deve salvar o arquivo docker-compose.yaml no diretorio desejado e após isso execute os passos abaixo. 63 | 64 | ```sh 65 | # Criar caminho para a chave de criptografia 66 | mkdir -p /zabbix-proxy/var/lib/zabbix/enc/ 67 | 68 | # Criar chave de criptografia 69 | openssl rand -hex 32 70 | 71 | # Irá ter um output igual ao que irei mostra abaixo 72 | 4de971867cff20facd8a49242bd3ebddaf872271dccc49b530ccc325cd7d05a3 73 | 74 | # Você deve salvar essa chave no arquivo zabbix_proxy.psk 75 | nano /zabbix-proxy/var/lib/zabbix/enc/zabbix_proxy.psk 76 | 77 | # Apos salvar a chave dentro do arquivo você deve dar permissão 78 | sudo chmod 775 /zabbix-proxy/var/lib/zabbix/enc/zabbix_proxy.psk 79 | 80 | # Agora será o comando para subir o container do proxy 81 | docker compose up -d 82 | 83 | # Para ver o container basta dar o comando 84 | docker ps 85 | 86 | # Para verificar os logs basta dar o comando abaixo 87 | docker logs nomedocontainer 88 | ``` 89 | 90 | ## Como Contribuir 91 | 92 | Se você tem algo para contribuir, como novos templates, scripts ou guias de configuração, fique à vontade para enviar uma solicitação de pull. Contribuições são bem-vindas e apreciadas! 93 | 94 | ## Licença 95 | 96 | Este repositório é fornecido sob a [Licença MIT](LICENSE). Sinta-se à vontade para usar, modificar e distribuir o conteúdo conforme necessário. 97 | 98 | ## Contato 99 | 100 | Para perguntas, sugestões ou apenas para dizer olá, você pode entrar em contato com os mantenedores deste repositório através das issues ou por e-mail em fvcunhaa@gmail.com. 101 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Repositório Zabbix 2 | 3 | Bem-vindo ao repositório Zabbix! Aqui você encontrará uma coleção de recursos úteis para configurar, personalizar e operar o Zabbix, uma poderosa plataforma de monitoramento de código aberto. 4 | 5 | ## Sobre o Zabbix 6 | 7 | O Zabbix é uma solução de monitoramento de rede e aplicativos amplamente utilizada, conhecida por sua escalabilidade, flexibilidade e rica variedade de recursos. Este repositório visa fornecer uma central para diversos recursos relacionados ao Zabbix. 8 | 9 | ## Sub-repositórios 10 | 11 | - [Templates Personalizados](templates/README.md): Modelos de itens, triggers e gráficos personalizados para monitorar uma variedade de sistemas e aplicativos. 12 | - [Scripts](scripts/README.md): Scripts úteis para automação, integração e extensão das capacidades do Zabbix. 13 | - [Ambientes de Implantação](ambientes/README.md): Arquivos e instruções para configurar ambientes Zabbix manualmente ou usando contêineres Docker. 14 | 15 | ## Como Contribuir 16 | 17 | Se você tem algo para contribuir, como novos templates, scripts ou guias de configuração, fique à vontade para enviar uma solicitação de pull. Contribuições são bem-vindas e apreciadas! 18 | 19 | ## Licença 20 | 21 | Este repositório é fornecido sob a [Licença MIT](LICENSE). Sinta-se à vontade para usar, modificar e distribuir o conteúdo conforme necessário. 22 | 23 | ## Contato 24 | 25 | Para perguntas, sugestões ou apenas para dizer olá, você pode entrar em contato com os mantenedores deste repositório através das issues ou por e-mail em fvcunhaa@gmail.com. 26 | -------------------------------------------------------------------------------- /Scripts/Script-add-host-powershell.md: -------------------------------------------------------------------------------- 1 | # Script em PowerShell Automatizando Adição de Hosts 2 | 3 | Este script foi criado para adicionar hosts em massa a um grupo específico via API, utilizando PowerShell. Ele foi desenvolvido para evitar a adição manual de mais de 800 hosts. Como era um ambiente que não possuía acesso externo e não havia Python instalado nas máquinas, desenvolvi esse script para atender às demandas e otimizar as tarefas diárias deste projeto em particular. 4 | 5 | 6 | # Abaixo conteúdo do script 7 | 8 | ```ps 9 | # Parâmetros Zabbix API 10 | $zabbixURL = "https://Seu_Dominio/api_jsonrpc.php" 11 | $authToken = "Seu_token" # Token de autenticação da API do Zabbix 12 | 13 | # Função para chamar a API do Zabbix 14 | function Invoke-ZabbixAPI { 15 | param ( 16 | [string]$method, 17 | [hashtable]$params 18 | ) 19 | $body = @{ 20 | jsonrpc = "2.0" 21 | method = $method 22 | params = $params 23 | auth = $authToken 24 | id = 1 25 | } 26 | try { 27 | return Invoke-RestMethod -Uri $zabbixURL -Method Post -Body ($body | ConvertTo-Json -Depth 10) -ContentType "application/json" 28 | } catch { 29 | return $null 30 | } 31 | } 32 | 33 | # Função para obter o ID do grupo pelo nome 34 | function Get-GroupIdByName { 35 | param ( 36 | [string]$groupName 37 | ) 38 | $params = @{ 39 | filter = @{} 40 | } 41 | $response = Invoke-ZabbixAPI -method "hostgroup.get" -params $params 42 | if ($response -and $response.result) { 43 | $group = $response.result | Where-Object { $_.name -eq $groupName } 44 | return $group.groupid 45 | } 46 | return $null 47 | } 48 | 49 | # Lista de Hosts (Nome, IP e Grupo) 50 | $hostsData = @( 51 | @{ Nome = "Host1"; IP = "192.168.1.1"; Grupo = "Virtual machines" }, 52 | @{ Nome = "Host2"; IP = "192.168.1.2"; Grupo = "Virtual machines" }, 53 | @{ Nome = "Host3"; IP = "192.168.1.3"; Grupo = "Virtual machines" } 54 | ) 55 | 56 | # Loop sobre a lista de hosts 57 | foreach ($currentHost in $hostsData) { 58 | $hostName = $currentHost.Nome 59 | $hostIP = $currentHost.IP 60 | $groupName = $currentHost.Grupo 61 | $groupId = Get-GroupIdByName -groupName $groupName 62 | 63 | if ($null -ne $groupId) { 64 | # Parâmetros para adicionar o host 65 | $params = @{ 66 | host = $hostName 67 | interfaces = @( 68 | @{ 69 | type = 1 # 1 = agente Zabbix 70 | main = 1 71 | useip = 1 72 | ip = $hostIP 73 | dns = "" 74 | port = "10050" # Porta padrão do agente Zabbix 75 | } 76 | ) 77 | groups = @( 78 | @{ 79 | groupid = $groupId 80 | } 81 | ) 82 | inventory_mode = 0 # Desativar inventário automático 83 | } 84 | 85 | # Chama a API para criar o host 86 | $response = Invoke-ZabbixAPI -method "host.create" -params $params 87 | 88 | # Verifica a resposta 89 | if ($response -and $response.result) { 90 | # Sucesso, você pode adicionar um log aqui se precisar 91 | } 92 | } 93 | } 94 | `````` 95 | 96 | ## Como Contribuir 97 | 98 | Se você tem algo para contribuir, como novos templates, scripts ou guias de configuração, fique à vontade para enviar uma solicitação de pull. Contribuições são bem-vindas e apreciadas! 99 | 100 | ## Licença 101 | 102 | Este repositório é fornecido sob a [Licença MIT](LICENSE). Sinta-se à vontade para usar, modificar e distribuir o conteúdo conforme necessário. 103 | 104 | ## Contato 105 | 106 | Para perguntas, sugestões ou apenas para dizer olá, você pode entrar em contato com os mantenedores deste repositório através das issues ou por e-mail em fvcunhaa@gmail.com. 107 | -------------------------------------------------------------------------------- /Scripts/ZabbixAllinOneContainer.md: -------------------------------------------------------------------------------- 1 | # Script em Shell Automatizando Zabbix em Container 2 | 3 | Esse script ele instala o docker, depois cria o diretório conforme o padrão que está na documentação, logo após isso ele cria o docker-compose.yaml e lembrando que tem campos no arquivo do docker compose que devem ser preenchido de acordo com seu ambiente, tais como: 4 | 5 | DB_SERVER_HOST: Colocar o IP ou DNS do seu Zabbix 6 | 7 | ZBX_PASSIVESERVERS:Colocar o IP ou DNS do seu Zabbix 8 | 9 | Você deve salvar esse Script que está abaixo com o nome que desejar, recomendo como zabbix.sh pois é em shellscript e não pode esquecer o ".sh", você deve dar permissão a esse script. 10 | 11 | ## Comando para criar o arquivo 12 | 13 | ```sh 14 | nano zabbix.sh 15 | ``` 16 | ## Comando para dar permissão ao script 17 | 18 | ```sh 19 | chmod +x zabbix.sh 20 | ``` 21 | 22 | # Abaixo conteúdo do script 23 | 24 | ```sh 25 | #!/bin/bash 26 | 27 | # Os três primeiros comando é para instalar o docker e update do SO 28 | sudo curl -fsSL https://get.docker.com -o get-docker.sh 29 | sudo sh get-docker.sh 30 | sudo apt update 31 | 32 | # Esse comando serve para criar o diretório onde irá ficar o docker-compose.yamlS 33 | sudo mkdir -p /home/zabbix/ 34 | 35 | # Agora é a criação do arquivo docker-compose.yaml 36 | cat < /home/zabbix/docker-compose.yaml 37 | version: '3.5' 38 | services: 39 | zabbix-server: 40 | container_name: "zabbix-server" 41 | image: zabbix/zabbix-server-pgsql:alpine-trunk 42 | restart: always 43 | ports: 44 | - 10051:10051 45 | networks: 46 | - zabbix7 47 | volumes: 48 | - /etc/localtime:/etc/localtime:ro 49 | - /etc/timezone:/etc/timezone:ro 50 | environment: 51 | ZBX_CACHESIZE: 4096M 52 | ZBX_HISTORYCACHESIZE: 1024M 53 | ZBX_HISTORYINDEXCACHESIZE: 1024M 54 | ZBX_TRENDCACHESIZE: 1024M 55 | ZBX_VALUECACHESIZE: 1024M 56 | DB_SERVER_HOST: "SEUIP" 57 | DB_PORT: 5432 58 | POSTGRES_USER: "zabbix" 59 | POSTGRES_PASSWORD: "zabbix123" 60 | POSTGRES_DB: "zabbix_db" 61 | stop_grace_period: 30s 62 | labels: 63 | com.zabbix.description: "Zabbix server with PostgreSQL database support" 64 | com.zabbix.company: "Zabbix LLC" 65 | com.zabbix.component: "zabbix-server" 66 | com.zabbix.dbtype: "pgsql" 67 | com.zabbix.os: "alpine" 68 | 69 | zabbix-web-nginx-pgsql: 70 | container_name: "zabbix-web" 71 | image: zabbix/zabbix-web-nginx-pgsql:alpine-trunk 72 | restart: always 73 | ports: 74 | - 8080:8080 75 | - 8443:8443 76 | volumes: 77 | - /etc/localtime:/etc/localtime:ro 78 | - /etc/timezone:/etc/timezone:ro 79 | - ./cert/:/usr/share/zabbix/conf/certs/:ro 80 | networks: 81 | - zabbix7 82 | environment: 83 | DB_SERVER_HOST: "SEUIP" 84 | DB_PORT: 5432 85 | POSTGRES_USER: "zabbix" 86 | POSTGRES_PASSWORD: "zabbix123" 87 | POSTGRES_DB: "zabbix_db" 88 | ZBX_MEMORYLIMIT: "1024M" 89 | depends_on: 90 | - zabbix-server 91 | healthcheck: 92 | test: ["CMD", "curl", "-f", "http://localhost:8080/ping"] 93 | interval: 10s 94 | timeout: 5s 95 | retries: 3 96 | start_period: 30s 97 | stop_grace_period: 10s 98 | labels: 99 | com.zabbix.description: "Zabbix frontend on Nginx web-server with PostgreSQL database support" 100 | com.zabbix.company: "Zabbix LLC" 101 | com.zabbix.component: "zabbix-frontend" 102 | com.zabbix.webserver: "nginx" 103 | com.zabbix.dbtype: "pgsql" 104 | com.zabbix.os: "alpine" 105 | 106 | zabbix-db-agent2: 107 | container_name: "zabbix-agent2" 108 | image: zabbix/zabbix-agent2:alpine-trunk 109 | user: root 110 | depends_on: 111 | - zabbix-server 112 | volumes: 113 | - /etc/localtime:/etc/localtime:ro 114 | - /etc/timezone:/etc/timezone:ro 115 | - /run/docker.sock:/var/run/docker.sock 116 | environment: 117 | ZBX_HOSTNAME: "zabbix7" 118 | ZBX_SERVER_HOST: "127.0.0.1" 119 | ZBX_PASSIVE_ALLOW: "true" 120 | ZBX_PASSIVESERVERS: "SEUIP" 121 | ZBX_ENABLEREMOTECOMMANDS: "1" 122 | ZBX_ACTIVE_ALLOW: "false" 123 | ZBX_DEBUGLEVEL: "3" 124 | privileged: true 125 | pid: "host" 126 | ports: 127 | - 10050:10050 128 | - 31999:31999 129 | networks: 130 | - zabbix7 131 | stop_grace_period: 5s 132 | 133 | db: 134 | container_name: "zabbix_db" 135 | image: postgres:15.6-bullseye 136 | restart: always 137 | volumes: 138 | - zbx_db15:/var/lib/postgresql/data 139 | ports: 140 | - 5432:5432 141 | networks: 142 | - zabbix7 143 | environment: 144 | POSTGRES_USER: "zabbix" 145 | POSTGRES_PASSWORD: "zabbix123" 146 | POSTGRES_DB: "zabbix_db" 147 | 148 | networks: 149 | zabbix7: 150 | driver: bridge 151 | volumes: 152 | zbx_db15: 153 | EOF 154 | 155 | # Agora irá para o diretório e dar o comando para criar os container 156 | cd /home/zabbix/ 157 | 158 | # Esse comando serve para criar os container 159 | sudo docker compose up -d 160 | 161 | # Esse comando serve para ver o container 162 | sudo docker ps 163 | 164 | # Se for necessário ver os logs basta dar o comando baixo 165 | # sudo docker logs nomedocontainer 166 | `````` 167 | 168 | ## Como Contribuir 169 | 170 | Se você tem algo para contribuir, como novos templates, scripts ou guias de configuração, fique à vontade para enviar uma solicitação de pull. Contribuições são bem-vindas e apreciadas! 171 | 172 | ## Licença 173 | 174 | Este repositório é fornecido sob a [Licença MIT](LICENSE). Sinta-se à vontade para usar, modificar e distribuir o conteúdo conforme necessário. 175 | 176 | ## Contato 177 | 178 | Para perguntas, sugestões ou apenas para dizer olá, você pode entrar em contato com os mantenedores deste repositório através das issues ou por e-mail em fvcunhaa@gmail.com. -------------------------------------------------------------------------------- /Scripts/ZabbixProxyContainer.md: -------------------------------------------------------------------------------- 1 | # Script em Shell Automatizando Zabbix Proxy em Container 2 | 3 | Esse script ele instala o docker, depois cria o diretório conforme o padrão que realizo em produção, logo após isso ele cria o docker-compose.yaml e lembrando que tem campos no arquivo do docker compose que devem ser preenchido de acordo com seu ambiente, tais como: 4 | 5 | ZBX_SERVER_HOST= Colocar o IP ou DNS do seu Zabbix 6 | 7 | ZBX_HOSTNAME= Nome do seu Proxy 8 | 9 | ZBX_TLSPSKIDENTITY= Por padrão coloco o mesmo nome do proxy 10 | 11 | Você deve salvar esse Script que está abaixo com o nome que desejar, recomendo como zabbixproxy.sh pois é em shellscript e não pode esquecer o ".sh", você deve dar permissão a esse script. 12 | 13 | ## Comando para criar o arquivo 14 | 15 | ```sh 16 | nano zabbixproxy.sh 17 | ``` 18 | ## Comando para dar permissão ao script 19 | 20 | ```sh 21 | chmod +x nomedoscript 22 | ``` 23 | 24 | # Abaixo conteúdo do script 25 | 26 | ```sh 27 | #!/bin/bash 28 | 29 | # Os três primeiros comando é para instalar o docker e update do SO 30 | sudo curl -fsSL https://get.docker.com -o get-docker.sh 31 | sudo sh get-docker.sh 32 | sudo apt update 33 | 34 | # Esse comando serve para criar o diretório onde irá ficar o docker-compose.yamlS 35 | sudo mkdir -p /home/zabbix-proxy/ 36 | 37 | # Agora é a criação do arquivo docker-compose.yaml 38 | cat < /home/zabbix-proxy/docker-compose.yaml 39 | version: '3.8' 40 | services: 41 | zabbix-proxy: 42 | container_name: "zbx-proxy" 43 | image: zabbix/zabbix-proxy-sqlite3:6.4.4-ubuntu 44 | user: root 45 | environment: 46 | - ZBX_PROXYMODE=0 # 0 - active proxy and 1 - passive proxy 47 | - ZBX_SERVER_HOST= # IP OU DNS DO SEU ZABBIX SERVER 48 | - ZBX_SERVER_PORT=10051 49 | - ZBX_HOSTNAME=prx-teste01 50 | - ZBX_DEBUGLEVEL=3 # 0 - basic info, 1 - critical, 2 - error, 3 - warnings, 4 - for debugging, 5 - extended debugging 51 | - ZBX_ENABLEREMOTECOMMANDS=1 52 | - ZBX_PROXYLOCALBUFFER=0 # mantém cópia dos eventos mesmo depois de enviar ao server (valor em horas) 53 | - ZBX_PROXYOFFLINEBUFFER=1 # 6 horas 54 | - ZBX_PROXYHEARTBEATFREQUENCY=60 # 60 seg 55 | - ZBX_CONFIGFREQUENCY=300 # 300 Seg 56 | - ZBX_DATASENDERFREQUENCY=1 # 1 Seg 57 | - ZBX_STARTHISTORYPOLLERS=3 # ---------------- 58 | - ZBX_STARTPOLLERS=5 #500 59 | - ZBX_STARTPREPROCESSORS=5 #500 60 | - ZBX_STARTPOLLERSUNREACHABLE=30 #300 61 | - ZBX_STARTPINGERS=5 #100 62 | - ZBX_STARTDISCOVERERS=3 63 | - ZBX_STARTHTTPPOLLERS=5 64 | - ZBX_HOUSEKEEPINGFREQUENCY=1 65 | - ZBX_STARTVMWARECOLLECTORS=1 66 | - ZBX_CACHESIZE=128M 67 | - ZBX_STARTDBSYNCERS=20 #20 68 | - ZBX_HISTORYCACHESIZE=256M 69 | - ZBX_HISTORYINDEXCACHESIZE=256M 70 | - ZBX_TIMEOUT=30 # 30 Seg 71 | - ZBX_UNREACHABLEPERIOD=400 72 | - ZBX_UNAVAILABLEDELAY=400 73 | - ZBX_UNREACHABLEDELAY=400 74 | - ZBX_LOGSLOWQUERIES=3000 75 | - ZBX_STATSALLOWEDIP=127.0.0.1 76 | - ZBX_TLSCONNECT=psk 77 | - ZBX_TLSACCEPT=psk 78 | - ZBX_TLSPSKIDENTITY=prx-teste01 79 | - ZBX_TLSPSKFILE=zabbix_proxy.psk 80 | restart: always 81 | volumes: 82 | - /etc/localtime:/etc/localtime:ro 83 | - /zabbix-proxy/usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts 84 | - /zabbix-proxy/usr/lib/zabbix/externalscripts:/usr/lib/zabbix/externalscripts 85 | - /zabbix-proxy/var/lib/zabbix/enc:/var/lib/zabbix/enc 86 | - /zabbix-proxy/var/lib/zabbix/mibs:/var/lib/zabbix/mibs 87 | EOF 88 | 89 | # Então devemos criar o diretório onde irá ficar a nossa chave de criptografia 90 | sudo mkdir -p /zabbix-proxy/var/lib/zabbix/enc 91 | 92 | # Aqui irá criar o arquivo que contém a chave de criptografia. 93 | # Lembrando que essa chave deve ser gerada, essa é apenas para teste mas irá funcionar no seu laboratório, você deve colocar ela lá no front-end do zabbix quando for cadastrar um novo proxy 94 | cat < /zabbix-proxy/var/lib/zabbix/enc/zabbix_proxy.psk 95 | 4de971867cff20facd8a49242bd3ebddaf872271dccc49b530ccc325cd7d05a3 96 | EOF 97 | 98 | # Esse comando é para da a devida permissão ao arquivo 99 | sudo chmod 775 /zabbix-proxy/var/lib/zabbix/enc/zabbix_proxy.psk 100 | 101 | # Agora irá para o diretório e dar o comando para criar os container 102 | cd /home/zabbix-proxy/ 103 | 104 | # Esse comando serve para criar os container 105 | sudo docker compose up -d 106 | 107 | # Esse comando serve para ver o container 108 | sudo docker ps 109 | 110 | # Se for necessário ver os logs basta dar o comando baixo 111 | sudo docker logs nomedocontainer 112 | `````` 113 | 114 | ## Como Contribuir 115 | 116 | Se você tem algo para contribuir, como novos templates, scripts ou guias de configuração, fique à vontade para enviar uma solicitação de pull. Contribuições são bem-vindas e apreciadas! 117 | 118 | ## Licença 119 | 120 | Este repositório é fornecido sob a [Licença MIT](LICENSE). Sinta-se à vontade para usar, modificar e distribuir o conteúdo conforme necessário. 121 | 122 | ## Contato 123 | 124 | Para perguntas, sugestões ou apenas para dizer olá, você pode entrar em contato com os mantenedores deste repositório através das issues ou por e-mail em fvcunhaa@gmail.com. -------------------------------------------------------------------------------- /Templates/NAS Asustor/README.md: -------------------------------------------------------------------------------- 1 | # Template NAS Asustor 2 | 3 | ## Template é composto por essas informações: 4 | 5 | - CPU 6 | - Fan 7 | - Network 8 | - Storage 9 | - Volumes 10 | - Dados de inventário do host SNMP 11 | - ICMP 12 | 13 | 📚 Links Úteis: 14 | 15 | 🔗Documentação: https://www.asustor.com/en/online/College_topic?topic=271#mib51 16 | 17 | 🔗Youtube: https://www.youtube.com/@tecfranciscocunha 18 | 19 | 🔗Instagram: https://www.instagram.com/tecfranciscocunha/ 20 | 21 | 🔗Linkedin: https://www.linkedin.com/in/tecfranciscocunha/ 22 | 23 | ## Como Contribuir 24 | 25 | Se você tem algo para contribuir, como novos templates, scripts ou guias de configuração, fique à vontade para enviar uma solicitação de pull. Contribuições são bem-vindas e apreciadas! 26 | 27 | ## Licença 28 | 29 | Este repositório é fornecido sob a [Licença MIT](LICENSE). Sinta-se à vontade para usar, modificar e distribuir o conteúdo conforme necessário. 30 | 31 | ## Contato 32 | 33 | Para perguntas, sugestões ou apenas para dizer olá, você pode entrar em contato com os mantenedores deste repositório através das issues ou por e-mail em fvcunhaa@gmail.com. 34 | -------------------------------------------------------------------------------- /Templates/NAS Asustor/TEMPLATE-NAS-ASUSTOR.yaml: -------------------------------------------------------------------------------- 1 | zabbix_export: 2 | version: '7.0' 3 | template_groups: 4 | - uuid: 6cb51c7565fd47faa7086c872b92bd5d 5 | name: Templates/Francisco 6 | templates: 7 | - uuid: c293a890dadf43c699a6b96019d8f4e9 8 | template: 'TEMPLATE NAS ASUSTOR' 9 | name: 'TEMPLATE NAS ASUSTOR' 10 | description: | 11 | Template criado de acordo com a documentação do site do fabricante. 12 | 13 | https://www.asustor.com/en/online/College_topic?topic=271#mib51 14 | 15 | Responsável: Francisco Cunha 16 | Github: https://github.com/fvcunhaa/zabbix 17 | vendor: 18 | name: github/fvcunhaa 19 | version: 7.0.0 20 | groups: 21 | - name: Templates/Francisco 22 | items: 23 | - uuid: 4844667bcfeb44dfb943b7267843aa76 24 | name: 'CPU Temperature' 25 | type: SNMP_AGENT 26 | snmp_oid: 1.3.6.1.4.1.44738.2.3.0 27 | key: hwCPUTemperature 28 | history: 1w 29 | units: ℃ 30 | description: 'The CPU temperature in Celsius degree' 31 | - uuid: cabe2063c8ff464cad465dbbca81a2b6 32 | name: 'Free memory' 33 | type: SNMP_AGENT 34 | snmp_oid: 1.3.6.1.4.1.44738.2.5.0 35 | key: hwFreeMem 36 | delay: 1h 37 | history: 1w 38 | units: Mb 39 | description: 'The system free memory capacity in megabyte (MB)' 40 | - uuid: ed08bd2c0cf94b01ad81c321da170d78 41 | name: 'Model Name' 42 | type: SNMP_AGENT 43 | snmp_oid: 1.3.6.1.4.1.44738.2.1.0 44 | key: hwModelName 45 | delay: 1h 46 | history: 1w 47 | trends: '0' 48 | value_type: CHAR 49 | description: 'The model name of this NAS' 50 | - uuid: 305bcbabda9440449d55d2cfbbdc660b 51 | name: Processor 52 | type: SNMP_AGENT 53 | snmp_oid: 1.3.6.1.4.1.44738.2.6.0 54 | key: hwProcessor 55 | delay: 1h 56 | history: 1w 57 | trends: '0' 58 | value_type: CHAR 59 | description: 'The model name of the CPU' 60 | - uuid: 876d1efb01c84d3b82cf0ee389c2395b 61 | name: 'NAS Temperature' 62 | type: SNMP_AGENT 63 | snmp_oid: 1.3.6.1.4.1.44738.2.2.0 64 | key: hwSysTemperature 65 | delay: 15s 66 | history: 1w 67 | units: ℃ 68 | description: 'The system temperature in Celsius degree' 69 | triggers: 70 | - uuid: f00c2075a9474e00b4c32cd49de0df30 71 | expression: 'min(/TEMPLATE NAS ASUSTOR/hwSysTemperature,5m)>=70' 72 | name: 'CPU Temperature to Hight > 70℃' 73 | priority: HIGH 74 | manual_close: 'YES' 75 | - uuid: fd59bb695c0a4af3be8faa3ea1269915 76 | name: 'Total Memory' 77 | type: SNMP_AGENT 78 | snmp_oid: 1.3.6.1.4.1.44738.2.4.0 79 | key: hwTotalMem 80 | delay: 1h 81 | history: 90d 82 | units: Mb 83 | description: 'The system total memory capacity in megabyte (MB)' 84 | - uuid: b03e860a151941c2af62c1d2e4c6c7ab 85 | name: 'ICMP loss' 86 | type: SIMPLE 87 | key: 'icmppingloss[,10,20,56,2000]' 88 | delay: 2m 89 | history: 1w 90 | value_type: FLOAT 91 | units: '%' 92 | triggers: 93 | - uuid: 5529d7e4c81c4e169249be76af0cb98b 94 | expression: 'min(/TEMPLATE NAS ASUSTOR/icmppingloss[,10,20,56,2000],20m)>{$ICMP_LOSS_WARN} and min(/TEMPLATE NAS ASUSTOR/icmppingloss[,10,20,56,2000],20m)<100' 95 | name: 'High ICMP ping loss' 96 | opdata: 'Loss: {ITEM.LASTVALUE1}' 97 | priority: HIGH 98 | manual_close: 'YES' 99 | dependencies: 100 | - name: 'Host is unreachable by ICMP Ping' 101 | expression: 'max(/TEMPLATE NAS ASUSTOR/icmpping[,50,20,56,1000],5m)=0' 102 | recovery_expression: 'min(/TEMPLATE NAS ASUSTOR/icmpping[,50,20,56,1000],5m)=1' 103 | tags: 104 | - tag: event 105 | value: ping-loss 106 | - uuid: c6df9a8fb4bc40b0a8661900c75a3275 107 | name: 'ICMP response time' 108 | type: SIMPLE 109 | key: icmppingsec 110 | delay: 3m 111 | history: 1w 112 | value_type: FLOAT 113 | units: s 114 | triggers: 115 | - uuid: 55f16f514ffc40fda791ea5a3f463552 116 | expression: 'avg(/TEMPLATE NAS ASUSTOR/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}' 117 | name: 'High ICMP ping response time' 118 | priority: WARNING 119 | manual_close: 'YES' 120 | - uuid: 5070e31285c341ad986282eba8b992ec 121 | name: 'ICMP ping' 122 | type: SIMPLE 123 | key: 'icmpping[,50,20,56,1000]' 124 | history: 1w 125 | triggers: 126 | - uuid: 7cca47a8d15e4ee79fdae6a52e7ad80a 127 | expression: 'max(/TEMPLATE NAS ASUSTOR/icmpping[,50,20,56,1000],5m)=0' 128 | recovery_mode: RECOVERY_EXPRESSION 129 | recovery_expression: 'min(/TEMPLATE NAS ASUSTOR/icmpping[,50,20,56,1000],5m)=1' 130 | name: 'Host is unreachable by ICMP Ping' 131 | priority: DISASTER 132 | manual_close: 'YES' 133 | tags: 134 | - tag: event 135 | value: icmp-ping 136 | - uuid: ca33e473829a46ed83ebec7144a017ab 137 | name: 'ADM Version' 138 | type: SNMP_AGENT 139 | snmp_oid: 1.3.6.1.4.1.44738.1.2.0 140 | key: sysADMVersion 141 | delay: 1h 142 | history: 90d 143 | trends: '0' 144 | value_type: CHAR 145 | description: 'The ADM version of this NAS' 146 | - uuid: 417a721026fa45269c9894fa2aa5f738 147 | name: 'Asustor ID' 148 | type: SNMP_AGENT 149 | snmp_oid: 1.3.6.1.4.1.44738.1.7.0 150 | key: sysAsustorID 151 | delay: 1h 152 | history: 1w 153 | trends: '0' 154 | value_type: TEXT 155 | description: 'Checks whether there is a newer ADM for upgrade' 156 | - uuid: 4e507850a1304b74a27a9480f459a309 157 | name: 'Bios Versioon' 158 | type: SNMP_AGENT 159 | snmp_oid: 1.3.6.1.4.1.44738.1.3.0 160 | key: sysBiosVersion 161 | delay: 1h 162 | history: 1w 163 | trends: '0' 164 | value_type: CHAR 165 | description: 'The BIOS version of this NAS' 166 | - uuid: 293548dfbddc4974a1c860d1fa849737 167 | name: 'Serial Number' 168 | type: SNMP_AGENT 169 | snmp_oid: 1.3.6.1.4.1.44738.1.1.0 170 | key: sysSerialNumber 171 | delay: 1h 172 | history: 1w 173 | trends: '0' 174 | value_type: CHAR 175 | description: 'The serial number of this NAS' 176 | - uuid: c3afe50b0aa14af4a0fbc5174770fcfa 177 | name: Time 178 | type: SNMP_AGENT 179 | snmp_oid: 1.3.6.1.4.1.44738.1.5.0 180 | key: sysTime 181 | delay: 1h 182 | history: 1w 183 | trends: '0' 184 | value_type: CHAR 185 | description: 'The current time of this NAS' 186 | - uuid: 5fad87c5ac8e42d98c1cfb72accc87ef 187 | name: 'Time Zone' 188 | type: SNMP_AGENT 189 | snmp_oid: 1.3.6.1.4.1.44738.1.6.0 190 | key: sysTimeZone 191 | delay: 1h 192 | history: 1w 193 | trends: '0' 194 | value_type: CHAR 195 | description: 'The time zone of this NAS' 196 | - uuid: 01820b5446c34146a464aa6b78efc107 197 | name: Uptime 198 | type: SNMP_AGENT 199 | snmp_oid: 1.3.6.1.4.1.44738.1.4.0 200 | key: sysUptime 201 | delay: 1h 202 | history: 1w 203 | trends: '0' 204 | value_type: TEXT 205 | description: 'The uptime of this NAS' 206 | discovery_rules: 207 | - uuid: b7e91273c5684a0fab8404e3142852bc 208 | name: 'CPU discovery' 209 | type: SNMP_AGENT 210 | snmp_oid: 'discovery[{#CPUASUSTOR},.1.3.6.1.4.1.44738.2.7.1.1.2]' 211 | key: cpuDiscovery 212 | delay: 1h 213 | lifetime: 30d 214 | enabled_lifetime_type: DISABLE_NEVER 215 | item_prototypes: 216 | - uuid: e987571e21d64b2da761a10c678088a4 217 | name: 'CPU #{#SNMPINDEX} usage' 218 | type: SNMP_AGENT 219 | snmp_oid: '.1.3.6.1.4.1.44738.2.7.1.1.2.{#SNMPINDEX}' 220 | key: 'CPUUsage[{#SNMPINDEX}]' 221 | units: '%' 222 | graph_prototypes: 223 | - uuid: 11dbcb4fbfb44eeb9b6ce08339caae03 224 | name: 'CPU #{#SNMPINDEX} Usage' 225 | graph_items: 226 | - color: FF0080 227 | item: 228 | host: 'TEMPLATE NAS ASUSTOR' 229 | key: 'CPUUsage[{#SNMPINDEX}]' 230 | - uuid: 5515cd8447b5471b8e3bb74c0ce7a272 231 | name: 'Storage discovery' 232 | type: SNMP_AGENT 233 | snmp_oid: 'discovery[{#DISKINDEX},.1.3.6.1.4.1.44738.4.1.1.1]' 234 | key: diskDiscovery 235 | delay: 1h 236 | lifetime: 10d 237 | enabled_lifetime_type: DISABLE_NEVER 238 | item_prototypes: 239 | - uuid: 483aeb8e4edc42dc882b280d47cee869 240 | name: 'Disk #{#SNMPINDEX} index' 241 | type: SNMP_AGENT 242 | snmp_oid: '.1.3.6.1.4.1.44738.4.1.1.1.{#SNMPINDEX}' 243 | key: 'storage.diskIndex[{#SNMPINDEX}]' 244 | delay: 5m 245 | history: 1w 246 | - uuid: dfc4440c2c5149228e5331146f7cd970 247 | name: 'Disk #{#SNMPINDEX} interface' 248 | type: SNMP_AGENT 249 | snmp_oid: '.1.3.6.1.4.1.44738.4.1.1.4.{#SNMPINDEX}' 250 | key: 'storage.diskInterface[{#SNMPINDEX}]' 251 | delay: 5m 252 | history: 1w 253 | trends: '0' 254 | value_type: TEXT 255 | - uuid: b8b8ddb764e24243b97e24b2f872c9d1 256 | name: 'Disk #{#SNMPINDEX} model' 257 | type: SNMP_AGENT 258 | snmp_oid: '.1.3.6.1.4.1.44738.4.1.1.3.{#SNMPINDEX}' 259 | key: 'storage.diskModel[{#SNMPINDEX}]' 260 | delay: 5m 261 | history: 1w 262 | trends: '0' 263 | value_type: TEXT 264 | - uuid: 5ea240bc3f0643f3908a6aa62f8a2540 265 | name: 'Disk #{#SNMPINDEX} name' 266 | type: SNMP_AGENT 267 | snmp_oid: '.1.3.6.1.4.1.44738.4.1.1.2.{#SNMPINDEX}' 268 | key: 'storage.diskName[{#SNMPINDEX}]' 269 | delay: 5m 270 | history: 1w 271 | trends: '0' 272 | value_type: TEXT 273 | - uuid: e2e51b575b1f481b8adaa8f62f218367 274 | name: 'Disk #{#SNMPINDEX} size' 275 | type: SNMP_AGENT 276 | snmp_oid: '.1.3.6.1.4.1.44738.4.1.1.7.{#SNMPINDEX}' 277 | key: 'storage.diskSize[{#SNMPINDEX}]' 278 | delay: 5m 279 | history: 1w 280 | units: Gb 281 | - uuid: 815cc9da276344a986e7ba533e0651b1 282 | name: 'Disk #{#SNMPINDEX} SmartInfo' 283 | type: SNMP_AGENT 284 | snmp_oid: '.1.3.6.1.4.1.44738.4.1.1.8.{#SNMPINDEX}' 285 | key: 'storage.diskSmartInfo[{#SNMPINDEX}]' 286 | delay: 5m 287 | history: 1w 288 | trends: '0' 289 | value_type: TEXT 290 | - uuid: 0a57cf8ff30d442bb045aba2c113f01c 291 | name: 'Disk #{#SNMPINDEX} status' 292 | type: SNMP_AGENT 293 | snmp_oid: '.1.3.6.1.4.1.44738.4.1.1.5.{#SNMPINDEX}' 294 | key: 'storage.diskStatus[{#SNMPINDEX}]' 295 | history: 1w 296 | trends: '0' 297 | value_type: TEXT 298 | trigger_prototypes: 299 | - uuid: 34f8d74218a34591a598997a7810137f 300 | expression: 'find(/TEMPLATE NAS ASUSTOR/storage.diskStatus[{#SNMPINDEX}],,"regexp","bad")=1' 301 | name: 'Hard Disk #{#SNMPINDEX} status: Bad' 302 | priority: DISASTER 303 | manual_close: 'YES' 304 | - uuid: dd9396f647b345b08d717a58da214e42 305 | expression: 'find(/TEMPLATE NAS ASUSTOR/storage.diskStatus[{#SNMPINDEX}],,"regexp","Risky")=1' 306 | name: 'Hard Disk #{#SNMPINDEX} status: Risky' 307 | priority: WARNING 308 | manual_close: 'YES' 309 | - uuid: 54e6da61b6fb4984889b01e2d825c4cb 310 | expression: 'find(/TEMPLATE NAS ASUSTOR/storage.diskStatus[{#SNMPINDEX}],,"regexp","Dangerous")=1' 311 | name: 'Hard Disk #{#SNMPINDEX} status: Warning' 312 | priority: AVERAGE 313 | - uuid: 02840198c901422eb15964d9179f55f7 314 | name: 'Disk #{#SNMPINDEX} temperature' 315 | type: SNMP_AGENT 316 | snmp_oid: '.1.3.6.1.4.1.44738.4.1.1.6.{#SNMPINDEX}' 317 | key: 'storage.diskTemperature[{#SNMPINDEX}]' 318 | delay: 5m 319 | history: 1w 320 | units: ℃ 321 | trigger_prototypes: 322 | - uuid: 9711bed042324359820b0c4f98ddb444 323 | expression: 'last(/TEMPLATE NAS ASUSTOR/storage.diskTemperature[{#SNMPINDEX}])>60' 324 | name: 'Hard Disk #{#SNMPINDEX} Temperature to High > 60℃' 325 | priority: AVERAGE 326 | manual_close: 'YES' 327 | - uuid: a3e0b488a51846ba82135a9fdf010a11 328 | expression: 'last(/TEMPLATE NAS ASUSTOR/storage.diskTemperature[{#SNMPINDEX}])>70' 329 | name: 'Hard Disk #{#SNMPINDEX} Temperature to High > 70℃' 330 | priority: DISASTER 331 | manual_close: 'YES' 332 | - uuid: 3e4965ab18cb49a781c58130d0ccd178 333 | name: 'Fan discovery' 334 | type: SNMP_AGENT 335 | snmp_oid: 'discovery[{#FANASUSTOR},.1.3.6.1.4.1.44738.2.8.1.1.1]' 336 | key: fanDiscovery 337 | delay: 1h 338 | lifetime: 30d 339 | enabled_lifetime_type: DISABLE_NEVER 340 | item_prototypes: 341 | - uuid: f5e0e3d3edc94059aa57bcf7d605d993 342 | name: 'Fan #{#SNMPINDEX} speed' 343 | type: SNMP_AGENT 344 | snmp_oid: '.1.3.6.1.4.1.44738.2.8.1.1.2.{#SNMPINDEX}' 345 | key: 'fanSpeed[{#SNMPINDEX}]' 346 | history: 1w 347 | units: RPM 348 | trigger_prototypes: 349 | - uuid: 7dbfab1e8bf94b5c9b1da79b094ecd63 350 | expression: 'min(/TEMPLATE NAS ASUSTOR/fanSpeed[{#SNMPINDEX}],5m)<50' 351 | name: 'FAN #{#SNMPINDEX} Slow RPM' 352 | priority: HIGH 353 | manual_close: 'YES' 354 | graph_prototypes: 355 | - uuid: 55ae48f0ab814edfaad0074830e81a7a 356 | name: 'Fan #{#SNMPINDEX} RPM' 357 | graph_items: 358 | - color: 1A7C11 359 | item: 360 | host: 'TEMPLATE NAS ASUSTOR' 361 | key: 'fanSpeed[{#SNMPINDEX}]' 362 | - uuid: c63a729c4d034841b95de980242df679 363 | name: 'Net discovery' 364 | type: SNMP_AGENT 365 | snmp_oid: 'discovery[{#NETINDEX},.1.3.6.1.4.1.44738.3.1.1.1]' 366 | key: netDiscovery 367 | delay: 1h 368 | lifetime: 30d 369 | enabled_lifetime_type: DISABLE_NEVER 370 | item_prototypes: 371 | - uuid: 1914eb1eb5f44e428ce9558ea51277b1 372 | name: 'Net #{#SNMPINDEX} index' 373 | type: SNMP_AGENT 374 | snmp_oid: '.1.3.6.1.4.1.44738.3.1.1.1.{#SNMPINDEX}' 375 | key: 'netIndex[{#SNMPINDEX}]' 376 | delay: 10m 377 | history: 1w 378 | - uuid: 971f2b65fed04ae195470c6131ebf730 379 | name: 'Net #{#SNMPINDEX} interface' 380 | type: SNMP_AGENT 381 | snmp_oid: '.1.3.6.1.4.1.44738.3.1.1.2.{#SNMPINDEX}' 382 | key: 'netInterface[{#SNMPINDEX}]' 383 | delay: 10m 384 | history: 1w 385 | trends: '0' 386 | value_type: TEXT 387 | - uuid: ef5c02b9677a4bbfab01ed90f8aa44d7 388 | name: 'Net #{#SNMPINDEX} IP4-address' 389 | type: SNMP_AGENT 390 | snmp_oid: '.1.3.6.1.4.1.44738.3.1.1.4.{#SNMPINDEX}' 391 | key: 'netIPv4Address[{#SNMPINDEX}]' 392 | delay: 10m 393 | history: 1w 394 | trends: '0' 395 | value_type: TEXT 396 | - uuid: 5b61bf35f3504a93a180e029e3e48bef 397 | name: 'Net #{#SNMPINDEX} IP6-address' 398 | type: SNMP_AGENT 399 | snmp_oid: '.1.3.6.1.4.1.44738.3.1.1.5.{#SNMPINDEX}' 400 | key: 'netIPv6Address[{#SNMPINDEX}]' 401 | delay: 10m 402 | history: 1w 403 | trends: '0' 404 | value_type: TEXT 405 | - uuid: 1e161b3580934f179452c30fc5ec704d 406 | name: 'Net #{#SNMPINDEX} MAC-address' 407 | type: SNMP_AGENT 408 | snmp_oid: '.1.3.6.1.4.1.44738.3.1.1.3.{#SNMPINDEX}' 409 | key: 'netMacAddress[{#SNMPINDEX}]' 410 | delay: 10m 411 | history: 1w 412 | trends: '0' 413 | value_type: TEXT 414 | - uuid: 1e7c54c8e0074da0a7cac85c6ed2447b 415 | name: 'Net #{#SNMPINDEX} Received' 416 | type: SNMP_AGENT 417 | snmp_oid: '.1.3.6.1.4.1.44738.3.1.1.7.{#SNMPINDEX}' 418 | key: 'netPacketReceived[{#SNMPINDEX}]' 419 | history: 1w 420 | units: kB 421 | - uuid: c85bc80e9c1849db95c9ac7ad6444121 422 | name: 'Net #{#SNMPINDEX} Sent' 423 | type: SNMP_AGENT 424 | snmp_oid: '.1.3.6.1.4.1.44738.3.1.1.6.{#SNMPINDEX}' 425 | key: 'netPacketSent[{#SNMPINDEX}]' 426 | history: 1w 427 | units: kB 428 | graph_prototypes: 429 | - uuid: cbfe7d9bdaa144ac811cfec50369b8e8 430 | name: 'Interface #{#SNMPINDEX} Network traffic' 431 | graph_items: 432 | - color: 1A7C11 433 | item: 434 | host: 'TEMPLATE NAS ASUSTOR' 435 | key: 'netPacketReceived[{#SNMPINDEX}]' 436 | - sortorder: '1' 437 | color: F63100 438 | item: 439 | host: 'TEMPLATE NAS ASUSTOR' 440 | key: 'netPacketSent[{#SNMPINDEX}]' 441 | - uuid: c82e9870158b47b6aca9cffa49ea0ec9 442 | name: 'Volume discovery' 443 | type: SNMP_AGENT 444 | snmp_oid: 'discovery[{#VOLUMEINDEX},.1.3.6.1.4.1.44738.5.1.1.1,{#VOLUMENAME},.1.3.6.1.4.1.44738.5.1.1.2]' 445 | key: volumeDiscovery 446 | delay: 1h 447 | lifetime: 30d 448 | enabled_lifetime_type: DISABLE_NEVER 449 | item_prototypes: 450 | - uuid: a5cd059ddbf249b5ae7a31c3b5240aac 451 | name: 'Volume #{#SNMPINDEX} filesystem' 452 | type: SNMP_AGENT 453 | snmp_oid: '.1.3.6.1.4.1.44738.5.1.1.5.{#SNMPINDEX}' 454 | key: 'volumeFileSystem[{#SNMPINDEX}]' 455 | delay: 15m 456 | history: 1w 457 | trends: '0' 458 | value_type: TEXT 459 | - uuid: 33812c8f4dd248409dc0c6fdd1e08e26 460 | name: 'Volume #{#SNMPINDEX} free size' 461 | type: SNMP_AGENT 462 | snmp_oid: '.1.3.6.1.4.1.44738.5.1.1.7.{#SNMPINDEX}' 463 | key: 'volumeFreeSize[{#SNMPINDEX}]' 464 | delay: 5m 465 | history: 1w 466 | units: Gb 467 | - uuid: 9da18c69f27b4f589c4599121afdbecb 468 | name: 'Volume #{#SNMPINDEX} index' 469 | type: SNMP_AGENT 470 | snmp_oid: '.1.3.6.1.4.1.44738.5.1.1.1.{#SNMPINDEX}' 471 | key: 'volumeIndex[{#SNMPINDEX}]' 472 | delay: 15m 473 | history: 1w 474 | trends: 180d 475 | - uuid: 64946b107a09408ba6981bf85d485a79 476 | name: 'Volume #{#SNMPINDEX} level' 477 | type: SNMP_AGENT 478 | snmp_oid: '.1.3.6.1.4.1.44738.5.1.1.3.{#SNMPINDEX}' 479 | key: 'volumeLevel[{#SNMPINDEX}]' 480 | delay: 15m 481 | history: 1w 482 | trends: '0' 483 | value_type: TEXT 484 | - uuid: 58f2b2a6b2834239a14740aaf62fe76a 485 | name: 'Volume #{#SNMPINDEX} name' 486 | type: SNMP_AGENT 487 | snmp_oid: '.1.3.6.1.4.1.44738.5.1.1.2.{#SNMPINDEX}' 488 | key: 'volumeName[{#SNMPINDEX}]' 489 | delay: 15m 490 | history: 1w 491 | trends: '0' 492 | value_type: TEXT 493 | - uuid: ac6773ec6d904ba9a9939636ea577432 494 | name: 'Volume #{#SNMPINDEX} status' 495 | type: SNMP_AGENT 496 | snmp_oid: '.1.3.6.1.4.1.44738.5.1.1.4.{#SNMPINDEX}' 497 | key: 'volumeStatus[{#SNMPINDEX}]' 498 | history: 1w 499 | trends: '0' 500 | value_type: TEXT 501 | - uuid: 551e34e8c94041e2be3841f516cb8388 502 | name: 'Volume #{#SNMPINDEX} total size' 503 | type: SNMP_AGENT 504 | snmp_oid: '.1.3.6.1.4.1.44738.5.1.1.6.{#SNMPINDEX}' 505 | key: 'volumeTotalSize[{#SNMPINDEX}]' 506 | delay: 5m 507 | history: 1w 508 | units: Gb 509 | trigger_prototypes: 510 | - uuid: 1353ae8830a04daba95f37e432a3cf2b 511 | expression: '(last(/TEMPLATE NAS ASUSTOR/volumeFreeSize[{#SNMPINDEX}]) / last(/TEMPLATE NAS ASUSTOR/volumeTotalSize[{#SNMPINDEX}])*100) < 10' 512 | name: 'Volume #{#SNMPINDEX} {#VOLUMENAME} - FreeSpace is less than 10%' 513 | priority: AVERAGE 514 | manual_close: 'YES' 515 | graph_prototypes: 516 | - uuid: 2bf4dda83d324d69a290e59c54aa9817 517 | name: 'Volume #{#SNMPINDEX} {#VOLUMENAME} usage' 518 | width: '400' 519 | height: '400' 520 | yaxismax: '0' 521 | show_work_period: 'NO' 522 | show_triggers: 'NO' 523 | type: PIE 524 | graph_items: 525 | - color: 80FF00 526 | item: 527 | host: 'TEMPLATE NAS ASUSTOR' 528 | key: 'volumeFreeSize[{#SNMPINDEX}]' 529 | - sortorder: '1' 530 | color: 4000FF 531 | item: 532 | host: 'TEMPLATE NAS ASUSTOR' 533 | key: 'volumeTotalSize[{#SNMPINDEX}]' 534 | macros: 535 | - macro: '{$ICMP_LOSS_WARN}' 536 | value: '30' 537 | - macro: '{$ICMP_RESPONSE_TIME_WARN}' 538 | value: '0.20' 539 | graphs: 540 | - uuid: bd7c56b9532c44959da464f63c3636ba 541 | name: 'CPU temperature' 542 | graph_items: 543 | - color: 1A7C11 544 | item: 545 | host: 'TEMPLATE NAS ASUSTOR' 546 | key: hwCPUTemperature 547 | - uuid: 8c828152c20d4f16bfe5e0fd1d8594c0 548 | name: 'Memory usage' 549 | graph_items: 550 | - color: FF4000 551 | item: 552 | host: 'TEMPLATE NAS ASUSTOR' 553 | key: hwFreeMem 554 | - sortorder: '1' 555 | color: 1A7C11 556 | item: 557 | host: 'TEMPLATE NAS ASUSTOR' 558 | key: hwTotalMem 559 | --------------------------------------------------------------------------------