Você está na página 1de 9
Como aumentar a disponibilidade de Sua rede com o Zabbix Parte 1 ‘Aprenda a monitorar sua rede com o Zabbix e seja avisado antes que os problemas paralisem seus servicos. Ney wr econ Seu Er ELC ray PR sig dministrar uma rede € uma tarefa que exige uma equipe de profissionais com diferentes caracteristicas, tais habilida- des vio desde alguém que possa lidar com switches, roteadores, entre outros elementos de conectividade, até alguém com um perfil de definigao de politicas, planejamento, elaboragio de regras ¢ procedimentos, Em comum, todos esses profissionais tém a necessidade de encon- ‘rar mecanismos que reduzam 0 tempo de indisponibilidade dos servigos ao menor nivel possivel e apoiar suas decisbes em dados historicos/estatisticos coletados de sua rede. Uma das maneiras de aumentar a dis- ponibilidade dos servigos ¢ atuar de forma proativa na resolugio de problemas, mas como fazé-lo, na correria do dia-a-dia, para checar se determinada méquina estd com Modem 01 101.1. ‘ets vratensise 17216145190 17216145131 > Fl, Censtioproposto 2009 # 86 # a ee poues espaco em disco disponivel, ou para descobrir 0 excesso de processamento em um servidor durante a madrugada, antes ‘que esses problemas gerema indisponibili- dadede algum servico econsequentemente diversas reclamagies de usuétios? Para resolver esse tipo de problema € que lancamos mao das ferramentas de ‘monitoramento, que podem nos alertar via e-mail ou mensagem SMS sempre que algo em nossa rede estiver fora dos parimetros definidos como normais ou seguros. Uma das mais difundidas ferra- mentasnesse nicho de atuacio €0 Nagios (brep://www.nagios.org), um software livre de sucesso e que hoje pode ser en- contrado monitorando diversas redes de ‘grande porte a0 redor do mundo, ‘© Nagios nao resolve todos os nossos problemas de monitoramento, jé que nao pos permite coletar estatsticas historicas ‘eexibi-las de uma maneira de ficil enten- (figura 3). Apds a descompactaao € antes de seguir com a compilagio do programa, precisamos nos assegurar que algumas dependéncias estio satisfeitas A primeia das dependéncias diz res- peito a0 compilador gcc, que nio vem por padrio na instalacao basica do Debian, ‘esse caso, a melhor opgio ¢ inscalar 0 pacote build-essential (figura 4) que além do compilador gec, traz algumas outras bibliotecas e comandos muito utilizados durante a compilacéo de programas. ‘A segunda dependéncia se refere a algumas bibliotecas de desenvolvimento para acesso a0 SGBD, para utilizagio do protocolo SNMP ¢ para lidar com proco- colos Web. Em nosso cenério, o daemon serdinstalado no mesmo servidor que nosso SGBD e nesse caso as biblioteca clientes do Banco de datos jé estario presentes. Mas «<2s0 0 banco de dados ainda nao esteja instalado, isso poders ser feito com com 0 \q ldserver:/usr/srea lbserver: /usr/src# ca /usr/src/2abbix-1-6.2/create/schena server: /usr/src/zabbix-1.6,2/create/schena# cat postgresql.sql | psql -U zabbix -h lot host zabbix SSenha para usuario zabbix: ROTA: “CREATE TABLE 7 PRIOARY KEY criard indice implicito “slideshows pkey" na tabela *s) hdeshows" TE TABLE 7A: CREATE TABLE / PRIMARY KEY criard indice implicito “slides pkey” na tabela “slides -REATE TABLE aTE INDEX TA: CREATE TABLE / PRIMARY KEY criard indice implicito “rules pkey" na tabela “drutes, REATE TABLE NOTA: CREATE TABLE / PRIMARY KEY criard indice inplicito "dchecks_pkey* na tabela “échec REATE TABLE TA: CREATE TABLE / PRIMARY KEY criaré indice inplicito “dhosts pkey" na tabela “dhosts REATE TABLE 7k: CREATE TABLE / PRIMARY KEY criaré indice F10. Getto spt SL Licito “dservices_pke "na tabela “dee super user can access the database using sone other method: Noninteractive access to all databases is required during aut autovacuum, daily cronjob, atic maintenance feplication, and sinilar tasks & Database administrative login by UNIK sockets hocat alt postores ident saneuser TYPE DATABASE USER cHOR-ADORESS erHoo Local" is for Unix dosain socket connections only cal all aut ident saneuser Teva Local connections TPVS Local. connections: att UL CONNECTIONS AND AUTHENTICATION Connection Settings # what IP address(es) to Listen on; # conna separated list of addresses, # defaults to "localhost, =" = all # 85 # 2009 a5). As bibliotecas de desenvolvimento, por sua vez, podem ser obtidas com 0 co- ‘mando apt-get install ibpq-devlibsnmp9-dev libcur3-dev (Figura 6). Uma vez sanadas as dependéncias, vamos partir para a instalagio de nosso servidor Zabbix passo-a-passo, vejamos: Passo 1: Criago do usuario zabbix no sistema operacional (50). Todo proceso no Linux é execurado sob os privilégios de um dos usuarios da maquina. Para evitar que Zabbix seja executado como root ou outro usuério privilegiado, uma vez que isso represen- taria um risco A seguranga, vamos criar um usuério comum chamado zabbix ex- clusivamence para essa funsio. Conforme apresentado na figura 7. Passo 2: Criagdo do ususrio zabbix no PostgreSQL. Além do usuério de SO que criamos ‘no passo anterior, seré necessario também criar um usuario no SGBD, com o qual 0 servidor Zabbix far conexes a0 banco de dados. Para isso utilize © comando su ~ postares, para se transformar no usuério administrador de banco, e em seguida execute © comando createuser ~createdd ~encrypted ~pwprompt zabbix como exibi: do na figura 8, respondendo as questées como solicitado e execute 0 comando exit para voltar a0 usudtio root. Passo 3: Criago da base de dados. Os fontes do Zabbix vém acompa- nhados de scripts SQL para a criacio da estrutura do banco de dados. Para executar esses scripts, primeiramente precisamos criar a base de dados propria- mente dita, sendo assim, acesse 0 SGBD com 0 comando psql-U zabbix-h localhost template, utilize a senha criada no passo anterior quando solicitada, crie o banco de dados com 0 comando create database zabbix; (figura 9) e saia da console com © comando \q. No diretério criado com a descompac- tasdo dos fontes, existe um subdiretério chamado create ¢ dentro dele um outro chamado schema, acesse-o com o coman- do cd /ust/stc/zabbix-.6.2/create/schema e ‘em seguida utilize © comando cat post- 9resql.sql| psal-U zabbix--h localhost zabbix ara executar o primeito script SQL no PostgreSQL (figura 10). Resta agora po- pularo banco com alguns dados iniciais, Servet igusr(s°e/20048"2 o que é feito acessando 0 subdiretério data checking for s B5p-conpatible install... /usr/bin/instatl -« (ch festa 82)ereaefia), exe | SEM ee tee Bn cutando em seguida os dois scripts para hecking for mavk.-- nak [tccting wether ae sets ste)... yes postgres mele presenes, cat mages.pgsal. | Emctittete, ets, sql | psql-U zabbix -h localhost zabbix e cat [ehecking whether make sets ${MAKE)... (cached) yes ata sal | sal -U zabbix-h localhost zabbix, _2ekina Pulls syste ye. 168 pn ge cling for ovens 8 Passo 4: Configurando permissGes _Eectint steter te center worse. yes nn de conexdo ao SGBD. icecking ae reel capt ting, 70 © PostgreSQL no Debian Linux vem [jecking for sufix of abject fe... configurado para permitir apenas conexdes locais, entretanto, em nosso caso teremos a 13. Compilando programa console Web em um segundo servidor, en- tao serd necessrio possibilitar conexdes de méguinas remotase para isso precisamos alterar dois arquivos de configurasio: * Edite arquivo /etc/postgresal/8.1/ main/pa-hba.conf, que contém as 24 /configure ~-enable-server —-with-pgsql --with-net-somp server: /usr/src/zabbix-1.0,28 wake install king install in sre 1]: ENtrando no diretério */usr/sre/zabbix-1.6.2/src dng install in Libs Ke(a]: Entrando no dicetério °/usr/sre/zabbix-1.6.2/src/Libs" king install in zbxcrypto ke( 3]: Entrando no diret6rio °/usr/sre/zabbix-1.6.2/sre/Libs/zbxcrypto" regras de conexio ao banco, lo- lif gcc -DHAVE CONFIG H -I. -I. -I../../../incle 9-02 -L/usr/include/poste cc ne ar/include/postoresal calize a linha incitulada IPv4 local I. -T/usr/include a ‘nd5.0 -MD -MP -MF eps mts. Tpo” -¢ -0 nd5.0 mdS.c; \ then nv of ssdeps/ads. 190" *-depe/mdS-Po"; else fm sf ".Geps/ads.Tpor; exit 1: fi connections ¢ altere o enderego IP if gce -DHAVE CONFIG H -I. -I. -I../../../include -9 -02 —-I/usr/include/postgresql | de localhost (127.0.0.1/32) para qual- 1, SMUsi7inctude AT basebe.o "WO ¥ “RE *.deps/baseb4Tpo" “co asest.o base foes \ quer enderego, conforme mostra ‘then av -f ".deps/base64.Tpo" *.deps/baset4.Po"; else m -f *.deps/base64.tp0"; «| a figura 11. Isto fard com que 0 tay fh SGBD aceite conexdes a partir de 14: Segundo/passo da compl => qualquer enderego IP; + Edite 0 arquivo /ete/postaresal/8.1/ main/postgresq.con, localize o paré- metro lsten_addresses, descomente € altere seu valor de'ocalhost’ para" conforme ilustra a figura 12. Com |p ostatase none teen configurayao © PostgreSQL. | S¥s% rote path to catatose file mst be provided. otiser and Eeassiore are atenderd conexdes recebidas em —_atane=zabbix todas as interfaces da méquina. Uma ver alterados os arquivos de con- figuracio, basta reiniciar 0 PostgreSQL. com 0 comando /etc/init.d/postaresal8.1 | 0stabase password restart para que os novos valores entrem _f “**e"" S185 Vine Af ne password wes Database host nane Default is localhost hoatost=locattost Jp vatanase user user=zabbix em vigor. erassvord=teste annec, to MyS0L using Unix socket? Passo 5: Compilando o programa. _yete/zabiavzobbix server conf= 152, 3627¢ written ‘Com a base de dados criada podemos __F15.Configurarao do daemon finalmence compilar 0 programa, para isso acesse o diretério-base dos fontes, em nosso caso /ust/src/2abbix-.6.2 (cd fusr/src/zabbix-1.6.2), execute 0 comando ‘Zabbix daemon start/stop script. configure -enable-server ~with-pgsal -with- net-snmp ~with-libcurl (figura 13), seguido do comando make install (figura 14). uvcezabbbe server y Alexet Vladishey ‘ete/re2.4/s2ezabbix-server “> ‘ete/re3.a/S26zabbix-server “> ‘fete/rea.d/S2bzabbix server > (feterres.a/S20zabbix-server “> nit. 8/2abbbe server Pini d/2abbbe server Naanit arzabobe server ‘apt-get install phe5 phe5-pgsal php5-95 ido Lista de pacotes... Pronto onstruindo drvore de dependéncias... Pronto pacotes extra a seguir sero instalados: ‘apache2-spn-prefork defona fontconfig-contig Libapache2-mod- php Libfontconfigi Libfreetypes Libgd2-xpm Libjpegé2 Libpngi2-0 LibtL-s Libxifys Libxii-data Libxave Uibxdacpé Libxal2 Libxpad phpS-comon ttf-dejavu x11-comnon Pacotes sugeridos: defona-doc psfontagr x-ttcidfont-cont dfontagr php-pear Libfreetypes-dev Libgd-toots Pacotes reconendados: Ubft-pert-xal-core (0s pacotes a seguir serdo REMOVIDOS: ‘apache2-apa-worker jos NOVOS pacotes a seguir serdo instalados: ‘apache2-ape-prefork defona fontconfig-contig Libapache2-nod-php5 Lbfontconfigh Libfreetypes Libgd2-xpe Libjpegs2 tibpngl2-0 Ubt1-5 Libxi1-6 Libx1l-data Libsau6 Libsdacp6 Libxml2 Libsped php phpS-common php5-od phpS-pgsql ttf-dejavu x11-common pacotes atualizados, 22 pacotes novos instal: Resource Linits feox execution tine = 300; Maximum execution tine of each script, in seconds jaar input ‘ine = 68 ; Maximum’ anount of tine each script aay spend parsing reque ist data jnenory limit = 126 +; Maximum asount of memory a script may consume (16H8) Logging BF i 19. Coniurando o tempo maximo de xecxsio. > Exanple Lines: lextension=nysql.so lextension=gd.s0 jextension=snmp. so Nodule settings” | lsate.tinezone = etc/cates "/etc/php5/apache2/php.ini* 1200L, 42313¢ written rezone used by the date functions rages tém que ser feitas manualmente por nés. A primeira delas se refere & configuragao bisica do daemon, mas felizmente podemos utilizar a confi guracio-exemplo que acompanha os fontes como ponto de partida, para isso crie 0 diretério /etc/zabbix (mkdie Jetc/zabbix), copie o arquivo de exem- plo (cp /ust/src/zabbix-1.6.2/mise/cont/ zabbix_server.conf /etc/zabbix/) para 0 diretério recém criado e entao altere os seguintes pardmetros com um editor de textos (Figura 15): * LogFile=/var/log/zabbix/zabbix.ser verslog: altera a localizagio do arquivo de log. Para que essa configuracao funcione, € neces- sitio criar 0 diretério /var/log/za- bbix (mkdir /var/log/zabbix) © em seguida tornar 0 ususrio zabbix seu dono (chown zabbix.zabbix /vat/log/zabbix); + DBUser=zabbix: informe o usuario de conexdo a0 banco de dados criado no passo 2; * DBPasswordeteste: informe a senha do usuario do banco de dados; Nesse ponto o servidor Zabbix esta pronto para ser executado, entretanco gostariamos que essa execusio ocorres- se sempre que méquina fosse iniciada. Para isso precisamos eriar um script de inicializagio € mais uma ver podemos utilizar um exemplo presente nos fontes do daemon, basta copiar o arquivo /ust/ stc/zabbix1.6.2/misc/init.d/debian/zabbix- server para o diretério /etc/init.d/ (cp /ust/st¢/2abbin-1.6.2/misc/init.d/debian/ zabbix-server /etc/init.d/), editar e alterar duas variéveis do script para os seguintes valores PATH=/bin:/ust/bin:/sbin:/ust/sbin:/ home/zabbix/bin:/usr/local/sbin/ DAEMON=/usr/local/sbin/SINAME); De forma que elas apontem para as localizagoes corretas dos bindtios insta- lados (figura 16) Acesse 0 diretério dos scripts de icializagao do Debian (cd /etc/init.4), ‘execute 0 comando update-re.d zabblx- server defaults como indicado na figura 17, informando ao Debian que o seript do Zabbix deve ser executado durante a ializagio da maquina, e finalmente icie 0 servigo com © comando /etinit. d/zabbix-server start. » eae =a 22, Termos de cenga. oo emer z = a7} =a ra} £26, Aruivo de configurrio geroc cretamente. 2009 # 86 # Passo 7: Preparando 0 servidor Web. O console Web do Zabbix foi escrito na linguagem PHP, em nosso cendtio ele sera instalado no servidor Web que ji possuimos ‘na empresa, mas caso 0 seu servidor Apache ‘go estejainstalado ainda, basta executar 0 comando apt-get install apache2. Para que ‘© console possa ser executado, precisamos nos certificar de que algumas dependéncias do PHP sejam satiseitas, o que pode ser solucionado com 0 comando apt-get install hp5 php5-pgsql phps-ad (figura 18). ‘Uma vez satisfeitas as dependéncias, al sgumas alteragdes devem ser feitas no arquivo de configuracdo do PHP para que o console poss ser executado correcamente, sio eas: + max_executon time =300: indica tem- pomdximo que um scripe PHP podese manter em execusio (Figura 19); * memory.limit= 128M: indica a quan- tidade maxima de meméria que um scripe PHP pode consumir; * date timezone = Etc/GMT+3: indica 0 Faso horéro padeo ser urilizado pelos scriptsem PHP, nessecaso adotamos 0 horitio de Braslia (gura 20); * extension=gd.so: esse parimetro deve ‘star presente para que a biblioteca agrifica GD (http://wwwalibgd.org) ppossa ser acessada pelos scitps. Feito isso, basta reiniciar o apache para que as alteragoes entrem em funciona- ‘mento (/ete/init.d/apache? restart) fo] 27. Tela de login do seu sever Zab mY er ses seen ee ‘rte pe obit eed nnn] amare sre sera at nd Passo 8: Instalando © Console, console Zabbix vem junto com os fontes do servidor e Ficam localiza dos dentro do subdiretério frontends/ php (/ust/src/2abbix-1.6.2/frontends/php em nosso caso). Para iniciar a insca- lagdo do console erie um diretério chamado 2abbix na raiz do servidor web, em nosso caso /var/mww (mkdir /var/www/zabbix), em seguida copie todo 0 conteiido da pasta frontends/ php para ele. Uma ver eferuada a cépia, todo 0 restante do processo pode ser feito via browser. Basta apontar o navegador para ‘o enderego de seu servidor Web seguido de /zabbix, como podemos observar na figura 21, ¢ seguir as instrugdes da tela A primeiro texto exibido pelo insea- lador é uma mensagem de boas-vindas, clique no botio “Nexe” para continuar em seguida o instalador exibe a licen- 5a GPL (General Public License) para que a aceitemos, o que garante que 0 Zabbix & um software livre legitimo (figura 22), basta entio selecionar © box “I Agree” e pressionar o botio “Next”, Na sequéncia o instalador faz uma verificagao das configuragées do PHP, mas como nesse ponto nds jd checamos todos os pré-requisitos da ferramenta, o resultado deve ser semelhante ao apresentado na figura 23, entao basta clicar no botio “Next” ‘Apés as checagens iniciais, 0 ins- talador entio solicita os dados para conexio ao banco de dados. No campo “Type” vamos selecionar PostgreSQL, no campo “Hest” inserimos 0 endereso IP de nosso servidor de banco de dados, no campo “Name” 0 nome da base de dados criada no passo 3, nos campos “User” e “Password” inserimos 0 usuario € a senha de banco criados no passo 2 respectivamente. Feito isso basta clicar no botdo “Test connection” ¢ 0 resultado deve ser semelhante ao da figura 24. Em caso positivo, basta clicar entio no botdo “Next”. Feita a configuracio de acesso 20 banco de dados o instalador solicita 0 enderego IP de nosso servidor Zabbix, «em nosso caso 0 endereso é 0 mesmo do preciso fazer 0 download de 119KE de arquivos 5 de deseapacotar, 352KB adicionais de espaco en disco sero usados endo: NUtp://Ttp. br debian.org eteh/eain zaboix-agent 1:1-1.4-1oetchi (11548) ixados 115K6 on 35 (37,1K8/5) ré-configurando pacotes leclonando pacote previanente nao selecionado zabbix-agent. endo banco de dados .-.. 26583 arquivos e diretérios stualnente instalados.) conpactando zabbix-agent (de «../zabbix-agent_183a1.1.4-lOetchl 1386. deb) Hrstelondo. zabbix-agent.(1.1.4-10etch1) reating contig file /etc/zabbix/zabbix_agentd.cont with new version reating contig file /etc/zabbix/zabbix_agent.conf with new version Starting zatbix agent: zabbix agent 5 £23, stale o agente de montoramento [Bigave dtr ube pimeice Favortes_Eerementes Aude GBockmerss a) 2.9208 mamma Ta) ae dllnnaSsninaniennie aaa Dea 7ABBIX ry a eeneeneeEee ER 2.919 O08 [eimenranienaniaiieioe G1) scasaeeedensieateninenAtiaeniEMainion=sonenl io eS ee ccna Came a one nees ser ravages toa eahntoine) 3a Wiia servidor de banco de dados (Figura 25), basta preencher e entio clicar no borio “Next”. A tela seguinte exibe um sumé- tio das configuragées, basta pressionar “Next” para que finalmente 0 arquivo de configuragao do console seja gerado (figura 26), clique em “Next” seguido do botio “Finish” e seremos direciona- dos para a tela de login da ferramenta (Figura 27). Monitorando a primeira maquina Para acessar 0 console de adminis- tragio utilize 0 usudrio “Admin” ¢ a senha defaule “zabbix’, assim seremos direcionados a uma tela informando que 0 login foi bem sucedido. Em se- guida clique no link “Monitoring” para acessarmos 0 painel de monitoramento, que € um recurso novo da série v1.6 (Figura 28) ‘A primeira maquina que iremos monitorar ser4 0 préprio servidor onde 0 Zabbix esté instalado, pois ele também é nosso servidor de banco de dados. Para isso ainda falta instalar © tiltimo elemento da infraestrucura de monitoramento: 0 agente de mo- Acesse o servidor Zabbix ¢ instale 0 agente com o comando apt-get install za bbixagent (Figura 29). Feito isso, aces- se novamente 0 console Web, clique em “Configuration”, em seguida clique em “Hosts” ¢ ative 0 monitoramento do Zabbix server clicando em seu status ("Not Monitored” - figura 30), agora basta acessar novamente 0 painel de monitoramento para conferirmos os primeiros alertas (Figura 31) Conclusao © Zabbix é uma ferramenta extre- ‘mamente poderosa e apesar de atuar em. nicho de mercado bastante disputado, cle nao fica nada a dever frente a seus concortentes, tornando-se uma excelente opgio a ser considerada e com custo 2er0 em termos de licenga de software. Esta foi aparte inicial dessa pequena série, na préxima parte aprenderemos a instalar os agentes para maquinas Windows, a mo- nigorar equipamentos via SNMP, eriar grificos e regras entre outros truques... Nao perca! Pc 2009 # 86 # PC&CIA ees » 2009 # 86 # PC&CIA

Você também pode gostar