Escolar Documentos
Profissional Documentos
Cultura Documentos
Monitoramento Com o Zabbix
Monitoramento Com o Zabbix
Zabbix
www.4linux.com.br
-2
Sumrio
Captulo 1
Conhecendo o Zabbix..................................................................................................................12
1.1. Conhecendo a ferramenta................................................................................................13
1.2. Comunidades e forums....................................................................................................13
Captulo 2
Criando uma Infraestrutura de Monitoramento Parte 1, Sistema..........................................14
2.1. Introduo........................................................................................................................15
2.2. Configurando os componentes de recebimento de alertas............................................15
2.2.1. Configurando o cliente de correio eletrnico........................................................................16
2.2.2. Mensagens instantneas.........................................................................................................24
-3
2.10. Instalando o servidor Zabbix via pacote.......................................................................57
2.11. Preparando o servidor web............................................................................................58
2.11.1. Instalao do Apache e PHP5...............................................................................................58
2.11.2. Configurao do Virtual Host...............................................................................................58
2.11.3. Configurando o front end......................................................................................................61
3.5. Mapas...............................................................................................................................98
3.5.1. Importando imagens para o mapa..........................................................................................98
3.5.2. Criando um mapa..................................................................................................................100
3.5.3. Adicionando um elemento.....................................................................................................103
3.5.4. Editando um elemento do mapa...........................................................................................104
3.5.5. Salvando o mapa...................................................................................................................106
3.5.6. Adicionando os outros elementos.........................................................................................106
3.5.7. Criando e editando links.......................................................................................................110
3.5.8. Prtica Dirigida.....................................................................................................................111
3.5.9. Exerccios sobre Mapas........................................................................................................113
-4
3.8. Ativando um host............................................................................................................123
3.8.1. Throubleshooting para itens com problemas.......................................................................124
Captulo 4
Monitoramento voltado para disponibilidade..........................................................................128
4.1. Introduo......................................................................................................................129
4.2. Checagens manual via front end...................................................................................129
4.2.1. Adequando o script de traceroute........................................................................................132
4.2.2. Criando novos comandos para o menu.................................................................................135
4.2.3. Exerccios..............................................................................................................................138
-5
4.9.3. Nosso primeiro grfico.........................................................................................................205
4.9.4. Personalizando o mapa para exibio de informaes........................................................208
4.9.5. Exerccios..............................................................................................................................210
REFERNCIAS
BIBLIOGRFICAS......................................................................................................................228
Anexo I
Performance do Sistema Operacional..................................................................................230
Introduo.......................................................................................................................................230
Processamento.................................................................................................................................230
Mtricas de memria......................................................................................................................231
Throughput e banda de rede...........................................................................................................232
Performance de Disco.....................................................................................................................232
Anexo II
Performance de servios.......................................................................................................233
Introduo.......................................................................................................................................233
PostgreSQL......................................................................................................................................233
JBoss................................................................................................................................................234
Apache.............................................................................................................................................234
ndicedetabelas
Tabela 1: Opes de compilao do Zabbix............................................................................34
Tabela 2: Binrios de uma instalao de servidor e agente do Zabbix.................................36
Tabela 3: Arquivos e diretrios de configurao....................................................................38
Tabela 4: Funo dos menus no front end..............................................................................77
Table 5: Usurios do cenrio do curso...................................................................................81
Tabela 6: Relao de permisses entre hosts e usurios.......................................................98
Tabela 7: Lista de imagens iniciais para o mapa.................................................................100
Tabela 8: Servios do cenrio do curso................................................................................163
Tabela 9: Responsveis de cada host...................................................................................175
Table 10: Valores da key service_state.................................................................................193
-6
ndicedeFiguras
Figura 2.1: Configurao do evolution (1/10)........................................................................16
Figura 2.2: Configurao do evolution (2/10)........................................................................17
Figura 2.3: Configurao do evolution (3/10)........................................................................18
Figura 2.4: Configurao do evolution (4/10)........................................................................19
Figura 2.5: Configurao do evolution (5/10)........................................................................20
Figura 2.6: Configurao do evolution (6/10)........................................................................21
Figura 2.7: Configurao do evolution (7/10)........................................................................22
Figura 2.8: Configurao do evolution (8/10)........................................................................23
Figura 2.9: Configurao do evolution (9/10)........................................................................23
Figura 2.10: Configurao do evolution (10/10)....................................................................24
Figura 2.11: Tela de boas vindas do Pidgin............................................................................25
Figura 2.12: Configurando uma conta Jabber no Pidgin.......................................................25
Figura 2.13: Definindo o uso de criptografia.........................................................................26
Figura 2.14: Baixando o agente do Zabbix no Windows........................................................47
Figura 2.15: Instalando os executveis no Windows.............................................................48
Figura 2.16: Diretrio de configurao do Zabbix no Windows............................................48
Figura 2.17: Configurando o agente no Windows..................................................................49
Figura 2.18: Desbloqueando o agente no Windows...............................................................50
Figura 2.19: O agente do Zabbix sendo executado como servio automtico......................51
Figura 2.20: Tela de entrada do Zapcat.................................................................................54
Figura 2.21: Configurao do front end (1/10)......................................................................61
Figura 2.22: Configurao do front end (2/10)......................................................................62
Figura 2.23: Configurao do front end (3/10)......................................................................63
Figura 2.24: Configurao do front end (4/10)......................................................................65
Figura 2.25: Configurao do front end (5/10)......................................................................66
Figura 2.26: Configurao do front end (6/10)......................................................................67
Figura 2.27: Configurao do front end (7/10)......................................................................68
Figura 2.28: Configurao do front end (8/10)......................................................................69
Figura 2.29: Configurao do front end (9/10)......................................................................70
Figura 2.30: Configurao do front end (10/10)....................................................................71
Figura 2.31: Tela inicial do Zabbix aps o primeiro login.....................................................71
Figura 3.1: Gerenciamento de usurios do Zabbix................................................................78
Figura 3.2: Editando o Admin.................................................................................................79
Figura 3.3: Configurando a autenticao LDAP....................................................................80
Figura 3.4: Novo Grupo JBoss Administrators.......................................................................81
Figura 3.5: Novo usurio Sysadmin.......................................................................................82
-7
Figura 3.6: Media Types.........................................................................................................83
Figura 3.7: Configurando o Zabbix para enviar e-mails........................................................84
Figura 3.8: Configurando o Zabbix para enviar mensagens instantneas...........................84
Figura 3.9: Media Types de um usurio sem apontamentos.................................................85
Figura 3.10: Adicionando o Media Type Email a um usurio................................................85
Figura 3.11: Adicionando um media type Jabber a um usurio............................................86
Figura 3.12: Media Types de um usurio aps o cadastro....................................................86
Figura 3.13: Selecionando todos os templates pr cadastrados...........................................88
Figura 3.14: Excluindo os templates selecionados................................................................89
Figura 3.15: Criando um novo template.................................................................................89
Figura 3.16: Cadastrando um novo template.........................................................................89
Figura 3.17: Vinculando um template a outro.......................................................................90
Figura 3.18: Exportando um template...................................................................................91
Figura 3.19: Layout dos hosts a serem monitorados.............................................................92
Figura 3.20: Como criar um novo grupo de hosts.................................................................93
Figura 3.21: Novo host group.................................................................................................93
Figura 3.22: Host pr-cadastrado no front end na tela de Hosts..........................................93
Figura 3.23: Boto para criar um host...................................................................................93
Figura 3.24: Todos os hosts do cenrio cadastrados.............................................................95
Figura 3.25: Concedendo permisses de acesso (1/4)...........................................................95
Figura 3.26: Concedendo permisses de acesso (2/4)...........................................................96
Figura 3.27: Concedendo permisses de acesso (3/4)...........................................................96
Figura 3.28: Concedendo permisses de acesso (4/4)...........................................................97
Figura 3.29: Tela inicial das imagens.....................................................................................99
Figura 3.30: Importando uma nova imagem..........................................................................99
Figura 3.31: Imagem do primeiro mapa a ser criado..........................................................100
Figura 3.32: Mapas pr-cadastrados....................................................................................101
Figura 3.33: Novo mapa........................................................................................................101
Figura 3.34: Barra de ferramentas para edio de mapas..................................................103
Figura 3.35: Criando um novo elemento..............................................................................103
Figura 3.36: Posicionando um novo elemento com o mouse...............................................104
Figura 3.37: Editando um elemento na tela.........................................................................105
Figura 3.38: Boto Save do mapa.........................................................................................106
Figura 3.39: Dialogo de salvar mapa....................................................................................106
Figura 3.40: Outros elementos grficos a serem adicionados............................................107
Figura 3.41: Editando o elemento que representa o host Presentation.............................108
Figura 3.42: Detalhes do host switch dentro do mapa........................................................109
Figura 3.43: Hosts acrescentados no mapa.........................................................................110
Figura 3.44: Criando um novo link entre o host Presentation e a imagem Internet..........111
-8
Figura 3.45: Editando as propriedades do novo link...........................................................112
Figura 3.46: Link entre o host Presentation e o Switch......................................................113
Figura 3.47: Mapa final.........................................................................................................114
Figura 3.48: Templates e seus elementos............................................................................114
Figura 3.49: Criando um application (1/4)...........................................................................115
Figura 3.50: Criando um application (2/4)...........................................................................115
Figura 3.51: Criando um application (3/4)...........................................................................115
Figura 3.52: Criando um application (4/4)...........................................................................116
Figura 3.53: Criando seu primeiro item (1/3)......................................................................116
Figura 3.54: Criando seu primeiro item (2/3)......................................................................117
Figura 3.55: Criando seu primeiro item (3/3)......................................................................118
Figura 3.56: Campo para associao de templates.............................................................119
Figura 3.57: Tela para escolha de templates.......................................................................119
Figura 3.58: Template associado..........................................................................................119
Figura 3.59: Template associado na lista de templates.......................................................119
Figura 3.60: Inter-relao dos templates base....................................................................120
Figura 3.61: Associando o template do JBoss ao host JBoss AS (1/6).................................120
Figura 3.62: Associando o template do JBoss ao host JBoss AS (2/6).................................120
Figura 3.63: Associando o template do JBoss ao host JBoss AS (3/6).................................120
Figura 3.64: Associando o template do JBoss ao host JBoss AS (4/6).................................121
Figura 3.65: Associando templates a hosts (5/11)...............................................................121
Figura 3.66: Associando o template do JBoss ao host JBoss AS (6/6).................................121
Figura 3.67: Templates para Windows e SNMP associados aos seus respectivos hosts. . .121
Figura 3.68: Associando um template a mltiplos hosts simultaneamente (1/4)..............122
Figura 3.69: Associando um template a mltiplos hosts simultaneamente (2/4)..............122
Figura 3.70: Associando um template a mltiplos hosts simultaneamente (3/4)..............123
Figura 3.71: Associando um template a mltiplos hosts simultaneamente (4/4)..............123
Figura 3.72: Todos os templates associados aos hosts do cenrio....................................123
Figura 3.73: Host presentation no monitorado..................................................................124
Figura 3.74: Dialogo de confirmao de ativao...............................................................124
Figura 3.75: Host presentation monitorado.........................................................................124
Figura 3.76: Item no suportado..........................................................................................125
Figura 3.77: Item suportado e ativo.....................................................................................127
Figura 4.1: Menu de Ferramentas acessado pelo mapa......................................................130
Figura 4.2: Sada de um comando ping................................................................................130
Figura 4.3: Sada de um comando que falhou do traceroute..............................................131
Figura 4.4: Sada do traceroute adequando a nova necessidade .......................................135
Figura 4.5: Criando um novo script para testar portas SSH (1/2)......................................136
Figura 4.6: Criando um novo script para testar portas SSH (2/2)......................................136
-9
Figura 4.7: Nova entrada de menu com o script criado......................................................137
Figura 4.8: Resultado do comando ativado no host.............................................................137
Figura 4.9: Diagrama de comportamento do echo ICMP....................................................139
Figura 4.10: Hosts ativos com ping ICMP em funcionamento............................................140
Figura 4.11: Um value maps de estado de servios............................................................140
Figura 4.12: Editando o value map para nossa necessidade...............................................140
Figura 4.13: Value map editado e pronto para uso..............................................................141
Figura 4.14: Selecionando um value map no trigger..........................................................141
Figura 4.15: Values maps no overview.................................................................................141
Figura 4.16: Pausando o host Database...............................................................................142
Figura 4.17: Host database parado no overview.................................................................142
Figura 4.18: Criando um trigger para a parada do host (1/9).............................................143
Figura 4.19: Criando um trigger para a parada do host (2/9).............................................143
Figura 4.20: Criando um trigger para a parada do host (3/9).............................................143
Figura 4.21: Criando um trigger para a parada do host (4/9).............................................143
Figura 4.22: Criando um trigger para a parada do host (5/9).............................................144
Figura 4.23: Criando um trigger para a parada do host (6/9).............................................144
Figura 4.24: Criando um trigger para a parada do host (7/9).............................................145
Figura 4.25: Criando um trigger para a parada do host (8/9).............................................145
Figura 4.26: Criando um trigger para a parada do host (9/9).............................................146
Figura 4.27: Indicao de problemas no Dashboard...........................................................146
Figura 4.28: Overview com indicao dos items com alerta...............................................147
Figura 4.29: Overview com visualizao dos triggers ativos..............................................147
Figura 4.30: Mapa indicando o host Database como down.................................................148
Figura 4.31: Tela de Events, indicando a queda e o retorno dos hosts..............................148
Figura 4.32: Tela de acknowledgement...............................................................................149
Figura 4.33: Acknowledge (confirmao) aplicado..............................................................149
Figura 4.34: Criando uma action para enviar o alerta (1/9)................................................150
Figura 4.35: Criando uma action para enviar o alerta (2/9)................................................150
Figura 4.36: Criando uma action para enviar o alerta (3/9)................................................151
Figura 4.37: Criando uma action para enviar o alerta (4/9)................................................151
Figura 4.38: Criando uma action para enviar o alerta (5/9)................................................151
Figura 4.39: Criando uma action para enviar o alerta (6/9)................................................152
Figura 4.40: Criando uma action para enviar o alerta (7/9)................................................152
Figura 4.41: Criando uma action para enviar o alerta (8/9)................................................152
Figura 4.42: Criando uma action para enviar o alerta (9/9)................................................153
Figura 4.43: Mensagens de alerta recebidas no Evolution.................................................153
Figura 4.44: Reiniciando o host Database...........................................................................154
Figura 4.45: Lgica de um gatilho com tempo de segurana.............................................155
- 10
Figura 4.46: Simple check para o SSH................................................................................161
Figura 4.47: Overview exibindo os servios de SSH...........................................................162
Figura 4.48: Criando um cenrio para disponibilidade Web (1/6)......................................164
Figura 4.49: Criando um cenrio para disponibilidade Web (2/6)......................................164
Figura 4.50: Criando um cenrio para disponibilidade Web (3/6)......................................165
Figura 4.51: Criando um cenrio para disponibilidade Web (4/6)......................................166
Figura 4.52: Criando um cenrio para disponibilidade Web (5/6)......................................167
Figura 4.53: Criando um cenrio para disponibilidade Web (6/6)......................................167
Figura 4.54: Visualizando a checagem Web.........................................................................167
Figura 4.55: Detalhes do monitoramento Web....................................................................167
Figura 4.56: Grfico de velocidade de download para o cenrio Web................................168
Figura 4.57: Grfico de tempo de resposta para o cenrio Web.........................................168
Figura 4.58: Novo item para monitorar o agente................................................................170
Figura 4.59: Copiando o item de ping de agente para o template do JBoss (1/2)..............170
Figura 4.60: Copiando o item de ping de agente para o template do JBoss (2/2)..............171
Figura 4.61: Criando um trigger para o agent.ping (1/5)....................................................172
Figura 4.62: Criando um trigger para o agent.ping (2/5)....................................................172
Figura 4.63: Criando um trigger para o agent.ping (3/5)....................................................173
Figura 4.64: Criando um trigger para o agent.ping (4/5)....................................................173
Figura 4.65: Criando um trigger para o agent.ping (5/5)....................................................173
Figura 4.66: Trigger para o agent ping criado e ativo........................................................173
Figura 4.67: Trigger de agente ativado...............................................................................174
Figura 4.68: Dependncia entre triggers evitando que o gatilho filho seja ativado..........174
Figura 4.69: Item para tempo de uptime.............................................................................177
Figura 4.70: Uptime via Zapcat............................................................................................178
Figura 4.71: Uptime via SNMP.............................................................................................178
Figura 4.72: Overview exibindo os uptimes a partir do agente padro, Zapcat e SNMP..179
Figura 4.73: Um trigger para a reinicializao de um host................................................180
Figura 4.74: Item para verificao de nmero de processos..............................................183
Figura 4.75: Overview refletindo o nmero de processos...................................................183
Figura 4.76: Trigger para queda do daemon.......................................................................184
Figura 4.77: Teste de queda do sshd....................................................................................185
Figura 4.78: Reflexo da queda do daemon SSH no overview..............................................185
Figura 4.79: Item para verificao da porta local...............................................................186
Figura 4.80: Fluxograma da dependncia entre triggers para anlise de servios...........187
Figura 4.81: Trigger para verificao da porta local...........................................................189
Figura 4.82: Trigger para verificao de porta remota.......................................................189
Figura 4.83: Servio telnet do Windows..............................................................................190
Figura 4.84: Habilitando o servio de telnet do Windows...................................................191
Captulo1
ConhecendooZabbix
OBJETIVOS
Apresentaraferramentoaoaluno.
ComoofrontendorganizaoscomponentesdentrodoZabbix.
Componentesvisuaisdemonitoramento.
Alertasdeincidentes.
Reinicializaodeservios.
Mostraraoalunoondeobterinformaes.
1.1.Conhecendoaferramenta
Sigaospassosindicadospeloprofessorparaacessoaoexemploprontonamquinadele.
Voc vai fazer um passoapasso conhecendo a ferramenta como um usurio comum (no
superusurio).
1.2.Comunidadeseforums
OZabbixtemumadocumentaoonlinequeserusadaduranteocursoparaconsultas.
Olinkdeacessohttp://www.zabbix.com/documentation/.
As comunidades tambm mantm uma srie de fruns em
http://www.zabbix.com/forum/.Emdestaqueosseguinte:
Zabbixannouncements:annciosenovasverses
Zabbixhelp:frumprincipaldeajuda
Zabbixcookbook:vriasconfiguraesprontaspostadasecomentadas.Muitotil.
Zabbixthroubleshooting:seumproblemapersiste,este olocalparapostarerrose
solues.
Zabbixemportugusyemespanhol:frumemportuguseespanhol,tilquandovoc
nolinglsmuitobem.
Captulo2
CriandoumaInfraestruturadeMonitoramento
Parte1,Sistema
OBJETIVOS
Prepararoambientederecebimentodealertas:
ConfiguraroEvolutionparareceberemailsdealertas;
ConfiguraroPidginpararecebermensagensinstantneasdealertas.
PrepararoambienteparainstalaroservidordoZabbix:
Obterosfontesdaferramenta;
PrepararoPostgreSQLparaservirdebackend.
Instalaroservidoreagente:
Compilaroservidoreagentenamquinadestinadaaseromonitoradorenasdemais;
InstalaodosbinriosdentrodoWindows2003(cominicializaodoagentecomo
servio);
Executar deploy do agente Zapcat no JBoss para monitoramento do servidor de
aplicaes
ConfiguraodeumvirtualhostdentrodoApacheparaofrontend,incluindomodificao
dosparmetrosdoPHP.
2.1.Introduo
Estecaptuloapresentatodasastarefasrelacionadasacriaodabasedesuasoluo
demonitoramento.Aquiondeserabordadoamaiorpartedoconhecimentotcnicodeconsole
Linux, deploying em JBoss, servios de Windows e acesso SNMP, visando incutir as
competnciasnecessriasparaque,sozinho,vocsejacapazdereproduzirestespassosemum
ambientedeproduo.
Almdisso,serovistososprimeirospassosnautilizaoefamiliarizaocomainterface
webdoZabbix,mostrandocomogerenciaroselementosmaisbsicosdaferramenta:usurios,
hosts,templates,gruposdehostsemapas.
2.2.Configurandooscomponentesderecebimentodealertas
PorpadrooZabbixpossuiquatroformasdealertasembutidosdentrodeseusistema:e
mails,clientejabber,SMSviamodemGSMeSMSviaserviodetorpedos.Detodos,oltimono
muitotilaquinoBrasil,devidoseguirospadresdasoperadorasnoCanadeEstadosUnidos.
Dosrestantesvamosverofuncionamentodosistemadecorreiosedejabberdentroda
saladeaula,devidoanaturezadohardware,aemulaodasmquinasvirtuaisdocenrioe
custosdemensagemnoabordamosousodentrodonossocenriocomSMS.Noentantotemos
umapndicequecobreosistemadeSMScomthroubleshootingedicasdeconfigurao.
Recebermensagensporclientedeemail amaneiramaistradicionaldetodas.Para
casodeestudosprecisamosconfiguraroEvolution,clientedeemailpadrodoGnome.Abrao
EvolutionpelomenuprincipaldoGnomeesigaospassosdescritosaseguir.
2.2.1.Configurandooclientedecorreioeletrnico
Estaapenasumteladeboasvindas,cliqueemAvanar.
Nohnadaparaserrestaurado,cliquenovamenteemAvanar.
3) TipodeServidor:devemosescolherPOP,queorecursoimplantadopararecepo
deemailsnocenrio.
4) Servidor:oendereoexternodoservidordeemail.
5) Nomedousurio:oprimeirousurioqueusaremososysadmin.
6) Lembrar senha: para comodidade dos testes em curso ative o recurso de
armazenamentodesenha.
Estaoponoseguraparaserusadaemproduo! Mascomonocursoos
usuriossofictciosepossuemasenha123456issonovainosimpactar.
Nestatela,configureorecebimentoautomticoacada1minuto,assimnoprecisamos
ficaresperandoemailschegareme,tambmnoprecisamosficarclicandoemEnviar/Recebera
todomomento.
Apesardenoutilizaroenviodeemailsobopontodevistadousurio,interessante
configuraroSMTPparaaveriguarseosemailsestocaminhandodentrodocenrio.
1) NoTipodeServidorescolhaSMTP.
2) NoServidorcoloqueomesmoendereodeemailquecolocamosnoPOP3.
Noreproduzaestecomportamentodeaceitedeemailssemautenticaoem
produo! Oservidordecorreioeletrnicodentrodocenrioapenasummeiode
sabermosqueasmensagensdealertasdoZabbixestosendoenviadasporemail.
1) Nome: Por final, configure um nome para esta conta. Isto usado apenas para
exibionoEvolution.
Estaapenasumateladefinalizao,cliqueemAplicar.
TorneoEvolutionoseuclientedeemailpadro.
Naprimeiravezquevocentrareleirpedirasenha(123456)dousurio,digiteae
verifiquesenohouvenenhumerro.Nohnenhumemailnacaixademensagensdosysadmin,
logonenhumamensagemvaiaparecer.
Agoraqueo Evolution estafuncionamento,acesseomenu Editar Preferncias e
cliquenocone ContasdeCorreio aesquerda.Atravsdoboto Adicionar cadastremaistrs
contasseguindoosmesmospassosqueanteriormente,mudandoapenasosnomeseusurios.
AscontasaseremacrescentadassoWindowsAdministrator(winadmin),JavaEngineer
(javaeng)eDBA(dba).Apsotrmino,escolhaduascontasetesteoenviodemensagensentre
elas.
2.2.2.Mensagensinstantneas
RecebermensagensdealertasviaInstantMessagingtilemempresasquepossuem
umsistemainternodeIMeosfuncionriosestologadosconstantemente.OZabbixsuportao
enviodestasmensagensviaprotocoloJabbereocenriojpossuiestetipodeservioatravsde
umservidorOpenFireinstaladonamquinamestradoZabbix.
Vamosentoconfiguraro Pidgin, umclientedeIMsimpleseeficienteparareceberos
alertas enviados via protocolo Jabber pelo servidor do Zabbix. Abra o aplicativo pelo menu
principaldoGnomeesigaospassosaseguir.
NateladeboasvindascliqueemAdicionar.
1) OprotocoloJabberusaaopoXMPP.
2) Nonomedousuriousesysadmin.
3) Nodomnio,vocdeve apontaronomedamquinacadastradaparaIMenoo
domnio.
4) Nasenhacoloque123456.
5) AtiveoLembrarSenha.
No ative a opo Lembrar Senha em produo! Isso seria uma terrvel falha de
segurana.Elasestasendoativadaparacomodidadedocurso.
1) CliquenaabaAvanado.
2) Escolhaparausarcriptografiaapenasseestiverdisponvel.
CliqueemAdicionareativeacontanainterfacedoPidgin.
2.4.Preparandoobancodedados
O Zabbix no utiliza recursos como o RRDTools para armazenar dados, ele faz uso
apenasdeumSGBDoudeumbancodedadosmaissimplrio(comoosqlite)paraarmazenar
configuraes,hosts,templates,histrico,etc.
PorissoprecisamosselecionarumdosbancosnativosouusarODBC(esteltimono
recomendado). No caso deste curso elegemos o PostgreSQL, um SGBD livre e de alta
performance capaz de manipular uma grande quantidade de dados. Apesar da maioria das
instalaesdeZabbixestaremMySQLrecomendamosfortementequesejausadooPostgreSQL
poissuarobustezsemostroumaisadequadaaostiposdedadosqueoZabbixmanipula.
Emboranopareaaprincpio,obancodedadosdoZabbixdeextremavaliaparaa
empresa,poiselecontmtodoohistricodefuncionamentodesuainfraestruturaeatravsdele
podemoscoletarSLAseinformaesdecapacityplan.
recomendadotambmqueseubancodedadospossuaumplanodebackupsregular
viaPITRPointinTimeRecovery.
2.4.1.Instalao
ParainstalaraversodorepositriodoPostgreSQL:
#aptitudeinstallpostgresql8.4
#yuminstallpostgresql84server
2.4.2.Criandoousurioeobanco
Comobancodedadosinstaladodevemoscriarumabasededadoseumusuriocomas
devidas permisses de acesso ao mesmo. O nome de ambos elementos so totalmente
opcionais,masnestematerialvamosconvencionarqueobancodedadossechamarzabbixdbe
ousurioserzabbix.
Muitasdocumentaeseatoprprioarquivopadrodeconfiguraodozabbixserver
utilizaonomedobancocomozabbix,masissopodecausaralgumasconfusesentre
eleeonomedousurio,foiporissoqueoptamospelaconvenoacima.
SomenteosuperusuriodoPostgreSQL,chamadopostgrestempermissoderealizara
criaodosobjetoscitadosacima,logo,parapodermosacessaroterminaldeconsoledobanco
(psql)temosqueentrarcomousurio postgres noGnu/Linuxeentousarocomandocorreto.
NotequeopromptdecomandoirsealterarindicandoqueestamosnoconsoledoPostgreSQL.
#supostgres
$psql
psql(8.4.5)
Digite"help"paraajuda.
postgres=#
Agoraqueconseguimosoacessocomosuperusurio,vamosprimeirocriarobancode
dados. O comando create database ir cuidar desta tarefa. Note que todos os comandos
digitadosdentrodesteconsoleterminamcompontoevrgula(;).
postgres=#CREATEDATABASEzabbixdb;
Comobancodedadoscriadocomsucessovamoscriarousurioedefinirsuasenha.
Para propsito de organizao deste material a senha do banco de dados do zabbix ser
zabbixdbpw.Aodigitarasenhanotequeelanoaparececomonoquadrodecomandoabaixo!
Esteapenasumdemonstrativodidtico.
postgres=#CREATEROLEzabbixLOGIN;
postgres=#\passwordzabbix
Digitenovasenha:zabbixdbpw
Digiteanovamente:zabbixdbpw
interessantedefinirasenhapor\passwordpoisassimelanoficaarmazenadano
histricodecomandosdousurio.
Agoraprecisamosliberaraconexodoservidoraobancodedadosdozabbix,paraisso
editeoarquivopg_hba.confconformeabaixoeacrescentealinhaemdestaque.
postgres=#\q
$logout
#vim/etc/postgresql/8.4/main/pg_hba.conf
hostzabbixdbzabbix127.0.0.1/32md5
Reinicieobancodedadoserealizeotestedeconexo.
#/etc/init.d/postgresqlrestart
#psqlhlocalhostUzabbixzabbixdb
psql(8.4.5)
conexoSSL(cifra:DHERSAAES256SHA,bits:256)
SET
2.4.3.Cargainicial
Agoravamosfazeracargainicialdobancocarregandoosesquemas,osdadosmais
bsicos.
#supostgres
$cd/usr/src/zabbix1.8.4/create/schema
$catpostgresql.sql|psqlzabbixdb
$cd../data
$catdata.sql|psqlzabbixdb
No faa a carga do arquivos de imagens, iremos abordar como colocar figuras
personalizadasedemelhordefiniomaisafrente,nestecaptulo.
2.4.4.Concedendoaspermissesnecessriasaousurio
Agoraomomentodeconcederaspermissesdeacessonastabelas.OusurioZabbix
precisadepermissesdeSELECT,INSERT,UPDATEeDELETEapenas.Comasequnciade
comandosabaixovocconseguirativartodasaspermissesnecessrias.
Emboraesteprocessosejamaiscomplicadodoquefazerdeixarousuriozabbixcomo
donodobancoelemuitomaisseguroedeveserutilizadoassimemproduo
postgres=#\t
postgres=#\a
postgres=#\o/tmp/grantzabbix.sql
postgres=#SELECT'GRANTSELECT,UPDATE,DELETE,INSERTON'||schemaname||'.'
||tablename||'TOzabbix;'FROMpg_tables;
5
postgres=#\o
postgres=#\i/tmp/grantzabbix.sql
postgres=#\q
$logout
1) Ocomando\aremoveoalinhamentodoselementosnatabela;
2) O\tmostraapenastuplas,eliminandocabealhoserodaps;
3) Ocomando\ogravaooutputnoarquivodefinido(/tmp/grantzabbix.sql).Noteque
precisodeoutro\osemonomedoarquivoparaencerrarooutput;
4) EstecomandoemSQLselecionatodasastabelasdobancodedadosemontauma
string com o comando de permisso (GRANT), voc pode ver o contedo deste
comandonoarquivo/tmp/grantzabbix.sql;
5) Ocomando\icarregaeexecutaocontedodoarquivogeradoacima.
2.5.InstalaodoservidorZabbixviacdigofonte
Em alguns casos a distribuio Gnu/Linux que voc escolher pode possuir em seu
repositrioumaversosatisfatriadoZabbixdisponvel.Seforesteocaso,timo!Simplesmente
instaleopacoteecomeceaconfigurar.
Noentantoissonemsempreverdadeepodesernecessrioumaversomaisrecente
(devidoarecursosnovos,etc.)nasuasoluodemonitoramento.Parasuprirestanecessidade
precisocompilaroZabbixapartirdeseucdigofonte.
Esta sesso toda dedicada ao processo de criar os binrios, cobrindo quais
dependnciasdevemserinstaladasecomoescolherosrecursosaseremcompilados.Viade
regra se algum tipo de recurso no se mostrar necessrio a princpio no o ative, isso gera
binriosmaisleves(commenoscdigoembutido)ealiviaoconsumodememriaemservidores
Descrio
Define onde o Zabbix ser instalado. importante
lembrar que se nada for configurado nesta opo os
binrios e manuais sero colocados em /usr/local como
padro. No entanto para manter a instalao organizada
e facilitar atualizaes de verses do Zabbix ns o
colocaremos em /opt/zabbix-1.8.4.
--enable-server
--enable-proxy
--enable-agent
Descrio
--enable-ipv6
--with-ibm-db2
--with-mysql
--with-oracle
--with-pgsql
--with-sqlite3
--with-jabber
--with-libcurl
--with-iodbc
--with-unixodbc
--with-net-snmp
--with-ucd-snmp
--with-ssh2
--with-openipmi
Descrio
Ativa suporte a autenticao via LDAP e monitoramento
do status de um servio de diretrios remoto. Vamos
deix-la ativada.
2.5.1.Dependnciasdecompilao.
Ao executar o comando abaixo, colete cada erro que aparecer e aponte na tabela o
pacotequedeveserinstaladopararesolveradependncia.Istovaiservirderefernciaparavoc
emfuturasinstalaesetambmtemcomointenoensinaralidarcomerrosdedependncias
decompilao.
Useocomandoaptitudeparaencontrarospacotescorretos.
./configureprefix=/opt/zabbix1.8.4mandir=/usr/share/manenableserverdisablestatic
disableproxyenableagentenableipv6withpgsqlwithjabberwithlibcurlwithnet
snmpwithssh2withoutopenipmiwithldap
Erro
Dependncia
2.5.2.Compilandoeinstalando
Agoraqueoconfigurechegouaopontofinaletodasasdependnciasforamresolvidas
hora de executar a compilao com o comando make. Na verdade o make no um
compilador,eleapenaschamaoscomandosnecessriosparaconstruirosbinrioatravsdeum
arquivoMakefilequefoigeradopeloconfigure.
Execute conforme abaixo, os comandos. No final o comando ln ir criar um link
simblicopara/opt/zabbix.Isso umaboaprticaparaajudaratrocarasversesdoZabbix
duranteumamigrao,apontandoolinkparaapastacomosnovosbinrios,enquantomantemos
osanterioresparaocasodeumdowngradeemergencial.
Vocpodesubstituiroj2poroutronmeroparaacelerarasuacompilaosevoc
tivermltiploscores.Umaregrageral2xCores+1.
#makej2
#makeinstall
#lnsvf/opt/zabbix1.8.4/opt/zabbix
#tree/opt/zabbix
Ocomandotreevaimostrarahierarquiadediretriosearquivosabaixodocaminhoda
instalao.Atabelaabaixotemodescritivodecadaumdeles.
Binrio
Funcionalidade
zabbix_get
zabbix_sender
Funcionalidade
item especial do tipo Zabbix trap para
lidar com estes envios. til para alertar
incidentes instantaneamente para o
servidor como o incio, termino ou erro
de um backup.
zabbix_agent
zabbix_agentd
zabbix_server
2.5.3.Serviosderede
Acrescente ao /etc/services o mapeamento de portas do Zabbix Agent e Zabbix
Trapper.
#vim/etc/services
zabbixagent10050/tcpZabbixAgent
zabbixagent10050/udpZabbixAgent
zabbixtrapper10051/tcpZabbixTrapper
zabbixtrapper10051/udpZabbixTrapper
Estas entradas permitem que programas como wireshark e netstat reconheam as
portasdoZabbix.
2.5.4.Arquivosdeconfigurao
Os arquivos de configurao do Zabbix acompanham os seus fontes, mas a 4Linux
preparouumconjuntodearquivosparausoemproduocomumaorganizaomelhorada.Ao
invsdesimplesmentecolocartodasasconfiguraesemumnicoarquivo,osparmetrosforam
distribudosemgruposlgicosseparadosemvriosarquivosediretrios.
OZabbixporpadroprocurapelosseusarquivosem/etc/zabbix,apartirdosarquivos
principais(zabbix_server.confezabbix_agentd.conf)outrosarquivosforamchamadoseinseridos
na configurao. A tabela abaixo demonstra como ficaram organizados os diretrios e seu
contedo.
Diretrio ou arquivo
/etc/zabbix/agent.d
Descrio
Diretrio para configuraes extras do
Descrio
agente
principal)
(carregado
pelo
arquivo
/etc/zabbix/agent.d/checkings.conf
/etc/zabbix/agent.d/logs.conf
/etc/zabbix/agent.d/network.conf
/etc/zabbix/agent.d/remote_commands.conf
Configurao de recebimento
comandos remotos no agente.
/etc/zabbix/alert.d
Diretrio
externos
/etc/zabbix/externalscripts
/etc/zabbix/server.d
/etc/zabbix/server.d/database.conf
/etc/zabbix/server.d/logs.conf
/etc/zabbix/server.d/network.conf
/etc/zabbix/server.d/process.conf
/etc/zabbix/server.d/proxy.conf
Configurao
de
monitoramento
distribudo do servidor.
/etc/zabbix/zabbix_agentd.conf
/etc/zabbix/zabbix_server.conf
para
scripts
de
de
alertas
Nodeixedefazeroprocedimentodaspermisses,elevaitornarasuainstalaodo
Zabbixmuitomaissegura.
ParafinalizarvamosconfigurarosistemaparaapontaroPATHparaolinksimblicode
instalao.Issovaifacilitaroacessoaoscomandos.
#vim/etc/profile.d/zabbixpath.sh
8
exportPATH=$PATH:/opt/zabbix/sbin:/opt/zabbix/bin
#./etc/profile
#zabbix_gethelp
#zabbix_agentdhelp
2.5.5.Testandosuainstalao
Utilizeomanualdozabbix_agentdparadescobrircomolistarasmtricassuportadas
peloambienteecomotestarumdelasindividualmente.Depoisinicieoagente,vejaocontedodo
arquivodelogseuseoscomandospsenetstatparaverquaisosprocessosqueeleinicioue
emquaisportaselessevincularam.
Depoisdotrminocomoagentevamosconfiguraroservidorconformeospassosaseguir
erealizaromesmoprocedimentodeinicializaoepesquisaquenoagente.
#psuCzabbix_server
USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
zabbix12010.01.0466962636?SN09:260:03/opt/zabbix/sbin/zabbix_server
Note que a sada do ltimo comando muito grande. Ao final dos testes mate os
processoscomocomandokillall:
#killallzabbix_serverzabbix_agentd
2.5.6.Scriptsdeboot
No CD temos alguns scripts de boot prontos para uso no Debian, copie os arquivos
boot/debian/serverbootscripts.tar.bz2 e boot/debian/agentbootscripts.tar.bz2 para o /tmp e
descompacteosnaraiz.
#cd/
#tarxvf/tmp/serverbootscripts.tar.bz2
#tarxvf/tmp/agentbootscripts.tar.bz2
Testeainstalaodosscripts.
#/etc/init.d/zabbixserverstart
#/etc/init.d/zabbixagentstart
Porfim,coloqueosscriptsnobootdamquinavirtual.
#updaterc.dzabbixagentdefaults
#updaterc.dzabbixserverdefaults
2.6.InstalaodoagenteZabbixviacompilao
AgorachegouomomentodeinstalaroagentedoZabbixnasoutrasmquinasvirtuais
comGnu/Linux.Oprocedimentodeinstalaosimilaraodoservidor,masnoiremoshabilitara
opoenableservernoconfigure.Tambmnosonecessriostodosasopesdewith
usadasacima.Oagentecertamentemaissimplesqueoservidoremtermosdefuncionamentoe
sprecisadosuporteaLDAP.
2.6.1.Exerccio:compileeinstaleoagentenasVMcomGnu/Linux
Comasinformaesacimaemmosrealizeosprocedimentosdeinstalaodosagentes
namquinavirtual Presentation.Noseesqueatambmdecolocarosscriptsdebooteos
arquivosdeconfiguraonelaeiniciaroprocessonamemria.
2.6.2.Acessoaoagentepeloservidor
Agoraqueoagenteestainstaladoerodando precisorealizaralgumasconfiguraes
bsicasparaqueelepermitaoacessovindodoservidor.
Primeirovamosverificarsesuasconfiguraesdeportaeredeestodeacordo,usandoo
comandonetstatparalistarasportasqueeleestaescutando.
#netstatlntp|grepzabbix
tcp00127.0.0.1:100500.0.0.0:*OUA592/zabbix_agentd
Asadadocomandomostraqueodaemonestaapenasvinculadoaoendereolocalhost
damquina,vamosmodificarseuarquivodeconfiguraoereinicilo.IdentifiquequaloIPlocal
da mquina que pertence a DMZ (rede 172.27.0.0/24) e substitua 127.0.0.1 por ele dentro do
arquivo/etc/zabbix/agent.d/networks.confnoparmetroListenIP.
#vim/etc/zabbix/agent.d/network.conf
1
#EsteoarquivodeconfiguraoderededoagentedoZabbix.
2
3
#====================================================================
#QualportaeIPqueoagentevaisevincularparareceberchecagenspassivasdoservidor.
ListenIP=172.27.0.1
ListenPort=10050
8
9
#====================================================================
10
#IPoqualoagentedoZabbixirusarparaenviardados,opcionalpoisosistemausaoIP
oqualestadesignadoaenviardadosconformeatabeladeoteamento.
11
SourceIP=
1) MudarparaoIPinternodoPresentation.
AgorareinicieoagenteeconfiranovamenteaqualIPeleestavinculado.
#/etc/init.d/zabbixagentrestart
StoppingZabbixagentdaemon:zabbix_agentd
StartingZabbixagentdaemon:zabbix_agentd
#netstatlntp|grepzabbix
tcp00172.27.0.1:100500.0.0.0:*OUA654/zabbix_agentd
SeoservioagoraestivervinculadoaoIPcorretorepitaestespassosemcadaVM.
Nestepontoimportanteparamosparaverificarumapossvelfalhadeconexo.Vamos
foraraVMzabbixsrvasecomunicarcomogateway(presentation)viazabbix_get.Vamos
usarakeyagent.pingcomoexemplo.
#zabbix_getsgatewayk'agent.ping'
zabbix_get[6646]:Getvalueerror:***Cannotconnectto[gateway]:10050[Connectiontimed
out]
Noteamensagem'Connectiontimedout'nofinaldalinhadeerro,tambmrepareque
levoualgumtempoparaqueocomandoretornasseamensagem.Issoaconteceporqueofiltrode
pacotes da mquina esta bloqueando conexes, podemos averiguar isto com mais preciso
usandoaferramentanmapconformeabaixo:
#nmapP0p10050gateway
StartingNmap5.00(http://nmap.org)at2011013002:17BRST
Interestingportsongateway.curso468.4linux.com.br(172.27.0.1):
PORTSTATESERVICE
10050/tcpfilteredunknown
MACAddress:08:00:27:BD:55:12(CadmusComputerSystems)
Nmapdone:1IPaddress(1hostup)scannedin0.47seconds
Oestadodaportaqueonmapretornoufiltered,ouseja,nohretornodepacotesdo
sistema.Para podermos liberaro acesso use o procedimento abaixo no terminal da mquina
presentation.
#iptablesAINPUTjACCEPTptcpdport10050s172.27.0.10
#iptablessave>/etc/iptables/rules
RepetindoonmapapartirdoservidordoZabbix:
#nmapP0p10050gateway
StartingNmap5.00(http://nmap.org)at2011013002:34BRST
Interestingportsongateway.curso468.4linux.com.br(172.27.0.1):
PORTSTATESERVICE
10050/tcpopenunknown
MACAddress:08:00:27:BD:55:12(CadmusComputerSystems)
Nmapdone:1IPaddress(1hostup)scannedin0.27seconds
Seoestadoretornadoforopen,entooservidorcapazdeseconectaraoagenteno
nvel da camada TCP, mas ainda precisamos ter certeza absoluta que ele esta permitindo
conexesnonveldecamadadeaplicao.Vamosrepetirotestecomozabbix_geteverseo
agenteretornaovalor1.
#zabbix_getsgatewayk'agent.ping'
Notequeelenoretornanada!Apenasumalinhaembrancoaparecenoresultadodo
comando.Issoestaocorrendoporqueoagenteprecisaliberaraconsultaparaoservidor,por
padroosarquivosdeconfiguraoapenaspermitemqueelesejaacessadoapartirdolocalhost.
Paraliberaroacessotemosqueeditaroarquivo/etc/zabbix/agent.d/checkings.confemudar
doisparmetros.
#Esteoarquivoparaconfiguraodechecagensnoagente.Hdoistiposdechecagens,a
passivaeaativa.
2
#Checagenspassivassoopadro,oservidorfazoagendamentodasmtricasemanda
umarequisioaoagentequeaguardapassivamente(daionome),esteentocoletaodado
dosistemaeenviadevoltaaoservidor.
4
#Umachecagemativapermitequeoagenterecebaumalistadeitensaseremmonitorados
doservidoreaoinvsdesteltimocuidardoagendamentoerequisiesoagentequetoma
parasiestatarefa.
6
#ChecagensativassoteisquandooFirewallnopermitequeoservidordemonitoramento
alcanceoagenteviaredeouquandoseutilizaumsistemademonitoramentodelogsondeo
monitoramentoativoobrigatrio.
8
#====================================================================
#Quaissoosservidorespararecebimentoderequisiesouobtenodalistade
checagensativas.
10
Server=172.27.0.10
11
12
#====================================================================
13
#ComoestehostestacadastradodentrodoZabbixistonoprecisacorrsponderao
hostnamedamquinaeleumastringdeidentificaodoagenteparacomoservidordo
Zabbix.
14
15
Hostname=Presentation
1) SempretemosquemudaresteparmetroparaoendereodoservidorounomeDNS
domesmo.Sehouveremmaisdeumservidor,separeosendereos/nomeporvrgula;
2) EsteonomeasercadastradonofrontenddoZabbixenoonomedeDNS
(apesardepoderemserosmesmos).
Reinicieoagentemaisumavezefaaotestecomzabbix_getapartirdoservidor.
#zabbix_getsgatewayk'agent.ping'
1
Seocomandoresultanteretornou1entooservidorpoderacessaroagenteapartirde
agora.
2.6.3.ExercciosobreinstalaodeagenteemLinux
1) Instale o agente do Zabbix via compilao nas mquinas virtuais Application e
Databaseconformemostradonestecaptulo.
2.7.InstalandooagenteemambientesWindows
Um dos objetivos do curso demonstrar como o Zabbix capaz de monitorar redes
heterogneascomvriossistemasoperacionaiseativosderede.Estasessocuidadeinstalaro
agentedoZabbixemumWindows2003.
Primeiro
preciso
baixar
os
executveis
pelo
endereo
http://www.zabbix.com/downloads.php,localizeolinkdebinriosparaWindowscomonaFigura
2.14.
Cliquenolinkdedownloadeescolhaumlocalparacolocaroarquivocompactado,no
exemplodaapostilaelefoicolocadoemC:\Downloads.Abraapastaemqueoarquivofoisalvoe
descompacteoarquivo.Dentrodelevocencontraroutrasduaspastasparaarquiteturasde32e
64bits.Nonossocasoiremosusarosde32bits.
Volte a raiz e crie um diretrio chamado Zabbix e dentro dele ainda crie mais trs
diretrios:conf,logebinecopieosexecutveisdescompactadosdentrodesteltimo.
ObtenhaosarquivosdoDVDcomaconfiguraodoagentedoWindows(conf/agentwin
config.zip)edescompactedentrodaconfoseucontedo.Apagueoarquivozipdepoisdisso.
O arquivo zabbix_agentd.conf deve ficar na raiz da pasta conf, assim como os
diretriosagenteexternalscripts.Cuidadonahoradedescompactar.
Use o Wordpad para alterar estes arquivos, o Notepad tem vrios problemas com
codificaoefinaisdelinha.
Agoravamostestarainstalao,abradoispromptsdecomando,noprimeiroacesseo
diretriodosbinrioseexecuteocomandoconformeabaixo.
cdC:\Zabbix\bin
zabbix_agentdc..\zabbix_agentd.conf
Notequeumamensagemdizendoqueelefoiiniciadopeloconsoleiraparecernatela.
porqueoWindowsnocapazdeexecutaroagentecomoumdaemondamaneiraqueoLinux
faz,maisafrenteveremoscomoinicilocomoserviodoWindowsquemaneiracorretadese
fazer.Outramensagem,destavezviacaixadedialogo,tambmvaiaparecernatela.oservio
de segurana do Windows que esta perguntado se deve bloquear ou no esta aplicao.
ObviamentedevemosclicaremDesbloquear.
Agora no segundo prompt de comando, use o comando netstat como abaixo para
verificarseeleestaescutandonoendereocorreto.
netstatan
2.7.1.Executandooagentecomoservio
InstalaroagentedoZabbixcomoserviomuitosimples.Nopromptdecomandoonde
voc o testou pressione CTRL+C para cancelar a execuo do programa (demora alguns
segundos).Quandoopromptretornardigite:
zabbix_agentd.execc:\Zabbix\conf\zabbix_agentd.confinstall
DuasmensagensiroaparecerindicandoainstalaodoagentecomoServiceeEvent
Source.ParaconferirseoagenteestamesmonoarabraoPaineldeControle Ferramentas
AdministrativasServioseprocurepeloserviochamadoZabbixAgent.
Nestatelatambmpossvelparar,reiniciar,etc.oagenteatravsdabarradeconesna
partesuperiordajanela.ComooservioiniciaparadodevemosclicarsobreeleenoconeIniciar
oServio(representadopelosmbolodeplay).
Certifiquesequeeleestaparaseriniciadoautomaticamente,assimquandoosistemafor
reiniciadooserviotambmser.TestenoservidordoZabbixseeleestaconseguindoalcanaro
agente.
#zabbix_getswin2003k'agent.ping'
1
Seeleretornar1comoacima,entoainstalaoestaconcluda.
2.8.1.Obtenodobinrio
Sigaoprocedimentoabaixoparaobterobinriodozapcat.VocirbaixlodoSource
Forge.
#cd/var/tmp
#wgethttp://ufpr.dl.sourceforge.net/project/zapcat/zapcat/zapcat1.2/zapcat1.2.zip
#unzipzapcat1.2.zip
#cdzapcat1.2
#ls
binbuild.xmlCOPYINGlibopenfireREADMEsamplessrctemplateswebappzapcat
1.2.jarzapcat1.2.warzapcatopenfire1.2.jar
Notequeozapcatvemnaformadeum.war(aplicaowebjava)e.jar(applicativojava).
Vamosnosaterapenasaomodoweb.
2.8.2.Deployment
ParainstalaroZapcat,simplesmentecopieobinrioparaapastadedeploydainstncia
emexecuodoJBoss.Nonossocasoestapasta/opt/jboss/server/application/deploy/.
#cpzapcat1.2.war/opt/jboss/server/application/deploy/
#tail/opt/jboss/server/application/log/server.log
2011013006:08:10,616INFO[org.jboss.system.server.Server]JBoss(MXMicroKernel)
[4.2.3.GA(build:SVNTag=JBoss_4_2_3_GAdate=200807181417)]Startedin27s:81ms
2011013006:10:25,679INFO[org.jboss.web.tomcat.service.TomcatDeployer]deploy,
ctxPath=/zapcat1.2,warUrl=.../tmp/deploy/tmp3690979215130123277zapcat1.2exp.war/
Altimamensagemdologindicaqueopacotefoiinstaladocomsucesso(deployed).Ele
j esta funcionando e podemos averiguar isso com o comando netstat como fizemos
anteriormente.
#netstatlntp|grep':1005'
tcp00172.27.0.20:100500.0.0.0:*OUA28751/zabbix_agentd
tcp000.0.0.0:100520.0.0.0:*OUA29181/java
Repare que, como ele um aplicativo java, o netstatno vai informar o nome dele
(Zapcat)nasadacomp.
2.8.3.OpesdeinicializaodoJBoss
O JBoss precisa de trs opes para permitir que o Zapcat possa ler todos os seus
MBeans ( O Tomcat s precisa da primeira). Edite o arquivo de configuraes do JBoss e e
acrescenteaofinaldeleoseguintecontedo.
#vim/opt/jboss/bin/run.conf
JAVA_OPTS="$JAVA_OPTSDcom.sun.management.jmxremote"
JAVA_OPTS="$JAVA_OPTSDjboss.platform.mbeanserver"
JAVA_OPTS="$JAVA_OPTS
Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImp
l"
4
JAVA_OPTS="$JAVA_OPTSDorg.kjkoster.zapcat.zabbix.port=10052
JAVA_OPTS="$JAVA_OPTSDorg.kjkoster.zapcat.zabbix.address=0.0.0.0
1) OJMXremoteativaosistemadeconsultasviaJMXnoJBosseTomcat.Nocasodo
segundoapenasesteparmetronecessrio;
2) OMbeanserveraimplementaodoJBossparaacessoaosJMXviaservidor;
3) Indica a classe que deve ser usada para manipular os Mbeans internamente no
JBoss;
4) EstaopodefineaportadoZapcat.ElaopcionaleporpadrooZapcatescutana
porta10052;
5) EstaopodefineaqualIPozapcatdevesevincular.Elaopcionaleporpadroele
sevinculaatodososendereosdisponveisdohost(0.0.0.0).
Reinicie o JBoss e teste o acesso ao Zapcat pelo endereo
http://javaapp.curso468.4linux.com.br/zapcat1.2/,atelaabaixodeveaparecer.
Noprximocaptulovoltaremosaesteacesso.PorhorajbastaverificarseoZapcatesta
funcionando.
2.8.4.LiberandoofirewallparaacessoaoZapcat
Nofiltrodepacoteslibereoacessoporta10052/TCPcomoscomandosabaixo.
#iptablesAINPUTjACCEPTptcpdport10052
#iptablessave>/etc/iptables/rules
2.9.TestandooacessoviaSNMP
Umadasmquinasvirtuaisrepresentaumativoderede,umswitchparasermaisexato.
NelenenhumagentepodeserinstaladoevamosusaroSNMPpararealizaromonitoramento.
ParatestarseoacessoaoSNMPestaOK,instaleasferramentasdesnmpnoDebian.
#aptitudeinstallsnmpsnmpmibsdownloader
LibereoacessoatodasasMIBsdoseusistema.
#vim/etc/snmp/snmp.conf
1
#AsthesnmppackagescomewithoutMIBfilesduetolicensereasons,loading
#ofMIBsisdisabledbydefault.IfyouaddedtheMIBsyoucanreenable
#loagingthembycommentingoutthefollowingline.
#mibs:
Agora utilize o comando snmpwalk para verificar se o switch retorna os dados de
interfacesderede.
#snmpwalkcpublicv2c172.27.0.135if
IFMIB::ifIndex.1=INTEGER:1
IFMIB::ifIndex.2=INTEGER:2
IFMIB::ifIndex.3=INTEGER:3
IFMIB::ifIndex.4=INTEGER:4
IFMIB::ifIndex.5=INTEGER:5
IFMIB::ifIndex.6=INTEGER:6
IFMIB::ifSpecific.1=OID:SNMPv2SMI::zeroDotZero
IFMIB::ifSpecific.2=OID:SNMPv2SMI::zeroDotZero
IFMIB::ifSpecific.3=OID:SNMPv2SMI::zeroDotZero
IFMIB::ifSpecific.4=OID:SNMPv2SMI::zeroDotZero
IFMIB::ifSpecific.5=OID:SNMPv2SMI::zeroDotZero
IFMIB::ifSpecific.6=OID:SNMPv2SMI::zeroDotZero
Seocomandoretornoualistaacima(quefoitruncadapelotamanho)entoseusistemaj
consegueleroSNMPdoswitch.
Se vocestiverusandoumhardwarecomumaMIBproprietria,localizee baixe o
arquivonaInternetecopieonodiretrio/usr/share/snmp/mibs/
2.9.1.ConceitosdeSNMP
O SNMP um protocolo de monitoramento bem difundido, principalmente entre
equipamentosderede.Agrandemaioriadohardwareembarcadopararedesuportaalgumtipode
versodomesmo.Amaiscomumaverso2,masaverso1(consideradaobsoleta)eaverso
3(amaissegura)temumaincidnciaregular.Sevoctiverqueoptarporumadelas,sempre
tenteescolheramaisrecentepossvel.Apesardeadicionarumacertacomplexidade,averso3
ajudaemmuitonaseguranapoistrabalhacomACLsporautenticaoecriptografia.Nocurso
veremos a verso 2 que mais comum de se encontrar nos equipamentos (opo v2c no
comando usado anteriormente), mas a diferena de trabalho entre elas bem pequena
(praticamentealgunscamposamaisnaverso3).
Todas as trs verses trabalham com MIBS, arquivos texto com definies de como
coletarasOIDS,asstringsdeacessodasmtricas.UmaOIDpodeserrepresentadaporumtexto
como DISMANEVENTMIB::sysUpTimeInstance ou por uma representao numrica como .
2.10.InstalandooservidorZabbixviapacote
NocasodorepositriodeumaversodeDebianpossuirumaversodoZabbixque
adequadoasuasnecessidadesentoaoinvsdecompilarrecomendadoquevocoutilize.No
presentemomentodaescritadestematerialessenoeraocaso.
#aptitudeinstallzabbixserverpgsql
#aptitudeinstallzabbixagent
OCentOSnotempacotesnoseurepositrio.
2.11.Preparandooservidorweb
ComovistoanteriormenteoZabbixumsistemacomponentizadoesuainterfaceweb
rodadentrodeumservidorcomsuporteaPHP.Estasessodescrevecomoinstalareconfigurar
umservidorApache2.2paratalintento.
2.11.1.InstalaodoApacheePHP5
ParainstalarumnovopacoteapachecomsuporteaPHPsigaospassosabaixo.OZabbix
precisaaindadosuporteaGD(umabibliotecagrfica)parageraodeimagenseacessoao
PostgreSQL.
#aptitudeinstallapache2libapache2modphp5php5gdphp5pgsqlphp5ldap
NocentOS,useoseguintecomando.
#yuminstallphphttpphpgdphppgsqlphpldap
2.11.2.ConfiguraodoVirtualHost
ParacriarumaconfiguraodehostvirtualnoApacheparaoZabbix,vamosprimeiro
criarumdiretrioecopiarocontedodapastafrontendsdoseudiretriodefontes.
#mkdirp/var/lib/zabbix/frontend
#cd/usr/src/zabbix1.8.4/frontends/php/
#cp*/var/lib/zabbix/frontend/a
Paraassegurarqueoapachetenhaacessoapenasdeleituraapastaeseusarquivos
executeoprocedimentoabaixo.
#cd/var/lib/zabbix/
#findfrontendtypedexecchmod0750{}\;
#findfrontendtypefexecchmod0640{}\;
#chownroot.wwwdatafrontendR
#chmod0770frontend/conf
<VirtualHost*:80>
ServerAdminsysadmin@curso468.4linux.com.br
3
4
DocumentRoot/var/lib/zabbix/frontend
5
6
<Directory/>
OptionsFollowSymLinks
AllowOverrideNone
</Directory>
10
<Directory/var/lib/zabbix/frontend>
11
OptionsIndexesFollowSymLinksMultiViews
12
AllowOverrideNone
13
Orderallow,deny
14
allowfromall
15
</Directory>
16
17
ErrorLog${APACHE_LOG_DIR}/errorzabbixfrontend.log
18
19
#Possiblevaluesinclude:debug,info,notice,warn,error,crit,
20
#alert,emerg.
21
LogLevelwarn
22
23
CustomLog${APACHE_LOG_DIR}/accesszabbixfrontend.logcombined
</VirtualHost>
1) DocumentRootprecisaapontarparaodiretrioondeinstalamosofrontend.
2) Em ErrorLog,vamosdirecionaroslogsdeerrosparaumarquivoespecficodeste
virtualhost.
3) OmesmodeveserfeitocomoCustomLog,apontandoparaumarquivoespecficode
acessos.
EstepassoestasubstituindoositepadropelodoZabbix.Sehouveremoutroshosts
virtuaisnamesmamquina no necessrio removlos,apenas ajuste asconfiguraesdo
arquivoacimaparareceberconexesapenasdeumaURLemparticular.
#cd/etc/apache2/sitesenabled
#rm000default
#lnsv../sitesavailable/zabbixfrontend000zabbixfrontend
Reinicie o Apache, abra a porta 80 do firewall e teste acessando a URL
http://zabbix.curso468.4linux.com.br/.
#/etc/init.d/apache2restart
#iptablesAINPUTjACCEPTptcpdport80
#iptablessave>/etc/iptables/rules
O primeiro acesso ao front end vai enviar o browser direto para o wizzard de
inicializaodosite.Sigaospassoscomodescritoaseguirparaativarainterface.
2.11.3.Configurandoofrontend
Aprimeiratelaapenasumamensagemdeboasvindas.CliqueemNextparacomear.
MarqueaopoIagreeparaconcordarcomalicenadoZabbixecliqueemNext.
Nesta tela muitos alertas de falha iro aparecer, isso porque o Zabbix requer uma
configurao muito alm dos padres do PHP. Neste ponto preciso editar o arquivo de
configuraodoPHPemodificarosvaloresnecessrios.
Note que o status de cada parmetro pode ser um OK em verde (o servidor j esta
configurado para o recomendado ou superior), Ok em vermelho claro (o servidor j esta
configuradoparaomnimo,masnoalcanouoideal)ouFailemvermelhoqueindicaquenem
omnimofoiatingido.Oideal deixartudonoRecommended,pormprecisoavaliarseo
servidor ter os recursos necessrios para a execuo dessas configuraes. Normalmente
teremosservidoresquesocapazesdefornecerrecursososuficienteparatal.
Comovimabraoarquivoconformeabaixo.
#vim/etc/php5/apache2/php.ini
Significado
date.timezone
max_execution_time
max_input_time
memory_limit
post_max_size
upload_max_filesize
Depoisdealteraresalvaroarquivo,reinicieoapache.
#/etc/init.d/apache2reload
EntocliquenobotoRetry.Atelaqueserrecarregadairsersimilaraabaixo.
Ateladeconexoaobancodedadosprecisaserpreenchidaconformeexplicaoabaixo
eFigura2.26.
1) Escolhaobancodedados,nonossocenriooPostgreSQL.
2) ColoqueonomeouIPdohostdobancodedados,nonossocasolocalhost.
3) ColoqueaportaTCPparaoacesso,porpadroadoPostgreSQL5432.
4) EmNamecoloqueonomedobancodedados,zabbixdbemnossocaso.
5) EmUsercoloqueonomedousurioquecriamosanteriormente,zabbix.
6) EmPasswordcoloqueasenhadousurioacima.
Depoisdepreencheroformulriocliqueemtestconnection parasecertificardeque
tudocorreubem.SeumOkapareceracimadoboto,cliqueemNext.
Preenchaoformulriocomosdadosdoserviodemonitoramento,
1) OservidordeZabbixestaem localhost,masateno paraambientesdeproduo
ondeoservidordoZabbixestaemoutramquina,nestecasodeveserpreenchidoo
endereoounomedamquinaremota.
2) Ocampo Port correspondeaportaTCPemqueoZabbixestaescutando(Zabbix
trapper),normalmenteestaportaa10051.
3) O Name um ttulo do servio de front end do Zabbix. Este ttulo vai ficar
estampandonabarradobrowseresomenteajudaaidentificaro frontend quando
voctemvriasbarrasdenavegao.
RepasseasconfiguraesnestatelaecliqueemNextsetudoestiverOK.
Estajanelaindicaqueoarquivodeconfiguraofoigravadocomsucessonodiretrio
confquedeixamoscompermissesdeescritaanteriormente.horaderevogaraspermisses
deescritanestediretrio.
#cd/var/lib/zabbix/frontend/
#lslhdconf
drwxrwx2rootwwwdata4,0KJan2722:58conf
#chmod0750conf
#lslhconf
total28K
rwrr1wwwdatawwwdata440Jan2722:58zabbix.conf.php
#chownroot.wwwdataconf/zabbix.conf.php
#chmod0640conf/zabbix.conf.php
AgorapressioneNextparairparaaprximatela.
CliqueemFinish.Ofrontendirabrirumateladelogin,vocpodeacessarusandoo
usurioAdmin(comoAemmaiscula)easenhazabbix.Atelaaseguirseramostradapara
voc.
2.12.Exercciosdereviso
1) possvelcolocaroagentedoZabbixparaserexecutadonoWindowscomoservio?
Como?
________________________________________________________________________
________________________________________________________________________
2) QuaisospossveisbackendsdebancosdedadosqueoservidordoZabbixsuporta?
________________________________________________________________________
________________________________________________________________________
3) possvelinstalaraInterfacedofrontendemqualquerservidorquesuportePHP?
________________________________________________________________________
________________________________________________________________________
4) ComosnmpwalkpodemoslistarvriaspartesoumesmotodasasmtricasSNMP.
Qualocomandovocusariaparapegarapenasumamtrica?
________________________________________________________________________
________________________________________________________________________
5) RealizeumabrevepesquisanaInterneterelacionetodososagentesdeZabbixque
vocencontrar.
________________________________________________________________________
________________________________________________________________________
6) Comozabbix_get,coleteviaterminaldeconsoleovalordaschavesabaixodos
hostswin2003eapplication:
6.1) agent.version:
_________________________________________
6.2) system.cpu.num:
_________________________________________
6.3) vm.memory.size:
_________________________________________
7) (Desafio)Sevoctentarusarozabbix_getparacoletardadosdoZapcatverque
elevaifalharretornandoumvalornosuportado.Vocconseguedescobrircomo,via
linha de comando poderamos coletar os valores deste agente? Se sim crie um
pequenoscriptparafazeracoletapassandoparaelehost,portaechave.
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
Captulo3
CriandoumaInfraestruturadeMonitoramento
Parte2,Frontend
OBJETIVOS
ConheceraconfiguraodoZabbixviaFrontend.
Gerenciaroshostsetemplatesparaomonitoramento.
Criarmtricasdemonitoramento.
Depuraritensnosuportados.
Gerenciar acessos e permisses aos hosts monitorados atravs de usurios
cadastradosnumabaseLDAP.
Configurarosmeiosdealerta.
Criarmapas.
Realizarbackupsdasconfiguraes.
3.1.Introduo
Apartirdestepontoainteraoadministrativaviaconsolevaidiminuirconsideravelmente,
poisvamoscomearatrabalharcomainterfacewebdoZabbix.Quase100%detodasastarefas
comaferramentaexecutadaatravsdessainterface.
Nestasessoenasprximasseroapresentadasdicasdeuso,organizao,todasas
configuraesdoncleodofrontendecriaodoselementosmaisbsicosdemonitoramento
(hosts,templates,grupos,etc.).
3.1.1.Organizaodofrontend
OK,voccolocounoartodaainfraestruturadasoluodemonitoramento,agoraumweb
sitecomalgunsmenusestadiantedevoc.Eagora?
Bom,oprimeiropasso entendercomoosmenusdoZabbixtrabalhameaprendera
encontrarasopesquevocdesejatrabalhar.Estainterfaceextremamentepoderosaeao
mesmo tempo simples de se operar. No incio provvel que haja uma certa confuso na
distribuiodasjanelasefunes,masacredite,elafoidesenvolvidaparaserfcildeusaraps
aprenderosentremeiosdosmenus.
Aproveite e passeie com o mouse nos menus. Note que no necessrio clicar em
nenhum dos menus superiores, somente a passagem do ponteiro j exibir as opes dos
submenus.Nestessimnecessrioclicarparaabrirateladesejada!NaTabelaabaixohuma
descriosuperficialdoquecadaitemdemenufaz.
Menu
Monitoring
Funo
Menuparaacessoaomonitoramento,depoisqueoZabbixestiver
completamenteconfiguradoesteomenumaisacessadodetodos.
Dashboard
Teladecentralizaodasinformaesdemonitoramento.
Overview
Web
Visualizaodomonitoramentodosserviosdeweb(noconfundir
commonitoramentodoservidorweb).
Latestdata
Funo
Triggers
Mostraostatusdosltimostriggers(gatilhos)epermiteinterao
com eles (como por exemplo dar um Acknowledge a um
determinadogatilho)
Events
Graphs
Visualizaoindividualdosgrficoscadastradosnoshosts.
Screens
Maps
Visualizaodosmapas.
Discovery
ITServices
Inventory
Hosts
Report
Inventriodehosts
Hostsquefazempartedoinventrio.
Menuderelatrio.
StatusdoZabbix
Umateladeresumo(quetambmmostradanoDashboard)para
avalizaodaperformancedoservidorZabbix.
AvaliabilityReport
Relatriosdedisponibilidadeporhostsoutriggers.
BarReport
Configuration
Mostradadosagregadosdentrodegrficosdebarra,porexemplo,
vocpoderiaveramdiadeusodelinkporsemanaaoinvsde
usarosgrficospadro.
Menuparaacessoasopesdeconfiguraodemonitoramento.
Hostgroups
Gruposlgicosparadividiroshosts.
Templates
Hosts
Gerenciamentodoshostsmonitorados.
Maintenance
Web
Configuraodecenriosdetestedeserviosweb.
Actions
Gerenciamentodeaesqueostriggersdevemtomaraoalertarem
algum comportamento (exemplo: enviar um email quando o
servidorXYZcair).
Screens
Gerenciamentoeconstruodescreens.
Slides
Gerenciamentoeconstruodeslideshows.
Maps
Gerenciamentoeconstruodemapas.
Funo
ITServices
GerenciamentodosserviosparaclculodeSLA
Discovery
Gerenciamentodoautodiscovery.
Administration
Menuparaacessosopesdeadministraodofrontend.
General
Opesglobaisdofrontend.
DM
Configuraodemonitoramentodistribudo.
Authentication
Mtodosdeautenticao.
Users
Gerenciamentodeusuriosparaacessoaofrontend.
MediaTypes
Gerenciamentodeformasdealertas(emails,SMS,etc.)
Scripts
Gerenciamentodescriptsparatestesonlinepelofrontend.
Audit
Queue
Filadealertasaseremacknowledged.
Notifications
Notificaesenviadasporusurio/tempo.
Locales
Instalation
Telasdeinstalao(asmesmasquepassamosagoraapoucopara
configurarofrontend).
3.2.Gerenciamentodeusurios
Opontomaislgicoparacomearadministrarquempodeacessarofrontendedefinir
umasenhaaousurioAdmin.VamosentrarnomenuAdministration Users.Nocantodireito
datelaquevaiaparecer,vocverumcomboboxaoladodobotoCreateUsercliquesobre
eleeselecioneUsers.AFigura3.1mostraatelaqueirserexibida.
Doisusuriosseroexibidos: Admin,superusuriodofrontend,comoqualestamos
logadoseguest,usadoparaacessosemautenticao.
No tente apagar o usurio guest. Ele necessrio para a tela de login quando
entramosnainterface.
Esta tela mostra vrias informaes interessantes, como por exemplo, quando foi
realizadooultimologinequemestaonlinenofrontend.
ParaeditaroAdmincliquesobreolinkcomonomedele.Umanovatelairaaparecer.
CliqueemChangepasswordecoloqueasenhaasuaescolha,noesqueaessasenha
ouvaisernecessrioreinicilanobancodedados.ParaevitarqueoZabbixfiquedesligando
nossasessoatodomomentodesligueaopoAutologout.Depoisdeterminarcliquenoboto
Save.IssoapenasumsalvaguardaemcasosdeproblemasdeautenticaocomoLDAP,
comovocverlogoaseguiriremospassartodaaautenticaoparaosistemadediretrio(que
tambmpossuiumusurioAdmin).
Em produo no desligue o autologout de nenhum usurio a menos que seja
absolutamentenecessrio!Paraserexato,onicomotivovlidoqueoautorencontrou
emdeixarumusurio100%dotempologadoquandooZabbixestasendousado
paraexibirummapa,screensouslideshowemumteloouTVcomacompanhamento
visual24x7.
AgoraqueoAdminteveasenhamodificada,omomentodeconfiguraroZabbixpara
autenticarnodiretrioLDAPinstaladonoservidor.Entreem Administration Authetication,
selecioneemDefaultAutheticationaopoLDAPepreenchaoscamposconformeabaixo.
Osdadosaquipreenchidosvariamdeumambienteparaoutro,nocasodeestudodo
cursoestamosdizendoaoZabbixondeestoservidor(LDAPHost e Port),qual araizdo
domnio(BaseDN),qualoatributousadoembusca(porprofundidade),nofoifornecidousurio
esenhadeacessoaoLDAP,ouseja,elereadonlyguestbased(BindDNeBindPassword)e
ativamosaautenticao(LDAPAuthenticationEnabled).
possvelerecomendadoqueasenhadousurioAdmincadastradadentrodoLDAP
sejatestada,preenchaasenhaecliquenobotoTest.OZabbixvaidizersefoibemsucedido
ouno.Parasalvartambmobrigatrioqueasenhasejadigitadacorretamente.
NormalmenteteremosumusurioesenhacomreadonlyparaacessodoLDAPem
produo.Permitiracessoreadonlyguestbasednoaformamaisseguradese
fazeracessoabasedediretrios.
3.2.1.CadastrandoosusuriosdoLDAPnoZabbix
ApesardoZabbixestarapontandoparaoLDAPeoAdminestarfuncionando preciso
mapearquaisusuriosdarvoredediretriosparadentrodofrontend.Sevocnoofizer,no
sercapazdelogarcomumdeterminadousurio.
NocenrioqueestamosusandotemosalgunsusuriosdescritosnaTabelaquedevem
seradicionadosealgunsnovosgruposdeusuriosqueiroorganizaralgunsdeles.
Usurio
Descrio
Grupos
sysadmin
Administrador
sistemas UNIX
de Network
Administrators,
UNIX
Administrators, Web Administrators
winadmin
Administrador
de Network
Administrators,
sistemas Windows
Administrators
javaeng
Administrador
JBoss AS
do JBoss Administratros
dba
Administrador
banco de dados
do Database Administrators
Windows
SalveeescolhaUsersnocomboboxaoladodobotoCreateGroup,issovainosfazer
voltarteladeusuriosondeeditamosoAdmin.CliquenobotoCreateUser ecadastreos
usuriosdaTabela5conformeaFigura3.5.
OAliasocampocomonomedousurioedeveestar100%igualaodentrodoLDAP.
NameeSurnamesoapenaslabelsparaexibioenoquadroGroupsuseobotoadd
paraacrescentaraquaisgruposousuriopertence.
Umcampoquemereceumaatenoespecialo UserType quepermitedaralguns
privilgiosiniciaisconta.Nonossocasoiremosutilizarotipomaissimples,oZabbixUser,que
permiteapenasacessoaomenudemonitoramento.
Podemosainda criar outros dois tipos de usurios,como o Zabbix Admin que pode
acessaromonitoramentoeaconfiguraodehosts.Estecasotilquandoalgumdeveter
permissesdeverificaoetambmdireitodecadastraremodificarhostsmonitoradosassim
comoseustemplatesegrupos.PorfimtemosoZabbixSuperAdminqueocasodonosso
usurioAdmin.Esteltimopodefazertudo,inclusiveadicionareremoverdireitosaousurios.
Maisafrenteiremosacrescentardireitosaosusuriosetambmmudaremosseustipos
conformeanecessidade.
3.3.Meiosdealertas
OsMediaTypesosnomesqueoZabbixatribuiaosmeiosdeenviodealertas.Comoj
foiditooZabbixsuportacorreioeletrnico,SMSviamodem,SMSviaservioderede(EUAe
Canadaapenas),mensageiroinstantneoviaJabberechamadadescriptsexternos.Nonosso
cenriodecursoiremosaprenderatrabalharcomestesrecursosusandoosistemadeemaile
jabber (os quaisconfiguramosos clientesno incio do captulo). Entre em Administration
Media Types a tela da Figura 3.6 ser exibida com os trs meios de comunicao pr
configuradosnoservidor.Paraeditarqualquerumdelescliquenonomedacoluna Description.
Paracriarumnovo,cliqueemCreateMediaType.
possveltermltiplosmeiosdomesmotipo,porexemplo,tervriosservidoresdeemail
paraajudarnaredundnciadoserviodealertaoudedicardeterminadostiposdeemailspara
diferentesservidores.
3.3.1.Correioeletrnico
Agora edite oitemde email,a tela da Figura 3.7 ser exibida. Preencha oscampos
conformeamesma.Descriptionumcampodescritivoapenasenotemefeitosnaconfigurao
a no ser identificar este Media type na interface; SMTP Server aponta para o nome/IP do
servidordeemails(portaTCP/25);SMTPhelousadonamensageminicialtrocadaentreZabbix
eservidores,aconselhvelcolocarodomniodaprpriaempresa;SMTPemailoendereode
remetentequeoZabbixusarparaenviaramensagem.
CliqueemSavequandoterminar.
3.3.2.Mensagensinstantneas
AgorairemoseditaroJabber,cliquesobreonomedeleepreenchaoscamposconforme
aFigura3.8.
3.3.3.Apontandoosalertasaosusurios
AgoravamosdizerquaisusuriosusamqualMediaType.Editeousuriosysadmine
notequenofinaldatelaumcampoMediaestacomovalorNomediadefined.
CliqueemAddparaadicionarumnovomeiodealertaaousurio.Vamoscomearpelo
email.
Coloqueoemaildousurio(queomesmoqueseuAliasmaisodomniodocursono
exemplo:sysadmin@curso468.4linux.com.br).Nestatelapodemosaindaescolherquandoeste
meiovaificarativonocampoWhenactive.Estecampotemumasintaxebempeculiar,eleindica
quaisosdiasdasemanaeafaixadehorrioqueousuriopodereceberalertas.Issotilpara
noenviaralertasapessoasforadoexpediente,issoclaro,supondoquehajaoutrapessoade
prontidonohorriodeterminado.
NonossoexemplodeixeoJabberapenascomseveridadeHigheDisaster.Onomedo
usurioemSendtoomesmoqueoAlias.SalveevejanaFigura3.12comoocampoMedia
ficar.
Salveerepitaparatodososusuriosagora.
3.3.4.BoasprticascomMediatypes
Halgumasrecomendaesaseremfeitasquandosetrabalhacomalertasdesistemas
monitorados.
1) Mantenha mais de um meio de alerta para sistemas crticos. Isso pode ser feito
mantendovriosserviosdemesmotipo(doisservidoresdeemail,doismodems
SMS,etc.)ou melhor,fazendo comque eleseja enviado porvriasmdias(SMS,
Jabbereemail,todosaosmesmotempo).
2) EscolhaosMediaTypesdemaneiralgica.NoadiantaenviaralertasviaJabberse
ostcnicosraramenteestoonlinedosistemademensagensinstantneas.Tambm
noadiantaenviarumemaildedesastreastrsdamadrugadaquandoningumesta
olhandoemails.
3) Procuredeixaralertasqueprecisamderespostaimediataemmeiosquealcanamo
usuriocomfacilidade.SMSmaisclssico,masoautorjimplementouumquese
vinculavaaoasteriskefaziaumaligaodescrevendooproblema(comoumaURA
ativa).
4) Planeje!Faaescalasentreosfuncionrios,evitedaraltaprioridadeaalertastriviaise
cuidadocomosfalsospositivos,elespodemgeraroproblemadolobo.
OproblemadoloboaquelahistriadomeninopastorquegritavaLOBO!LOBO!na
vilaondemoravaetodosiamcorreraoseusocorro,paradescobrirqueeraapenas
umabrincadeira.Apsvriosepisdios,osaldeescomearamaignorarosapelos
falsosdogaroto,ejustonestediaumloboapareceudeverdade.
Receber alertas seguidos vai treinar o nosso crebro a ignorlos se eles se
comprovarem falsos positivos. Veremos ao longo do curso como diminuir os falsos
positivos.
3.4.Hosts,hostgroupsetemplates
Nesta sesso iremos abordar os conceitos mais fundamentais de monitoramento do
Zabbix:hosts,hostgroupsetemplates.
Hostssoarepresentaodeumservidor,servioouativoderedeasermonitorado.
Elesnormalmenterepresentamumsistemafsico,masissonototalmenteverdade,oagente
doZapcatporexemplo,serrepresentadoporumhostaparteeelenoumhardware.
Hostgroupsseparamlogicamenteoshostsepermitemquesejamatribudaspermisses
deacessosdosusuriosaumdeterminadohost.
Templates(modelos)soosblocosdeconstruodomonitoramento,enquantonoso
obrigatrios, pois podemos acrescentar mtricas de monitoramentos direto a um host, eles
ajudamagerenciardemaneiraefetivaosdiversostiposdemonitoramentospossveiserepliclos
atantoshostsquantoquisermos(ouoquantonossossistemasaguentarem,oquevierprimeiro).
Ostemplatesagregammtricasdemonitoramentochamadositems,macroseoutrosvaloresque
soimportantesparaconstruirumasoluodemonitoramento.Amaiorpartedoseutrabalhono
cursoseremcimadostemplates.
3.4.1.Templatesparaocasodeestudo
OprimeiropassolimpartodosostemplatespreexistentesnoZabbix.Apesardeparecer
umtantoagressivoexcluirtodososmodelosprcriados,partedointuitodocursoconstruiros
seustemplatesdemaneiraadequadaasuanecessidade.Emproduovocpodeconservlos
se desejar, mas isso no um requerimento a menos que voc tenha garantidamente um
equipamentoparaoqualumdosmodelostenhasidoconstrudo.Outraopofazerbackupdos
originais(vejaaprximasesso).
Depois escolha no combobox no final da tabela o valor Delete selected with linked
elementsepressioneobotoGo.
Perceba que o Zabbix indica quantos elementos sero afetados pela ao do
comboboxnobotoGononmeroentreparnteses.
EstaoperaopodedemoraralgunsminutosdependendodaCPUedoI/Odedisco
queseuequipamentopossui.
Agoraomomentodecriaroprimeirotemplate.
Paracriarumnovotemplate,cliquenobotoadireitadatelaCreateTemplateconforme
indicadonaFigura3.15.Umanovatelavaiseabrirconformeafiguraaseguir.
1) NocampoNamesercolocadoonomedonovotemplate.Queser4LinuxICMP
base.EstetemplateconterasmtricasmaisbsicasdetestesporICMP.
3.4.2.Vnculoentretemplates
possvel estabelecerum relao de dependnciasentre um modelo e outro,isso
extremamentetilparacriarestruturasdetemplatesquesocompostosporvriaspartes,por
exemplo,umconjuntodetemplatesquetestaumserviosobreumsistemaoperacional.Quando
o template de servio adicionado ao host todos os outros aos quais ele dependem so
adicionados.
Umdetalhedeextremaimportnciadesterecursoquepodemoscriarumadependncia
entreastriggers(gatilhos)queativamosalertasdoZabbix.Issoimportanteporqueumatrigger
dealtonvelnodeveserativadaseumamaisbsicaestiverativa(noprecisotestarseo
agentedoZabbixestempseopingICMPestiveracusandohostinalcanvel).
Seguindo as mesmas instrues mencionadas acima, crie mais um modelo chamado
4LinuxS.O.Base.
1) Na parte inferiorda tela voc ver um boto Add ao lado do campo Link with
template
2) Escolhaotemplaterelacionado(4LinuxICMPnonossocaso).
3) Salveotemplate.
Agoraseassociarmosumhostcomotemplate4LinuxS.O.Baseeleautomaticamente
vai receber todos os objetos definidos no 4Linux ICMP. Aproveite e crie mais um ltimo
templateparausarmosnaprticadirigida,4LinuxSNMPBasetambmvinculadoao4Linux
ICMP.
3.4.3.Backupdostemplates
Umaaoimportanteemtodosistemacriarumbackupdasconfiguraes.Apartirde
agoratodamodificaoquefizermosnosmapas,templates,gruposehostsdeverserseguidade
umbackup.Aoperaodebackup,chamadaExport bastantepadronizada,todasastelas
pertinentesafazerbackuputilizamomesmoprocedimentoexplicadoabaixo.Oresultado um
arquivoXMLcontendoosdadosdeconfigurao.
1) Selecionetodosostemplatesquevocdesejar.
2) SelecioneExportSelectednacaixadeopesdofinaldatabela.
3) CliquenobotoGo.
Umateladedownloadirserexibida,escolhaonomeelocaldoarquivoesalveo.
Mantenhaestesdadosemumlocalseguroesemprerealizeestaoperaoapsalgum
tipodealterao.
3.4.4.Hosts
Agoraqueumtemplatefoidefinidovamoscriarumhosteassociloaestemodelo.Na
Figura3.19estaumarepresentaodecomoasmquinasvirtuaisestodispostasemtermosde
layoutderede.EmnossaprticadirigidairemoscadastraroshostsPresentationeSwitch,
almdemodificaroZabbixServerquecriadoautomaticamentenomomentodoimportede
dadosdoPostgreSQL.
Tambmdevemoscriaralgunsgruposadicionaisparasepararlogicamentecadaservidor,
paraissovamosgerenciarosHostGroups.
3.4.5.GerenciandoosHostGroups
UmHostgrouptemduasfunesdentrodoZabbix:aprimeiraemaisbviamanter
oshostsorganizadosdetalformaquesejamaisfcillocalizarouexibirumgrupodeservidores
comservioscorrelacionados.Asegundaosistemadepermissionamentodeacessoaoshosts
quesertrabalhadoaolongodocurso.
Para exemplificar a criao dos hosts vamos criar apenas um deles, que conter os
equipamentos de rede. Clique no menu Configuration Host Groups, e clique no boto
CreateGroupconformeaFigura.
Aseguintetelairsurgir.
1) NocampoGroupnamecoloqueonomedonovogrupo(NetworkDevicesnonosso
caso).
3.4.6.Criandoumnovohost
Agora que geramos um host group, vamos criar os hosts, acesse Configuration
Hosts,algosimilaraFigura3.22iraparecer.Comoditoanteriormentealistadehostsjpossuio
prprioservidordoZabbixprcadastrado.
Para criar um novo host para o host Presentation da infraestrutura clique no boto
CreateHost(Figura3.23).
Epreenchaosdadosconformeafiguraaseguir.
1) OcampoNamecoloqueonomedohost(Presentationnonossocaso).
2) No Groups escolha quais grupos este host deve pertencer. Lembrese que estes
gruposvoindicarquempodeounoacessarestehostpelofrontend.
3) Sehouverumnovogruponocadastradoacimapossvelcriloaqui.
4) QualonomeDNSdamquina.
5) Qualoendereodamquina.
6) OcampoConnecttopermitequesejaescolhidooacessopeloendereoIPoupelo
nomedeDNS.Oclssicousaroendereo(evitandoconsultasDNSexcessivasno
ladodoservidor),maspossvelquesejanecessriomonitorarestaesdeusurios
ouservidoresqueestejamemambientescomIPdinmico(viaDHCP)enestecaso
somenteviaDNSpossvelencontrarohost.
7) QualaportaTCPdoagente.Vamosmudaristoparamonitoraro Zapcat,masem
todososoutroscasosdeixaremoselanopadro10050.
8) Nomonitoraremosestehostviaproxy.
9) No Status deixe como Not monitored por enquanto, quando associarmos os
templatesiremosativarestehost.
CrietodososhostsdocenrioconformeindicadonaFigura3.24.
10)
3.4.7.Fazendobackupdoshosts
Oprocessodebackupdoshostssegueomesmoprocedimentodotemplate.Selecione
todososhostscriadosefaaobackupdosmesmos.
3.4.8.Configurandoumapermissodeacesso
Comosusurios,grupos,mquinasemodelosdefinidos,vamosvercomodaroacesso
ao monitoramento de determinadas pores do Zabbix para a conta sysadmin. Isso feito
atravsdosgruposdeusuriosegrupodehosts.AcesseAdministrationUsers.
1) SelecioneUsergroupssejnoestivernestaopo.
2) CliquenonomedogrupoUnixadministrators.
Dentrodateladogrupolocalizenaparteinferiordatelaascaixasdepermisses(Figura
3.26).CliquenobotoAdddacaixaReadWrite.
NodialogoqueaparecerselecioneogrupodehostsLinuxServersecliqueemselect.
3.4.9.Exercciossobreusurios,hosts,gruposepermisses.
1) OcenriodocursoprecisadeumconjuntodepermissesconformeaTabelaabaixo.
Criegruposdehostseusurios,eatribuapermissesconformefornecessriopara
chegaraesteresultado.Notequehumnovousurio.
Switch
Windows
2003
Zabbix
server
read only read only read only read only read only read only read only
sysadmin readwrite
readwrite
readwrite
winadmin read only read only read only read only readwrite
dba
javaeng
read only
read only read only read only read only read only
read only read only read only read only
3.5.Mapas
Osmapassoelementosvisuaisteisparadeterminarondefoiopontodefalhadentrode
umainfraestrutura.Elessodeextremavaliaparaequipesqueavaliamasadedasmquinas
constantementeeprecisamreagirrapidamentediantedeumincidente.
OMapatambmpodeajudaradiagramarestruturasfsicasderedeeajudamamostrar
como os equipamentos se relacionam, embora o front end no seja uma ferramenta de
desenhosdediagramaspropriamentedita.
3.5.1.Importandoimagensparaomapa
Antesde criarummapa preciso definirasfigurarque faro parte de seu desenho.
AnteriormentenspulamosodumpdasfiguraspadrodoZabbix,issofoipropositalpoisiremos
inserirfigurasdemelhorqualidadedentrodofrontend.
OconjuntodefigurasqueutilizaremosestadentrodofrumdoZabbixatravsdolink
http://www.zabbix.com/wiki/_media/contrib/zabbix_icons_set_generic.zip. Acesseo e baixe o
arquivoparaumapastaemsecomputador(nonecessrioenvilasmquinadestinadaao
servidor, todo o procedimento de insero ser feitopelo front end).Depoisdescompacte o
arquivoparateracessosimagens.
AcesseomenuAdministration General,eescolhanacaixadeopesaesquerda.A
opoImages.
NestatelacliquenobotoCreateImageparaabrirodilogodeimportaodeumanova
imagem.Conformeasinstruesabaixoimporteaprimeiraimagem.
1) Nome da imagem a ser inserido, este nome precisa ser nico. No primeiro caso
coloqueovalorServerOn.
2) Podemosenviarcones(Icons)oufundodetelas(Background)aofrontend.cones
sousadosnoselementoscomohosts,triggerseimagensestticas,telasdefundo
obviamentesousadascomoumfundoparaomapa.
3) Nocampo Upload,cliquenoboto Browse... eescolhaolocalondeaimagemse
encontra,nocasodocursoaimagemutilizadaoconedetamanho48x48enome
48_g_srv_tower_on.png.
Realizeomesmoprocedimentoparaoutrasimagensconformeatabelaabaixo.
Nome da imagem
cone
Link
48_g_network_on.png
Server Disable
48_g_srv_tower_disable.png
Server Off
48_g_srv_tower_off.png
Server Unknown
48_g_srv_tower_unknown.png
Switch Disable
48_g_switch_disable.png
Switch Off
48_g_switch_off.png
Switch On
48_g_switch_on.png
Switch Unknown
48_g_switch_unknown.png
3.5.2.Criandoummapa
Agoraquetodososconesestodentrodofrontendvamoscriaroprimeiroprottipode
mapa.AimagemfinaldeleestarepresentadonaFigura3.31.
Estemapanotemtodososelementosasereminseridosnomapa,masvaiproporcionar
um bom primeiro exemplo. Abra a tela de gerenciamento de mapas acessando o menu
Configuration Maps,ummapaprcadastrado(Localnetwork)irserexibido,marqueacaixa
dechecagemdeleeexcluaeledalista.
Depoisdeapagaromapaexistentecrieoutronovoclicandonoboto CreateMap no
cantodireitodatela.UmatelacomonaFigura3.33irsurgireprecisocadastrarosdadosdo
novomapaconformeaseguir.
1) OcampoNameindicaonomedonovomapa,nocasodestaprticadirigidacoloque
InfraestruturaCurso468.
2) Alarguraempixelsdomapa,600umbomtamanhoparaonossocaso.
3) Aalturadomapa,500umbomtamanhoparaonossocurso.
4) Nocampo BackgroundImage podemosescolherumafiguradefundoparaeste
mapa.Vamosdeixaromapasemfiguradefundo.
5) AopoIconhighlightingserveparapediraoZabbixdesenharfundosnoscones
pararepresentarestados,elaumtantoredundanteemrelaoamltiplasfigurasde
conescomovamosvermaisafrente,pormiremosdeixlasligadasmesmoassim.
6) Se o cone possuir um trigger que teve seu estado mudado recentemente, uma
bordaserdesenhaemvoltadocone.
7) Nocasodehaverumincidentecomumitememparticular,eelefornico(somente
um problema para aquele item em particular) podemos deixar o campo Expand
singleproblemligadoparaqueadescriodoproblemasejaapresentadonomapa
(evitandoterqueclicarnoitemparaexibilo).
8) Qualotipodemensagemqueseradicionadaaonomedoitemnatelaquandoum
trigger forexibido.Osvalorespossveisso: Label,odefaultindicandoquedeve
exibironomedortulo; IPAddress,mostraoendereoderededohost; Element
name, o nome do elemento que esta apresentando problemas; Statusonly, que
indicaostatusdotrigger(OKouPROBLEM);Nothing,nadamostrado.
9) Localizaopadrodoslabels.
10)
NocampoProblemdisplaypodemosescolhersedesejamosmostrartodos
os problemas em uma nica linha (All), duas linhas com os problemas com
acknowlegment e outro sem (Separated), ou ainda somente os problemas sem
acknowlegmentchamadosdeUnacknowledged.
DepoiscliquenobotoSave.Vocirretornaratelaanterior.Agoraparacriaromapa
visualcliquesobreonomedomapa.
Nosepreocupeemdecoraretestartodasasopesdemapas,iremosdetalhara
maiorpartedelasduranteocurso.
Decidirotamanhodareademapasumaarte,eladependedevriosfatorescomo
porexemplootamanhodomonitorondeeleserexibido.Noseacanhederetornara
ediodeconfiguraesdomapaseotamanhodareanoficaraseugostoemum
primeiromomento.
3.5.3.Adicionandoumelemento
Dentrodatelademapas,umareaembrancodivididaporlinhasdealinhamentoser
exibida.Seutamanhoodefinidonateladecadastrodemapas.Napartesuperiordatelavoc
podeverumabarradeferramentascomonaFigura3.34,aexplicaoqueseguedefineousode
cadaboto.
1) Obotocomsinaldemais(+)adicionaumnovocone,queoelementoprincipal
dentrodeummapa.Este conepodeserumafiguraesttica,umtrigger,umlink
paraoutromapa,etc.Sevocselecionarumoumaiselementoseclicarnobotocom
sinaldemenos()vocirexcluiresteselementos.
2) Aoclicaremdoiselementospossvelcriarumlinkentreeles,representadoporuma
linha(cor,formato,etc.podemserpersonalizados).Estelinkpodeconterumalabele
indicaramudanadeestadosdeumgatilho.
3) NocampoGridpodemosdeixaragradedealinhamentoocultaounoclicandoem
Shown/Hide.
4) TambmpodemosligaroudesliglaclicandoemOn/Off.
5) Nacaixadecombinaoaseguiraresoluodagradepodeserescolhida,variando
desde20x20(paraajustefinodecones)at100x100(paracasosdemapasextensos
ouconesbemgrandes).
6) Porfim,oboto AlignIcons foraoZabbixaalinhartodososelementosdomapa
noslimitesmaisprximosdagrade.
Paraopropsitoinicialdocursoaresoluode50x50osuficiente.Vamosinserirum
novoconepararepresentarolinkdeinternet.CliquenobotomaisdocampoIconeumnovo
elemento ir aparecer no canto superior do mapa. Note que o Zabbix escolher o primeiro
elementogrficodisponvelparaele.
Arrasteoatapartedatelaquevocdesejarparaposicionlo.
VersesanterioresdoZabbixnoeramcapazesdeusarDrag&Drop.Tudotinhaque
serfeitocomcoordenadasmanuais.
3.5.4.Editandoumelementodomapa
Umavezqueoconeestejaposicionado,possveleditarosseusatributosconformeos
passosdescritosaseguir.Umelementonatelapodeserdevriostipos,elepodeporexemplo
representarumaimagemesttica,umhostouumgatilho.
Quandooconerepresentaumelementodinmicoelevaireagiramudanasdosestados
de qualquer um dos triggers associados visualmente. Como j foi dito antes isso
extremamenteimportanteparaacompanhamentosvisuais,especialmenteseforutilizadoteles
oumonitoresnumasaladeacompanhamentodeincidentes.
1) Cliquesobreoobjetocriadoanteriormente.Atelaadireitairserexibidaepodeser
reposicionadanatelapermitindoenxergarumdeterminadotrechodomapanatela.
2) OcampoTypeindicaotipodeobjetomencionadoanteriormente,noprimeirocaso
iremosescolher Image porqueolinknorepresentanenhumelementomonitorado
(apesar que posteriormente vamos monitorar o estado do link). Conforme o
andamentodocursoveremosmuitosoutrostipos.
3) No campo Label digite o texto a ser exibido como rtulo do cone. Aqui como
veremosmaistardepossvelcolocarvariveisespeciaischamadasdeMacrosque
oservidorassociaavaloresdinmicos.
4) AlocalizaodestertulopodeserescolhidaemLabellocation.Porpadroelafica
comofoidefinidonopadrodacriaodoMapa.
5) Qualaimagemdoconeaserexibida?Nestecasovamosdeixarcomoesta,mas
todasasimagensquefizemosuploadestosendoexibidasnestacaixadeseleo.
6) Porfimpodemosconfigurarascoordenadasdaposiodoelementodentrodomapa
empixels.NormalmentefazemosissopelosistemaDragandDrop.
NotrminocliqueemApplyparaaceitarasmodificaes.Issonovaifecharatelade
edio,paraissoaindatemosqueclicaremClose.
3.5.5.Salvandoomapa
importantequesalvemosconstantementeomapa,poissevocclicaremoutrolinkde
menudofrontendirperdertodasasalteraesfeitasatessemomento.Parasalvaromapa
cliquenobotoSave(Figura3.38).
Figura 3.38:
Boto Save do
mapa.
Umdilogosempreapareceraosalvarummapa.Elenoestaconfirmandosevocquer
salvar,esimperguntandosedeveretornaratelaanterioroucontinuarnomapa.Cancelusado
paracontinuarnomapaeOKparavoltarateladegerenciamentodemapas.
3.5.6.Adicionandoosoutroselementos
AgoraadicionemaisdoiselementosnomapapararepresentaroshostsPresentatione
SwitcheposicioneoscomonaFigura3.40.
Cliquenoelementodomeioparaeditloconformeabaixo,eleservirderepresentao
paraohostPresentationagora.
1) Neste campo vamos escolher o valor host. Visto que vamos utilizar um dos
previamentecadastrados,vocverqueporeleestardesativado,quandoclicarem
Apply,olabelDISABLEDsermostradoemvermelho.
2) Neste campo o valor da macro {HOSTNAME} ser substitudo pelo nome que
cadastramosohostnogerenciamentodosmesmos.EstamacrointernadoZabbixe
no precisa ser definida pelo usurio. Durante o curso aprenderemos outras e
definiremosvriasqueseropersonalizadasparaanossanecessidade.
3) Neste campo, que aparece sempre que escolhemos Host em Type clique em
Selecteescolhaohostdesejado.NestecasooPresentation.
4) TroqueoconeparaServerOn,visualmenteeledeverepresentarumamquina.
ComoresultadofinalumaimagemparecidacomaFigura3.43deveestarnomeiodesua
reademapa.
3.5.7.Criandoeeditandolinks
Comoselementosdehostseimagensnomapaaindafaltacriaroslinksqueinterligam
umelementoaoutro.Oslinkspodemtantoserumsimplestraoparamostrarumaligaoentre
dois elementos como tambm podem ser usados para demonstrar estados de gatilhos com
problemas.
3.5.8.PrticaDirigida
Figura 3.44: Criando um novo link entre o host Presentation e a imagem Internet
1) PrimeiroselecioneoconedaInternet.
2) PressioneCTRLecliquenoconedohostPresentation.Ateladireitadeedio
vairepresentarumamescladosdoisitens.
3) Cliquenobotodeadicionarlink.UmanovapartedajanelaintituladaConnectors
irsurgir.
4) DentrodelaumlinkchamadoLink_1vaiestarcadastradoeirindicarquaissoos
elementosqueeleinterliga.Cliquesobreonomedeleparaexibirsuaspropriedades
naabaConnectEditor.
1) NocampoLabelpodemoscolocarumaidentificaodestelink.Assimcomoortulo
doselementoscomimagenselatambmaceitamacros.
2) NosdoiscamposdeElementsositensqueestovinculadospodemseralterados.
3) Em Link indicators vamos, mais a frente, associar um link com gatilhos. No
momentodeixeovalorcomoesta.
4) EmType(OK)escolhaBoldline parapodervisualizarolinkcommaisfacilidade.
Estecampousadoquandoumoumaisgatilhosaoqualolinkestaassociadono
estejoativos.
5) PorfimemColour(OK)podemosescolherumacorparaolink.
Agoravocjtemomapafinaldestaprticadirigida.Salveeconfirmeoretornoparaa
tela de gerenciamentode mapas.No esquea de fazero backupdo mapa exportandoo do
mesmomodoquefezcomostemplatesehosts.
3.5.9.ExercciossobreMapas
1) FaauploaddasfigurasdoDVDcontidasnapastaImagensMapas.Soimagensdo
logotipo do servidorJboss.Osnomesno front enddevemcorresponderaosdas
imagens.
2) ConstruaomapafinalconformeaFigura3.47.
3.6.Templates,applicationseitems
Dentro dos tempates temos diversos elementos usados para realizar a coleta
e anlise das mtricas. Considere um modelo como o corao de seu gerenciamento
de monitoramento. A Figura 3.48 mostra quais so estes elementos. Acesse
Configuration Templates para chegar esta tela.
1) Applications sopequenosgruposparaorganizaroprximotipodeelemento(os
Items)dentrodeumtemplate.ElessosignificativosnateladeLatestdata.
2) OsItemssoprovavelmenteoobjetomaisimportantedentrodetodooZabbix.Eles
soasdefiniesdasmtricasdecoletas.Quaseque90%detodootrabalhode
monitoramentogiraemtornodeumItem.
3) OsTriggers,ougatilhos,montamalgicaparageraralertasbaseadonainformao
coletadapelosItems.ApartemaiscomplexadoZabbix montarasexpresses
booleanasdosgatilhosdemaneiraconcisaeequilibrada,evitandofalsospositivosao
mesmotempoquegeraalertasemumtempohbil.Inciaremosoestudodelesno
prximocaptulo.
4) OsGraphssoelementosqueexibemgrficos.Tambminiciaremosseuestudono
prximocaptulo.
Nesta sesso nos concentraremos apenas nos Applications e Items.
3.6.1.CriandoumApplicationeumItemdentrodeumtemplate
AindaemConfiguration Templates,cliquenolinkApplications(0)comoindicadona
Figura3.49.
Umanovatelasurgir.LocalizenocantosuperiordireitodelaobotoCreateapplication
comonaFigura3.50ecliquesobreele.
AteladeNewapplicationsurgirconformeabaixo.
1) Coloqueonomedaapplicationaqui,quenestecasoelaserICMP.
2) Podemos opcionalmente escolher outro template ou host para associar este
application.Poucoprovvelquevenhamosaalterarestetipodeoponestatela.
CliqueemSaveparaconcluireretornaratelaquelistatodasasapplications.
Nossonovoapplication estaexibidonatabela.Agoraomomentodecriarumnovo
item. Clique sobre o link Items (0) nesta tela (no caso de estar em outra tela, acesse
Configuration Templates ecliquenolinkdemesmonomenalinhadotemplatequevoc
desejaacrescentar).
Figura 3.53:
Criando seu
primeiro item
(1/3)
Nateladeitems,cliquenobotoCreateItem paraexibiratelaaseguir.Aindano
serexplicadocampoacampodocadastrodeumnovoitem.Issoserfeitonodecorrerdocurso.
1) NocampoDescriptioncoloqueumidentificador(depreferncianico,masissono
necessrio). O nome dele ser o exibido em grficos, usado em triggers, etc.
Escolhacoerentemente.
2) OTypeindicacomoesteitemvaifazeracoletadeumamtrica.Osdiversostipos
que sero abordados neste curso sero explicados nos prximos captulos, aqui
vamosusarSimplecheckquesignificausarchecagensviaprotocoloderede.
3) O Key o campo maisimportante de todos,eledeveser nico dentro de cada
template e host. Sua funo definir qual mtrica ser coletada. Como dito
anteriormenteumitemapartemaisimportantedeumtemplateeoseukeya
partemaisimportantedeumitem.Saberqualusaremqualsituao,fazparteda
competnciadeusaraferramentaedecriarummonitoramentoeficaz.Nonossocaso
vamos criar um item que faz um ping via ICMP no host, logo a chave ser
icmpping.ClicaremSelect abreumajanelacominfindveiskeysevocpode
selecionlasporessajanela,sedesejar.
4) Repetindo:CadaitemdoZabbixcapazdearmazenarapenasum,esomenteum
valor. No possvel armazenar objetos complexos dentro dos items, por isso
precisamosdefinirqualoformatodovalorqueserarmazenado.Nocasodakey
icmppingeleretorna1seopingfoibemsucedidoe0seno.Valoresinteirossem
sinalcomoestessoNumeric(Unsigned).
5) OUpdateinterval,otempoentreumacoletaeoutra,emsegundos.Porpadroo
Zabbixusa30segundos.Emnossocenriousaremos10,mastenhaemmenteque
estesnosobonsvalores.Enquantopodemosnossentirtentadosausarintervalos
curtosparatermosumagranulidadededadosbemalta(emaisprximadarealidade)
eleimpactapesadamenteemduascoisas:espaoemdisco,queaparentemente
pequeno mascomea a tomargrandes propores em ambiente commilhares de
mtricaseoenfileiramentodemtricasaseremprocessadaspeloservidor.Altima
em particular muito ruim, pois causar todo tipo de buraco possvel nos seus
grficos.Veremoscomocalcularumbomintervaloapartirdoprximocaptulo.
6) OscamposKeephistoryeKeeptrendsindicamporquantotempo,emdias,os
dadoscoletadosseroarmazenados.Oprimeirotempodelenatabelahistorydo
bancodedadosquemantmosdadosipsesliteriscomocoletados.Asegunda
uma mdia de 3 horas dos valores coletados para economizar espao. Como
veremos,o Zabbix temumaoperaorotineirachamadahousekeeping quelimpa
osdadosvencidos(depoisquepassarosdiasemkeephistory)databelahistory,
passandoamdiaparaatrends.DepoisquevencerotempoemKeeptrendsos
dadossoapagadosdefinitivamente.
7) Escolhao application ICMP quecriamosanteriormente.Seexistiremmaisdeum
applicationnestalista,vocpodepressionarCTRLparaselecionarvrios.
8) CliqueemSaveparafinalizar.
OresultadofinalmostradonaFigura3.55.
3.6.2.Interdependnciadetemplates
Emvriassituaesprticasseremosobrigadosacriarumalgicadechecagensentreos
triggersqueirogeraralertaseusarapplications queestoemoutrostemplates.Issos
pode ser feito se criarmos templates que so associados a outros. No nosso cenrio de
exemplosteremosvrioscasosdestetipo.
CliquenobotoAddparaabrirateladetemplates.
Najaneladedialogoqueaparecerselecione4LinuxICMPecliqueemSelect.Voc
podeescolhertantostemplatesquantoprecisarnestatela.
NotequetodotemplatequetemalgumaassociaosermostradonacolunaLinked
templstesnateladeTemplatesList.Agoratodohostqueforassociadoaotemplate4Linux
JBossserautomaticamenteassociadoao4LinuxICMP,almdissooprimeiropodeutilizar
osapplicationsdosegundoeseustriggerspodemdependerdosdosegundo.
Parafinalizarcomostemplates,crietodosostemplatesindicadosabaixoeassocieos
conformeaestruturadervoreindicada:
3.7.Associandoostemplatesaoshosts
Agora que temos os templates criados podemos vincular cada um deles aos hosts
criados.Fazerissoparaumhostmuitosimples,sigaospassosabaixo.
NapartedireitadatelalocalizeoquadroLinkedtemplates(Figura3.62)ecliquesobre
obotoAdd.
Figura 3.63: Associando o template do JBoss ao host JBoss AS
(3/6)
Nodilogoquesurgir,escolhaotemplatedesejado(4LinuxJBossBase)ecliqueem
Select.Vocpodeescolhertantostemplatesoquantoquiseraqui,desdequeelesnoestejam
associadosentresienemtenhamumtemplatepaiemcomum.
Vocveronomedostemplatesescolhidosapareceremnestequadro,conformeaFigura
3.64demonstra.
ParafinalizarcliqueemSave.
Figura 3.66: Associando o template do JBoss ao host JBoss AS (6/6)
Notequeotemplateescolhidoesuasdependncias,entreparnteses,seroexibidasna
Listadetemplates.
Figura 3.67: Templates para Windows e SNMP associados aos seus respectivos hosts
Agoravamosfazerumpequenoexerccioquevaidemonstraroutrorecursointeressante
doZabbix:oMassupdate.Imaginequevocpossuiumaquantidadegrandedehostseprecisa
associlos ao mesmo template, temos um caso destes no nosso cenrio: os hosts
Presentation,application,DatabaseeZabbixserverprecisamservinculadosaotemplate
4LinuxLinux,umavezquetodasestasmquinasvirtuaissoservidoresGnu/Linux.Vata
teladehostsesigaospassosaseguir.
1) Selecionetodosos4hostsindicados
2) NacaixadeopesmarqueMassupdate.
3) CliqueemGo(4),notequeonmerodehostsselecionadosindicadonesteboto
entreparnteses.
1) MarqueaopoLinkaddictionaltemplates;
2) CliqueemAdd.Nossavelhateladetemplatesirsurgir.
Marque4LinuxS.O.LinuxecliqueemSelect.
3.8.Ativandoumhost
Criamos os templates e hosts, demos permisses e montamos um mapa, mas
nada esta sendo monitorado ainda. Isso porque temos que habilitar todos os hosts.
Realizar esta tarefa muito simples.
Umdialogoirsurgirperguntandoseohostdevesermesmoativado.Confirmeclicando
emOK.
AcolunaondeclicamosinicialmenteagoradeveestarcomolinkMonitored emverde.
Aproveiteeativetodososhosts.
Ao invs de ativar um por um. Use o recurso de ativao de todos os hosts
simultaneamente ativando Enable selected na caixa de opes abaixo da lista de
hosts.
3.8.1.Throubleshootingparaitenscomproblemas
Tecnicamente, com os templates, a instalao e a ativao em ordem, a esta
altura o Zabbix estar coletando dados. Mas se formos at Monitoring Overview
veremos que nada aparece.
Isso aconteceu porque, deliberadamente, um componente da instalao foi
omitido: o item que o criamos dentro do template 4Linux ICMP. O objetivo
deste tpico justamente ensinar a voc como lidar com itens com problemas dentro
do Zabbix.
Sempre que suspeitar que uma mtrica no esta funcionando devidamente, o
lugar correto para descobrir o que pode estar acontecendo, est dentro dos itens do
host. V at Configuration Hosts e clique sobre um dos nomes dos hosts.
#tail/var/log/zabbix/zabbix_server.log
2506:20110201:202020.097server#6started[Poller.SNMP:YES]
2511:20110201:202020.108Deleted0recordsfromhistoryandtrends
2504:20110201:202020.147server#4started[Poller.SNMP:YES]
2502:20110201:202020.150server#2started[Poller.SNMP:YES]
2507:20110201:202020.218server#7started[Pollerforunreachablehosts.SNMP:YES]
2503:20110201:202020.242server#3started[Poller.SNMP:YES]
2505:20110201:202020.293server#5started[Poller.SNMP:YES]
2509:20110201:202023.022/usr/sbin/fping:[2]Nosuchfileordirectory
2509:20110201:202923.237/usr/sbin/fping:[2]Nosuchfileordirectory
2509:20110201:203002.281/usr/sbin/fping:[2]Nosuchfileordirectory
Mesmoapsinstalaropacote,oerropersiste!EntoprovavelmenteoZabbixdeveestar
procurandooexecutvelnolugarerrado. Vamosusarocomando which (podesero whereis
tambm)parasaberondeeleestarmazenado.
root@zabbixsrv:~#whichfping
/usr/bin/fping
Notequeeleestem/usr/bineoservidorestaprocurandoeleem/usr/sbin.Isso
claro varia de uma distribuio de Gnu/Linux para outra. O que fazer neste caso? Simples
mudaremosaconfiguraodoservidorparaseadequaraoambienteemqueelefoiinstalado.
Editeoarquivo /etc/zabbix/zabbix_server.conf eprocureaslinhascomasopesindicadas
abaixo.
#vim/etc/zabbix/zabbix_server.conf
#
========================================================================
====
#Localizaodoprogramadeping(ipv4eipv6)
#
FpingLocation=/usr/bin/fping
Umaoutrapossibilidadepararesolveroproblema fazerumlinksimbliconosistema
operacional.Avantagemdestemtodoquenosernecessrioalterarnenhumarquivode
configuraoenemreiniciaroZabbix.
lns/usr/bin/fping/usr/sbin/fping
Confira no s logs se alguma outra mensagem apareceu e acesse Coonfiguration
hosts,seoitemaparecercomonosuportadoaindanosepreocupeeleretornarembreve.Se
quiserque eleseja ativado agora,cliquesobre o Notsupported eeleser restabelecido.A
imagemabaixomostracomoeledeveficaraofinaldaoperao.
Captulo4
Monitoramentovoltadoparadisponibilidade
OBJETIVOS
UtilizaroZabbixcomoumaferramentaparamedirdisponibilidade:
Medir a disponibilidade dos equipamentos via checagens simples e agente
(incluindoaquioZapcat)
Alertarquedasdehosts,serviosereinicializaes.
Medirasadedainfraestrutura:
Latnciaderedeedeservios.
Espaoemdisconosservidores.
Serviosativos.
Interface
Testemanual.
Usodegrficosemapas.
Comandosexternos.
4.1.Introduo
Disponibilidade! Provavelmente o que vem na mente da maioria dos consultores e
gerentesdeTIquandoouvemapalavramonitoramento.Enquantoadisponibilidadenosejao
nico motivo de se monitorar ativos e servios, ela o fator que mais impacta em custo e
investimentos realizados. Quanto custa uma hora de seu principal servio parado para sua
empresa?
Neste captulo ser abordado uma multitude de possibilidades para medir o quo
disponvelestoseusservidores,servioseativosderede.OZabbixpossuidiversasmaneirasde
descobrir se algo no esta funcionando e aqui veremos como fazer isso usando protocolos
bsicosderede,testadoresdeprotocolos,cenriosdetesteweb,oprprioagentedoZabbix,
SNMPeoagentedoZabbixparaJBoss.
Tambmvamosentendercomocriartriggers(gatilhos)eActions(aestomadasquando
umgatilhomudadeestado)eenviaralertasdeparadademaneirainteligente,paraevitarfalsos
positivosepermitirqueaequipedesuportereajaatempoquandoumincidenteacontecer.
Almdisso,vamosvercomomedirdiversasmtricasegerarnossosprimeirosgrficos
dentrodofrontend.
4.2.Checagensmanualviafrontend
ObviamenteoZabbixpermitequerealizemosvriaschecagensdemaneiraautomtica,
afinalessasuaprincipalfuno,masantesdecomearacoletarmtricasemaismtricas,
vamos ver como usar o front end para realizar testes manuais, incluindo tambm a
personalizaodestestestes.
VatMonitoring MapsecliquesobreohostDatabasecomobotoesquerdodo
mouse(defatopodeserqualquerhostasuaescolha).Ummenu popup irsurgircomona
Figura4.1.
NotequeumaabadivisriachamadaToolsapresentaduasopesdecomandoque
podemos pedir ao servidor para realizar: Ping e Traceroute. Ambos so comandos bem
conhecidosdeumadministradordesistemas*nix.Realizeumtesteclicandosobreocomando
Ping.
DepoisdealgunssegundosvocverumdialogosurgircomonaFigura4.2.Eleasada
textualdocomando.Nocasodemonstradoopingfoibemsucedidoeocomandoexecutado
inclusivemostradonottulodatela.
Vamosagoraaooutrocomando.CliqueemClose parafecharestajanelaeexecuteo
outrocomandoviaomenupopup.
Apesar do comando ter retornado uma sada, ela extremamente inadequada, pois
sabemosqueoshostsdocenrioestoa1oudoishops(saltosderoteadores)apenas.Isso
aconteceuporqueoFirewalldasmquinasestabloqueandopacotesUDP,quesoopadrodo
traceroute.Nestecasoteramosduaspossibilidades:
1) LiberarnofirewallumaregrapermitindoqueoservidordoZabbixalcanceoshostspor
UDP;
2) ModificarocomandoparaqueelerealizetraceroutebaseadoemICMPquejesta
liberadonoFirewall.
Nestacasovamosoptarpelasegunda,parademonstrarcomoalterarasconfiguraes
destescomandos(queoZabbixchamadescripts).Masdependendodeseucenrioreal,pode
serprecisoliberaroFirewallparapermitirapassagemdedeterminadospacotes.
Semprecabeaoadministradorougerentederedetomarestasdecisescombasena
simplicidade,seguranaenecessidadedoambiente.Infelizmenteestassoregrasque
sempreentramemconflito,ponderebastanteparanodeixarfalhasdeseguranae
verifiqueseocomandoaserhabilitadomesmonecessrio.
4.2.1.Adequandooscriptdetraceroute
OservidordoZabbix,assimcomoseuagente,soexecutadoemformadedaemone
porquestesdeseguranaelessoexecutadoscompermissesdousurio6zabbix(egruposao
qualestacontapertena).
Este usurio no deve ter permisses de superusurio (conforme sua criao nos
captulosanteriores)esendoassim,somosobrigadosachecarseoscomandosquecolocaremos
nofrontendpodemserexecutadospelodaemon.
Primeirovamostestarcomorootofuncionamentodocomando.Nocasodotraceroutea
opopararealizartraamentoderotasviaICMPoI.
#tracerouteIwin2003
traceroutetowin2003(172.28.0.10),30hopsmax,60bytepackets
1gateway.curso468.4linux.com.br(172.27.0.1)0.954ms0.820ms0.724ms
2172.28.0.10(172.28.0.10)1.158ms1.066ms1.054ms
Perfeito!ViaICMPotracerouteconseguechegaratodestinoemostrarasrotas.Agora
vamostentarcomousurioZabbix.
#suzabbix
$tracerouteIwin2003
Thespecifiedtypeoftraceroutingisallowedforsuperuseronly
$logout
#
Voc no pensou que seria to fcil, pensou? Como verificado, o usurio no tem
permissodeexecutarotraceroutecomICMP.Issoaconteceuporquesomenteousurioroottem
direitosdecriarpacotesdacamadaderedearbitrariamente.Programascomoping,fping,entre
outrostempermissoSUIDativaparagarantirqueusuriosconvencionaissejamcapazesde
executarestesprogramas.
EviteusarSUIDparadarpermissesdeexecuesaosusuriosnormais!Issopode
causarfalhasdesegurana.
FelizmenteexisteumaalternativanomundoUNIX:osudo,umprogramaqueverificase
umusuriotempermissodeexecuoapartirdesuasconfiguraes.
Mesmo o sudo teve seu histrico de segurana comprometido, por isso sempre
mantenha sua distribuio atualizada com os ltimos patches de segurana, pois
nuncasesabequandoumanovafalhavaisair.
InstaleosudoapartirdorepositriodoDebiannohostZabbixserver.
#aptitudeinstallsudo
Agora use o comando visudo para adicionar a permisso do usurio zabbix de
executar o comando traceroute.
#visudo
1
#/etc/sudoers
#ThisfileMUSTbeeditedwiththe'visudo'commandasroot.
#Seethemanpagefordetailsonhowtowriteasudoersfile.
7
8
Defaultsenv_reset
9
10
#Hostaliasspecification
11
12
#Useraliasspecification
13
14
#Cmndaliasspecification
15
16
#Userprivilegespecification
17
rootALL=(ALL)ALL
18
19
#Allowmembersofgroupsudotoexecuteanycommand
#(Notethatlaterentriesoverridethis,soyoumightneedtomove
21
#itfurtherdown)
22
%sudoALL=(ALL)ALL
23
24
#includedir/etc/sudoers.d
25
26
zabbixALL=NOPASSWD:/usr/bin/traceroute
Salveoarquivoetestenovamenteocomandousandoagoraosudoantesdele.
#suzabbix
$sudotracerouteIwin2003
traceroutetowin2003(172.28.0.10),30hopsmax,60bytepackets
1gateway.curso468.4linux.com.br(172.27.0.1)0.980ms0.855ms0.926ms
2172.28.0.10(172.28.0.10)3.805ms4.292ms4.211ms
Voil!SeuusurioZabbixjconsegueusarocomandonosistema.Vamosvoltaraofront
end.EntreemAdministration ScriptsecliquesobreonomedocomandoTraceroute.Uma
teladeediodoscriptirsurgir.
NocampoCommandmodifiqueovalor,colocandosudoseguidodeespaoantesdo
traceroute e clique em Save. Agora volte at o mapa (Monitoring Maps) e execute o
comandoemvrioshosts.
AsadadaFigura4.4mostraasadadocomandosobreohostWindows2003.Noteque
elaidnticasadadoterminal.
4.2.2.Criandonovoscomandosparaomenu
Quandoascoisascomeamadarerradoeosalertaschegam,vocpodenecessitarque
usuriosdeprimeironvelsemconhecimentoprofundodeUnixouWindows,econsequentemente
semacessoaosconsolesdoservidor,precisemrealizartestes.Logo,existirocasosemqueseu
ambientedemandedevriosscriptsaseremexecutadoapartirdoservidorviafrontend.Um
exemplomuitocomumodetestesdeportasdeserviosTCP.
Paraexemplificarestecaso,vamoscriarumscriptquechamaumcomandnmappara
testar a porta 22/TCP (SSH) dos servidores Gnu/Linux em nosso cenrio. Volte para
AdministrationScripts.
Figura 4.5: Criando um novo script para testar portas SSH (1/2)
CliquesobreobotoCreatescriptconformeaFigura4.5paraacessarateladecriao
decomandos.
Figura 4.6: Criando um novo script para testar portas SSH (2/2)
1) Name:onomedocomandoaserexibidonomenu;
2) Command: O comando a ser executado, no nosso caso nmap P04 p 22
{HOST.CONN}.OparmetroP0donmapindicaqueohostnodeveserpingado
antesdetestaraporta(p22).{HOST.CONN}umamacrodoZabbixquecontmo
IPdoservidor(ounomeDNSdomesmo,dependedoqueescolhemosnacriaodo
host).Vriasmacros,inclusivepersonalizadaspodemserusadasnestecaso.
3) Usergroups:Indicao grupo usuriosquepodemexecutarestecomando.Escolha
Allparaestecenrio.
Se voc possuir vrios tipos de usurios que precisem executar apenas alguns
comandos,compensacriarumgrupodeusuriossparaissoeatribuirquaisusurios
pertencem a estes grupos. No esquea de dar permisso conforme os campos a
seguirparaqueelesejacapazdeveroscomandos.
4) Hostgroups:indicaemquaisgruposdehostsumcomandopodeserexecutado.Em
combinaocomaopoanteriorpossvelcriarregrasbemcomplexas.Almdisso
nofazsentidotestarumSSHemumWindowsporexemplo.EscolhaLinuxservers.
5) Qualtipodepermissoogrupodousuriodeveternohostgroupsparaexibiro
comando.AomenosapermissodeREADrequerida.
DepoisdecadastraroscamposcliqueemSaveevatomapaparatestarocomando.
CliquesobreumhostGnu/Linux.
AFigura4.7demonstracomoopopupsermostrado.CliquesobreonovosciptSSH
paraexecutlo.
SetudocorreubemasadadocomandodevesermostradaconformeaFigura4.8.Note
queoshostsswitch,JBossASeWindows2003nodevemexibirestecomando.
4.2.3.Exerccios
1) Gerencie o permissionamento para que o comando SSH seja somente executado
pelosusuriossuporteesysadmin.
2) Crieoseguinteconjuntodecomandosparatestedeportas:
2.1) Testaraporta445/TCPdoshostscomsistemaoperacionalWindows.Somente
osusuriossuporteewinadmindevempodeexecutlo.
2.2) Testar as portas 8009/TCP do servidor de aplicaes. Somente os usurios
suporteejavaengdevempoderexecutlo
2.3) (Desafio)Testaraporta80/TCPdo gateway ondeficaosistemadecachee
proxyreverso e do servidorde aplicaes. Somenteos usurios suporte e
sysadmin podemexecutlos.Nocasodesteexercciovocdeveverificarse
foiretornadoHTTP200.
2.4) (Desafio)Testaraporta5432/TCPdohost Database.Somenteos usurios
suporteedbapodemexecutlo.Nocasodesteexercciovocdeveverificar
sefoiretornadoovalorumapartirdeumSELECT1.
2.5) (Desafio)O Varnish temumconsolelocaldecomandosacessadoporuma
porta.Namquina Presentation crieumscriptqueacessaesteconsolee
limpaocachedoVarnishparaserchamadoviascriptdoZabbix.Somenteo
sysadminpodeexecutarestecomando.
4.3.ChecandodisponibilidadeviaprotocoloICMP
Criar comandos de teste interessante mas no automatiza o monitoramento que o
servidordeve fazerconstantemente.Logo,chegou o momentode verificarcomo o hostpode
apresentarindisponibilidadeapartirdachecagemderetornodepacotesICMPreply.
NemtodosossistemaspermitempacotesICMP.Seesteforocaso,noadiantacriar
testescomooaseguir,pulediretoparaverificaodeagenteseportas.
4.3.1.ComofuncionaopingICMP
O ICMPInternetControlMessageProtocol umprotocolodacamadaderededo
modeloTCP/IPresponsvelportrocarmensagensdecontroleentreoshosts(porexemplo,falhas
derotas).
Outilitriopingoufping(instaladonocaptuloanterioreusadopeloZabbixparaenviar
testesdeICMP)etantosoutros,utilizamapenasduasmensagensdefinidasnaRFC792para
fazertestesderede.Umparaenviodamensagemeoutropararesposta(Figura4.9).
Estetestejestasendorealizadoemnossocenrio,vistoquecriamosoitemicmpping
dentrodotemplate4LinuxICMPeativamososhosts.Emboramuitoprimrio,estetestevalida
todoocaminhofsicoentreoscomponentesderededodestinoedaorigem(switches,cabos,
placas,roteadores,etc.)eporissomuitoutilizadodentrodevrioscenriosreais.Podemosver
atrocadepacotesaconteceratravsdocomandotsharkaseguir.
#tsharknieth0icmpandhost172.27.0.1
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingoneth0
0.000000172.27.0.10>172.27.0.1ICMPEcho(ping)request
0.000959172.27.0.1>172.27.0.10ICMPEcho(ping)reply
1.000731172.27.0.10>172.27.0.1ICMPEcho(ping)request
1.001954172.27.0.1>172.27.0.10ICMPEcho(ping)reply
2.000778172.27.0.10>172.27.0.1ICMPEcho(ping)request
2.001882172.27.0.1>172.27.0.10ICMPEcho(ping)reply
Notequeparatodosospacotesechorequest,umechoreplyretornadodestino.
4.3.2.VisualizandoopingICMPnoFrontend
Podemos visualizar o resultado dentro da tela de Overview do front end. Acesse
MonitoringOverviewparaexibila.
NaFigura4.10temosumexemplodestatelamostrandotodososhosts.Seelanoestiver
aparecendonoseesqueadeselecionarnocomapoTypeovalorData.
Embora o Overview esteja exibindo corretamente o valor 1 da key icmpping no
muitointuitivoolharparaumnmeroemmeioaumatabela(semlevaremcontaqueestatabela
podeserdemasiadamenteextensa).PorissooZabbixofereceumrecursointeressantechamado
ValuesMapsquepermitemdarnomesaosvalores. J existem vrios deles definidos por
padro. Entre em Administration General, no canto direito da tela e selecione
Value Maps. Aproveite a oportunidade e apague todos eles, exceto Service State
e Windows Services, assim mantemos o ambiente limpo.
Agora conforme a Figura 4.11 indica, clique sobre o nome do Value Map chamado
ServiceStateparaeditlo.VamostransformarseusvaloresUpeDownemOkeFalha.
2) Mapping e Newmapping:Estescampospermitemaediodosvaloresqueso
mapeados. Clique sobre os valores de Up e Down e clique no boto Delete
Selected pararemovlose depois useo NewMapping paraadicionarosnovos
valoresconformeailustraodemonstra.
CliqueemSaveparasalvaresair.
Note que o Value Map foi alterado. Agora vamos associar o Ping ICMP ao novo
Estado.VatConfiguration templates,cliquesobreovaloritemsdo4LinuxICMPe
depoissobreonomedoitemICMPPing.
Notequeagoratodasasopesquepossuemovalor1estocomastringOK.Isso
facilitaemuitoavisualizaodosvaloresesemprequepossveliremoscriarouusarValues
Mapsprontosparamelhoraraapresentaodedados.
4.3.3.Criandoumgatilhodeparadadehost
EmborajsaibamosqualhostestaOK,aindanopedimosaoservidorparanosalertar
viaemail/Jabberaparadadeumdeles.Vamosprimeirotestaroqueofrontendjnosmostrae
depoisiremoscriarnossoprimeirotriggerquevaiavisarquandoalgodeerradoacontecercom
1) CasodesejepodeseescolherogrupoDatabaseserversparafacilitaravisualizao
dentrodoOverview.
Agora que j sabemos que o item esta funcionando corretamente, vamos criar nosso
trigger.Antesativeamquinavirtual,assimotriggerentrardesligado.
Umtrigger,ougatilho,umtestedecondioquepossuiumestado(OK,PROBLEMou
UNKNOWN)epermitequeoZabbixtomeumadecisosobreaocorrnciadeumincidentedentro
docenriomonitorado. Umnicotriggerpodeconterumsimplestesteboleanocomooque
usaremosdaquiapouco,comotambmverdadeirasequaesboleanasquetestaminmeras
possibilidadesparadecidiroqueaconteceu.Felizmenteagrandemaioriadoscasosrequerem
testessimplesdevaloresdeumnicoitem.Vparaateladetemplatesem Configuration
Templatesondeestao4LinuxICMP.
EditeostriggersdotemplateconformemostradonaFigura4.18.
NocantodireitodatelacliquenobotoCreateTrigger.Umanovatelairaparecer.
1) Name: indica o nome do gatilho. Este nome ser exibido quando o gatilho for
disparado em vrios lugares e pode ser referenciado nos emails, SMS e outras
formasdealerta.Porissoonomepermiteousodemacros.Noexemplodestaprtica
dirigidausamosovalorHost{HOSTNAME}inalcanvel.Onde{HOSTNAME}ser
substitudopelonomedohostcujotriggerforativado.
2) Expression: onde iremos escrever o teste do gatilho, ou seja, sua expresso
boleana.CliqueemToggleinputmethodparamudaromododeescritadogatilho,
porpadroteramosqueescreveraexpressonamo,mascomovocaindaesta
iniciandonoZabbixiremosusaroauxiliardeexpresses.
1) Item:indicaamtricacoletadanestetemplateaseravaliada.Cliqueem Select e
escolhaoICMPPing.
2) Function:afunousadaparaverificarogatilho.Aoclicarnacaixadecombinao
vocverumagrandequantidadedefunespossveis.OZabbixmuitoextensoe
provvelquevocnovenhaausartodasestasfunesemproduo,noentanto
elasestolsevocprecisar.Nocursoveremosapenasasmaisrelevantes.Escolha
Lastvalue=Nparaquepossamostestarseoltimovalordopingfoiumafalha.
3) Last of (T): define o tempo ou contagem de coletas a serem analisadas. Vamos
selecionar1coleta(altima).
4) N:OvalordeNnaexpressodafunoescolhidanoitem2.zerononossocaso,
quedefineumpingmalsucedido.
TemosaindaoTimeshiftquepermiteretrocedernotempoparacoletarmtricasaum
espaodefinidodesegundos,nopassado.Nousaremoseleainda.CliquenobotoInsertpara
retornaratelaanterior.
Vejaqueoconstrutordeexpressojescreveuparanstodaafrmula.Ovalor{4Linux
ICMP:icmpping.last(#1)}=0oresultadofinaldasescolhasfeitasnatelaanterior.Elaestano
formato {Template:item.funo(parmetros)}=valor. No se preocupe tanto com isso por
enquanto, mas voc deve ser capaz de ler as expresses e comparlas com o gerador
automtico,poisnomanualasrefernciassomostradascomoonomedecadafunoeno
pelosmenus.ParaacrescentlauseobotoAdd.
Comanovaexpressoativadapodemosnosateraoutrospontosdotrigger.
ObotoTestpodeajudararesolverumaexpressomaiscomplexa,mastenhaem
mentequeaentradadedadosdaexpressospodeserobtidamanualmente(vocvai
digitlas).Nopossvelcoletarosdadosdoitemparaaveriguarsevocfezcerto.
1) Thetriggerdependson:aquipodemosescolherseestetriggerdependedeoutros,
deformaqueelenosejaativadoseoutromaisbsicoestacomstatusPROBLEM.
Vamosverdependnciasmaisafrente,porhoradeixevazio.
2) Eventgeneration:indicaseotriggervaigerarumeventoapenasumaoumltiplas
vezes.
3) Severity:umdoscamposmaisimportantedetodos,indicaoquogravepodesera
ocorrnciadeumincidente.
4) Comments:umtextoexplicandooqueestetriggerrepresentaeoqueacarretaele
esta ligado. til para o pessoal de primeiro nvel de suporte que no tem
conhecimentoprofundodosistema.
CliqueemSaveparafinalizarestepasso.
Ogatilhodeveestarsendoexibidonalistadetriggers.
4.3.4.Lidandocomoseventos
Todogatilhogeraumeventoquerepresentaumnicoincidente,normalmenteumevento
representaoinciooutrminodomesmo.DentrodoZabbixvocdeveaprenderalidarcomos
eventos e usar o front end para verificar se um deles ocorreu. So muitas as telas onde
podemosverificarqueumincidenteaconteceuemumhost.Pausenovamenteohost Database
paraprovocaroincidentedechamadadeleevatMonitoringDashboard.
NotequeacolunaDisasterdoquadroSystemstatusestaindicandoqueumhostdo
grupo DatabaseServers e LinuxServers estcomproblemas.Naverdadeomesmohost
Databasequeestanosdoisgrupos.
OutrolugarquedeveestarrefletindoacondiodefalhaoprprioOverviiew,tantono
mododedadoscomonaFigura4.28comonadegatilhosnaFigura4.29.
OMapatambmdeveestarmostrandoostatusdotriggernohostDatabase.Vat
Monitoring MapsepercebacomooZabbixcolocouumcrculovermelhonofundodohost.O
nomedogatilhotambmestaaparecendoabaixodolabeldenome.
1) Group:filtraasopesdehostgroups.
2) Host:filtraoshostsdogrupoescolhido.
3) Source:defineaorigemdoseventos,umeventopodesergeradoporumgatilhoou
pordetecesdehostsfeitaspeloZabbix.
PercebaqueacolunaStatustemduaslinhas:umaparaaativaodotriggereoutra
paraadesativao.Estecomportamentodesejadopoisparasabemosporquantotempoum
determinadotriggerficouativo(eporconsequncia,porquantotempooincidenteocorreuna
suainfra),bastaanalisaracolunaDuration.
NacolunaDurationseumeventomudoudeestadoumaltimavez,ovalormostrado
indicaotempodesdeaquelepontoatopresentemomento.
OutropontoimportanteacolunaAck(acknowledgement,ouconfirmao).Elamostra
seumdeterminadoeventofoipercebidoporalgum,edeboaprticasemprepreenchlocom
algorelevante,mesmoquesejaumsimplestextodeestasendoverificado.Issopermitequeo
Zabbixsejausadocomoumsinalizadordetickets.CliquesobreolinkNo indicadonaFigura
4.31dalinhacomstatusPROBLEM.
NatelaquesurgirpreenchaoquadrodetextoecliqueemAcknowledge&Return.
Note que a coluna Ack agora apresenta o valor Yes em azul. Faa o mesmo
procedimentoparaofinaldoincidente.
Nuncadeixeeventossemacknowledgement,issofazcomqueohistricodeeventos
doZabbixfiqueimprecisoedeixedeserconfivel.
4.3.5.Criandoumaactionparaenviodealerta
Usarainterfacewebparalidarcomeventosimportante,masvocsvaisaberquealgo
ocorreusealgumficarnafrentedeummonitor.Enquantoestasetornandocomumousode
teles(normalmenteTVsdeLCDmodernas)paraexibirmapasescreenscomosstatusdos
hosts, de suma importncia que o Zabbix envie mensagens pelas mdias de alertas aos
envolvidos.
ParaissotemosquecriarumaAction,queacolaentreosMediaTypesdosusurios
eamudanadestatusdos triggers.Vat Configuration Actions paraexibiratelade
aes.
ConformenaFigura4.34,nocantodiretodatelacliqueemCreateAction.Umajanela
decadastrodaaoirsurgirconformeaseguir.
1) Naprimeiracaixadeopes,escolhaTrigger,notequehvriostiposdevalores
quepodemserusadosparadispararumaao.
2) Nasegundacaixaescolha=.
3) PorfimcliqueemSelecteativeotriggerquecriamosanteriormente.
Estacondiodizquetodavezqueogatilhoescolhidomudardeestadoestaactionser
disparada.CliqueemAddparaadicionarefinalizarestaparte.
Figura 4.39:
Criando uma
action para enviar
o alerta (6/9)
Agoraprecisamosescolheroqueaactiondevefazer.NoquadroActionoperationa
esquerdadoprincipal,podemoslistarvriasoperaesparaseremativadasquandoaactionfor
disparada. aqui onde escolhemos qual meio de alerta ser usado para uma action em
particular.CliqueemNewconformemostradonaFigura4.39.
ApsissocliqueemSavenoquadroprincipal.
Chegou o momento de testar nossa action. Pause por alguns minutos a mquina
Database e volte ela ao normal. Nesse nterim, consulte os emails no Evolution e as
mensagensnoPidgin.
Voc deve receber dois alertas: um de parada (PROBLEM) e outro de retorno (OK).
PercebaqueosvaloresdasmacrosforamsubstitudospeloZabbix.
4.3.6.Exerccios
1) Aproveiteomomentoquevoctemcomumaactionplenamentefuncionaleconsulte
omanualonlinedoZabbixparaconhecerasmacrosdisponveisnoservidor,ealtere
os textos e ttulos das mensagens para experimentar os valores possveis nas
mensagens.
2) ReinicieamquinavirtualDatabaseconformeaFiguraabaixoindica,edigaoque
aconteceucomoseventos.Vocachaqueissoumcomportamentocorreto?
________________________________________________________________________
________________________________________________________________________
4.3.7.Boasprticascomtriggers
Sevocfezoltimoexerccio,deveterpercebidoqueoeventofoiacionadopeloreboot
damquinavirtual.Estetipodecomportamentoesperado,afinalarespostadopingdeixoude
ser enviado ao servidor. No entanto a mquina no caiu, e uma simples reinicializao
providencialemumservidorouservio,nodeveseracusadacomoquedadehost.Ambosso
situaesdiferentes.
Porissodevemossempreteremmentequenossostriggersnodevemselimitara
verificarumnicovalordemudanadeestado.precisodeumalgicamaisbemtrabalhadae
fazerusodeumrecursochamadojaneladetempo.AFigura4.45ilustracomoajaneladetempo
funciona.
Vamosentocriarumtriggercomumajaneladetempo.Editeacondiodonosso
triggercriadoanteriormente,acessandoConfiguration Templates,cliquenovalortriggers
dotemplate4LinuxICMPedepoisabraacondiodogatilho.Doiscamposseroalterados
comoaseguir:
1) Function:mudeafunoparaSumofvaluesforperiodoftimeT=N,justamenteo
Tnossajanela.
2) Lastof(T):adefiniodajanela,nonossoexemplo,serde60segundos,vistoque
nossoitempingaohostdedestinoacada10segundos.Procuredeixarajanela
prximaaotempodecoletaentrex3ax6.
Salvetudoereinicieohostnovamente.Setudocorrerbemajanelavaievitarqueoalerta
sejaenviado.Seaindaassimvocreceberoalertaprecisoaumentarajaneladetempo.
Qual um bom tamanho de janela de tempo? Isso uma pergunta que depende
inteiramentedeseussistemas.Amaioriadoscasosnorequerumajanelamenordo
que5minutos.Janelasmuitoextensaspodemdiminuirotempoderespostadaequipe
de TI e janelas muito pequenas tendem a gerar falsos positivos. Tente achar o
equilbrio.
4.4.Checagemgenricadeportaseservios
ComoditoanteriormenteICMPrequestspodemserbarradosporFirewalls.Seesteforo
seucaso,entovocnopodedependerdelesparamedirasuadisponibilidadeedeverecorrera
outrosmtodos.Nestetpicoveremosummuitocomum,achecagemdeportasTCP.
4.4.1.ConexesTCPehandshakes
ComosedaverificaoremotadeumserviorodandoemumsoqueteTCP?Vamos
fazer uma pequena prtica para a verificao do mesmo, e entender o famoso Three wy
handshakedoprotocoloTCP.
PrimeiroativenohostApplicationoseguintecomando:
#tsharknieth0host172.27.0.10andport8080
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingoneth0
OtsharkocomandodelinhasdeconsoledoWireshark,emuitomaispoderoso
que o tcpdump. No caso do comando acima pedimos que ele capture todo o trafego da
interfaceeth0quevierdoZabbixservereusaraporta8080.
AgoranoservidordoZabbixdenossocenrio,useocomandonmapparavarreraporta
8080dohostApplication.
#nmapsTP0p8080172.27.0.20
StartingNmap5.00(http://nmap.org)at2011020917:08BRST
Interestingportsonapplication.curso468.4linux.com.br(172.27.0.20):
PORTSTATESERVICE
8080/tcpopenhttpproxy
Nmapdone:1IPaddress(1hostup)scannedin0.04seconds
NotequeusamosoparmetrosTparaforaronmapausarohandshakecompleto
emvezdoSYNscan1padro.VolteaoApplicationparaveroresultadonotshark.
#tsharknieth0host172.27.0.10andport8080
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
1 O SYN Scan um mtodo considerado furtivo antigamente. Ele fazia apenas metade dos passos para abertura
de uma conexo.
StartingNmap5.00(http://nmap.org)at2011020917:13BRST
Interestingportsonapplication.curso468.4linux.com.br(172.27.0.20):
PORTSTATESERVICE
10000/tcpclosedsnetsensormgmt
Nmapdone:1IPaddress(1hostup)scannedin0.10seconds
Noteoestadocloseddasadadonmap!VatotsharkdoApplicationevejao
trafegodospacotescapturado.
#tsharknieth0host172.27.0.10andport10000
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingoneth0
0.000000172.27.0.10>172.27.0.20TCP47673>10000[SYN]Seq=0Win=5840Len=0
MSS=1460TSV=4696578TSER=0WS=4
0.000096172.27.0.20>172.27.0.10TCP10000>47673[RST,ACK]Seq=1Ack=1Win=0
Len=0
#iptablesDINPUTjACCEPTptcpdport10000
Notequehapenasdoispacotes,oSYNdeinciodeconexocomonoexemploanterior
e outro com RST/ACK pedindo para encerrar imediatamente a conexo. assim que um
sistemaoperacionalinformaqueumaportaestafechadaparaumatentativadeconexoremota.
UmtimeoutnaaberturadeumaconexoTCPporqueoclientenorecebeunem
umRST/ACKouumSYN/ACKapsumperodo(quenamaioriadasvezesde60
segundos).
4.4.2.Criandoumtestedeservioviavarreduradeportas
Comestesdadosdisponveisvamoscriarumasituaoondehavertrscasosdeportas:
aberta,fechadaefiltradaporfirewall.
Noexisteumamaneiraconfiveldesechecarserviosqueusam"UDPsemapelar
paraacamadadeapresentaodomodeloTCP/IP.
PrimeiropareoserviodeSSHnoDatabase.
#/etc/init.d/sshstop
DepoisremovaaregrasdepermissodeacessodeSSHdaApplication.
#iptablesDINPUTjACCEPTptcpdport22
Apartirdozabbixsrvfaaaseguintevarreduradeportas.
#nmapp22applicationpresentationdatabaseP0
StartingNmap5.00(http://nmap.org)at2011020914:04BRST
Interestingportsonapplication.curso468.4linux.com.br(172.27.0.20):
PORTSTATESERVICE
22/tcpfilteredssh
MACAddress:08:00:27:4B:97:E3(CadmusComputerSystems)
Interestingportsongateway.curso468.4linux.com.br(172.27.0.1):
PORTSTATESERVICE
22/tcpopenssh
MACAddress:08:00:27:BD:55:12(CadmusComputerSystems)
Interestingportsondatabase.curso468.4linux.com.br(172.27.0.30):
PORTSTATESERVICE
22/tcpclosedssh
MACAddress:08:00:27:A3:73:61(CadmusComputerSystems)
Nmapdone:3IPaddresses(3hostsup)scannedin0.48seconds
Note que no Database que desligamos o SSH retornou closed e o firewall do
Applicationretornoufiltered,somenteoPresentationdeuumopen.Anoteesteresultados
poisiremoscomparloscomoqueoZabbixretornar.
Notemplate4LinuxS.O.Linuxcrieumnovoitemdesimplecheckcomakeyssh.
ParaqueoservidorpossauslaprecisoqueeleestejacompiladocomsuportealibSSH(opo
enablelibssh).
1) Key:achavesshfazumtestenaporta22dosservidores.
2) Showvalue:escolhaovaluemapEstado comofizemosnoICMPping.Achave
escolhidatambmretorna1parasucessoe0parafalha.
3) Newapplication:crieumaaplicaoexclusivaparaoserviodeSSH.
Noesqueadepreencherosoutroscamposconformeailustrao.Depoisdesalvar
estenovoitem,consulteasadadoOverview.
NotecomoosdoisservioscomfirewallecomoSSHdesligadoretornaramFalha(0)eo
queestavaemfuncionamentoretornou1.
UmadasgrandesvantagensdetestarportasTCPqueapossibilidadedeincidnciade
perdasdepacotesbembaixaemrelaoaotesterealizadocomoUDP.
Enquanto o manual do Zabbix contma informao de que a checagem de vrios
serviosretornamovalor2aoacharumtimeout,oautornofoicapazdereproduzir
estecomportamentocomsucesso.
4.4.3.Exercciosobrechecagemdeportas
1) SeguindoomesmoprocedimentodoICMPPing.Crieumtriggerparaalertasde
quedasdeportas.
2) Crieositensparamonitorartodososserviosviasimplecheckconformeatabela
abaixo.
Nopossvelmonitorarumdosserviosmencionadosnatabela,aodescobrirqual
anoteomesmoexplicandoporquenofoipossvelrealizarumsimplechecknele.
Maisafrentevoltaremosaestecasoefaremosomonitoramentodeoutramaneira.
Porta
22/TCP
(HTTP 80/TCP
Host
Template
Key
Todos os Linux
S.O. Linux
ssh
Presentation
Varnish
http
Presentation
Apache
http
JBoss base
tcp,8009
Apache (proxy)
8080/TCP
JBoss
(Aplicativo)
Apache
(Aplicativo)
80/TCP
Application
Apache
http
PostgreSQL
5432/TCP
Database
PostgreSQL
tcp,5432
OpenLDAP
389/TCP
Database
OpenLDAP
ldap
8080/TCP
(HTTP)
http,8080
4.5.ValidaodepginasWEB
UmrecursoapartenosistemademonitoramentodoZabbixotestedecenriosweb.O
servidorcapazdedispararchecagempeloprotocoloHTTPereconhecimentodepadresHTML
paravalidarpginasHTML,inclusivecomvalidaodeformulrios(tantocomGETouPOST).
Para suportar este tipo de checagem o servidor deve ser compilado com suporte
bibliotecaCURL(enablecurl).
4.5.1.Disponibilidadedosite.
OZabbixdenominaumtestedeumsitecomoumscenario(cenrio),edentrodeste
cenriohvrioselementoschamadosdesteps(passos)quecorrespondemaumarequisio,
ouseja,aumaURL.
O principal uso deste tipo de teste verificar se a URL esta respondendo
adequadamente,podemos,porexemplo,verificarseoHTMLcontmumadeterminadastringou
seocdigo de retorno corresponde aumsucesso,quenormalmente 200 OK.Masestas
checagenstemoutrositensembutidosnela.Oservidorcalculaautomaticamentealatnciade
redeeavelocidadededownloaddosdadosnaURLejgeragrficosdestasestatsticas.Um
1) Group:escolhaogrupoLinuxservers.
2) Host:escolha Application,queohostinternodenossocenrioquepossuium
JBosseumApacheexecutandoaplicaes.
Aoescolherosdoisvaloresobotoserhabilitado.Issoaconteceporquenopossvel
colocarumcenriodentrodeumtemplate,apenasdentrodeumhost.Daanecessidadedese
escolherumhost.
CliquesobreCreatescenario,umanovajaneladecadastroirsurgir.
1) Name: o nome deste step normalmente representa a URL a ser testada (por
exemplopginaprincipal,carrinhodecompras,blog,etc.)
2) URL:oendereowebaseracessado.PodeincluirparmetrosdemtodoGETse
desejado.Nonossocasocolocaremosphpapp.curso468.4linux.com.br.
3) Post:seapginareceberdadosviaPOST,asvariveisevalores(umemcada
linha)podemseracrescentadosaqui.Nestecasonohnenhuma.
4) Timeout:porquantotempooZabbixvaiesperararespostadoservidorwebondea
URLaponta.Ovaloremsegundos.Deixe15.Valoresmenorespodemserusadosse
o teste for executado em infraestruturas locais, sites de baixo movimento ou em
servidoresdealtssimondicedetempoderesposta.
5) Required:umtextoqueesperadonapginaderesposta.Seoservidorfalharem
entregarumapginacomestastringumtriggeracionado.
6) Statuscode:qualocdigoHTTPesperadoparaaresposta.Normalmenteele200
quesignificaOK,pginaencontrada.VocpodeverarelaodecdigosHTTPem
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html. Note que este
camponoobrigatrio,vocpodesimplesmentepedirproZabbixverseoservidor
estaretornandoalgo,masissonomuitotilnamaioriadasvezes.
Paraterminarainserodo step cliqueem Add.Antesdecontinuarvalemencionar
queaURLdetestesusadanestesteppassapelaestruturadecacheeproxyreversodocenrio
(Varnish Apache+mod_proxy Apache+PHP5) e por isso esta testando toda esta
infraestrutura.PoderamosfazerumtestediretonoservidorApachesenecessrio.
Notequenofinaldoquadrodajaneladecenrioonovostepficalistadoemformade
tabela. Ainda no vamos acrescentar outros steps neste cenrio. Salve clicando no boto
Save.
Nalistadecenrios,temosagoraonossocadastrado.Paraverificarestemonitoramento
temosumatelaespecialsparaele.AcesseMonitoringWeb.
Cliquesobreonomedocenrioenotequeeleestasendoorganizadopelaapplication
escolhidaquandoocadastramos.
Natelaseguinteumresumodaltimacoletacomavelocidade(Speed),latnciaderede
(Response time), ltimo cdigo HTTP de resposta (Response code) e Status dos triggers
geradosautomaticamente.Logoabaixodestequadrotemosdoisgrficosdevelocidadeetempo
derespostaprontos.
Comovocpodever,acriaodeumcenriosimples,maspermiteumaflexibilidade
muitogrande.Vamosemseguidavercomorealizarumavalidaodeumformulrioweb.
4.5.2.Exerccios
1) Crieumactionparaostriggersqueocenriogerouefaaosseguintestestes:
1.1) PararoservidorApachenohostApplication.
1.2) PararoservidorApachenohostPresentation.
1.3) PararoservidorVarnishnohostPresentation.
1.4) MudaroHTMLdapginaprincipalparanoretornarastringesperada.
4.6.Checandodisponibilidadeviaagentes
Asduassimplechecksicmppingesshqueusamoseocenriowebcriadonoutilizam
oagente,porissosodenominadasagentless.Issotilquandoosistemafinalnopermite
quesejainstaladooagenteporummotivoqualquereusaapenasprotocolosderedeparaavaliar
adisponibilidadedoobjetofinal.
Porm essas checagens so muito limitadas e se no houver, ao menos, um agente
SNMPnohostdedestinonopossvelcoletarmtricasdoservidoredeterminaroquecausou
umadeterminadaparada.PorissooZabbixvemcomumagentequepodeserinstaladonoshosts
dedestino,comofizemosnoCaptulo 2.Chegouahoradeutilizaresteagentepararealizaras
checagens de disponibilidade. Vamos comear com mtricas simples e depois passaremos a
checarmtricasdesistemaoperacionalmuitomaisricas.
4.6.1.Checandoseoagenteestaoperacional
Oprimeiro passo verificarseoagenteestafuncionandoe escutando na suaporta,
normalmente10050/TCP.Usamosemcaptulosanterioresozabbix_getparacoletardadosda
keyagent.pingcomoumteste.Estakeyretorna1seoagenteestaoperando,masconsidere
queseelenoestiverfuncionandonohcomoeleretornar0paraalertarumaqueda!
PorissoessakeytemumtratamentoespecialdentrodoZabbix.Sealgumproblemade
rede,firewall,daemon,etcnopermitirqueoagentesejaalcanadoeoservidorregistrarerroele
ir gravarumvalornulonacoleta.Este valorpoder sertestadonumtriggercomafuno
nodata()(vejamaisafrente)oquerequerumtratamentoespecialparaocaso.Vatatelade
itemsdotemplate4LinuxS.O.Baseecrieumnovoitem.
Aocriaroitemaquiostemplates 4LinuxS.O.Linux e 4LinuxS.O.Windows
automaticamenteherdaroele.
1) Selecioneoitemdentrodalista
2) EscolhaCopyselectedto...nacaixadeaes.
3) CliqueemGo(1).
Figura 4.60: Copiando o item de ping de agente para o template do JBoss (2/2)
4.6.2.Criandoumtriggercomafunonodata()
Agora vamos criar um trigger que opera com a funo nodata() conforme citao
anterior.OprocedimentomuitosimilaraodogatilhoparaoICMP,excetopelafunousada.
Anodata()operacombaseemerrosdecoletaparadefiniraquedadeumagente.Se
algumerroocorrerelaretorna1,casocontrrioumdadofoirecebidoearmazenadoeelaretorna
0. Usaremos este truque mais a frente para triggers que podem parar de receber dados e
apresentarconstantementeosindesejveisestadosUNKNOWN.
Dentrodotemplate4LinuxS.O.Basecrieumnovotrigger.
NotequeotriggerherdadodoICMPBaseestaaparecendonasualistadetriggers
destetemplate.
1) Item:EscolhaoitemAgentPingparaseravaliado.
2) Function:Procurenofinaldalistaafunoescolhidanaimagem.Elarepresentaa
nodata().
3) Last of (T): Nossa janela de tempo. Como no icmpping vamos esperar por um
minutosemrespostaeentoativarotrigger.
4) N:Ovaloresperadoparaafuno.Conformecitado,eleser1.
VocnopodeescolherumvalordeLastof(T)menordoque30segundosparaa
funonodata(sec).OZabbixfazchecagensdefaltaderecebimentoacadameio
minuto,porissodeixarestecampomenorqueestevalornovaiterfunoalguma.
Adicioneaexpressoaotrigger.
Agoravamosadicionarumadependnciaaestetrigger,elesdeveseravaliadoseo
testedepingICMPforbemsucedido.Issoevitasuascoisas:primeiroquemaisdeumaction
sejaativadoemcasodeumcongelamentodohost(oqueeconomizaalertas),segundopermite
queoZabbixnopercatempocomprocessamentodegatilhosquesodesnecessriosparaa
ocasio(quegastamtempodeCPUnoservidordemonitoramento).Nonossocenrioseohost
noestiverrespondendorequisioICMPintiltestaroagente.
Notequeistopodenoserverdadenocenriodesuaempresa!Avaliaradependncia
dos triggers importante quando se est construindo uma soluo eficiente de
monitoramento.
CliquenobotoAddeselecioneotriggerdoICMP.
Notequeagoraeleaparecenalistadedependncias.Salveonovogatilho.
Note que h setas nos detalhes dos Triggers para o servidor. Uma seta para cima
significaqueotriggerjcaiuevoltouaoestadodeOK.Umasetaparabaixosignificaqueseu
estadoatualPROBLEM.Retorneoagenteaoestadonormal,atribuaumacknowledgemente
vamosaoutroteste.
Destavezderrubaremosdoishosts,pausandoamboseverificandoseelesvoativaro
triggerdeagentealmdodoICMP.PareohostWindows2003 e Database eretorneao
Overview.
Seoseutestenofuncionoupodesernecessrioaumentarajaneladetempoem
relaoaotriggerpai.Nuncadeixeajaneladofilhoexatamenteigualoumenorquea
dopai,afolgapodeserpequenamasdeveexistir.
Nopossvelusarafunonodata()paraverificaradisponibilidadeviaSNMP.
4.6.3.Exerccios
1) CopieotriggerparaotemplatedoJBoss.
2) Crie as actions necessrias para enviar os alertas de paradas doshosts a seus
respectivosresponsveis,conformeatabelaabaixo.
Host
Responsveis
Application
sysadmin, javaeng
Database
sysadmin, dba
JBoss AS
javaeng
Presentation
sysadmin
Switch
sysadmin, winadmin
Windows2003
winadmin
Zabbixsrv
sysadmin
4.7.TempoonlineeltimainicializaodoS.O.
Vimosanteriormente que o Zabbix alertou uma queda de host quando nosso trigger
ICMP estava realizando uma checagem ruim sem janela de tempo. Ao concertar este
comportamentodeixamosdesaberquandoumhostfoireiniciado.Verificarareinicializaode
hostsimportantenamediodadisponibilidadedomesmo.Estetpicotratajustamentedesta
questo.
Primeirovamosaoproblemaprticoquetemosemmos:temosquemedirotempode
uptimedetodososhostsincluindoaiosGnu/Linux,Windows,switcheamquinavirtualjavana
qualoJBossexecutado.Issonosdtrscasosdecoleta:peloagentenormal,peloagente
ZapcatepeloSNMP.
Isso vai demonstrar como o sistema do Zabbix consegue lidar com ambiente
heterogneosevaidemonstrarquedepoisdacoletaotratamento,armazenamentoeanliseno
muda.
Oprimeiropassoanalisaroretornodosvaloresviaconsole.Issoimportanteparaque
tenhamosparmetrosdetiposdedados(inteiros,float);nomecorretodaskeys,OIDs,etce
acesso.OagentedoZabbixpossuiumakeychamadasystem.uptime queretornaotempo
desde o ltimo boot. De maneira equivalente o JBoss tem um JMX
java.lang:type=Runtime,Uptimequetambmfazisso,masparaainicializaodaJVMeoSNMP
porpadrotemoOIDDISMANEVENTMIB::sysUpTimeInstance.
AOIDdoSNMPmuitovariveldeumequipamentoparaoutro,sempreconsulteo
manualouaMIBdoseufabricanteparadeterminaroqueestadisponvelparacoleta.
Vamosusarosseguintescomandosparaoscasosdeuso.
#zabbix_getk"system.uptime"sapplication
59545
#echo"jmx[java.lang:type=Runtime][Uptime]"|ncapplication10052;echo
ZBX59374361
#snmpgetv2ccpublic172.27.0.135DISMANEVENTMIB::sysUpTimeInstance
DISMANEVENTMIB::sysUpTimeInstance=Timeticks:(6026194)16:44:21.94
Sevocfezodesafiodotpico 2.12,pgina 72 podeusaroseuscriptemvezdo
segundocomando.
Cadacomandoretornouumvalorinteiro,todosrepresentandoouptimedosistema.A
grandediferenaentreelesaprecisodetempoutilizada,oagentedoZabbixretornaovalorem
segundos,oZapcatemmilissegundoseoagenteSNMPemcentsimosdesegundos(queele
chamadetimeticks).
Noseincomodecomasadaemtextodevriosdessescomandos,oZabbixlidacom
osnmerosdestacadosemnegritoapenas.
Toda essa diferena requer um tratamento no momento da coleta, ou seja, na
1) Description:coloqueadescrio,conformeafigura.
2) Key:comousamosnocomandozabbix_get,achavesystem.uptime vaicoletaro
tempodefuncionamentodohost.
3) Units:estecampopermitequefaamosalgumaspersonalizaesnotratamentoda
sadadoitemnoOverviewegrficos.EmborasimilaraoValuesmapselemais
sofisticado,poisformataasadaconformenecessrioemvezdesimplesmentedar
umapelidoparaumatabeladevalores.Nestecasouseouptime.
4) Newapplication:definaumnovoapplicationparaositemsdesistema.
Salveefaaomesmoparaotemplate4LinuxJBossBasemascomasmodificaesa
seguir.
1) Key: aqui usaremos a sintaxe da key jmx pela primeira vez. Ela normalmente
compostaporduaspartes,onomedoJMXeseuatributocadaumdentrodeseu
prpriocolchetes.CadajmxapontaparaumMbeannoservidor.
ParasaberquaisMbeansestodisponveisemumservidorcomZapcat,acessea
URL http://<servidor>/zapcat-1.2/mbeans.jsp substituindo <servidor> pelo seu
DNS ou IP conforme for o caso. Um estudo mais aprofundado dos MBeans
realizadonoscursos436e467sobreJBossna4Linux.
2) Usecustommultiplier:nestecampofaremosotratamentodedadosparaconvertero
resultadoparasegundos.ComoaJVMretornaumvaloremmilissegundo,temosque
multiplicarpor.001.
Salveesteitemecrieoltimo,dentrodotemplate4LinuxSNMPconformeaseguir.
1) Type:comoesteitemobtidopeloSNMP,temosqueconfiguraroitemparaqueo
Zabbixentendacomocoletlo.NonossocasoestamosusandoSNMPverso2,no
caso de outros equipamentos a verso 1 (obsoleta) ou 3 (mais segura) pode ser
usada.Consulteomanualdeseufabricante.Estaoporequerqueoservidorseja
compiladocomsuporteanetsnmp(enablesnmp).Notequeoscamposabaixose
alteramconformevocescolheoutrostiposdevalores.
Figura 4.72: Overview exibindo os uptimes a partir do agente padro, Zapcat e SNMP
AFigura4.72mostratodososhosts,comasmtricasdetempoligadoobtidasconforme
suainterfacedecoleta.GraasaocampoUnit todasestoexibindootempoemumformato
legvelporhumanoseocampoUsecustommultiplierajustouosvaloresparasegundos,que
umaunidadecomaqualoZabbixsabetrabalhar.
Novamente,issodemonstrouacapacidadeemcoletardadosdeambienteheterogneos,
desdequevoctenhaumagentesuportadonohproblemas.OagentepadrodoZabbix
compatvelcom9sistemasoperacionaisdomercado,asJVMscomTomcate/ouJBossso
suportadas pelo Zapcat e a maioria esmagadora de ativos de redes (desde switches at
4.7.1.Triggerparaalertadereinicializao
Avaliarseumhostfoireinicializadofcil.Devemosverificarseouptimedelemenor
queumvalorprestabelecido.Noentanto,reinicializaodeservidorespodenoumincidente
crtico,defato,normalmenteeleapenasumeventoplanejado(amenosquevocpossuauma
hardwarecomproblemassrios),porissoiremoscategorizlacomoumeventodeseveridade
warning(aviso).Noumerro,masaindaassimdignadeumaatenomaispontual.Vamoscriar
atriggerparao4LinuxS.O.Baseprimeiro.
1) Expression: defina a expresso como sendo o ltimo valor da ltima hora como
sendo menordoque1800(meiahora).Doispontosimportantesaqui:primeiro o
tempodejaneladafunolast()devesersempremaiordoqueovalorcomparadoe
segundo,otempodeativaodevesermaiordoqueotempodecoleta.
2) Triggerdependson:coloquecomodependnciadestetriggerodaverificaodo
agente.Nohsentidoemtentaranalisarumamtricaquenoestasendorecebida.
Issoevitaqueelaapresentevaloresdesconhecidos.
4.7.2.Exerccios
1) CrieastriggersparaostemplatesdoJBossedoSNMP.
2) Crieasdevidasactionsparaalertadereinicializaoenviandomensagensapenas
aosindivduosresponsveisporcadahost(consulteaTabela 9 napgina 175 para
detalhes).
4.8.Checandoserviospeloagente
Checar se um determinado servio est em funcionamento atravs de sua porta
funcional,masalgumasvezesprecisamosdemaisinformaesdoqueexatamenteocorreuno
host.
Imaginequeporexemploaoinvsdequedadodaemon,umsistemaproteocomoo
OSSECbarrouacidentalmenteaportadedestinodehostslegtimoscomooprprioservidorde
monitoramento.Issonofoiumaquedadeservioeoutroshostspodemaindanoconseguirse
conectar.Paradetectarestetipodecoisaprecisamosdemaisdadossobreosistemaondeo
servioestasendoexecutadoepodemosfazloatravsdoagentedoZabbix.
4.8.1.Verificandoosprocessosativosnamemria
OZabbixtemumakeychamadaproc.numquepodeserusadaparaverificaronmero
deprocessosnamemria.Seusadasemnenhumparmetroelafazumacontagemdetodosos
processossemdiscriminao,paraexemplificarousodelevamosverificarseoprocessodoSSH
estanamemriadasmquinasGnu/Linux.
Asintaxedachaveaseguinte(todososparmetrossoopcionais):
proc.num[<name>,<user>,<state>,<cmdline>]
Onde,
name: o nome do processo. Se voc estiver checando processos numa mquina
Windows,certifiquesequeoprocessodelecontmaextenso.exe(ousimilar)nofinal
donome.
user:qual ousurioqueestaexecutando umdeterminado processoouconjuntode
processos.Opadroverificardetodososprocessos.
#zabbix_getslocalhostk"proc.num[sshd]"
2
Achaveretornou2,queexatamenteonmerodeprocessosquecontamoscomops.
Comotesteconcludovamoscriaodoitemetrigger.Useotemplate4LinuxS.O.Linux.
AFigura4.74ilustracomooitemparacontagemdeprocessodevesercriado,elebem
trivial.
NoOverview,jpodemosrastrearofuncionamentodacontagemdeprocessos.Note
1) Acondiodotriggerbempadroemrelaoaosnossosgatilhosanteriores:use
afunosum()paradescobrirsealgumprocessoestarodandonajaneladetempo
de1minuto.
2) Eledevedependerdachecagemdeagenteporquenohsentidoemtestaruma
mtricaquedependedelamesmo.Almdissosenoofizermosestatriggervai
resultaremumunknownseoagentecair.
3) AseveridadedesteincidentevaiserclassificadacomoAveragepoisoSSHnoum
servio prioritrio para o funcionamento das aplicaes, no entanto ele no um
Warning,poisaindaclassificadocomoerroeprecisadeintervenoimediata.
SalveotriggerevatoconsoledohostDatabaseeparaoSSH.
#/etc/init.d/sshstop
Acesse a lista de eventosem Monitoring Events para acompanhar a ativao do
TambmolhenoOverviewcomootriggerficouexibido.
Notequeotestedeportatambmfalhou,masnoemitiualertapoisaindanotemos
triggersassociadosaele.
#/etc/init.d/sshstart
4.8.2.Checagemdeportaseservioslocalmenteviaagente
Almdotestefeitopeloservidornaporta22/TCP,tambmpodemospediraoagente
para realizar o mesmo teste. Este tipo de teste de agente til para criarmos lgicas mais
inteligentesdeanlisedocenrio.
Akeynet.tcp.service[ssh]temomesmoefeitoecomportamentoqueassh.Suasolene
diferenaqueeladotipozabbixagent emvezdesimplecheck.Crieoitemconformea
Figuraaseguir.
Apsacriaodoitem,verifiqueseacoletaestasendorealizada.Setudoestivercorreto,
horadepassarparaaverificaodasmudanasdestatus.Atomomentotemos3maneirasde
checaroservio:contandoosprocessosativosnamquina,checandoaportaremotamentepelo
servidordoZabbixe/ouchecandoaportalocalmentepeloagentedoZabbix.
Todas tem suas vantagens e desvantagens, mas em vez de uslas de forma
discriminada,vamosjuntaraforadetodaselasefazercomquealgicadetodososgatilhos
trabalhememconjunto.Essacapacidadedeoferecerdependnciaentreumachecagemeoutra
queoZabbixoferecedeextremopoder,emesmosemexpressesbooleanascomplexasdentro
decadatriggerseremoscapazesdedeterminarqualopossvelacontecimento,dependendode
qualtriggerfoiativado.Acompanheaexplicaoaseguir,comeandopelaleituradofluxograma
naFigura4.80.
Oprimeirotrigger(cadaumrepresentadopelolosango)oquecriamosanteriormente
paraverificarseh,aomenos,umprocessosshdsendoexecutado.Nocasodenohaver
nenhum,eledevealertaroadministradorresponsvelpeloservio.Notequeserealmentenoh
nenhumtipodeprocessodoserviosendoexecutado,entonohsentidoemverificarportas,
correto?
Comofoiditoanteriormente,nohcomoverificardemaneiraconfivelseumaporta
UDPestaberta.Masoagentetemumachavechamadanet.udp.listenqueverifica
selocalmenteumadadaportaUDPestaesperandorequisies.
4.8.3.Exerccios
1) Agoratesteosgatilhosrealizandoasseguintestarefas:
1.1) Pare o daemon ssh de um Gnu/Linux sem conexes abertas para ele
(somenteoprimeirogatilhodevedisparar).Restaureodaemon.
1.2) PareodaemonsshdeumGnu/Linuxcomaomenosumaconexoaberta
(somenteosegundogatilhodevedisparar).Restaureodaemon.
1.3) Cortearegra deSSHdosfiltrodepacotes(iptables)deumdosGnu/Linux,
somenteoterceirogatilhodevedisparar.Restaurearegraapsotermino.
4.8.4.VerificandoserviosnoWindows
Assim como o Gnu/Linux, o Windows tem seu sistema de gerenciamento do servios
ativosnamemria.Usamoselenotpico2.7.1.,pgina50paraexecutaroserviodoagentedo
Zabbix.AcesseoPaineldeControlesFerramentasAdministrativasServios.
Natelaquelistaosservios,localizeoserviodeTelnet.Eledeveestardesativado.
VamosuslocomoexemploparamonitoramentodeserviosnoWindows.OTelnet
simplesdesecolocaremfuncionamento,defatoquasenadaconfigurado.Cliqueduasvezes
sobreonomedele.
1) Nomedoservio:anoteonomedoservio!OZabbixprecisadeleparaconseguir
localizlonosistema.NonossocasoTlntSvr.
2) Tipodeinicializao:mudeparaautomtico.
DepoisdeterminarcliqueemOK,oserviovaientrarregistradomasaindanoiniciado.
ParainiciaruseabarradeferramentasnotopodatelacomoindicadonaFigura 4.85.
AgorapressioneCTRL+ALT+DEL,eabraoGerenciadordetarefas.
Confiraseumdosprocessosbatecomonomedoservio.Provavelmentevocacharo
processotlntsvr.exe.Anotetambmestenome.
Antes de cadastrar novos items vamos fazer um pequeno teste via console: use o
zabbix_getparacoletaronmerodeprocessostelnetnamemria(deveretornar1).
NovamentelembramosquenoWindows,deveseincluiraextenso.exenofinaldos
processosparaakeyproc.num.
#zabbix_getswin2003k'proc.num[tlntsvr.exe]'
1
Agoravamostestarakeyservice_statequefazaverificaodosserviosdoWindows
noZabbix.UseonomequepegamosdasconfiguraesdoTelnetcomoparmetrodela.
#zabbix_getswin2003k'service_state[TlntSvr]'
0
Notequeoresultadofoizero.Issoporquezerosignificarodando,experimentepausaro
servionoWindowseexecuteocomandonovamente.
#zabbix_getswin2003k'service_state[TlntSvr]'
1
Agoraretornou1.Sim,parececontraprodutivo,masestatabelafoibaseadaemnmeros
queaprpriaAPIdosistemaWindowsretorna.OsvalorespossveisestonaTabelaabaixo.
Valor
Estado
Rodando
Pausado
Incio requisitado
Pausa requisitada
Continuao requisitada
Parada requisitada
Parado
Desconhecido
255
1) Nome:onomedoservioapenasumlabelparaoFirewall.Definacomotelnet.
2) Nmerodaporta:coloque23.
3) OprotocolousadooTCP.
CliqueemOKparafinalizar.
Porfim,cliqueemOKnovamente.Paraaveriguarsetudoestacorretofaaumtestea
partirdoconsoledohostZabbixserver.
#nmapP0p23win2003
StartingNmap5.00(http://nmap.org)at2011021518:39BRST
Interestingportson172.28.0.10:
PORTSTATESERVICE
23/tcpopentelnet
Nmapdone:1IPaddress(1hostup)scannedin0.31seconds
#telnetwin2003
Trying172.28.0.10...
Connectedtowin2003.curso468.4linux.com.br.
Escapecharacteris'^]'.
WelcometoMicrosoftTelnetService
login:administrador
password:
*===============================================================
BemvindoaoMicrosoftTelnetServer.
*===============================================================
C:\DocumentsandSettings\Administrador>exit
Seotestecorreubem,vatotemplate4LinuxS.O.Windows2003ecrieumnovo
itemconformeabaixo.
Nenhuma grande novidade aqui, apenas atente para a key e para o campo New
application.OutropontoimportanteousodoValuemapWindowsservicestate.
VerifiquequenoOverviewoservioestaaparecendoefuncionando.
4.8.5.RestabelecendoserviosofflineviaZabbix
Umavisodecautelalogonoincio.Permitirqueoagenteexecutecomandosremotos
nohostmonitoradopodecausarfalhasdeseguranasenohouvercuidadotriplicado.
Somenteuseesterecursosevocrealmenteprecisaretiverabsolutacertezadoque
estafazendo.
Um recurso poderoso a capacidade do agente do Zabbix de executar comandos
remotosapedidodoservidor.Issopossibilitaquesejamoscapazesderestaurarumservioque
caiu,oureiniciarumqueestcomproblemasnoatendimentoderequisies.
Obviamente o agente por padro no executa nada, tampouco capaz de executar
comandosadministrativosarbitrariamente.Issosedeveadoisfatos:osdefaultsdosarquivosde
configuraoeaexecuododaemondoZabbixcomousurionoprivilegiado.
Nossaprimeiraprioridadejustamenteliberaroagenteparaexecutaroscomandos.O
arquivo /etc/zabbix/agent.d/remote_command.conf contm as configuraes para tal
procedimento.ElejaumadasmquinasvirtuaisGnu/Linuxecomecearealizarosprocedimentos
aseguir.
#vim/etc/zabbix/agent.d/remote_commands.conf
1
#EsteoarquivodeconfiguraodoagentedoZabbixparacomandos
#remotos.
3
4
========================================================================
5
#Liga/Desligaorecursodecomandosremotosdoagente.
#Estetipodefeaturevemdesligadaporpadrodevidoaoriscodesegurana
#queelapodeapresentarsemalconfigurada.
10
#NotequeousuriodoZabbixtemqueterdireitosdeexecuodocomandoem
#questoenviadopeloservidor.Paraissooueleexecutadocomoroot
12
#(desaconselhvel)ouchamaexecutveiscomsuid(desaconselhvel)ouutiliza
13
#sudopararodaroscomandos.Esteltimoaopomaisseguradastrs,mas
14
#requerconfiguraesextrasnoarquivosudoers.
15
16
EnableRemoteCommands=1
17
18
========================================================================
19
#Nocasodehabilitadaaexecuodecomandosremotos,aconselhveldeixar
20
#estaopoativadaparaauditoriadosistema.Elavairegistrarnoarquivo
21
#delogsdoagentequandoequalcomandofoiexecutado(ounomnimofoi
22
#tentado).
23
24
LogRemoteCommands=1
#/etc/init.d/zabbixagentrestart
preciso mudar para 1 ambos EnableRemoteCommands e LogRemoteCommands.
Seusnomessobemsubjetivos,eapesardenohavernecessidadedeativarosegundopara
queacoisatodafuncioneextremamenteaconselhvelfazlo.
J estamos ampliando bastante a confiana do agente no servidor, vamos ser
cautelososeaomenoscolocarastentativasdeexecuodecomandosnoslogspara
auditoria.
recomendvelquevocdesabiliteoarquivodelogtambmefaaoagentegravarno
syslog,dessaformaelenoterdireitodeescritanosarquivosusadosparaarmazenar
suasmensagens.
Agora a segunda parte: como usurio zabbix, o agente no ser capaz de iniciar
nenhum servio do Gnu/Linux, somente o root pode fazlo. Ento vamos apelar ao sudo
novamenteparaexecuodocomando(instaleosudosenecessrio).
Configure o sudo para permitir que o agente execute sem senha o script de
reinicializaodossh.
#visudo
zabbixALL=NOPASSWD:/usr/init.d/sshrestart
Sejametdicoedefinaexatamentequaissoosparmetrospermitidosdentrodosudo,
principalmenteparascriptsdesistema.Noqueremosningumdandostopnossh
peloZabbix,acidentalmenteouno!
Crieumaactionparaconterocomandoremoto.
Nascondies,importantenotarquehtrsdelas.Umaindicaqueostatusdotrigger
deveserPROBLEM.
VocnoquerqueoserviosejareiniciadoquandoogatilhovoltaraOK,certo?
Asoutrasduaspossibilidadessootriggerdeprocessooudechecagemlocaldeportas
seremativados.QualquerumdelesqueapresentarPROBLEMdisparaestaao.
Uma mensagem para os envolvidos com esse host deve ser enviada. E por fim o
comandoremoto,ativadoapartirdoquadroActionoperations.
7287:20110215:192625.462Executingcommand'sudo/etc/init.d/sshrestart'
StartingOpenBSDSecureShellserver:sshd.
Sevocvoltarteladeeventosverquehdoisdeles,umdequedaeoutrodevolta.
4.8.6.Exerccios
1) CrieomesmoesquemademonitoramentofeitoparaoSSHparaoApachedentrodo
application. Gere um template a parte para o Apache para conter os items e
configuraes.Tambmcrieumaactioncapazdereiniciaroserviosefordetectado
quenenhumdaemondoapacheestarodando.
2) CrieumtriggerparaavaliarseumserviodoWindowsnoestarodandoeuma
action para alertar o administrador Windows. No corpo da mensagem coloque o
estadoemqueoestadoseencontravanomomentodoalerta.Useamesmatticade
checagemdeportasemltiplosgatilhos.
4.9.Medindoasadedesuarede
At o momento nossos esforos foram dirigidos a checagem de dados que indicam
apenasseumdadohost(ouservio)estoperacionalouno.Vamoscomearaabordaroutros
tpicos, que embora, indiretamente relacionados com os servios podem afetar seu
funcionamento.
Estetpicoabordaapartedenetworkingemostracomomonitoraroquosaudvelsua
redeest.
4.9.1.Latnciaderede
Oprimeiropontoquevamosanalisarsoascausasdeindisponibilidadeporexcessode
trafegonarede.Notequemedirabandapodeajudaraidentificargargalosderede,masamtrica
maisindicadaparamedirlentidoalatnciaderede,quepodeestarbaixamesmoquandono
htrafego!Comosemprevamoscomearcomacriaodoitemdentrodotemplate4Linux
ICMP.
Achaveicmppingsectambmfazumpingcomoaicmpping,masdiferentedestaela
retornaonmerodesegundosqueopacotelevouparairevoltar(naverdadeamdiadetrs
pacotes).
Neste item, atente para o campo Units que contm o valor s (segundos). Ele ir
formatarovalorrecebidopeloitemparaumaformalegvelporsereshumanos.Emaisimportante,
desta vez Type of Information esta como Numeric (float), porque o retorno da key
icmppingsecemsegundos,masnormalmenteostemposderespostassoquebradosemtrs
casasdecimais(milissegundos).
4.9.2.Macroparaolimiardalatnciaderede
Umpontomuitoimportantedefiniroqueumalatnciaruim.Issomuitovarivelde
umambienteparaoutro,sevocestivermedindoalatnciaemumaredelocalento,provvel
que uma latncia acima de 10 milissegundos seja alta. No caso de medir a latncia de um
equipamentocomlinkviasatlite,podemosencontrarlatnciasdealgunssegundoscomopadro
dependendodatecnologia.
Para deixar nossos templates flexveis o suficiente para se adequarem a quaisquer
ambientes podemos usar um recurso muito interessante do Zabbix chamado macros de
usurios.
Existemtrstiposdeescopodemacro:global(definidoemAdministration General)
quevaleparatodosostemplatesehosts;macrosdetemplates,cujoalcancevaleparatodosos
hostsassociadosaumdadotemplateemacrosdehost,quevalesparaaquelehost.Sevoc
redefinir(comovamosfazer)umamacronumambientemaisrestrito,oqueirvalersereste
ltimo.
OZabbixtemvriasmacrosinternasejtivemoscontatocomalgumasquandocriamos
nossostriggers.{HOSTNAME},queamaiscomum,armazenaonomedohostdefinidodentro
dofrontend.Quandodefinirmosumamacrodeusurioimportantequeemsuasintaxeum
sinaldecifro($)sejacolocadoantesdonomeedentrodaschaves.
Porexemplo,vamosdefinirumamacroparalatnciaderedecomonomeLATENCIA,
logosuasintaxeser{$LATENCIA}.Eviteousodeoutroscaracteresnonomedamacroexceto
porunderline (_). Tambm no comece onomeda macro pornmeros. uma boa prtica
manterosnomesemcaixaalta.
No caso de nosso cenrio iremos definir um padro de 0.01 segundos (10
milissegundos)paranossamacro,elavaiserumamacrodetemplate,maisespecificamenteo
template 4Linux ICMP. Abra as configuraes do mesmo clicando no nome dele em
Configuration Templates. No canto direito do quadro principal voc vai achar a rea de
definiodemacros.
Agrandediferenadestetemplateparaosanterioresousodamacro.Presteateno
no campo Expression, seu valor indica a frmula {HOST:ITEM.avg(60)}>{$LATENCIA}.
Podemosinserirquantasmacrosquisermosnaexpressodogatilho.
A partir de agora se reutilizarmos estes templates em outros ambientes, podemos
adequaralatnciaderedeglobalmentealterandoovalordamacronotemplate.Nocasodeum
doshostsemnossosistematerumlimiardiferentedelatncia,podemosaindaredefiniramacro
dentrodoprpriohost,alterandoassimocomportamentodeseutriggerpontualmente.
4.9.3.Nossoprimeirogrfico
Vamosagoracriarumgrficoqueirusarestetriggerparaexibirolimiardetestena
tela.OresultadosersimilaraodaFigura4.99.
VatateladecriaodegrficosecliqueemCreateGraph.Sigaasinstruoabaixo
paraconstruirumgrficocomodemonstradoacima.
1) Name:nomedogrfico.Apartirdaverso1.8.4doZabbixpossvelusarmacros
aqui.
2) WidtheHeight:tamanhopadrodogrficoparaalgumastelas.Namaioriadoscasos
ofrontendajustaogrficoaotamanhocorrentedateladoBrowser.
3) Graphtype:otipodegrfico,aquivamoscriarumNormalmaspodemosconstruir
grficos Stacked (empilhados), Pie (Pizza) e Exploded (pizza com valores
destacadosparaforadareadogrfico.NossoexemplousaSimple.
4) Showworkingtime:seativo,mostraumasombranoshorriosforadoWorkingtime
definidoemAdministrationGeneralWorkingtime.
5) Show triggers: exibe uma linha pontilhada como demonstrada anteriormente no
limitardotrigger.Deixeeleativo.
6) YaxisMIN/MAXvalue:valoresmnimoemximodogrfico.tilparadefiniruma
escaladevisualizao.Nonossocasovamoscolocarapenasovalormnimode0
(assim o cho de nosso grfico sempre se manter em 0) e o mximo em
Calculated,poisnotemoscomosaberondeestaotopoparacadaambiente.Em
algunscasos,comoemporcentagens,normalmenteomximoumvalorfixo,em
outroselepodeserovalordeumitem.
7) Items:aquipodemosdefinirquaissooscamposquedesejamosincluirnogrfico.
Procuresempreusaromnimopossveldeinformaonestecaso.Paraacrescentar
umItemcliqueemAdd.Ajaneladenovoitemparaogrficoseabrircomoaseguir.
1) Parameter:qualkeycadastradanotemplateesteelementorepresentar.
2) Type:se esteitem Simple ou Agregated.Campos agregados agrupamvrias
contagememum nicovalor.Soteispara visualizaodevariao commenor
granularidadenumdadoespaodetempo.Porexemplo,sevocquiserapenasa
mdia,dehoraemhora,aoinvsdeusarointervalodecoleta.
3) Function:qualvalordevesermostradosehouveraexistnciademaisdeumvalor
porpixelnoeixox.Asfunessoavg(mdia,omaiscomum),max(mximo),
min (mnimo)ouall (todosostrs).Emvariaesmuitobaixas,all podeno
exibirnadasignificante.
4) Drawstyle:Comoalinhaserdesenhada.Osvalorespossveisso:Line (linha
simples), Filled region (rea preenchida), Bold line (linha mais espessa), Dot
(pontos), Dashed line (tracejado) e Gradient (rea com gradiente da cor
gradativamenteindoparatransparente).Estegrficousaalphablender.
5) Colour:obviamenteacor.
6) Yaxisside:Seosvaloresdesteitemseroexibidosdoladoesquerdooudireitodo
grfico.
7) Sortorder:umnmeroindicandoaordemdedesenhonogrfico,vaide0a100.
Vocpodeordenaroselementosdosgrficoscomodesejarnateladeconstruodo
grficodepoisdeacrescentartodoseles.
Clique em Save em ambas as telas e o grfico estar pronto para exibio em
MonitoringGraphs.
ObotodePreviewqueexistenateladeconstruodosgrficosnosercapazde
exibir os grficos se voc estiver acrescentando ele a um template como estamos
fazendo.Elesfuncionanocasodeumgrficosercriadodiretoemumhost.
4.9.4.Personalizandoomapaparaexibiodeinformaes
O mapa do Zabbix extremamente personalizvel, e permite que visualizemos
praticamentequalquervalorquecoletamoseprocessamos,desdeitemsattriggers.Vamos
aproveitarquecoletamosvriasmtricasimportanteseassocilasaomapa.Oresultadofinal
deveficarcomonaFigura.
Paradefinirestesvaloresbastantesimples:editeaoitemdehostclicandosobreelee
preencha,linhaalinha,osvaloresdocampoLabel.Noexemploquevimos,vrioshostsexibem
o Uptime obtido de {Host:system.uptime.last(0)} e de latncia de rede, obtido de
{Host:icmppingsec.avg(60)}.Atenoespecialaosegundo,poisusamosafunoavgeno
last,issototalmentepermitido.
NaFigura4.103temosumexemplocomohostPresentation.Apseditarovalorclique
emApply.
NoesqueadesalvaromapaconstantementenobotoSave.
4.9.5.Exerccios
1) Assimcomooicmppingsec estaparaoicmpping,vriaskeyscomsufixo_perf
esto para os equivalentes das simple checks de portas TCP. Por exemplo,
ssh_perfamediodelatnciaparaoservidordeconexesremotassegura.Crie
ositemsegrficos(vejaoexemploabaixo)paraosoutrosserviosquevocjcriou
anteriormentededisponibilidade.Cadastremacrosparamedirolimiarefinalizecom
ostriggersdosmesmos.
Emsaladeaula,criepelomenosumdeles,osoutrospodemserfeitosemcasa.
4.10.Espaodisponvelemdisco
Alatnciaderedepodemedironvelderespostafinaldasaplicaesdisponibilizadasvia
TCP.Masumitemextremamentecrtico,poispodecausarparadasdeserviosabruptamente,o
espaodisponvelemdisco.
Ovalorpadrousadoparanossocenrioser80(80%dapartiocheia),todoservidor
queexcederestelimitedeverdispararumalertaparaosadministradores.
Vamoscriarositemagora,akeyvfs.fs.size[mount_point,mode],diferentedasanteriores
exigeparmetrosparafuncionar.Oprimeiroobrigatrioeindicaqualdaspartiesdevemser
analisada.Osegundoopcionaledizqualparmetrodevesercoletado.Osvalorespossveis
so:total(bytestotaisdapartio.otipopadro),used(bytesutilizados),free(byteslivres),
1) Description:aquitemosumanovidade:umavezqueestamosusandoparmetrosna
key,podemoscapturloseinserilosnodescriptionusandoanotificao$n,onde
nonmerodoparmetrocomeandopor1.Emnossoexemplousaremos$1
parapegaropontodemontagemdapartio.Issoaliviabastanteadigitao,poisos
outrositemsqueiremosclonarnoprecisamterdescriptionsmuitodiferentes.
2) Key:achavedeespaoconformeexplicadoanteriormente.Paraototalsuasintaxe
finalvfs.fs.size[/,total].
3) Units:brepresentavaloresembytes.OZabbixinteligenteosuficienteparafazer
asconversesparakilo,mega,giga,tera,etc.Usandomltiplosde1024.
Salveoitemeaoinvsdecriaroprximoitemnobrao,vamosusarumrecursode
clonagemdevaloresdoZabbix.Vriastelaspermitemqueusemosorecursodeclonagem.Neste
casovamosclonarototalparausadoelivre,conformeoesquemanaFigura4.107.
EditeoitemdeEspaototalecliquenobotoClone.
Voc ver que os dados se repetiro. Altere apenas a key (que deve ser nica) e o
description.Repitaparaooutroitemevocteroutrasduasmtricasprontasecoletandoem
tempo recorde! Confira no Overview se os dados esto sendo coletados adequadamente
(atentandoparaqueelesestejamemnotaoabreviada,Mb,Gb,etc).
4.10.1.Grficosparaespaoemdisco
Vamoscriardoisgrficosparavisualizaodeespaoemdisco:oprimeiroumgrfico
depizza(tambmchamadosdetorta,masonomeoficialgrficocircular)paramostraroatual
volumedeusododisco.Apesardeparecerintil,estetipodegrficotemumavantagemgrande
sobre o de linha: ele exibe de maneira visual o estado atual com propores facilmente
reconhecveisporolhoshumanos.VejaaFigura4.109,queilustraogrficoquevamoscriardaqui
apouco,facilmenteconseguimosverqueestapartioestacommaisde50%ocupadasomente
olhandoparaogrfico.
Novamente, como usamos o campo Unit igual a b, os valores j aparecero
convertidoseabreviadosparafacilitarleiturahumana.
Paragerarumgrficocomoessesigaospassosaseguir.
Nohmuitossegredosnestatela,aoselecionarPieemGraphTypemenoscampos
iro aparecer no formulrio. Vamos deixar a legenda ativa. Podese fazer grficos em 3D se
desejado, mas no h grandes vantagens neles em relao aos normais em termos de
visualizao,apenasesttica.
Notequevamosutilizardoisitemsaomesmotempo:espaoutilizadoelivre.
Foi usado vermelho para o espao utilizado por um bom motivo, as cores quentes
tendemaatrairoolhohumanoquandoemcontrastecomcoresfriasoumaisclaras.
Isso faz com que inconscientemente o administrador ou suporte, fixe no espao
utilizadooqueocrticonestecaso.
Crieumgrficocomoantes,masatenteparaodetalhesemdestaqueabaixo.
Aps acrescentar o item de espao utilizado, no campo Y axis MAX value escolha
Itemeselecioneoitemdeespaototal.Issovailimitarotopodogrficoedarumavisualizao
maisprecisadoespaoqueestsendoutilizadoemrelaoaototal.Sevocnoofizeretiver
porexemplopoucoespaousadoogrficoficarajustadoaotamanhomximoatingidooque
podelevarumobservadordesavisadoainterpretarcomodiscocheio!
4.10.2.Gatilhosparaalertasdeespaoemdisco
Agoravamosusaramacroquedefinimosanteriormenteparacalcularovolumededisco
usado.Paraissovamosusarumafrmulapara,apartirdototal,saberqualaporcentagemem
bytesqueapartioterdelimiar.Aexpressolgicomatemticaseria.
ESPAO_USADO>(ESPAO_TOTAL*LIMITE/100)
Sendoque:
ESPAO_USADO:amdiadajaneladetempodoespaoutilizadonapartio.
ESPAO_TOTAL:oltimovalorcoletadodoespaototaldapartio.
LIMITE: o valor definido em nossa macro, representando a porcentagem de limite
(padro80%)paraaveriguaodeestourodeusodedisco.
Noteque,vocpoderiausaropusedparapegaraporcentagemutilizadaaoinvs
destafrmula,masissoacrescentamaisumitemnomonitoramento.Almdomais
esteumexemplobemdidticoparaexpressesmaiscomplexas.
NocasodenossocenrioaexpressocompletaapresentadanaFigura4.113ecalcula
exatamentequantosporcentosdeusodapartioapresenta.
Noteaindaque,comosempre,colocamosumadependnciaaoAgentPingparaevitar
testescomvaloresinexistentequeresultamemUNKNOWN.
Verifiquesealgumamquinaexcedeuoespaoeacionouo trigger.Nestecasovoc
deveaumentarovalordamacro paraaquelehostsomente.Issoumcasoatpicononosso
cenrioentootrataremoscomoumaexceo.
ParatestarotriggeruseoseguintecomandoemumadasmquinasGnu/Linux:
#ddif=/dev/zeroof=/tmp/lixobs=1kcount=$((200*1024))
Issovaigerarumarquivode200Mbno /tmp.Mudeotamanhodoarquivoconforme
acharnecessrioparafazeroteste.Deixeelelatotriggeralarmaredepoisapagueopara
liberaroespaoeforaratrocadeestadoparaOK.
4.10.3.Exerccios
1) Cloneositemscriadosparaapartio/alterandoparaasparties/usr,/var,
/tmp,/boote/home(asnormalmentecriadasnumainstalao).Repliquetambm
as
macros,
os
grficos
os
triggers.
Deixetodasestasmtricasegatilhoscomodisabledporpadro!Elasdependemda
instalaodeGnu/Linux.Emsalarepliqueaomenosuma,asoutraspodemserfeitas
emcasa.
2) CrieasmesmasmtricasparaoWindows,mascomaspartiesdeC:atG:.Em
salacrieaomenosuma,asoutraspodemserfeitasemcasa.
4.11.Scriptsexternos
Fizemos vrias checagens at o momento usando os recursos do Zabbix. Mas nem
sempreteremostudoamo.Estetrechodocursoensinaaestenderoagentedetalformaacriar
novaskeysatravsdachamadadescriptsexternos.
Alm disso algumas mtricas do Windows s podem ser obtidas pelo sistema de
performancecountersqueumtipoderegistrodecoletadeperformancepadrodoWindows.
Veremoscomoutilizarambosparaadicionarmaispoderdefogoaonossoarsenalde
monitoramento.
4.11.1.ChecandoadisponibilidadedoPostgreSQL
OZabbixnotemsuporteatodososprotocolosTCPdafacedaTerra.Defatoissoseria
umfeitoimpressionanteparaumaplicativodemonitoramento.OprotocolodoPostgreSQlesta
entreosnosuportados,eemboratenhamosutilizadokeyscomotcpetcp_perfparamedir
suadisponibilidadepodemocorrersituaesondeobancoaceiteconexesmasnoresponda
nada,ouofaamuitolentamente.
Nestescasosiremoscriarumaextensodoagenteaptaarealizaruma nicaconsulta
(SELECT1)everificarseeleretornouovalorcorreto.Estaextensovaichamarumscriptcriado
embashqueacionalocalmenteoservidor,fazaconsultaedeterminaoresultado.Prepareos
conhecimentosdeshellscript,respirefundoevamoscomearacessandoohostDatabase.
Oprimeiropassopermitirqueousuriozabbixseconecteaobancosemanecessidade
de senhas. Isso necessrio porque o comando ser executado automaticamente sem a
intervenomanualdeumadministrador.
Comovamosusaropsql,clientepadroviaconsoledoPostgreSQL,podemosusarum
artifciointeressantecomoarquivo.pgpass.Estearquivodeveficardentrododiretriohomedo
zabbixedeveconterumastringcomosparmetrosdeacesso.Cadapermissodeacessodo
HOST=localhost
Enfimchegamosaoscript.BasicamenteeleexecutaocomandopsqlcomoSQLde
testes e verifica se tudo ocorreu bem. Mas h algumas partes do script que merecem um
destaque.
#vim/etc/zabbix/externalscripts/pgsql_ping.sh
1
#!/bin/bash
2
3
BASE="/etc/zabbix"
CONF=$BASE/pgaccess.conf
QUERY_PING="SELECT1;"
ERROR_LOG=/var/log/zabbix/pgsql_ping.error
7
8
functionshowerror{
echoe"PostgreSQLpingerror:\n$(cat$ERROR_LOG)"1>&2
10
11
12
if[r$CONF];then
13
.$CONF
14
fi
15
16
PING_OK=1
17
PING_FAIL=0
18
PING=$(psqlh$HOSTc"$QUERY_PING"postgrestA2>$ERROR_LOG)
19
RETURN=$?
20
21
if[[$RESULTne0]];then
22
showerror
23
exit1
24
else
25
if[[$PINGeq1]];then
26
echo$PING_OK
27
else
showerror
29
echo$PING_FAIL
30
fi
31
fi
32
33
exit0
1) O primeiro destaque do script justamente o comando que faz o SELECT 1 e
armazenaseucontedoemumavarivelchamada$PING. Notequeopsqlest
usandoosparmetrosteAparaqueocomandoretorneapenasumvalor1.No
casodealgumerroovalorde$PINGserdiferentede1.
2) Oretornodocomandoverificadoenocasodeerros,umamensagemgravadana
sadadeerroseoscriptparacomretorno1.OZabbixtrataistoenviandoasadapara
ozabbix_agentd.log.
3) No caso do SELECT ser bem sucedido, o valor retornado ser 1 (definido no
cabealhodoscript).
4) Casocontrriooscriptretorna0egravaumamensagemnologindicandoporque.
Notequeocomportamento,de1significasucessoe0parafalha,replicaopadrodas
keysdedisponibilidadequevimosanteriormente.Issoajudaamanteropadroepermiteousodo
valuemapsquecriamos.
Todo script de comando externo deve retornar um, e apenas um valor! Repita isso
consigomesmo!NohcomopegarvalorescompostosnoZabbixetrabalharcomeles
individualmentedepois.Cadaitemarmazenaumsinglecontent.
Agoravamoscriarumanovakey pgsql.ping,dentrodoagente.Paraissousamoso
UserParameter,dentrodeumdosarquivosdeconfiguraodoagente.Asintaxedestalinha:
UserParamente=key,comando arg1 arg2 ...
No caso de nossa necessidade ficar como a seguir.
#cat/etc/zabbix/agent.d/pgsql_checks.conf
1
UserParameter=pgsql.ping,/etc/zabbix/externalscripts/pgsql_ping.sh
Temosqueacertaraspermissesdosarquivosereiniciaroagente.
#chownroot.zabbix/etc/zabbix/pgaccess.conf/etc/zabbix/agent.d/pgsql_checks.conf
/etc/zabbix/externalscripts/pgsql_ping.sh
#chmod0640/etc/zabbix/pgaccess.conf/etc/zabbix/agent.d/pgsql_checks.conf
#chmod0750/etc/zabbix/externalscripts/pgsql_ping.sh
#/etc/init.d/zabbixagentrestart
J podemos fazer o teste local, o script deve retornar o valor 1.
#suzabbixc/etc/zabbix/externalscripts/pgsql_ping.sh
1
ApartirdoZabbixservertesteoacessoanovachave.Oresultadotambmdeveser1.
#zabbix_getsdatabasek'pgsql.ping'
1
Setodosostestesforamresolvidosomomentodevoltaraofrontend.Crieumnovo
template4Linux PostgreSQL 8.4 on Linux, ele devedependerdo template4LinuxS.O.
Linux.DepoisentrenohostDatabase,removaotemplate4LinuxS.O.Linux peloboto
Unlink (conservandoassimosdadoscoletados)eadicioneonovomodeloconformeaFigura
4.114.
VerifiquesenoOverviewosdadosestosendorecebidos.
Comissojpoderamoscriartriggersefazeromesmoescalonamentodegatilhospara
averiguarqualtipodeerropodeacontecer.
4.11.2.MedindoadisponibilidadedeumlinkInternet
Agorafaremosumabordagemdiferente:vamosmediralatnciadolinkdeInternetapartir
dohostPresentation(assimpodemosobterumvalorpuroentreohostdebordaeogateway
daoperadora).
Estescript,umpoucomaiscomplexoqueoanterior,permitequecoletemosamdiade
latnciaentreumconjuntodesites.
#vim/etc/zabbix/externalscripts/internet_perf.sh
1
#!/bin/bash
2
3
BASE=/etc/zabbix
CONF=$BASE/internet_perf.links
BC=$(whichbc)
6
7
functionshowerror{
echoe"Checklinkerror:$1"1>&2
if[[!x$BC]];then
12
showerror"aplicativobcnoinstalado"
13
exit1
14
fi
15
16
if[[!r$CONF]];then
17
showerror"arquivo$CONFnoexisteounoestaacessvelparaleitura"
18
exit1
19
fi
20
21
NTESTS=$(wcl$CONF|cutf1d"")
22
SUM_AVG=0
23
fordestinationin$(cat$CONF);do
24
PING=$(pingnc1w1W1$destination2>&1)
25
if[[$?eq0]];then
26
AVG=$(echo$PING|cutf34d""|cutf2d"/")
27
SUM_AVG=$(echo"scale=3;$AVG+$SUM_AVG;"|bc)
28
else
29
NTESTS=$(($NTESTS1))
30
showerror"pingpara$destinationfalhoucomerro:$PING"
31
fi
32
done
33
34
if[[$NTESTSeq0]];then
35
showerror"Todosostestesfalharam"
36
exit1
37
fi
38
39
echo"scale=3;$SUM_AVG/$NTESTS/1000;"|bc
40
41
exit0
1) Estetrechoocorpoprincipaldoscript,elepegaoarquivodelinks(abaixo)erealiza
umpingemcadaumdosendereosldentro.Paracadacoletabemsucedidaele
somaamdiaqueocomandoretorna(emmilissegundos).
2) Nosegundotrechoapartirdoresultadodasomaedaquantidadedetestesobtidaa
mdia final e convertida para segundos (assim podemos usar o Unit s para
formatarasada).
O arquivo de links pode conter tantas entradas o quanto quisermos, mas no
recomendvelquehajamaisdoque5,queotempolimitequeoZabbixesperaporumscript
executarantesdedesistireretornarnulo.
#vim/etc/zabbix/internet_perf.links
1
www.google.com
www.uol.com.br
Comofizemosanteriormente,criaremosumanovakeyInternet.perf queapontaparao
nossoscript.
#vim/etc/zabbix/agent.d/internet_perf.conf
1
UserParameter=internet.perf,/etc/zabbix/externalscripts/internet_perf.sh
Finalmenteacerteaspermissesdosarquivos.
#chownroot.zabbix/etc/zabbixR
#chmod0640/etc/zabbix/internet_perf.links/etc/zabbix/agent.d/internet_perf.conf
#chmod0750/etc/zabbix/externalscripts/internet_perf.sh
Jpodemosfazerostesteslocaiseosremotosconformemostradonotpicoanterior.
Tambmjpodemoscriarasmacros,items,triggersegrficosseguindoamesmafilosofia.
Somentemudeoseguinte:paraoitemegatilhodeixeosdesabilitadosnotemplate4LinuxS.O.
LinuxehabilitesomentenohostPresentation.
ParaconcluirmoscomoutranovidadevamoscolocarnolabeldolinkdeInternetovalor
mdiodosltimos60segundosdecoleta(Figura4.116).
Abraolinkeediteosvaloresdeseuscamposcomoaseguir.
Figura 4.117: Latncia de rede e trigger associados ao link com a Internet no mapa
1) Label:coloqueovalorLatncia:{Presentation:internet_perf.avg(60)}.
2) Adicioneotriggerdalatnciaquevocacaboudecriar.
Noesqueadesalvarantesdesairdomapa.Paratestar,diminuaovalordamacrode
limiteparaumvalorbembaixo.
Note como o link mudoude cor(Figura 4.118) quandoo host acusoualta latncia de
Internet.
4.11.3.Exerccios
1) Desafio: Crie um script externo capaz de ler a temperatura dos processadores e
armazenlosnoZabbix.Oscriptdevereceberumparmetroindicandodequalcore
devesercoletadoatemperatura(0primeiro,1segundo,eassimpordiante).Crie
aomenosumgrficoparavisualizarovalorcoletadodoscores.
- 228
REFERNCIAS
BIBLIOGRFICAS
- 229
OLUPS, RIHARDS.Zabbix1.8NetworkMonitoring.PacketPublishing.Abril
de2010.
Homepage oficial da documentao do Zabbix,website:
http://www.zabbix.com/documentation/.Acessoem16deFevereirode2011.
- 230
AnexoI
PerformancedoSistemaOperacional
Introduo
Aquivamospassarasdicasemtricasquepodemserusadasparamonitorarasquatro
principaiscaractersticasdedesempenho.UsodeCPU,memria,throughputderedeeI/Ode
disco.EstecaptuloutilizaotemplatecompletodoGnu/Linuxparacoletadetodasasinformaes.
Processamento
Estaprimeiramtricadeperformanceque,geralmente,observadaquandoosistema
ficalento.Algumasconsideraesdevemserfeitasquandosebuscamonitoraroprocessamento
paraidentificargargalos:
1) 100%deprocessamentonoquerdizernada!
1.1) Picos de processamentos so mais corriqueiros do que imaginamos, eles
acontecem frequentemente, mas so to momentneos que nem os
percebemosmesmoemgrficoscomcurtosintervalosdecoleta.Sempreque
procurarporeles,concentreseapenasnosdelongadurao.
- 231
1.2) SevoccriargatilhosdeverificaodeCPU,faaoscomumajaneladetempo
razovel. O aconselhado que ela seja em torno dos 15 minutos, se o
processamento ficou muito alto, por tanto tempo assim, provavelmente h
algumacoisaerradanasuaaplicaoouseuhardwareestmaldimensionado.
2) QuandocoletarinformaesdeCPUvocpodesedepararcommuitasopes,aqui
voalgumasdicassobreoquefazerparadecidiroquecoletar.
2.1) Antes de olhar a porcentagem da CPU, olhe para o system load (key
system.cpu.load).Elaindicaoenfileiramentodeprocessos,oquepodeser
bempiordoquesimplesmenteterCPUaltaotempotodo.
2.2) Mantenhaaomenosumacoletageraldebaixonvel.OconsumodeCPU
dividido em vrios tipos, os mais relevantes so user (consumo realizado
pelosprocessos),system(consumorealizadopelokernel)ewait(consumo
realizado por espera de I/O, geralmente de disco). Existem outros menos
relevantes, portanto consulte a documentao do Zabbix sobre a key
system.cpu.utilparaobtermaisdetalhes.
2.3) Aomonitorarmltiploscoresindividualmente,coleteapenasoidledecadaum
deles.Raramentevocprecisardecoletasdetalhadasporncleo.
2.4) Monitore tambm o context switch pela key system.cpu.switches para
verificaronmerodevezesqueosprocessosnascem,dormem,acordame
morremnoscores,almdeindicaramigraodethreads.
Mtricasdememria
OsegundopontomaisimportantedesemonitorarnumS.O.amemria,incluindoaqui
areadetroca(swap).
1) Consumodememriapodeserbemcomplicadodesemonitorarsevocnoprestar
ateno nos tipos de memria que existem. No Gnu/Linux, por exemplo, temos a
memriadeprocessos,adebuffereadecache.Porpadroakeyvm.memory.size
nocapazdecapturaramemriadosprocessos(queaimportante).Parafazer
issovoctemquecriarumitemcalculadoquesubtraiamemriaavailable(enoa
free)dototal.
- 232
2) Monitoreamemriadeswapcomsystem.swap.sizeparadeterminaroconsumo,e
maisimportante,comsystem.swap.in e system.swap.out quemostramaleiturae
escritanamesma.AreadetrocadiretamenteligadaaoI/Odedisco(abaixo).
Throughputebandaderede
Bandapodeserumitemimportantesevocnotemumlinksuficientementegrande
paracomportarsuasnecessidades,masothroughputoquerealmentedeveserobservado.
1) Grande largura de banda com baixo throughput e alta latncia de rede indicam,
problemas de rede (provavelmente fsicos). A key net.if.in e net.if.out so as
indicadasparaisso.
2) LembresequeoZabbix,osistemaoperacionaleseusaplicativosmedemoconsumo
deredeembytesenoembits.Noentantotodososequipamentosderedeelinks
deInternetsocompradospelosegundo.Prefiraexibirmesmoassimosdadosem
bytes.Sevocrealmentetiverqueexibirembitsterquecriarumcampocalculado
quelemultiplicaovalordoitemembytes.
3) Cuidado ao estipular valores de topo dos grficos de banda para redes internas.
EnquantonoslinksdeInternetissoumaprticarecomendvel,paraconsumosde
servidoresemredesde100ou1000Mbpsosvaloresvoficartoprximosdoeixox
queaimpressoserdetrfegozero.
PerformancedeDisco
Parabancosdedados,analiseaperformancededisco.Otemplateda4Linuxfazusode
umscriptexternoquecoletadadosdebaixonvel,opadrodoZabbixaindanocapazde
coletarestesdados.
1) Noseatenhaathroughputdediscoembytes,elesvariamtantodeumhardware
para outroque difcil deestabelecerumpadro. Use mtricascomo nmerode
operaes,tempo gastoemescrita/leituraeenfileiramentodeoperaes,elesso
muitomaissignificativos.
2) Procureporpontosdeincidnciadeoperaesirregulares,seotempotodoseudisco
ficanumamdiadeoperaesederepenteelemuda,avalieoquepodeterocorrido
nesteperodo,mesmoquesejaparamenoscarga(oquepodeindicardelaysde
operao).
- 233
AnexoII
Performancedeservios
Introduo
Performancedeserviosumassuntoextensoedemandariavrioscursosapartepara
poder cobrir sua toda a sua extenso. De fato, uma parte dos cursos avanados da 4Linux
detalhamestetipodeestudo.Aquivamosapenasarranharapontadoiceberg.
Os templates completos do final do curso contm muito mais detalhes dos que os
discutidosaqui.
PostgreSQL
ObancodedadosdoPostgreSQLpossuiumsistemadetabelaschamadascatlogos.
Estastabelasarmazenamdiversasoperaesimportantes.
1) Nopercatempoolhandoestatsticasdenvelmuitobaixo.Comecepordadoscomo
nmerodeconexesedeoperaesnobanco.Noaumenteasconexesdobanco
arbitrariamente,essaumaprticaruim!
- 234
2) Procuredistinguirocomportamentodesuaaplicao.Muitasoperaesdeescritae
poucaleitura,ouviceversa,ouaindaambas!Issotornaascoisasmaisfceispara
dimensionartunnings.
3) Monitoreainstnciacomoumtodoedepoisdesaparabancosespecficos,seguido
detabelaseporltimondicesesequncias.Assimvocganhaumavisoglobaldo
sistemaantesdedepurarqualtabelavocprecisaseparar,particionar,etc.
JBoss
OservidordeaplicaesJBosstemtodosaquelesMBeansqueoZapcatdissecoupara
ns.Vamoscomentarosmaisimportantes.
1) Aplicaes java no usam fork. Eles sempre trabalham em threads, por isso
monitorarthreads(principalmenteosHTTPeAJP)vomostrarousodaJVMpara
conexes.
2) O JBoss usa datasources, que possuem poolings de conexes. Monitorar as
conexesdestespoolstambmumaboamtrica.Viaderegraumaboaaplicao,
mesmo muito ocupada, no deve usar mais do que algumas poucas dezenas de
conexes.
3) Consumo de memria heap pode indicar garbage collectors fazendo muitas
operaes(nuncacoloquemuitamemriadeheapparaasJVMs,poisoGCpode
derrubar as JVMs). Vazamentos Leaks de memrias tambm podem ser
detectadoscomestetipodemonitoramento.
4) Monitorar a rea de perm gen normalmente no necessrio, mas pode indicar
quandoredeploysacabamconsumindotodaamemriadestinadaabytecodes.
Apache
OtemplatedoApacheprecisadomod_statusativadoparacoletadeinformaes.
1) Normalmente a mtrica mais significativa o nmero de conexes e uso de
processos.
2) Verificarosprocessosemidlepodeindicarqueaconfiguraopodeserajustada
paramenos,paraconsumirmenosrecursos.