Você está na página 1de 26

02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?

tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

APPs > Apps >

Zabbix - Administração
Conteúdo

1 Cadastro (Em desenvolvimento)


2 SNMP
3 Templates
4 Trigger
5 Media Types
6 Actions
7 Firewall
8 API (Em desenvolvimento)
9 Adicionais
10 Zabbix - Instalação e Configuração do Ambiente

Cadastro (Em desenvolvimento)


* Para realizar monitoramento em um IC (Item de configuração), é necessario seguir os passos abaixo:
1 - Cadastrar um Host group, acesse o console do Zabbix e clique em Configuration > Host groups > Create host
group
2 - Cadastrar um Templates, acesse o console do Zabbix e clique em Configuration > Templates > Create template
2.1 - Criar os Applications, Items Triggers, Graphs,Sceens, Discovery e Web
3 - Cadastrar o Host, acesse o console do Zabbix e clique em Configuration > Hosts > Create host
3.1 - Definir a group
3.2 - Definir a interface
3.3 - Link com o/os Template
3.4 - Criar os Applications, Items Triggers, Graphs,Sceens, Discovery e Web caso não seja atendido pelo template.

* Cadastro inicial
Host groups / Templates / Hosts / Maintenance / Actions

* Cadastro Web scenarios

https://www.youtube.com/watch?v=O8R9cQIF_R4

Cadastro de usúarios

* Acesse uma conta Users e ajuste o parâmetro Media para qual email será enviado.

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showP… 1/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

Simple Check

* Criar o host
Nome: <Hostname>
Group: <Change_group>
Agent interfaces: <IP> Port: 0
Template: Template ICMP Ping
Update

- Link

SNMP

* Realize a instalação do pacote SNMP


# apt-get install snmp snmp-mibs-downloader

* Ajuste a configuração do SNMP


# vi /etc/snmp/snmp.conf
# mibs : <- comente a linha

* Realize o dowload das MIBS


# download-mibs

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showP… 2/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

* Reinicie o serviço Zabbix Server


# /etc/init.d/zabbix-server restart

* O comando abaixo testa a captura das informações


# snmpwalk -v2c -c <COMMUNITY> <IP> <ATRIBUTOS>
OPCIONAL

# snmpwalk -v2c -c public 10.0.0.45 | head -5


iso.3.6.1.2.1.1.1.0 = STRING: "HP V1910-48G Switch Software Version 5.20, Release 1513P85
Copyright(c) 2010-2014 Hewlett-Packard Development Company, L.P."
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.25506.11.1.85
iso.3.6.1.2.1.1.3.0 = Timeticks: (163731915) 18 days, 22:48:39.15
iso.3.6.1.2.1.1.4.0 = STRING: "SUPORTE TECNICO"

# snmpwalk -v2c -c public 10.0.0.45 iso.3.6.1.2.1.1.4.0


iso.3.6.1.2.1.1.4.0 = STRING: "SUPORTE TECNICO"

* Alguns links 1 / 2 / 3 de referencias que auxiliaram na captura de valores para a criação de template e triggers.

Templates
* No link e possivel encontrar templates, modules e mais.

Java - JMX - Wildfly Standalone Mode

Server

* Para que o gerenciamento JMX funcione é necessário Instalar o pacote do agent JAVA no Zabbix Server
# apt-get install -t jessie-backports openjdk-8-jdk-headless
# apt-get install zabbix-java-gateway
# vi /etc/zabbix/zabbix_server.conf
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
Timeout=15 -> Ajustado para 20 pois conexoes externas a rede requerem mais tempo

# /etc/init.d/zabbix-java-gateway restart
# /etc/init.d/zabbix-server restart

* Verifique o funcionamento se a porta esta escutando


# netstat -anp | grep 10052

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showP… 3/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

* Definir inicio automatico para o serviço Zabbix-Server


# cd /etc/init.d/
# update-rc.d zabbix-java-gateway defaults

Cliente

