Escolar Documentos
Profissional Documentos
Cultura Documentos
Curso de Zabbix PDF
Curso de Zabbix PDF
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
2.3. Obtendo os fontes do Zabbix...........................................................................................27
2.4. Preparando o banco de dados.........................................................................................27
2.4.1. Instalao................................................................................................................................28
2.4.2. Criando o usurio e o banco...................................................................................................28
2.4.3. Carga inicial............................................................................................................................30
2.4.4. Concedendo as permisses necessrias ao usurio...............................................................30
2.5. Instalao do servidor Zabbix via cdigo fonte..............................................................31
2.5.1. Dependncias de compilao..................................................................................................34
2.5.2. Compilando e instalando.........................................................................................................35
2.5.3. Servios de rede......................................................................................................................37
2.5.4. Arquivos de configurao.......................................................................................................37
2.5.5. Testando sua instalao..........................................................................................................39
2.5.6. Scripts de boot........................................................................................................................41
2.6. Instalao do agente Zabbix via compilao..................................................................41
2.6.1. Exerccio: compile e instale o agente nas VM com Gnu/Linux..............................................42
2.6.2. Acesso ao agente pelo servidor..............................................................................................42
2.6.3. Exerccio sobre instalao de agente em Linux.....................................................................46
2.7. Instalando o agente em ambientes Windows..................................................................46
2.7.1. Executando o agente como servio........................................................................................50
2.8. Instalao do agente Zapcat para JBoss.........................................................................52
2.8.1. Obteno do binrio................................................................................................................52
2.8.2. Deployment.............................................................................................................................52
2.8.3. Opes de inicializao do JBoss............................................................................................53
2.8.4. Liberando o firewall para acesso ao Zapcat...........................................................................55
2.9. Testando o acesso via SNMP...........................................................................................55
2.9.1. Conceitos de SNMP.................................................................................................................56
-3
Captulo 3
Criando uma Infraestrutura de Monitoramento - Parte 2, Front end.......................................74
3.1. Introduo........................................................................................................................75
3.1.1. Organizao do front end.......................................................................................................75
3.2. Gerenciamento de usurios.............................................................................................77
3.2.1. Cadastrando os usurios do LDAP no Zabbix........................................................................81
3.3. Meios de alertas...............................................................................................................83
3.3.1. Correio eletrnico...................................................................................................................84
3.3.2. Mensagens instantneas.........................................................................................................84
3.3.3. Apontando os alertas aos usurios.........................................................................................85
3.3.4. Boas prticas com Media types..............................................................................................87
3.4. Hosts, host groups e templates.......................................................................................87
3.4.1. Templates para o caso de estudo............................................................................................88
3.4.2. Vnculo entre templates..........................................................................................................90
3.4.3. Backup dos templates.............................................................................................................91
3.4.4. Hosts........................................................................................................................................91
3.4.5. Gerenciando os Host Groups..................................................................................................92
3.4.6. Criando um novo host.............................................................................................................93
3.4.7. Fazendo backup dos hosts......................................................................................................95
3.4.8. Configurando uma permisso de acesso................................................................................95
3.4.9. Exerccios sobre usurios, hosts, grupos e permisses.........................................................97
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
3.6. Templates, applications e items....................................................................................114
3.6.1. Criando um Application e um Item dentro de um template................................................115
3.6.2. Interdependncia de templates............................................................................................118
3.7. Associando os templates aos hosts................................................................................120
-4
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
4.3. Checando disponibilidade via protocolo ICMP.............................................................138
4.3.1. Como funciona o ping ICMP.................................................................................................138
4.3.2. Visualizando o ping ICMP no Front end...............................................................................139
4.3.3. Criando um gatilho de parada de host.................................................................................141
4.3.4. Lidando com os eventos........................................................................................................146
4.3.5. Criando uma action para envio de alerta.............................................................................150
4.3.6. Exerccios..............................................................................................................................153
4.3.7. Boas prticas com triggers...................................................................................................154
4.4. Checagem genrica de portas e servios......................................................................156
4.4.1. Conexes TCP e handshakes................................................................................................157
4.4.2. Criando um teste de servio via varredura de portas.........................................................159
4.4.3. Exerccio sobre checagem de portas....................................................................................162
4.5. Validao de pginas WEB.............................................................................................163
4.5.1. Disponibilidade do site..........................................................................................................163
4.5.2. Exerccios..............................................................................................................................168
4.6. Checando disponibilidade via agentes..........................................................................169
4.6.1. Checando se o agente esta operacional...............................................................................169
4.6.2. Criando um trigger com a funo nodata()..........................................................................171
4.6.3. Exerccios..............................................................................................................................175
4.7. Tempo on-line e ltima inicializao do S.O..................................................................175
4.7.1. Trigger para alerta de reinicializao..................................................................................180
4.7.2. Exerccios..............................................................................................................................181
4.8. Checando servios pelo agente.....................................................................................181
4.8.1. Verificando os processos ativos na memria........................................................................181
4.8.2. Checagem de portas e servios localmente via agente.......................................................185
4.8.3. Exerccios..............................................................................................................................190
4.8.4. Verificando servios no Windows.........................................................................................190
4.8.5. Restabelecendo servios offline via Zabbix.........................................................................198
4.8.6. Exerccios..............................................................................................................................202
4.9. Medindo a sade de sua rede.....................................................................................202
4.9.1. Latncia de rede....................................................................................................................202
4.9.2. Macro para o limiar da latncia de rede..............................................................................204
-5
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
Captulo1
ConhecendooZabbix
OBJETIVOS
Apresentaraferramentoaoaluno.
ComoofrontendorganizaoscomponentesdentrodoZabbix.
Componentesvisuaisdemonitoramento.
Alertasdeincidentes.
Reinicializaodeservios.
Mostraraoalunoondeobterinformaes.
Captulo 1 Conhecendo o Zabbix - 13
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/.
Zabbixannouncements:annciosenovasverses
Zabbixhelp:frumprincipaldeajuda
Zabbixcookbook:vriasconfiguraesprontaspostadasecomentadas.Muitotil.
Zabbixthroubleshooting:seumproblemapersiste,este olocalparapostarerrose
solues.
Zabbixemportugusyemespanhol:frumemportuguseespanhol,tilquandovoc
nolinglsmuitobem.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 14
Captulo2
CriandoumaInfraestruturadeMonitoramento
Parte1,Sistema
OBJETIVOS
Prepararoambientederecebimentodealertas:
ConfiguraroEvolutionparareceberemailsdealertas;
ConfiguraroPidginpararecebermensagensinstantneasdealertas.
PrepararoambienteparainstalaroservidordoZabbix:
Obterosfontesdaferramenta;
PrepararoPostgreSQLparaservirdebackend.
Instalaroservidoreagente:
Compilaroservidoreagentenamquinadestinadaaseromonitoradorenasdemais;
InstalaodosbinriosdentrodoWindows2003(cominicializaodoagentecomo
servio);
ConfiguraodeumvirtualhostdentrodoApacheparaofrontend,incluindomodificao
dosparmetrosdoPHP.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 15
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.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 16
2.2.1.Configurandooclientedecorreioeletrnico
Estaapenasumteladeboasvindas,cliqueemAvanar.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 17
Nohnadaparaserrestaurado,cliquenovamenteemAvanar.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 18
1) NomeCompleto:Systemadministrator
2) Endereodeemail:sysadmin@curso468.4linux.com.br.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 19
3) TipodeServidor:devemosescolherPOP,queorecursoimplantadopararecepo
deemailsnocenrio.
4) Servidor:oendereoexternodoservidordeemail.
5) Nomedousurio:oprimeirousurioqueusaremososysadmin.
Estaoponoseguraparaserusadaemproduo! Mascomonocursoos
usuriossofictciosepossuemasenha123456issonovainosimpactar.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 20
Nestatela,configureorecebimentoautomticoacada1minuto,assimnoprecisamos
ficaresperandoemailschegareme,tambmnoprecisamosficarclicandoemEnviar/Recebera
todomomento.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 21
Apesardenoutilizaroenviodeemailsobopontodevistadousurio,interessante
configuraroSMTPparaaveriguarseosemailsestocaminhandodentrodocenrio.
1) NoTipodeServidorescolhaSMTP.
2) NoServidorcoloqueomesmoendereodeemailquecolocamosnoPOP3.
Noreproduzaestecomportamentodeaceitedeemailssemautenticaoem
produo! Oservidordecorreioeletrnicodentrodocenrioapenasummeiode
sabermosqueasmensagensdealertasdoZabbixestosendoenviadasporemail.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 22
1) Nome: Por final, configure um nome para esta conta. Isto usado apenas para
exibionoEvolution.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 23
Estaapenasumateladefinalizao,cliqueemAplicar.
TorneoEvolutionoseuclientedeemailpadro.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 24
Naprimeiravezquevocentrareleirpedirasenha(123456)dousurio,digiteae
verifiquesenohouvenenhumerro.Nohnenhumemailnacaixademensagensdosysadmin,
logonenhumamensagemvaiaparecer.
AscontasaseremacrescentadassoWindowsAdministrator(winadmin),JavaEngineer
(javaeng)eDBA(dba).Apsotrmino,escolhaduascontasetesteoenviodemensagensentre
elas.
2.2.2.Mensagensinstantneas
RecebermensagensdealertasviaInstantMessagingtilemempresasquepossuem
umsistemainternodeIMeosfuncionriosestologadosconstantemente.OZabbixsuportao
enviodestasmensagensviaprotocoloJabbereocenriojpossuiestetipodeservioatravsde
umservidorOpenFireinstaladonamquinamestradoZabbix.
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.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 27
Antesdecomearatrabalharcomasdiversaspartesbsicasdainstalao,precisamos
baixar o cdigo fonte do Zabbix. Voc sempre pode fazlo atravs da URL
http://www.zabbix.com/download.php,masocomandoabaixojvaicolocaropacotedefontesno
localapropriadodentrodamquinavirtualzabbixsrv.
#cd/usr/src
#wgethttp://ufpr.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest
%20Stable/1.8.4/zabbix1.8.4.tar.gz
#tarxfzabbix1.8.4.tar.gz
Voctambmpodeescolheroutrosmirrorsetrocaroendereoacimasedesejar.
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.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 28
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=#
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 29
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)
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 30
Digite"help"paraajuda.
zabbixdb=>\q
#
2.4.3.Cargainicial
Agoravamosfazeracargainicialdobancocarregandoosesquemas,osdadosmais
bsicos.
#supostgres
$cd/usr/src/zabbix1.8.4/create/schema
$catpostgresql.sql|psqlzabbixdb
$cd../data
$catdata.sql|psqlzabbixdb
2.4.4.Concedendoaspermissesnecessriasaousurio
Agoraomomentodeconcederaspermissesdeacessonastabelas.OusurioZabbix
precisadepermissesdeSELECT,INSERT,UPDATEeDELETEapenas.Comasequnciade
comandosabaixovocconseguirativartodasaspermissesnecessrias.
Emboraesteprocessosejamaiscomplicadodoquefazerdeixarousuriozabbixcomo
donodobancoelemuitomaisseguroedeveserutilizadoassimemproduo
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 31
$psqlzabbixdb
1 postgres=#\t
2 postgres=#\a
3 postgres=#\o/tmp/grantzabbix.sql
4 postgres=#SELECT'GRANTSELECT,UPDATE,DELETE,INSERTON'||schemaname||'.'
||tablename||'TOzabbix;'FROMpg_tables;
5 postgres=#\o
6 postgres=#\i/tmp/grantzabbix.sql
7 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.
comaltascargasdemtricassendomonitoradas.
Paracomear,vamosinstalarosdoispacotesmaisbsicosparacompilaodefontesno
Debian, o buildessential e o make. O primeiro um meta pacote que ir instalar todosos
pacotesmnimosdecompilaodefontes(compilador,linkeditor,cabealhosdokerneledalibc,
etc.)eosegundoumautomatizadordecompilao.Noterminaldozabbixsrvrodeosseguintes
comandos.
#aptitudeinstallbuildessentialmake
#cd/usr/src/zabbix1.8.4
#./configurehelp|less
Oconfigureumscriptgeradoapartirdoautotools,queumconjuntodeferramentas
parafacilitaracompilaodefontesemC.Aopohelpfornecidaacimairlistartodasas
opesquepodemosativarounoparacompilaroZabbix.Notequeoconfigurenocompila
nadaeleapenaspreparaacamapararealizaracompilaocomomake.
Natabelaaseguirestoasopesrelevantesdoconfigureparaanossatarefa.
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
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 35
VocpodeotimizarosbinriostornandooZabbixmaisrpidomasdependentedeuma
CPUcompatvelsevocexportarasvariveisdeambiente CFLAGSe CXXFLAGS
comoseguintevalorO2pipemarch=native,antesdeexecutaroconfigure.Sevoc
estiverusandoumsistemade32bitsacrescenteaindafomitframepointer. Cuidado
comoutrosflagsdecompilao!Vocpodeacabarcomumbinriodefeituoso!
2.5.2.Compilandoeinstalando
Agoraqueoconfigurechegouaopontofinaletodasasdependnciasforamresolvidas
hora de executar a compilao com o comando make. Na verdade o make no um
compilador,eleapenaschamaoscomandosnecessriosparaconstruirosbinrioatravsdeum
arquivoMakefilequefoigeradopeloconfigure.
Vocpodesubstituiroj2poroutronmeroparaacelerarasuacompilaosevoc
tivermltiploscores.Umaregrageral2xCores+1.
#makej2
#makeinstall
#lnsvf/opt/zabbix1.8.4/opt/zabbix
#tree/opt/zabbix
Ocomandotreevaimostrarahierarquiadediretriosearquivosabaixodocaminhoda
instalao.Atabelaabaixotemodescritivodecadaumdeles.
Binrio Funcionalidade
zabbix_get Utilitrio para realizar consultas nos
agentes via linha de comando. Muito til
e ns o utilizaremos extensamente
durante o curso.
Binrio 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 Agente para ser usado com o super
daemon xinetd ou similar. No
necessrio na grande maioria dos casos e
ser removido do diretrio.
zabbix_agentd O daemon do agente do Zabbix que fica
na memria a espera das requisies do
servidor.
zabbix_server O daemon do servidor do Zabbix. Este o
componente principal de toda a
infraestrutura.
Tabela 2: Binrios de uma instalao de servidor e agente do Zabbix
precisoremoverozabbix_agentesuapginademanual,umavezqueiremosusar
apenas o daemon zabbix_agentd. Tambm uma boa prtica no manter os smbolos de
depuraonosbinriosdeproduo.Ocomandostripirretirarestessmboloseoexecutvel
finalserligeiramentemenoremtamanho(oqueajudaaconsumirmenosmemriatambm).
#rm/opt/zabbix1.8.4/sbin/zabbix_agent
#rm/usr/share/man/man1/zabbix_agent.1*
#stripstripall/opt/zabbix1.8.4/*/*
Noaconselhvelexecutardaemonsdesistemacomousurioroot,porissovamos
criarumgrupoeusuriodenomezabbixparaqueoservioentrenamemriacomousuriono
privilegiado.
OnomedousurioqueoZabbixusahadcoded,ouseja,eleprogramadodentrodo
cdigofonteenopodeseralteradoviaconfigurao.Dessemodosempretemosque
criarousuriocomonomezabbix,jonomedogrupototalmenteopcional.
#groupaddzabbix
#useraddgzabbixms/bin/bashzabbix
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 37
Ambososdaemons,doagenteedoservidor,precisamdedoisdiretriosparaarmazenar
oslogseoarquivodePID.Comoscomandosabaixocrieedaspermissesnecessriaspara
ambos.
#mkdir/var/{log,run}/zabbixp
#chownzabbix./var/{run,log}/zabbix
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
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.
#cd/
#tarxf/tmp/configserver.tar.bz2
#tarxf/tmp/configagent.tar.bz2
#chownroot.zabbix/etc/zabbixR
#find/etc/zabbixtypedexecchmod0750{}\;
#find/etc/zabbixtypefexecchmod0640{}\;
1) Notequeogrupodosdiretrioseseusarquivosforamapontadosparazabbix.O
donocontinuouaseroroot;
2) Todososdiretriostiveramapermissodeacessoglobalrevogada,nenhumusurio
do sistema tem que acessar esta pasta exceto o do Zabbix (existem informaes
sensveiscomosenhasemtext/plainnestesarquivos).Tambm,apenasoroottem
direitosdegravaonessaspastasogrupozabbixtemapenasacessodeleitura.
3) Osarquivosseguemamesmalgicaqueosdiretrios.
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.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 40
#vim/etc/zabbix/server.d/database.conf
DBHost=127.0.0.1
DBPort=5432
DBName=zabbixdb
DBUser=zabbix
DBPassword=zabbixdbpw
1) OendereoIPounomeDNSdoservidorqueestacomobancodedados.Comono
nossocenrioobancoeoservidorZabbixestonamesmamquinavirtualutilizamos
oendereodeloopback;
2) AportaTCPdeacessodobanco.EstaaportapadrodoPostgreSQL;
3) Nomedobancodedadosquecriamosnoinciodocaptulo;
4) Nomedousurioquecriamosedemospermisso;
5) Senhadousurioacima.
Agoraexecuteoscomandosdeinicializaodosdaemonsconformeindicadoabaixo.
#zabbix_agentd
#zabbix_server
Verifiqueseasltimaslinhasdologindicamseambosiniciaramcorretamenteetambm
setodososprocessosestonamemria.
#tailn1/var/log/zabbix/zabbix_server.log
1203:20110207:092633.044server#1started[DBCache]
#tailn1/var/log/zabbix/zabbix_agentd.log
871:20110207:092607.522zabbix_agentdcollectorstarted
#psuCzabbix_agentd
SERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
zabbix8630.00.14836496?SN09:250:00/opt/zabbix/sbin/zabbix_agentd
#psuCzabbix_server
USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
zabbix12010.01.0466962636?SN09:260:03/opt/zabbix/sbin/zabbix_server
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 41
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.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 42
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 #====================================================================
4 #QualportaeIPqueoagentevaisevincularparareceberchecagenspassivasdoservidor.
5 #
6 ListenIP=172.27.0.1
7 ListenPort=10050
8
9 #====================================================================
10 #IPoqualoagentedoZabbixirusarparaenviardados,opcionalpoisosistemausaoIP
oqualestadesignadoaenviardadosconformeatabeladeoteamento.
11 #
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 43
12 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
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 44
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.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 45
Oprimeiro,obviamenteoServer queaceitaumalistaseparadaporvrgula(,)dos
endereosquesopermitidosfazeraconsulta.Osegundo oHostname representandoo
nomedamquinacomoqualoagentedeveseapresentaraoservidor.Estenomedevesernico
enonecessariamenteprecisaserigualaohostnamerealdamquina,defatononossocenrio
iremosdeixlodiferente.
#vim/etc/zabbix/agent.d/checkings.conf
1 #Esteoarquivoparaconfiguraodechecagensnoagente.Hdoistiposdechecagens,a
passivaeaativa.
2 #
3 #Checagenspassivassoopadro,oservidorfazoagendamentodasmtricasemanda
umarequisioaoagentequeaguardapassivamente(daionome),esteentocoletaodado
dosistemaeenviadevoltaaoservidor.
4 #
5 #Umachecagemativapermitequeoagenterecebaumalistadeitensaseremmonitorados
doservidoreaoinvsdesteltimocuidardoagendamentoerequisiesoagentequetoma
parasiestatarefa.
6 #
7 #ChecagensativassoteisquandooFirewallnopermitequeoservidordemonitoramento
alcanceoagenteviaredeouquandoseutilizaumsistemademonitoramentodelogsondeo
monitoramentoativoobrigatrio.
8 #====================================================================
9 #Quaissoosservidorespararecebimentoderequisiesouobtenodalistade
checagensativas.
10 Server=172.27.0.10
11
12 #====================================================================
13 #ComoestehostestacadastradodentrodoZabbixistonoprecisacorrsponderao
hostnamedamquinaeleumastringdeidentificaodoagenteparacomoservidordo
Zabbix.
14 #
15 Hostname=Presentation
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 46
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
Cliquenolinkdedownloadeescolhaumlocalparacolocaroarquivocompactado,no
exemplodaapostilaelefoicolocadoemC:\Downloads.Abraapastaemqueoarquivofoisalvoe
descompacteoarquivo.Dentrodelevocencontraroutrasduaspastasparaarquiteturasde32e
64bits.Nonossocasoiremosusarosde32bits.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 48
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.
Use o Wordpad para alterar estes arquivos, o Notepad tem vrios problemas com
codificaoefinaisdelinha.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 49
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.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 50
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.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 51
Nestatelatambmpossvelparar,reiniciar,etc.oagenteatravsdabarradeconesna
partesuperiordajanela.ComooservioiniciaparadodevemosclicarsobreeleenoconeIniciar
oServio(representadopelosmbolodeplay).
Certifiquesequeeleestaparaseriniciadoautomaticamente,assimquandoosistemafor
reiniciadooserviotambmser.TestenoservidordoZabbixseeleestaconseguindoalcanaro
agente.
#zabbix_getswin2003k'agent.ping'
1
Seeleretornar1comoacima,entoainstalaoestaconcluda.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 52
O Zabbix possui alguns agentes programados por terceiros alm do nativo que
acompanhaosfontespadro.UmdestesagentesoZapcat,quecapazdemonitoraratravs
de um deploy, servidores JBoss e Tomcat. No nosso cenrio temos um servidor JBoss na
mquinavirtualApplicationquesermonitoradopeloZapcat.Orestodestasessodedicado
instalaoeconfiguraodesteagente.
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/.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 53
#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
1 JAVA_OPTS="$JAVA_OPTSDcom.sun.management.jmxremote"
2 JAVA_OPTS="$JAVA_OPTSDjboss.platform.mbeanserver"
3 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
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 54
5 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).
Noprximocaptulovoltaremosaesteacesso.PorhorajbastaverificarseoZapcatesta
funcionando.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 55
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 #
2 #AsthesnmppackagescomewithoutMIBfilesduetolicensereasons,loading
3 #ofMIBsisdisabledbydefault.IfyouaddedtheMIBsyoucanreenable
4 #loagingthembycommentingoutthefollowingline.
5 #mibs:
#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
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 56
IFMIB::ifDescr.1=STRING:lo
IFMIB::ifDescr.2=STRING:eth0
IFMIB::ifDescr.3=STRING:eth1
IFMIB::ifDescr.4=STRING:eth2
IFMIB::ifDescr.5=STRING:eth3
IFMIB::ifDescr.6=STRING:switch0
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 .
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 57
1.3.6.1.2.1.1.3.0.
SevocpossuiraMIBdeumequipamentomonitoradopeloZabbixequiserutilizara
formatextualmostradaacimaemvezdanumrica,terquecopiaroarquivodetextodeladentro
dodiretriodesuadistribuioGnu/Linuxondeoservidorestiverinstalado.
Normalmenteestediretrioestaem/usr/share/snmp/mibs/,masrecomendadoque
vocconfirmeseistovaleparaadistroquevocestausando.
Porfim,apartirdaverso2doprotocoloSNMPpassouseatrabalharcomumastring
decomunidade(community).Porpadroestastringtemovalorpublicarmazenadodentrodela
(parmetrocdocomandosnmpwalk).Estevalortemcomoobjetivopermitirapenasquequem
conheaacommunitysejacapazdeacessaroSNMP.
Francamente,colocaraseguranadeumsistemaemcimadeumvaloremtextoplano
que viaja sem criptografia na rede no nada seguro. Se voc realmente quiser
seguranadeveusaraverso3.Tambmprotejaaomximooacessoaporta161(ou
a qual voc definiu) de acessos indevidos, o ideal permitir apenas acesso dos
endereosdosservidoresdemonitoramento. Apenasselembrequeaindaassim,
nadainviolveleoSNMPnoexceo.
2.10.InstalandooservidorZabbixviapacote
NocasodorepositriodeumaversodeDebianpossuirumaversodoZabbixque
adequadoasuasnecessidadesentoaoinvsdecompilarrecomendadoquevocoutilize.No
presentemomentodaescritadestematerialessenoeraocaso.
#aptitudeinstallzabbixserverpgsql
#aptitudeinstallzabbixagent
OCentOSnotempacotesnoseurepositrio.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 58
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
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 59
Agora vamos criar o arquivo de virtual host. Note que o diretrio criado acima
apontadocomoraizeosarquivosdelogssoseparadosdopadroparafacilitaradepuraode
erros.
#cd/etc/apache2/sitesavailable
#vimzabbixfrontend.conf
1 <VirtualHost*:80>
2 ServerAdminsysadmin@curso468.4linux.com.br
3
4 DocumentRoot/var/lib/zabbix/frontend
5
6 <Directory/>
7 OptionsFollowSymLinks
8 AllowOverrideNone
9 </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
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 60
24
25 </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
#/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.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 61
2.11.3.Configurandoofrontend
Aprimeiratelaapenasumamensagemdeboasvindas.CliqueemNextparacomear.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 62
MarqueaopoIagreeparaconcordarcomalicenadoZabbixecliqueemNext.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 63
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
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 64
Depoisdealteraresalvaroarquivo,reinicieoapache.
#/etc/init.d/apache2reload
EntocliquenobotoRetry.Atelaqueserrecarregadairsersimilaraabaixo.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 65
OsuporteaGDdoPHPnoDebianSqueezenoatingeorecomendadomasfunciona
semproblemascomoZabbix.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 66
Ateladeconexoaobancodedadosprecisaserpreenchidaconformeexplicaoabaixo
eFigura2.26.
1) Escolhaobancodedados,nonossocenriooPostgreSQL.
2) ColoqueonomeouIPdohostdobancodedados,nonossocasolocalhost.
3) ColoqueaportaTCPparaoacesso,porpadroadoPostgreSQL5432.
4) EmNamecoloqueonomedobancodedados,zabbixdbemnossocaso.
5) EmUsercoloqueonomedousurioquecriamosanteriormente,zabbix.
6) EmPasswordcoloqueasenhadousurioacima.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 67
Depoisdepreencheroformulriocliqueemtestconnection parasecertificardeque
tudocorreubem.SeumOkapareceracimadoboto,cliqueemNext.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 68
Preenchaoformulriocomosdadosdoserviodemonitoramento,
RepasseasconfiguraesnestatelaecliqueemNextsetudoestiverOK.
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 70
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
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 71
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: _________________________________________
Captulo 2 Criando uma Infraestrutura de Monitoramento Parte 1, Sistema - 73
7) (Desafio)Sevoctentarusarozabbix_getparacoletardadosdoZapcatverque
elevaifalharretornandoumvalornosuportado.Vocconseguedescobrircomo,via
linha de comando poderamos coletar os valores deste agente? Se sim crie um
pequenoscriptparafazeracoletapassandoparaelehost,portaechave.
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 74
Captulo3
CriandoumaInfraestruturadeMonitoramento
Parte2,Frontend
OBJETIVOS
ConheceraconfiguraodoZabbixviaFrontend.
Gerenciaroshostsetemplatesparaomonitoramento.
Criarmtricasdemonitoramento.
Depuraritensnosuportados.
Configurarosmeiosdealerta.
Criarmapas.
Realizarbackupsdasconfiguraes.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 75
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 Funo
Monitoring Menuparaacessoaomonitoramento,depoisqueoZabbixestiver
completamenteconfiguradoesteomenumaisacessadodetodos.
Dashboard Teladecentralizaodasinformaesdemonitoramento.
Overview Permite a visualizao global ou por grupos das mtricas
monitoradasedosalarmes.
Web Visualizaodomonitoramentodosserviosdeweb(noconfundir
commonitoramentodoservidorweb).
Latestdata Mostra os ltimos dados (e quando eles foram coletados) do
monitoramentodeumhost.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 76
Menu Funo
Triggers Mostraostatusdosltimostriggers(gatilhos)epermiteinterao
com eles (como por exemplo dar um Acknowledge a um
determinadogatilho)
Events Mostra os ltimos eventos causados pelos triggers ou pelo
autodiscovery.
Graphs Visualizaoindividualdosgrficoscadastradosnoshosts.
Screens Visualizao dos screens. Telas que agrupam elementos
monitorados(comomapas,grficosewidgets).
Maps Visualizaodosmapas.
Discovery Hosts e elementos que foram descobertos pelo sistema de auto
detecodehosts.
ITServices Visualizao de SLA baseada no monitoramentodehosts,ativos
e/ouservios.
Inventory Inventriodehosts
Hosts Hostsquefazempartedoinventrio.
Report Menuderelatrio.
StatusdoZabbix Umateladeresumo(quetambmmostradanoDashboard)para
avalizaodaperformancedoservidorZabbix.
AvaliabilityReport Relatriosdedisponibilidadeporhostsoutriggers.
Most busy triggers Os100triggersmaisativosnosistema.
Top100
BarReport Mostradadosagregadosdentrodegrficosdebarra,porexemplo,
vocpoderiaveramdiadeusodelinkporsemanaaoinvsde
usarosgrficospadro.
Configuration Menuparaacessoasopesdeconfiguraodemonitoramento.
Hostgroups Gruposlgicosparadividiroshosts.
Templates Gerenciamento de templates (modelos), uma das telas que mais
vamosacessarduranteocurso.
Hosts Gerenciamentodoshostsmonitorados.
Maintenance Tela para colocar ou tirar um determinado host em estado de
manuteno.
Web Configuraodecenriosdetestedeserviosweb.
Actions Gerenciamentodeaesqueostriggersdevemtomaraoalertarem
algum comportamento (exemplo: enviar um email quando o
servidorXYZcair).
Screens Gerenciamentoeconstruodescreens.
Slides Gerenciamentoeconstruodeslideshows.
Maps Gerenciamentoeconstruodemapas.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 77
Menu Funo
ITServices GerenciamentodosserviosparaclculodeSLA
Discovery Gerenciamentodoautodiscovery.
Administration Menuparaacessosopesdeadministraodofrontend.
General Opesglobaisdofrontend.
DM Configuraodemonitoramentodistribudo.
Authentication Mtodosdeautenticao.
Users Gerenciamentodeusuriosparaacessoaofrontend.
MediaTypes Gerenciamentodeformasdealertas(emails,SMS,etc.)
Scripts Gerenciamentodescriptsparatestesonlinepelofrontend.
Audit Logs de auditoria de aes dos usurios e de eventos gerados
pelasActions.
Queue Filadealertasaseremacknowledged.
Notifications Notificaesenviadasporusurio/tempo.
Locales Personalizao das strings de exibio para traduo (portugus
brasileirojestapronto,portantonoprecisamosmexeraqui).
Instalation Telasdeinstalao(asmesmasquepassamosagoraapoucopara
configurarofrontend).
Tabela 4: Funo dos menus no front end
Nointenodocursodetalhartodosositensdetodasastelas(issoprovavelmente
seriatarefadeumlivrobemgrande).EmborasimplesainterfacedoZabbixtemumamagnitude
deopesbemgrandeevamosnosconcentrarnelasaospoucosconformeanecessidadee
escopodocurso.
3.2.Gerenciamentodeusurios
Opontomaislgicoparacomearadministrarquempodeacessarofrontendedefinir
umasenhaaousurioAdmin.VamosentrarnomenuAdministration Users.Nocantodireito
datelaquevaiaparecer,vocverumcomboboxaoladodobotoCreateUsercliquesobre
eleeselecioneUsers.AFigura3.1mostraatelaqueirserexibida.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 78
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 79
CliqueemChangepasswordecoloqueasenhaasuaescolha,noesqueaessasenha
ouvaisernecessrioreinicilanobancodedados.ParaevitarqueoZabbixfiquedesligando
nossasessoatodomomentodesligueaopoAutologout.Depoisdeterminarcliquenoboto
Save.IssoapenasumsalvaguardaemcasosdeproblemasdeautenticaocomoLDAP,
comovocverlogoaseguiriremospassartodaaautenticaoparaosistemadediretrio(que
tambmpossuiumusurioAdmin).
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 81
3.2.1.CadastrandoosusuriosdoLDAPnoZabbix
ApesardoZabbixestarapontandoparaoLDAPeoAdminestarfuncionando preciso
mapearquaisusuriosdarvoredediretriosparadentrodofrontend.Sevocnoofizer,no
sercapazdelogarcomumdeterminadousurio.
NocenrioqueestamosusandotemosalgunsusuriosdescritosnaTabelaquedevem
seradicionadosealgunsnovosgruposdeusuriosqueiroorganizaralgunsdeles.
NotemososgruposWindowsAdministratorseJBossAdministratorsprcadastrados
noZabbix.Portantooprimeiropassojustamentecrilos.EntreemAdministration Userse
cliquenobotoCreateGroup.NaFigura 3.4 temosumexemplodateladecriaodoJBoss
Administrators.NonecessriomaisdoqueonomedogruponocampoGroupName,pois
iremosdefinirsuaspermissesmaisadiante.
SalveeescolhaUsersnocomboboxaoladodobotoCreateGroup,issovainosfazer
voltarteladeusuriosondeeditamosoAdmin.CliquenobotoCreateUser ecadastreos
usuriosdaTabela5conformeaFigura3.5.
OAliasocampocomonomedousurioedeveestar100%igualaodentrodoLDAP.
NameeSurnamesoapenaslabelsparaexibioenoquadroGroupsuseobotoadd
paraacrescentaraquaisgruposousuriopertence.
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.
Ambas,aoperaodelimpezaeomododefazla,sobemtriviaiseseromuito
comunsnocurso.Elaserrepetidaemmuitosoutroslocais.
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.
SemprequeutilizarumidentificadordeusurionoJabbervocdeveincluironomedo
servidorcompletoapso@enoapenasodomnio.
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 86
AsintaxedoWhenActiveusa1comosegundae7comodomingo,definirporexemplo
segundaasextaficaria15.Umavrgulaseparaodiadohorrio,segundaasextadas09:00at
as18:00ficaria15,09:0018:00.Podemosaindausaropontoevrgulaparadefiniroutrasfaixas,
porexemplosegundaasexta,das09:00s18:00esbadodas09:00s13:00ficaria15,09:00
18:00;6,09:0013:00.
OUseifseverityfiltraostiposdeseveridadedeumcampo.Elessoimportantespara
quemeiosdealertascomcusto(SMS)nosejamusadosparaalertasdepoucaimportncia.
Tambmsousadosparanocausaravalanchesdealertasemummeioosquaiselesmais
incomodariamdoqueajudariam,imagineseralertadotodominutopormensageminstantnea
queumserviofoireiniciado!Seriatotalmenteimprodutivo.
Porfim,StatuscontrolaseesteMediaTypeestarounoativo.Issoparticularmente
tilquandoofuncionrioresponsvelestiverdefolga,afastadooudefrias.
CliqueemAddparasalvareadicioneoutroMediaTypeparaoJabber.
NonossoexemplodeixeoJabberapenascomseveridadeHigheDisaster.Onomedo
usurioemSendtoomesmoqueoAlias.SalveevejanaFigura3.12comoocampoMedia
ficar.
Salveerepitaparatodososusuriosagora.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 87
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
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.
EstaoperaopodedemoraralgunsminutosdependendodaCPUedoI/Odedisco
queseuequipamentopossui.
Agoraomomentodecriaroprimeirotemplate.
Paracriarumnovotemplate,cliquenobotoadireitadatelaCreateTemplateconforme
indicadonaFigura3.15.Umanovatelavaiseabrirconformeafiguraaseguir.
VocpodecriarumnovogrupousandoocampoNewgroupsemanecessidadede
fazlonateladegruposdehosts.
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).
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 91
3.4.3.Backupdostemplates
Umaaoimportanteemtodosistemacriarumbackupdasconfiguraes.Apartirde
agoratodamodificaoquefizermosnosmapas,templates,gruposehostsdeverserseguidade
umbackup.Aoperaodebackup,chamadaExport bastantepadronizada,todasastelas
pertinentesafazerbackuputilizamomesmoprocedimentoexplicadoabaixo.Oresultado um
arquivoXMLcontendoosdadosdeconfigurao.
Umateladedownloadirserexibida,escolhaonomeelocaldoarquivoesalveo.
Mantenhaestesdadosemumlocalseguroesemprerealizeestaoperaoapsalgum
tipodealterao.
3.4.4.Hosts
Agoraqueumtemplatefoidefinidovamoscriarumhosteassociloaestemodelo.Na
Figura3.19estaumarepresentaodecomoasmquinasvirtuaisestodispostasemtermosde
layoutderede.EmnossaprticadirigidairemoscadastraroshostsPresentationeSwitch,
almdemodificaroZabbixServerquecriadoautomaticamentenomomentodoimportede
dadosdoPostgreSQL.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 92
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 93
Aseguintetelairsurgir.
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 94
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 95
CrietodososhostsdocenrioconformeindicadonaFigura3.24.
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 96
Dentrodateladogrupolocalizenaparteinferiordatelaascaixasdepermisses(Figura
3.26).CliquenobotoAdddacaixaReadWrite.
NodialogoqueaparecerselecioneogrupodehostsLinuxServersecliqueemselect.
Os direitos de deny tem precedncia aos de read only, que por sua vez tem
precednciasobreosdereadwrite.
3.4.9.Exercciossobreusurios,hosts,gruposepermisses.
1) OcenriodocursoprecisadeumconjuntodepermissesconformeaTabelaabaixo.
Criegruposdehostseusurios,eatribuapermissesconformefornecessriopara
chegaraesteresultado.Notequehumnovousurio.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 98
ExcetopelosusuriossuporteeAdmin,todososusuriosdevemterpermissode
mudanadeconfiguraodoshostsnoqualelestemdireitodeescrita.
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 99
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 100
Comissotodasasimagensnecessriasparaoprimeiroestgiodomapaforamcriadas.
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 102
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 103
3.5.3.Adicionandoumelemento
Dentrodatelademapas,umareaembrancodivididaporlinhasdealinhamentoser
exibida.Seutamanhoodefinidonateladecadastrodemapas.Napartesuperiordatelavoc
podeverumabarradeferramentascomonaFigura3.34,aexplicaoqueseguedefineousode
cadaboto.
Paraopropsitoinicialdocursoaresoluode50x50osuficiente.Vamosinserirum
novoconepararepresentarolinkdeinternet.CliquenobotomaisdocampoIconeumnovo
elemento ir aparecer no canto superior do mapa. Note que o Zabbix escolher o primeiro
elementogrficodisponvelparaele.
Arrasteoatapartedatelaquevocdesejarparaposicionlo.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 104
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 105
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 106
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 107
Cliquenoelementodomeioparaeditloconformeabaixo,eleservirderepresentao
paraohostPresentationagora.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 108
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 109
OmesmoserfeitoparaoelementodohostSwitch,aFigura3.42mostraquaissoos
valoresutilizados.
ComoresultadofinalumaimagemparecidacomaFigura3.43deveestarnomeiodesua
reademapa.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 110
3.5.7.Criandoeeditandolinks
Comoselementosdehostseimagensnomapaaindafaltacriaroslinksqueinterligam
umelementoaoutro.Oslinkspodemtantoserumsimplestraoparamostrarumaligaoentre
dois elementos como tambm podem ser usados para demonstrar estados de gatilhos com
problemas.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 111
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 112
1) NocampoLabelpodemoscolocarumaidentificaodestelink.Assimcomoortulo
doselementoscomimagenselatambmaceitamacros.
2) NosdoiscamposdeElementsositensqueestovinculadospodemseralterados.
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 114
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.
2) OsItemssoprovavelmenteoobjetomaisimportantedentrodetodooZabbix.Eles
soasdefiniesdasmtricasdecoletas.Quaseque90%detodootrabalhode
monitoramentogiraemtornodeumItem.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 115
3) OsTriggers,ougatilhos,montamalgicaparageraralertasbaseadonainformao
coletadapelosItems.ApartemaiscomplexadoZabbix montarasexpresses
booleanasdosgatilhosdemaneiraconcisaeequilibrada,evitandofalsospositivosao
mesmotempoquegeraalertasemumtempohbil.Inciaremosoestudodelesno
prximocaptulo.
4) OsGraphssoelementosqueexibemgrficos.Tambminiciaremosseuestudono
prximocaptulo.
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 116
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 117
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 118
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 119
CliquenobotoAddparaabrirateladetemplates.
Najaneladedialogoqueaparecerselecione4LinuxICMPecliqueemSelect.Voc
podeescolhertantostemplatesquantoprecisarnestatela.
NotequetodotemplatequetemalgumaassociaosermostradonacolunaLinked
templstesnateladeTemplatesList.Agoratodohostqueforassociadoaotemplate4Linux
JBossserautomaticamenteassociadoao4LinuxICMP,almdissooprimeiropodeutilizar
osapplicationsdosegundoeseustriggerspodemdependerdosdosegundo.
Parafinalizarcomostemplates,crietodosostemplatesindicadosabaixoeassocieos
conformeaestruturadervoreindicada:
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 120
3.7.Associandoostemplatesaoshosts
Agora que temos os templates criados podemos vincular cada um deles aos hosts
criados.Fazerissoparaumhostmuitosimples,sigaospassosabaixo.
NapartedireitadatelalocalizeoquadroLinkedtemplates(Figura3.62)ecliquesobre
obotoAdd.
(3/6)
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 121
Nodilogoquesurgir,escolhaotemplatedesejado(4LinuxJBossBase)ecliqueem
Select.Vocpodeescolhertantostemplatesoquantoquiseraqui,desdequeelesnoestejam
associadosentresienemtenhamumtemplatepaiemcomum.
Vocveronomedostemplatesescolhidosapareceremnestequadro,conformeaFigura
3.64demonstra.
ParafinalizarcliqueemSave.
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.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 122
1) MarqueaopoLinkaddictionaltemplates;
2) CliqueemAdd.Nossavelhateladetemplatesirsurgir.
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 123
Marque4LinuxS.O.LinuxecliqueemSelect.
3.8.Ativandoumhost
Umdialogoirsurgirperguntandoseohostdevesermesmoativado.Confirmeclicando
emOK.
AcolunaondeclicamosinicialmenteagoradeveestarcomolinkMonitored emverde.
Aproveiteeativetodososhosts.
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.
Passe o mouse por cima do cone e o Zabbix ir mostrar uma dica do que esta
acontecendo.Amensagemnestecaso/usr/sbin/fping:[2]Nosuchfileordirectory.Oservidor
noestaconseguindoencontraroexecutvelqueeleutilizapararealizarospingsICMP(fping).
Umoutrolugarquetambmindicaoquepodeestaracontecendo ologdoservidor.
EntrenoconsoledoZabbixserverelisteofinaldoarquivodelogconformeabaixo.
#tail/var/log/zabbix/zabbix_server.log
2518:20110201:202018.896server#18started[Escalator]
2519:20110201:202018.900server#19started[ProxyPoller]
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
A ltima linha mostra a mesma mensagem que no front end. Para remediar esta
situaodevemosinstalarofpingpelogerenciadordepacotesdadistroqueestamosutilizando.
NocasodoDebian:
#aptitudeinstallfping
Notequemesmodepoisdeinstalaroaplicativooerropersiste!Novamenteconsulteos
logs(ouofrontend).
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 126
#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
Captulo 3 Criando uma Infraestrutura de Monitoramento - Parte 2, Front end - 127
Fping6Location=/usr/bin/fping6
2) Fping6Localtion:comoacima,masparaIPV6.Mudepara/usr/bin/fping6.
Comasopesmodificadasreinicieoservidor.
#/etc/init.d/zabbixserverrestart
StoppingZabbixserverdaemon:zabbix_server
StartingZabbixserverdaemon:zabbix_server
Umaoutrapossibilidadepararesolveroproblema fazerumlinksimbliconosistema
operacional.Avantagemdestemtodoquenosernecessrioalterarnenhumarquivode
configuraoenemreiniciaroZabbix.
lns/usr/bin/fping/usr/sbin/fping
Captulo4
Monitoramentovoltadoparadisponibilidade
OBJETIVOS
UtilizaroZabbixcomoumaferramentaparamedirdisponibilidade:
Alertarquedasdehosts,serviosereinicializaes.
Medirasadedainfraestrutura:
Latnciaderedeedeservios.
Espaoemdisconosservidores.
Serviosativos.
Interface
Testemanual.
Usodegrficosemapas.
Comandosexternos.
Captulo 4 Monitoramento voltado para disponibilidade - 129
4.1.Introduo
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.
Captulo 4 Monitoramento voltado para disponibilidade - 130
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.
Captulo 4 Monitoramento voltado para disponibilidade - 131
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.
Captulo 4 Monitoramento voltado para disponibilidade - 132
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.
Captulo 4 Monitoramento voltado para disponibilidade - 133
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
#visudo
1 #/etc/sudoers
2 #
3 #ThisfileMUSTbeeditedwiththe'visudo'commandasroot.
4 #
5 #Seethemanpagefordetailsonhowtowriteasudoersfile.
6 #
7
8 Defaultsenv_reset
9
10 #Hostaliasspecification
11
12 #Useraliasspecification
13
14 #Cmndaliasspecification
15
16 #Userprivilegespecification
17 rootALL=(ALL)ALL
18
19 #Allowmembersofgroupsudotoexecuteanycommand
Captulo 4 Monitoramento voltado para disponibilidade - 134
20 #(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.
Captulo 4 Monitoramento voltado para disponibilidade - 135
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.
Captulo 4 Monitoramento voltado para disponibilidade - 136
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;
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.
Captulo 4 Monitoramento voltado para disponibilidade - 137
5) Qualtipodepermissoogrupodousuriodeveternohostgroupsparaexibiro
comando.AomenosapermissodeREADrequerida.
DepoisdecadastraroscamposcliqueemSaveevatomapaparatestarocomando.
CliquesobreumhostGnu/Linux.
AFigura4.7demonstracomoopopupsermostrado.CliquesobreonovosciptSSH
paraexecutlo.
SetudocorreubemasadadocomandodevesermostradaconformeaFigura4.8.Note
queoshostsswitch,JBossASeWindows2003nodevemexibirestecomando.
Captulo 4 Monitoramento voltado para disponibilidade - 138
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
NemtodosossistemaspermitempacotesICMP.Seesteforocaso,noadiantacriar
testescomooaseguir,pulediretoparaverificaodeagenteseportas.
4.3.1.ComofuncionaopingICMP
O ICMPInternetControlMessageProtocol umprotocolodacamadaderededo
modeloTCP/IPresponsvelportrocarmensagensdecontroleentreoshosts(porexemplo,falhas
derotas).
Captulo 4 Monitoramento voltado para disponibilidade - 139
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.
Captulo 4 Monitoramento voltado para disponibilidade - 140
NaFigura4.10temosumexemplodestatelamostrandotodososhosts.Seelanoestiver
aparecendonoseesqueadeselecionarnocomapoTypeovalorData.
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
Captulo 4 Monitoramento voltado para disponibilidade - 142
nossoshosts.
Primeiropauseumadasmquinasvirtuais(oexemploutilizaoDatabase),peloconsole
doVirtualBoxselecioneomenuMachinePause(OuuseCTRLDireito+P).
Agora que j sabemos que o item esta funcionando corretamente, vamos criar nosso
trigger.Antesativeamquinavirtual,assimotriggerentrardesligado.
Captulo 4 Monitoramento voltado para disponibilidade - 143
Umtrigger,ougatilho,umtestedecondioquepossuiumestado(OK,PROBLEMou
UNKNOWN)epermitequeoZabbixtomeumadecisosobreaocorrnciadeumincidentedentro
docenriomonitorado. Umnicotriggerpodeconterumsimplestesteboleanocomooque
usaremosdaquiapouco,comotambmverdadeirasequaesboleanasquetestaminmeras
possibilidadesparadecidiroqueaconteceu.Felizmenteagrandemaioriadoscasosrequerem
testessimplesdevaloresdeumnicoitem.Vparaateladetemplatesem Configuration
Templatesondeestao4LinuxICMP.
EditeostriggersdotemplateconformemostradonaFigura4.18.
NocantodireitodatelacliquenobotoCreateTrigger.Umanovatelairaparecer.
NotequeatelavaimudarconformeaFigura4.21.Paracriarnossaexpressouseoboto
Edit.AtelaConditionirsurgirparaquepossamosmontaraopodoteste.
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.
Captulo 4 Monitoramento voltado para disponibilidade - 145
Comanovaexpressoativadapodemosnosateraoutrospontosdotrigger.
ObotoTestpodeajudararesolverumaexpressomaiscomplexa,mastenhaem
mentequeaentradadedadosdaexpressospodeserobtidamanualmente(vocvai
digitlas).Nopossvelcoletarosdadosdoitemparaaveriguarsevocfezcerto.
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.
Captulo 4 Monitoramento voltado para disponibilidade - 147
OMapatambmdeveestarmostrandoostatusdotriggernohostDatabase.Vat
Monitoring MapsepercebacomooZabbixcolocouumcrculovermelhonofundodohost.O
nomedogatilhotambmestaaparecendoabaixodolabeldenome.
Captulo 4 Monitoramento voltado para disponibilidade - 148
2) Host:filtraoshostsdogrupoescolhido.
3) Source:defineaorigemdoseventos,umeventopodesergeradoporumgatilhoou
pordetecesdehostsfeitaspeloZabbix.
Captulo 4 Monitoramento voltado para disponibilidade - 149
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.
Captulo 4 Monitoramento voltado para disponibilidade - 150
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) Name:indicaonomedaaoeeledevesernico.
2) Eventsource:mostradeondeoeventofoioriginado.Nonossocasoumtrigger.
Osoutroscamposdestequadronosorelevantesnomomento,deixeosnodefault.
AntesdeclicaremSavehmaisdoislugaresaseremconfigurados.
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.
CliqueemAddevocverqueanovaoperaoseradicionadaaoquadro.
ApsissocliqueemSavenoquadroprincipal.
Captulo 4 Monitoramento voltado para disponibilidade - 153
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?
________________________________________________________________________
________________________________________________________________________
Captulo 4 Monitoramento voltado para disponibilidade - 154
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.
Captulo 4 Monitoramento voltado para disponibilidade - 155
Notequequandooservidorpararderesponder,nenhumalertaenviadoimediatamente.
Otriggeriraguardarotempodeterminadonajanelaatdecidirmudardeestado.Omesmo
acontececomoretornodohost.Emborapareacontraprodutivoissoreduzoriscodeenviode
mensagensdealertaatoa.Dependendodotipodemensagem,issopodeinclusiverepresentar
umaeconomiaparaaempresaseoMediatypeusadoforpago(comooSMS).Imaginereceber
centenas(oumilharesdeSMS)porcausadetrafegoexcessivoqueimpediuqueospingsICMP
chegassemaoservidor!Nadasaiudoar,apenasotrafegoderedeficouinsuportavelmentelento.
Eaintermitnciadospacotespodegerarmaisdoresdecabeadoqueauxlio.
Obviamentetemosquetomarcuidadosparaquehajamalertasdeoutrosestadosque
umhostoutodaainfraestruturapodealcanar.Maisadiantenestecaptulovamos,por
exemplo,criarumatriggerparaalertasdereinicializaes.
Definirgatilhoseaesparatodasaspossibilidadesdesuainfraestruturajustamente
omaiordesafiodepoisderesponderaperguntaoquedevomonitorar?.Geralmente
estetipodegranulaosalcanadodepoisdealgunsmesescomomonitoramento
ativado,eamelhormaneiradeseplanejartudoissocomearpequenoecobrirnovas
necessidades conforme elas aparecem. Receitas de bolo como a ITIL so
excelentesguiasparasedecidirporondeequandocomear.
Captulo 4 Monitoramento voltado para disponibilidade - 156
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.
Captulo 4 Monitoramento voltado para disponibilidade - 157
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.
Captulo 4 Monitoramento voltado para disponibilidade - 158
Capturingoneth0
0.000000172.27.0.10>172.27.0.20TCP50952>8080[SYN]Seq=0Win=5840Len=0
MSS=1460TSV=4629163TSER=0WS=4
0.000090172.27.0.20>172.27.0.10TCP8080>50952[SYN,ACK]Seq=0Ack=1Win=5792
Len=0MSS=1460TSV=4617797TSER=4629163WS=4
0.000602172.27.0.10>172.27.0.20TCP50952>8080[ACK]Seq=1Ack=1Win=5840
Len=0TSV=4629163TSER=4617797
0.000727172.27.0.10>172.27.0.20TCP50952>8080[RST,ACK]Seq=1Ack=1Win=5840
Len=0TSV=4629163TSER=4617797
Percebaque4pacotesforamtrocados.OprimeirooSYN(syncronization)quepedea
aberturadaconexo.OsegundoquepartedoservidordedestinocomorespostaoSYN/ACK
(syncronizationandacknowledgement)queconfirmaaaberturadepacoteseoterceirooACK
apenasparaconcluiraabertura.Onmapusaraindaumltimopacotepararesetaraconexo
(RST,ACK)quenovemaocaso.
Atrocadestespacotesnestaordemoesperadopelasfunesdesoquetedosistema
operacional,seelaforrealizadadessaformaissosignificaqueaportaremotaestaemestadode
escuta(listening)ouqueestaaberta.Masaivemaperguntaeumaportafechada,oqueretorna?
Vamosseguircomaprtica,novamentenohostApplicationexecuteosseguintescomandos.
#iptablesAINPUTjACCEPTptcpdport10000
#tsharknieth0host172.27.0.10andport10000
Runningasuser"root"andgroup"root".Thiscouldbedangerous.
Capturingoneth0
Oiptables2liberanofiltrodepacotesdeentradaaporta10000/TCP.Agoraapartirdo
servidorZabbixtesteaporta10000.
#nmapsTP0p10000172.27.0.20
StartingNmap5.00(http://nmap.org)at2011020917:13BRST
Interestingportsonapplication.curso468.4linux.com.br(172.27.0.20):
PORTSTATESERVICE
10000/tcpclosedsnetsensormgmt
Captulo 4 Monitoramento voltado para disponibilidade - 159
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.
Captulo 4 Monitoramento voltado para disponibilidade - 160
#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
Notemplate4LinuxS.O.Linuxcrieumnovoitemdesimplecheckcomakeyssh.
ParaqueoservidorpossauslaprecisoqueeleestejacompiladocomsuportealibSSH(opo
enablelibssh).
Captulo 4 Monitoramento voltado para disponibilidade - 161
1) Key:achavesshfazumtestenaporta22dosservidores.
2) Showvalue:escolhaovaluemapEstado comofizemosnoICMPping.Achave
escolhidatambmretorna1parasucessoe0parafalha.
3) Newapplication:crieumaaplicaoexclusivaparaoserviodeSSH.
Noesqueadepreencherosoutroscamposconformeailustrao.Depoisdesalvar
estenovoitem,consulteasadadoOverview.
Captulo 4 Monitoramento voltado para disponibilidade - 162
NotecomoosdoisservioscomfirewallecomoSSHdesligadoretornaramFalha(0)eo
queestavaemfuncionamentoretornou1.
UmadasgrandesvantagensdetestarportasTCPqueapossibilidadedeincidnciade
perdasdepacotesbembaixaemrelaoaotesterealizadocomoUDP.
4.4.3.Exercciosobrechecagemdeportas
1) SeguindoomesmoprocedimentodoICMPPing.Crieumtriggerparaalertasde
quedasdeportas.
2) Crieositensparamonitorartodososserviosviasimplecheckconformeatabela
abaixo.
Nopossvelmonitorarumdosserviosmencionadosnatabela,aodescobrirqual
anoteomesmoexplicandoporquenofoipossvelrealizarumsimplechecknele.
Maisafrentevoltaremosaestecasoefaremosomonitoramentodeoutramaneira.
Captulo 4 Monitoramento voltado para disponibilidade - 163
Servionomonitorvel:___________________________________________________
________________________________________________________________________
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.
triggertambmcriadoautomaticamenteparaalertarcdigosderetornosinesperadosoufalta
em uma determinada string na pgina de resposta. Ele no entanto, no gera uma action
sozinho.
MuitasdestasfuncionalidadessoencontradasemoutrasferramentascomooJMeter
(que possui asserts capazes de realizar este tipo de verificao), porm uma soluo no
substituiaoutra,poisaintenodoZabbixnoserumvalidadordeaplicativoswebesimum
verificadordefuncionalidadespontuaisdeURL.Eletambmnodeveserusadocomogeradorde
cargas para testes de performance. No entanto o Zabbix consegue armazenar o histrico de
resultadosonlineporumlongotempo.
ParacriarumnovocenrioacesseConfiguration Web.Natelaquesurgirvocver
queobotodecriaoestardesabilitado(Figura 4.48).Parahabilitloprecisoescolherum
grupoehostconformeabaixo:
2) Host:escolha Application,queohostinternodenossocenrioquepossuium
JBosseumApacheexecutandoaplicaes.
Aoescolherosdoisvaloresobotoserhabilitado.Issoaconteceporquenopossvel
colocarumcenriodentrodeumtemplate,apenasdentrodeumhost.Daanecessidadedese
escolherumhost.
CliquesobreCreatescenario,umanovajaneladecadastroirsurgir.
Captulo 4 Monitoramento voltado para disponibilidade - 165
Note que em lugar algum foi definido qual a URL que este cenrio vai acessar. Isso
porquepossveldefinirvriasURLsdentrodele,cadaumaumstep.CliquenobotoAdd
docampoStepsparacriarumnovopasso.
Captulo 4 Monitoramento voltado para disponibilidade - 166
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.
Captulo 4 Monitoramento voltado para disponibilidade - 168
Comovocpodever,acriaodeumcenriosimples,maspermiteumaflexibilidade
muitogrande.Vamosemseguidavercomorealizarumavalidaodeumformulrioweb.
4.5.2.Exerccios
1) Crieumactionparaostriggersqueocenriogerouefaaosseguintestestes:
1.1) PararoservidorApachenohostApplication.
1.2) PararoservidorApachenohostPresentation.
1.3) PararoservidorVarnishnohostPresentation.
1.4) MudaroHTMLdapginaprincipalparanoretornarastringesperada.
Captulo 4 Monitoramento voltado para disponibilidade - 169
4.6.Checandodisponibilidadeviaagentes
Asduassimplechecksicmppingesshqueusamoseocenriowebcriadonoutilizam
oagente,porissosodenominadasagentless.Issotilquandoosistemafinalnopermite
quesejainstaladooagenteporummotivoqualquereusaapenasprotocolosderedeparaavaliar
adisponibilidadedoobjetofinal.
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.
Figura 4.60: Copiando o item de ping de agente para o template do JBoss (2/2)
1) Target Type: esta parte um pouco confusa, pois antigamente o Zabbix no
diferenciavahostsetemplates(defatoeleainda fazpouca dissociao entre eles
algumasvezes).VocvaiescolherHost nestecampoparaquelogoabaixopossa
escolherostemplates.
2) Group:escolhaohostgroupTemplates.
3) Target:marqueotemplatedoJBosscomoindicado.
CliqueemCopyparafinalizaraoperao.Oitemagorafazpartedeambostemplates.
ConfirapeloOverviewsetodososhostsGnu/LinuxeWindow,almdoJBossclaro,estocom
esteitemfuncionando.
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.
Captulo 4 Monitoramento voltado para disponibilidade - 172
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.
Captulo 4 Monitoramento voltado para disponibilidade - 173
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.
Percebaqueambas,adependnciaeanovafuno,aparecemnalistadetriggers.
Vamosrealizarumtesteagora,parandooagentedozabbixsrv.
#/etc/init.d/zabbixagentstop
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
Tabela 9: Responsveis de cada host
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.
Captulo 4 Monitoramento voltado para disponibilidade - 176
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
Cadacomandoretornouumvalorinteiro,todosrepresentandoouptimedosistema.A
grandediferenaentreelesaprecisodetempoutilizada,oagentedoZabbixretornaovalorem
segundos,oZapcatemmilissegundoseoagenteSNMPemcentsimosdesegundos(queele
chamadetimeticks).
Noseincomodecomasadaemtextodevriosdessescomandos,oZabbixlidacom
osnmerosdestacadosemnegritoapenas.
configuraodecadaitem.PrimeirovamoscoletarodadodoagentedoZabbix.Notemplate
4LinuxS.O.Basecrieumnovoitemconformeaseguir.
2) Key:comousamosnocomandozabbix_get,achavesystem.uptime vaicoletaro
tempodefuncionamentodohost.
3) Units:estecampopermitequefaamosalgumaspersonalizaesnotratamentoda
sadadoitemnoOverviewegrficos.EmborasimilaraoValuesmapselemais
sofisticado,poisformataasadaconformenecessrioemvezdesimplesmentedar
umapelidoparaumatabeladevalores.Nestecasouseouptime.
4) Newapplication:definaumnovoapplicationparaositemsdesistema.
Salveefaaomesmoparaotemplate4LinuxJBossBasemascomasmodificaesa
seguir.
Captulo 4 Monitoramento voltado para disponibilidade - 178
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.
5) Key: invente uma key a seu gosto, ela s no pode conflitar com outras keys
criadasourepetirumakeyregistrada.Parapadronizarocurso,todasaschavesde
SNMPsodefinidascomosnmp.funo.Nesteexemploutilizamossnmp.uptime.
6) Units:repitaousadonoitemdoagente.
7) Usecustommultiplier:comooSNMP,retornaumvaloremcentsimosdesegundos
temosquemultipliclopor.01paraconverterparasegundos.
SalveoitemevatoOverview.
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
Captulo 4 Monitoramento voltado para disponibilidade - 180
impressoras,passandopornobreaks)suportamalgumaversodeSNMPhojeemdia.
4.7.1.Triggerparaalertadereinicializao
Avaliarseumhostfoireinicializadofcil.Devemosverificarseouptimedelemenor
queumvalorprestabelecido.Noentanto,reinicializaodeservidorespodenoumincidente
crtico,defato,normalmenteeleapenasumeventoplanejado(amenosquevocpossuauma
hardwarecomproblemassrios),porissoiremoscategorizlacomoumeventodeseveridade
warning(aviso).Noumerro,masaindaassimdignadeumaatenomaispontual.Vamoscriar
atriggerparao4LinuxS.O.Baseprimeiro.
2) Triggerdependson:coloquecomodependnciadestetriggerodaverificaodo
agente.Nohsentidoemtentaranalisarumamtricaquenoestasendorecebida.
Issoevitaqueelaapresentevaloresdesconhecidos.
Captulo 4 Monitoramento voltado para disponibilidade - 181
4.7.2.Exerccios
1) CrieastriggersparaostemplatesdoJBossedoSNMP.
2) Crieasdevidasactionsparaalertadereinicializaoenviandomensagensapenas
aosindivduosresponsveisporcadahost(consulteaTabela 9 napgina 175 para
detalhes).
4.8.Checandoserviospeloagente
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,
state:qualoestadodoprocesso.Podendoserall(padro),run,sleepouzombie
(esteltimosomenteemambientes*nix).
cmdline:filtrapelalinhadecomando.Issotilparaaplicaesquesempreiniciamo
mesmoprocesso,comoojava.
#psuax|grepsshi
root11610.00.35496988?Ss14:090:00/usr/sbin/sshd
root35940.21.183042868?Ss14:400:00sshd:root@pts/0
root36740.00.33316836pts/0S+14:410:00grepcolorssh
#psuCsshd
USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
root11610.00.25496624?Ss14:090:00/usr/sbin/sshd
root35940.00.883042204?Ss14:400:00sshd:root@pts/0
Guardeestaopodops,vocvaiprecisardelanofuturo.
Vamosusarozabbix_getparacoletarainformaodachaveagora.
#zabbix_getslocalhostk"proc.num[sshd]"
2
Achaveretornou2,queexatamenteonmerodeprocessosquecontamoscomops.
Comotesteconcludovamoscriaodoitemetrigger.Useotemplate4LinuxS.O.Linux.
Captulo 4 Monitoramento voltado para disponibilidade - 183
AFigura4.74ilustracomooitemparacontagemdeprocessodevesercriado,elebem
trivial.
NoOverview,jpodemosrastrearofuncionamentodacontagemdeprocessos.Note
Captulo 4 Monitoramento voltado para disponibilidade - 184
queonmerodeprocessosdohostZabbixServer estacom2porquehumaconexossh
ocorrendonele,nosoutrosapenasodaemon,aguardandoaconexo,estsendoexecutado.
Comosdadossendocoletadojpodemoscriarumtrigger.
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
trigger.
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.
Captulo 4 Monitoramento voltado para disponibilidade - 186
Apsacriaodoitem,verifiqueseacoletaestasendorealizada.Setudoestivercorreto,
horadepassarparaaverificaodasmudanasdestatus.Atomomentotemos3maneirasde
checaroservio:contandoosprocessosativosnamquina,checandoaportaremotamentepelo
servidordoZabbixe/ouchecandoaportalocalmentepeloagentedoZabbix.
Oprimeirotrigger(cadaumrepresentadopelolosango)oquecriamosanteriormente
paraverificarseh,aomenos,umprocessosshdsendoexecutado.Nocasodenohaver
nenhum,eledevealertaroadministradorresponsvelpeloservio.Notequeserealmentenoh
nenhumtipodeprocessodoserviosendoexecutado,entonohsentidoemverificarportas,
correto?
Essetipodecomportamentomuitocomumemserviosquesobaseadosemforks,
como o Apache, o prprio Zabbix, muitos daemons escritos em Perl, etc. Programas que
trabalhampuramentecomthreads,comoasaplicaesfeitasemjava,incluindoaquioTomcate
oJBosstemumprocessomonolticoenoseguemestaregra.
ComooterceiroschecadoseosegundoestivercomstatusOK,eesteltimoseo
primeiroestivercomstatusOK,oZabbixnogastaprocessamentocomostrsgatilhos,amenos
quetudoestejanamaisperfeitaordem.Seumdosprimriosfalharementoosoutrosnosero
executados.
Obviamentepodehavermuitomaistiposdeproblemas,quevoalmdacontagemde
processos e verificao de portas. Um binrio corrompido pode causar quedas de
conexeslegtimasalgunssegundosdepoisdeseremestabelecidaspeloservio,ou
aindaelepodesempreretornarumerronacaradoclientesemsaircompletamentedo
ar.Paraestescasoscontinueempilhandooutraschecagensapsverificarestastrs
quegeralmenteestosemprepertodabase.
Masvamoscontinuarcomnossaprticadirigidaecriarosdoistriggersquefaltam,pois
oprimeirojestaprontodesdeotpicoanterior.
Captulo 4 Monitoramento voltado para disponibilidade - 189
Deixarumamargementre10e5segundosnajaneladeumtriggerquedependede
outroumaboaprtica.
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.
Captulo 4 Monitoramento voltado para disponibilidade - 191
1) Nomedoservio:anoteonomedoservio!OZabbixprecisadeleparaconseguir
localizlonosistema.NonossocasoTlntSvr.
2) Tipodeinicializao:mudeparaautomtico.
DepoisdeterminarcliqueemOK,oserviovaientrarregistradomasaindanoiniciado.
ParainiciaruseabarradeferramentasnotopodatelacomoindicadonaFigura 4.85.
AgorapressioneCTRL+ALT+DEL,eabraoGerenciadordetarefas.
Captulo 4 Monitoramento voltado para disponibilidade - 192
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
Captulo 4 Monitoramento voltado para disponibilidade - 193
Notequeoresultadofoizero.Issoporquezerosignificarodando,experimentepausaro
servionoWindowseexecuteocomandonovamente.
#zabbix_getswin2003k'service_state[TlntSvr]'
1
Agoraretornou1.Sim,parececontraprodutivo,masestatabelafoibaseadaemnmeros
queaprpriaAPIdosistemaWindowsretorna.OsvalorespossveisestonaTabelaabaixo.
Valor Estado
0 Rodando
1 Pausado
2 Incio requisitado
3 Pausa requisitada
4 Continuao requisitada
5 Parada requisitada
6 Parado
7 Desconhecido
255 Servio no existe (no esta cadastrado
na lista de servios do Windows)
Table 10: Valores da key service_state
Mas isso ainda no suficiente. Temosque pedir ao Windows que libere a porta do
FirewallparaoacessoaoTelnet.Porpadrotodosostelnetsusamaporta23/TCP.Acesse
PaineldeControlesFirewallparaabriraspreferncias.
Captulo 4 Monitoramento voltado para disponibilidade - 194
1) Nome:onomedoservioapenasumlabelparaoFirewall.Definacomotelnet.
2) Nmerodaporta:coloque23.
3) OprotocolousadooTCP.
CliqueemOKparafinalizar.
Porfim,cliqueemOKnovamente.Paraaveriguarsetudoestacorretofaaumtestea
partirdoconsoledohostZabbixserver.
Captulo 4 Monitoramento voltado para disponibilidade - 196
#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.
Captulo 4 Monitoramento voltado para disponibilidade - 197
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.
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
2 #remotos.
3
4 #
========================================================================
5 #Liga/Desligaorecursodecomandosremotosdoagente.
6 #
7 #Estetipodefeaturevemdesligadaporpadrodevidoaoriscodesegurana
8 #queelapodeapresentarsemalconfigurada.
9 #
10 #NotequeousuriodoZabbixtemqueterdireitosdeexecuodocomandoem
Captulo 4 Monitoramento voltado para disponibilidade - 199
11 #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
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.
Captulo 4 Monitoramento voltado para disponibilidade - 200
#visudo
zabbixALL=NOPASSWD:/usr/init.d/sshrestart
Sejametdicoedefinaexatamentequaissoosparmetrospermitidosdentrodosudo,
principalmenteparascriptsdesistema.Noqueremosningumdandostopnossh
peloZabbix,acidentalmenteouno!
Crieumaactionparaconterocomandoremoto.
Nascondies,importantenotarquehtrsdelas.Umaindicaqueostatusdotrigger
deveserPROBLEM.
Captulo 4 Monitoramento voltado para disponibilidade - 201
VocnoquerqueoserviosejareiniciadoquandoogatilhovoltaraOK,certo?
Asoutrasduaspossibilidadessootriggerdeprocessooudechecagemlocaldeportas
seremativados.QualquerumdelesqueapresentarPROBLEMdisparaestaao.
Uma mensagem para os envolvidos com esse host deve ser enviada. E por fim o
comandoremoto,ativadoapartirdoquadroActionoperations.
Vocpodeusarmacrosnoscomandosepodeinvocarquantoscomandosvocquiser,
emquaisquerservidores,emqualquersequncia.
Agora vamos ao teste: v at o host no qual voc configurou o agente para aceitar
comandosremotosepareoserviodeSSH,emseguidaabraologeaguarde.
Captulo 4 Monitoramento voltado para disponibilidade - 202
#/etc/init.d/sshstop
#tail/var/log/zabbix/zabbix_agentd.logf
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
Estetpicoabordaapartedenetworkingemostracomomonitoraroquosaudvelsua
redeest.
4.9.1.Latnciaderede
Oprimeiropontoquevamosanalisarsoascausasdeindisponibilidadeporexcessode
trafegonarede.Notequemedirabandapodeajudaraidentificargargalosderede,masamtrica
maisindicadaparamedirlentidoalatnciaderede,quepodeestarbaixamesmoquandono
htrafego!Comosemprevamoscomearcomacriaodoitemdentrodotemplate4Linux
ICMP.
Captulo 4 Monitoramento voltado para disponibilidade - 203
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).
Captulo 4 Monitoramento voltado para disponibilidade - 204
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.
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.
Agrandediferenadestetemplateparaosanterioresousodamacro.Presteateno
no campo Expression, seu valor indica a frmula {HOST:ITEM.avg(60)}>{$LATENCIA}.
Podemosinserirquantasmacrosquisermosnaexpressodogatilho.
4.9.3.Nossoprimeirogrfico
Vamosagoracriarumgrficoqueirusarestetriggerparaexibirolimiardetestena
tela.OresultadosersimilaraodaFigura4.99.
Captulo 4 Monitoramento voltado para disponibilidade - 206
VatateladecriaodegrficosecliqueemCreateGraph.Sigaasinstruoabaixo
paraconstruirumgrficocomodemonstradoacima.
3) Graphtype:otipodegrfico,aquivamoscriarumNormalmaspodemosconstruir
grficos Stacked (empilhados), Pie (Pizza) e Exploded (pizza com valores
destacadosparaforadareadogrfico.NossoexemplousaSimple.
4) Showworkingtime:seativo,mostraumasombranoshorriosforadoWorkingtime
definidoemAdministrationGeneralWorkingtime.
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.
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.
Captulo 4 Monitoramento voltado para disponibilidade - 209
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.
Captulo 4 Monitoramento voltado para disponibilidade - 211
ComoexemploiremoscriarumaverificaodaraiznosGnu/Linux.Depoisestenderemos
o mesmo princpio ao Windows. Outro ponto que nos servidores sempre existem vrias
parties(aomenosnosbeminstalados),eporissotemosquetermltiplositemsparacobrir
todososcasosedeixarmargem,atravsdemacros,parapartiescomnomespersonalizados
peloadministrador.
Porfim,destavezteremosquecoletarvriasmtricas(aomenostrs)paracriaodos
grficosetriggers.Espaototal,usadoelivre.
Antesdecomearacriaritemsvamosdefinirumvalorlimiteparanossostriggerscomo
fizemos na latncia de rede. A utilizao dos espaos em disco pode variar muito entre os
servidores. Todas as nossas aes sero dentro do template 4Linux S.O. Linux. Comece
criandoamacroconformeabaixo.
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),
Captulo 4 Monitoramento voltado para disponibilidade - 212
pused (porcentagem utilizada) e pfree (porcentagem livre). Vamos usar apenas os trs
primeiros,comeandopelototal,conformeaseguir.
Oagentenoverificaseodiretriocolocadonoparmetroaraizdeumpontode
montagem.Nocasodenoser,elecontinuarobtendoovalordoespaodapartio
comoumtodo(pensenelecomoumdfaoinvsdeumcomandodu.
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.
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.
Captulo 4 Monitoramento voltado para disponibilidade - 215
Enquanto o grfico circular indicado para mostrar o ltimo status de vrios items
relacionados,proporcionalmenteeleocultaohistricodoespaoocupado.Porissoprecisamos
criar,tambm,umgrficosimples.Oprocedimentosimilaraoanterioreresultarnogrficoda
Figura4.111.
Seudiferencialquevamosusarumlimitesuperioraoinvsdeumlimitecalculado.Para
indicarotopodogrficovamosapontarparaoespaototaldapartioobtidoatravsdeumitem.
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.
Noteque,vocpoderiausaropusedparapegaraporcentagemutilizadaaoinvs
destafrmula,masissoacrescentamaisumitemnomonitoramento.Almdomais
esteumexemplobemdidticoparaexpressesmaiscomplexas.
NocasodenossocenrioaexpressocompletaapresentadanaFigura4.113ecalcula
exatamentequantosporcentosdeusodapartioapresenta.
Captulo 4 Monitoramento voltado para disponibilidade - 217
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 e os triggers.
Deixetodasestasmtricasegatilhoscomodisabledporpadro!Elasdependemda
instalaodeGnu/Linux.Emsalarepliqueaomenosuma,asoutraspodemserfeitas
emcasa.
2) CrieasmesmasmtricasparaoWindows,mascomaspartiesdeC:atG:.Em
salacrieaomenosuma,asoutraspodemserfeitasemcasa.
Captulo 4 Monitoramento voltado para disponibilidade - 218
4.11.Scriptsexternos
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
Captulo 4 Monitoramento voltado para disponibilidade - 219
usuriozabbixdeveestaremumalinha(assimpodemosacessarmltiplosbancosdedados).
Oformatodaslinhasdestearquivoseguemasintaxe:
hostname:porta:basededados:usurio:senha
Enonossocasovamosacessarobancoprincipaldosistemapostgres,logoovalorfinal
serlocalhost:5432:postgres:zabbix:zabbixdb.Osseguintescomandoscriamoarquivo,ajustam
suapermissoefazemotestelocal.
#suzabbix
$echo"localhost:5432:postgres:zabbix:zabbixpwd">.pgpass
$chmod0400.pgpass
$psqlhlocalhostUzabbixpostgrescSELECT1;
1
$logout
Apermissodoarquivo.pgpassdeveser0600ou0400eodonodoarquivodeveser
ousuriozabbix.
Aindatemosquecriarousuriozabbixdentrodobancocomasenhazabbixpwd.
#supostgres
$psqlpostgres
postgres#CREATEROLEzabbixLOGIN;
postgres#\passwdzabbix
Digitenovasenha:zabbixpwd
Digiteanovamente:zabbixpwd
postgres#\q
Agora vamos criar um arquivo para conter as configuraes do script. Ele vai conter
apenas uma varivel por enquanto. Mais a frente vamos colocar outros valores aqui para o
conjuntodescriptsdoPostgreSQL.
#vim/etc/zabbix/pgaccess.conf
1 HOST=localhost
Captulo 4 Monitoramento voltado para disponibilidade - 220
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"
4 CONF=$BASE/pgaccess.conf
5 QUERY_PING="SELECT1;"
6 ERROR_LOG=/var/log/zabbix/pgsql_ping.error
7
8 functionshowerror{
9 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
Captulo 4 Monitoramento voltado para disponibilidade - 221
28 showerror
29 echo$PING_FAIL
30 fi
31 fi
32
33 exit0
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:
#cat/etc/zabbix/agent.d/pgsql_checks.conf
1 UserParameter=pgsql.ping,/etc/zabbix/externalscripts/pgsql_ping.sh
Captulo 4 Monitoramento voltado para disponibilidade - 222
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
#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.
Captulo 4 Monitoramento voltado para disponibilidade - 223
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
4 CONF=$BASE/internet_perf.links
5 BC=$(whichbc)
6
7 functionshowerror{
8 echoe"Checklinkerror:$1"1>&2
9 }
Captulo 4 Monitoramento voltado para disponibilidade - 224
10
11 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
Captulo 4 Monitoramento voltado para disponibilidade - 225
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).
#vim/etc/zabbix/internet_perf.links
1 www.google.com
2 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).
Captulo 4 Monitoramento voltado para disponibilidade - 226
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.
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.