* Configuração no serviço Wildfly-9.0.2-final, adicione ao final do arquivo standalone.conf


# vi /home/wildfly/bin/standalone.conf

if [ "x$JBOSS_MODULES_SYSTEM_PKGS" = "x" ]; then


JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,org.jboss.logmanager"
fi

JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=<IP_SERVER_Wildfly> -Dcom.sun.management.jmxremote


-Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.rmi.port=12346 -
Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -
Djava.util.logging.manager=org.jboss.logmanager.LogManager -
Xbootclasspath/p:/home/wildfly/modules/system/layers/base/org/jboss/log4j/logmanager/main/log4j-jboss-logmanager-
1.1.2.Final.jar -Xbootclasspath/p:/home/wildfly/modules/system/layers/base/org/jboss/logmanager/main/jboss-
logmanager-2.0.0.Final.jar"

* Configuração no serviço Wildfly-10.0.0-final, adicione ao final do arquivo standalone.conf


# vi /home/wildfly/bin/standalone.conf

if [ "x$JBOSS_MODULES_SYSTEM_PKGS" = "x" ]; then


JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,org.jboss.logmanager"
fi

JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=<IP_SERVER_Wildfly> -Dcom.sun.management.jmxremote


-Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.rmi.port=12346 -
Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -
Djava.util.logging.manager=org.jboss.logmanager.LogManager -
Xbootclasspath/p:/home/wildfly/modules/system/layers/base/org/jboss/log4j/logmanager/main/log4j-jboss-logmanager-
1.1.2.Final.jar -Xbootclasspath/p:/home/wildfly/modules/system/layers/base/org/jboss/logmanager/main/jboss-
logmanager-2.0.3.Final.jar"

* Liberar no firewall as portas


INPUT TCP 12345 e 12346

* Reinicie o serviço Wildfly


# /etc/init.d/wildfly-init-debian.sh restart

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showP… 4/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

* Configure o host no Zabbix para conectar nas portas de comunicação

* O Zabbix utiliza a URI para comunicação


service:jmx:rmi:///jndi/rmi://<IP>:12345/jmxrmi

* Importar o template JMX

* Criada Trigger de monitoramento

Java - JMX - Wildfly Domain Mode (Em desenvolvimento)

Referencia: 1 / 2 / 3

Java - JMX - TOMCAT

* Altere a linha no arquivo


# vi /tomcat/bin/setenv.sh
export JAVA_OPTS="${JAVA_OPTS} -Djava.rmi.server.hostname=<IP_SERVER> -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.rmi.port=12346 -
Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

Referencia 1

Java - Zorka
https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showP… 5/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

* Para que o gerenciamento Wildfly funcione é necessário fazer uso do plugin Zorka no servidor do Wildfly
# cd /home/wildfly
# wget http://zorka.io/files/zorka-1.0.15.zip
# unzip zorka-1.0.15.zip
# mv zorka-1.0.15 zorka
# cd zorka
# vi zorka/zorka.properties
scripts = jvm.bsh, zabbix.bsh, jboss/jboss7.bsh
zorka.spy.compute.frames = yes
zabbix.server.addr = 10.0.0.61
zabbix.listen.port = 10055
zorka.hostname = wildfly

# vi bin/standalone.conf
if [ "x$JBOSS_MODULES_SYSTEM_PKGS" = "x" ]; then
JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,com.jitlogic.zorka.core.spy"
fi

# No final do arquivo adicionar a linha abaixo


JAVA_OPTS="$JAVA_OPTS -javaagent:/home/wildfly/zorka/zorka.jar=/home/wildfly/zorka"

* Reinicie o serviço Wildfly


# /etc/init.d/wildfly-init-debian.sh restart

* Criar o host com configuração de agente apontando para o agente Zabbix(10050) e para o agent Zorka(10055),
conforme abaixo:

* Importar os templates Zorka para monitoramento, no diretório descompactado do Zorka existe o diretório template.
* Templates adicionados:
Template_Zorka_JVM <- este template tem link com o Template App Zabbix Agent
Template_Zorka_JBoss7_RequestProcessors
Template_Zorka_JBoss7_Servlets

Data Base

Microsoft SQL Server

* Para monitorar a database MS SQL Server, baixar o template e importar no servidor Zabbix.
* No servidor com MS SQL Server liberar no firewall a porta 10050 e/ou o executavel zabbix_agentd.exe
* Adicionar o template ao host que será monitorado e usará o Zabbix Agent para coletar.
* Valores padrão para triggers.

MySQL

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showP… 6/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

* O monitoramento de MySQL faz uso do Zabbix-Agent, portanto a única porta a ser utilizada e a do próprio Zabbix-
Agent.
* Criar e ajustar permissão de acesso a usuário para monitorar
msql -u root -p
> GRANT USAGE ON *.* TO 'monitor'@'127.0.0.1' IDENTIFIED BY '<SENHA>'; <- USAGE é sem privilegios
> flush privileges;
Nota: Para a senha não usar caracteres especiais, pois possivelmente ira ter falha na ação de pesquisa.

* Linux
* Criar arquivo com as informações de acesso
# vi /etc/zabbix/zabbix_mysql.cnf
[client]
user = monitor
password = <"SENHA">
host = 127.0.0.1

* Criar de coleta de informações


# vi /etc/zabbix/zabbix_agentd.conf.d/userparameter_mysql.conf
UserParameter=mysql.status[*],mysql --defaults-extra-file="/etc/zabbix/zabbix_mysql.cnf" -N -e "show global status like
'$1';" -s | cut -f2
UserParameter=mysql.ping,mysqladmin --defaults-extra-file="/etc/zabbix/zabbix_mysql.cnf" ping | grep alive | wc -l |
cut -d" " -f 7
UserParameter=mysql.version,mysqladmin -V | awk '{print $5}' | sed 's/,//'

* Reinicie o serviço Zabbix-Agent

* Windows
* Baixar do projeto gnuzawin32 os pacotes coreutils, grep, sed e gawk, após descompactar o /bin de cada um mova
para um /bin único e copiar o conteudo para o C:\gnuwin32
* Ajustar a variavel de ambiente PATH adicionando dois caminhos
;C:\gnuwin32;C:\Program Files\MySQL\MySQL Server X.X\bin <- Ajuste o X para a versão equivalente
;C:\gnuwin32;C:\Program Files\MariaDB X.X\bin <- Ajuste o X para a versão equivalente

* Baixar as bibliotecas e mover para C:\Windows\SysWOW64\ por serem bibliotecas 32 bits


libiconv2.dll libintl3.dll pcre3.dll regex2.dll

* Criar arquivo com as informações de acesso


\> C:\zabbix\conf\zabbix_mysql.cnf
[client]
user = <USER>
password = "<SENHA>"
host = localhost

* Criar o arquivo com as configurações de busca das informações


\> C:\zabbix\zabbix_agentd.d\userparameter_mysql.conf
UserParameter=mysql.status[*],mysql --defaults-extra-file="C:\zabbix\conf\zabbix_mysql.cnf" -N -e "show global status
like '$1';" -s | cut -f2

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showP… 7/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

UserParameter=mysql.ping,mysqladmin --defaults-extra-file="C:\zabbix\conf\zabbix_mysql.cnf" ping | grep alive | wc -l


| cut -d" " -f 7
UserParameter=mysql.version,mysqladmin -V | awk "{print $5}" | sed "s/,//"

* Reinicie o serviço Zabbix-Agent

Nota: Através do comando # mysqladmin -u<USER> -p<PASS> extended-status, é possível listar as variáveis
utilizadas no monitoramento e caso precise é possível complementar o template App Mysql.

1/2/3/4/5

HAProxy

* Instalar o pacote
# apt-get install socat

* No servidor do com HAProxy


# cd /home
# git clone https://github.com/anapsix/zabbix-haproxy.git
Ou
# wget https://github.com/anapsix/zabbix-haproxy/archive/master.zip

* Copie para o arquivo userparameter_haproxy.conf para o diretório zabbix_agentd.conf.d


# cd /home/zabbix-haproxy/
# cp -a userparameter_haproxy.conf /etc/zabbix/zabbix_agentd.conf.d/

* No arquivo /etc/zabbix/zabbix_agentd.conf verifique se a linha Include=/etc/zabbix/zabbix_agentd.conf.d/ esta


descomentada.

* Copie os arquivos haproxy_discovery.sh e haproxy_stats.sh para o diretório /usr/local/bin


# cp -a haproxy_discovery.sh haproxy_stats.sh /usr/local/bin/

* No arquivo de configuração do HAProxy altere a linha stats socket


# vi /etc/haproxy/haproxy.cfg
De:
stats socket /var/run/haproxy/admin.sock mode 660 level admin

Para:
stats socket /var/run/haproxy/info.sock mode 666 level user

* Reinicie o Zabbix Agent

* No servidor Zabbix
* Baixe o pacote do Zabbix-HAProxy, porem o template.xml que acompanha apresentou problemas e foi atualizado no
link.

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showP… 8/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

* Importe o template e ajuste a macro {$HAPROXY_SOCK} = /var/run/haproxy/info.sock


* Aplique no host desejado

- Referencia 1 / 2

XenServer

* No servidor XenServer caso tenha realizada a instalação dos pacotes SNMP execute a atualização
# download-mibs

* Acesse via SSH o servidor XenServer


* Edite o arquivo de configuração de firewall e adicione a linha abaixo antes da linha de REJECT
# vi /etc/sysconfig/iptables
# Monitoramento
-A RH-Firewall-1-INPUT -m conntrack --ctstate NEW -m udp -p udp --dport 161 -j ACCEPT

* Reinicie o serviço de firewall


# service iptables restart

* Edite o arquivo de configuração do SNMP e ajuste para a COMMUNITY de sua estrutura


# vi /etc/snmp/snmpd.conf
com2sec notConfigUser default <COMMUNITY>
...
syslocation Datacenter001
syscontact SuporteTecnico <suportetecnico@domain.com>

* Reiniciar o serviço SNMP e ative para iniciar automaticamente.


# service snmpd restart
# chkconfig snmpd on

* No Zabbix crie o host de monitoramento do XenServer e ajuste para monitoramento SNMP


* Adicionar o Template SNMP Device
* No Host monitorado crie a macro {$SNMP_COMMUNITY} com o valor igual ao criado em <COMMUNITY>
* Aguarde a coleta que pode ocorrer em até 1 hora.

- Referencia 1 / 2

Switch

http://monitoringartist.github.io/zabbix-switch-template-generator/
SNMP-SWITCH

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showP… 9/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

Bind (Em desenvolvimento)

* Ajuste as configurações do Bind conforme.

* Baixar o plugin do repositório


# git clone https://github.com/Prototype-X/Zabbix-Bind9-Statistics-Collection.git

* Copie o userparameter_bind.conf para /etc/zabbix/zabbix_agentd.conf.d

* Copie o script bind-stats.py para /usr/local/bin/ (Ou outro local, mas será necessario alterar o conteudo do arquivo
userparameter_bind.conf)
* Ajuste a permissão
# chmod 755 /usr/local/bin/bind-stats.py

* Importe o xml template para o Zabbix (zbx_bind_statistics_template_v3.xml para Zabbix 3.X.X)

APC

* Realizei a criação do Template ATS AP7730 devido a não encontrar nenhum para este modelo. Talvez seja
necessário criar os mapeamentos, segue imagem abaixo demonstrando:

Load Battery

* Criada Trigger de monitoramento do tempo de carga da bateria

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 10/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

* Criada Action para alerta diário (86400 sec) caso nível da bateria seja alcançado

NGINX

* No link do Zabbix Share tem o compartilhamento do template para NGINX.


* O agente zabbix deve estar instalado e configurado, pois é pré-requisito para uso .

* Ajustar o site default do NGINX ativando a função Status.


server {
listen 80;
server_name _;
...

location /stub_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}

* Valide a configuração e reinicie o NGINX


# nginx -t
# /etc/init.d/nginx restart

* Para validar acesse http://<IPSERVER>/stub_status

* Criar a conexão entre o Zabbix e o serviço NGINX


# vi /etc/zabbix/zabbix_agentd.conf.d/userparameter_nginx.conf
UserParameter=nginx.status[*],/usr/local/bin/nginx_stats.sh $1

* Criar o diretório
# mkdir -p /srv/zabbix/libexec

* Criar o script de coleta em /usr/local/bin/nginx_stats.sh e ajustar os parâmetros em negrito


#!/bin/bash

HOST="127.0.0.1" <- Ajustar a porta conforme necessário


PORT="80" <- Ajustar a porta conforme necessário
stub_status=stub_status
https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 11/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

function check() {
/bin/pidof nginx | wc -l
}

function active() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function accepts() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
function reading() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting() {
/usr/bin/curl -s "http://$HOST:$PORT/${stub_status}/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}

case "$1" in
check)
check
;;
active)
active
;;
accepts)
accepts
;;
handled)
handled
;;
requests)
requests
;;
reading)
reading
;;
writing)
writing
;;

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 12/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

waiting)
waiting
;;

*)
echo $"Usage $0 {check|active|accepts|handled|requests|reading|writing|waiting}"
exit
esac

* Ajustar as permissões
# chmod +x /usr/local/bin/nginx_stats.sh

* Testar a coleta
# /usr/local/bin/nginx_stats.sh accepts
39220

Ou

# curl -s "http://localhost:81/stub_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'

* Caso nos testes apresente <body, ajustar o valor abaixo no site default conforme necessário.
Para:
server _;

Ou para:
server localhost;

* Reiniciar o Zabbix Agent


# /etc/init.d/zabbix-agent restart

* Avalie as informações coletadas no Zabbix.

Nota: Antigo local de armazenamento /srv/zabbix/libexec/nginx.sh

IBM V3700 (Em desenvolvimento)

* Instalar o pacote
# apt-get install sshpass

* Acessar Zabbix server e baixar o pacote


# wget https://github.com/pacotudel/Zabbix-IBM-V3700/archive/master.zip

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 13/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

# unzip master.zip
# cd Zabbix-IBM-V3700-master/

* Mova e altere a permissão


# cp v3700_status.sh /usr/lib/zabbix/externalscripts/
# chmod +x /usr/lib/zabbix/externalscripts/v3700_status.sh

* Acesse o storage v3700 e crie usuario com perfil monitor


* Realize acesso por ssh do servidor Zabbix ao storage v3700
* Acesse o arquivo .ssh/known_hosts do usuario corrente que acessou e copie a chave

* Crie o arquivo know_hosts em:


# touch /var/lib/zabbix/.ssh/known_hosts

* Cole a chave no arquivo criado

Nota: O servidor Zabbix deve estar liberado na regra de OUTPUT para a porta 22/TCP

* Importe o template
* Configure a macro do template importado com as informações:
{$CABIP1} = <IP ou hostname>
{$CABUSER} = <USER>
{$CABPASS} = <PASSWORD>

Memória Usada

* No link/link tem os parâmetros de configuração de memória


* Alterado o valor "Key" no item "Available memory" para o "Template OS Linux":
De
vm.memory.size[available]

Para
vm.memory.size[free]

* Essa alteração ocorreu pois o linux estava capturando três valores referentes a memoria, sendo eles os parâmetros
free+cached+buffers, com essa alteração mostra somente o que esta sendo consumindo da memória física.

PFSense

* Acessar Services > SNMP e ajuste a configuração conforme necessário:

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 14/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

* No Zabbix criar um Host e habilitar a opção de monitoramento por SNMP, lembrando de ajustar a macro
{$SNMP_COMMUNITY} com a Community utilizada na configuração do pfSense.

Active Directory

1/2/3

Template OS Linux

* Quando apresenta a mensagem "Too many process" é possível ajustar dinamicamente conforme a alteração abaixo:

De:
{Template OS Linux:proc.num[].avg(5m)}>300

Para:
{Template OS Linux:proc.num[].avg(5m)}>{$TRIGGER_THRESHOLD_PROCESSES_RUNNING}

Referencia

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 15/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

Docker em Xenserver

* A primeira para realizar o monitoramento do CoreOS, acesse o console CoreOS e execute :


# docker run -d \
--restart=always \
--name zabbix-agent-NEW \
-p 10050:10050 \
-e ZBX_SERVER_HOST="IP_SERVER" \
zabbix/zabbix-agent:latest
* Após subir o container com o serviço, crie o host e associe o Template OS Linux.

* A segunda para monitorar o CoreOS e os Containers


* No servidor Zabbix instale as dependencias
# apt-get install netcat jq

* Acesse o console do CoreOS e execute:


# docker run -d \
--restart=always \
--name zabbix-agent \
-p 10050:10050 \
-m 20m \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /dev:/host/dev:ro \
-v /etc:/host/etc:ro \
-v /var/run/docker.sock:/host/var/run/docker.sock \
--env ZABBIX_SERVER=10.0.0.61 \
digiapulssi/docker-zabbix-agent

*No servidor Zabbix importe o template do docker e adicione um host e associe os templates "Template OS Linux,
Template Docker - digiapulssi"

Throughput Switch

* Este template esta atendendo ao switch HP 1910 e 1920 que possue 77G de trafego

* Crie um template

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 16/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

* Crie os itens que irão compor o template

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 17/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

Name: Throughput Switch IN Name: Throughput Switch OUT


Type: Calculated Type: Calculated
Key: IfInOctets Key: IfOutOctets
Formula: Formula:
last("ifInOctets[1 Gigabit - Level]") last("ifOutOctets[1 Gigabit - Level]")
+last("ifInOctets[2 Gigabit - Level]") +last("ifOutOctets[2 Gigabit - Level]")
.... ....
+last("ifInOctets[52 Gigabit - Level]") +last("ifOutOctets[52 Gigabit - Level]")

Type of information: Numeric (unsigned) Type of information: Numeric (unsigned)


Units: bps Units: bps
Update interval: 1m Update interval: 1m
History storage period: 1w History storage period: 1w

* Caso deseje criar uma trigger para avisar quando alcançar os limites, segue um exemplo:

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 18/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

Name: Throughput IN {HOST.NAME} > 70G


Severity: Warning
Expression: {SWITCH_THROUGHPUT_52P:ifInOctets.last()}>75161927680

Name: Throughput OUT {HOST.NAME} > 70G


Severity: Warning
Expression: {SWITCH_THROUGHPUT_52P:ifOutOctets.last()}>75161927680

* Crie um gráfico para melhor visualizar os valores coletados

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 19/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

Trigger

* Trigger para latencia de ping acima de 50ms

Media Types

Email

* Em Administration/Media types ajuste a Media types Email para a configuração de seu servidor de email.

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 20/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

SMS GSM Khomp

* Verifique no arquivo de configuração do zabbix_server.conf onde é o local de armazenamento dos scripts de alerta.
Para este caso é /usr/lib/zabbix/alertscripts.
* Crie o arquivo e ajuste o script de de envio de mensagens SMS
# vi /usr/lib/zabbix/alertscripts/sms.sh
#!/bin/bash
/usr/bin/wget -O- "http://<IP_GSM_KHOMP>/sms/enviaSMS.php?numero=${1}&msg=${2}:${3}"
#/usr/bin/curl "http://<IP_GSM_KHOMP>/sms/enviaSMS.php?numero=${1}&msg=${2}:${3}"

* Ajuste as permissões
# chmod 755 /usr/lib/zabbix/alertscripts/sms.sh

* Criar um Media Types associando ao script criado e com os parâmetros de macros necessários.

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 21/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

* Realize a associação do Media Types a um usuário em Administration/Users/<USUÁRIO>/Media e ajuste conforme


necessário. No campo Send to insira o ddd e o numero de celular que deseja receber SMS.

Actions

* Passos para configurar uma Action, para a realização desdes é preciso ter configurardo o Host groups e Media types.
1 - Em User groups criar um User groups e após em Permissions selecionar e associar os Host groups com
permissão de Read para acesso.
2 - Em Users criar um usuario e após em Media configurar a forma de comunicação (Email, SMS, ...), em Permission
definir o User type como Zabbix User e confirmar o aceso ao grupo como Read.

* Crie uma Actions conforme abaixo e ajuste as Conditions.

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 22/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

* Ajustando o campo Steps para 1-0 e Step duration para 60, será enviada mensagens a cada 60 segundos até que o
serviço mude para o status OK.

* Agora em Configuration/Actions, crie uma Actions que ira ser utilizada para encaminhar email

* Agora e so aguardar a chegar as notificações de Alerta via SMS ou Email.

Escalação de Alertas

* Escalar caso não cumprimento no primeiro nivel.


* Utilizando o caso acima, basta criar um novo Action operations e ajustar os passos para uma quantidade de tempo a
frente. Foi configurado no Steps como 1 para enviar mensagem SMS a cada 60 segundos, então some mais 1+60 e

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 23/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

crie uma nova Action operations com o valor de 61-0 e encaminhamento de email para o Boss. Pronto, caso em uma
hora não for resolvida a situação o Boss ira ser notificado.

Firewall
* As portas que podem ou não ser liberadas para que o Zabbix busque as informações
- Cliente
INPUT TCP/UDP 10050 <- Agent
INPUT TCP/UDP 10051 <- Trapper

INPUT TCP 10052 <- JMX


INPUT TCP 10055 <- Zorka
INPUT TCP 12345,12346 <- Wildfly

- Server (10050,10052,10055,12345,12346)
$IPT -A INPUT -p tcp -s $NETINT -m multiport --dport 22,53,80,443 -i $IFINT -j ACCEPT
$IPT -A INPUT -p udp -s $NETINT -m multiport --dport 53 -i $IFINT -j ACCEPT
$IPT -A OUTPUT -p tcp -d $ANY -m multiport --dport 53,80,123,389,443,587,10050,12345,12346 -o $IFINT -j
ACCEPT
$IPT -A OUTPUT -p udp -d $ANY -m multiport --dport 53,161 -o $IFINT -j ACCEPT

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 24/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

API (Em desenvolvimento)

*
https://github.com/janssenlima/api-zabbix

# apt-get install python-pip git


# pip install zabbix-api
Downloading/unpacking zabbix-api
Downloading zabbix-api-0.4.tar.gz
Running setup.py (path:/tmp/pip-build-_UALjD/zabbix-api/setup.py) egg_info for package zabbix-api

Installing collected packages: zabbix-api


Running setup.py install for zabbix-api

Successfully installed zabbix-api


Cleaning up...

# git clone https://github.com/janssenlima/api-zabbix


# cd api-zabbix/conf
# vi vars.py
ZBX_SERVER="http://SEU.ZABBIX.SERVER"
ZBX_USER="USUARIO"
ZBX_PASS="SENHA"

# cd ..
# vi itservices_zabbix.py
add the IP of your Zabbix Server
zapi = ZabbixAPI(server="http://<ip_of_server>/zabbix")
# add your access credentials
zapi.login("<user>", "<password>")

Adicionais

* GRAFANA link video

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 25/26
02/08/2019 https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint…

Zabbix - Instalação e Configuração do Ambiente

https://sites.google.com/site/addtechnologia/apps/apps/zabbix---administration-1?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&show… 26/26

Você também pode gostar