Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Instalação Do Servidor Zabbix
Apostila Instalação Do Servidor Zabbix
OBJETIVOS Instalar o servidor Zabbix Instalar o banco de dados. Conguraes iniciais do servidor. Instalar o agente Zabbix. Congurar o agente para enviar informaes ao servidor. Preparar o servidor Apache Congurar o FrontEnd
# cd / usr / src # wget -c http :// downloads . sourceforge . net / project / zabbix / ZABBIX %20 Latest %20 Stable /2.0.5/ zabbix -2.0.5. tar . gz 3 # tar xf zabbix -2.0.5. tar . gz
4Linux - www.4linux.com.br armazenar conguraes, hosts, templates, histrico, etc. Por isso precisamos selecionar um dos bancos nativos ou usar ODBC (este ltimo no 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 instalaes de Zabbix estar em MySQL recomendamos fortemente que seja usado o PostgreSQL pois sua robustez se mostrou mais adequada aos tipos de dados que o Zabbix manipula. Embora no parea a princpio, o banco de dados do Zabbix de extrema valia para a empresa, pois ele contm todo o histrico de funcionamento de sua infraestrutura e atravs dele podemos coletar SLAs e informaes de capacity plan. recomendado tambm que seu banco de dados possua um plano de backups regular via PITR Point in Time Recovery.
3.2 Instalao
Para instalar a verso do repositrio do PostgreSQL: No repositrio ocial do Debian o PostgreSQL encontra-se na verso 8.4, como no curso usaremos a verso 9.1, temos que adicionar o repositrio backports.
1 2 3 4
# vim / etc / apt / sources . list deb http :// www . backports . com / debian squeeze - backports main # aptitude update # aptitude install postgresql -9.1
10
4Linux - www.4linux.com.br
Muitas documentaes e at o prprio arquivo padro de congurao do zabbix server utiliza o nome do banco como zabbix, mas isso pode causar algumas confuses entre ele e o nome do usurio, foi por isso que optamos pela conveno acima.
Somente o superusurio do PostgreSQL, chamado postgres tem permisso de realizar a criao dos objetos citados acima, logo, para podermos acessar o terminal de console do banco (psql) temos que entrar como usurio postgres no Gnu/Linux e ento usar o comando correto. Note que o prompt de comando ir se alterar indicando que estamos no console do PostgreSQL.
1 2 3 4 5 6
# su - postgres $ psql psql (9.1.7) Digite " help " para ajuda . postgres =#
Agora que conseguimos o acesso como superusurio, vamos primeiro criar o banco de dados. O comando create database ir cuidar desta tarefa. Note que todos os comandos digitados dentro deste console terminam com ponto-e-vrgula (;).
Com o banco de dados criado com sucesso vamos criar o usurio e denir sua senha. Para propsito de organizao deste material a senha do banco de dados do zabbix ser zabbix. Ao digitar a senha note que ela no aparece como no quadro de comando abaixo Este apenas um demonstrativo didtico.
1 2 3 4 5 6 7
postgres =# CREATE ROLE zabbix LOGIN ; postgres =# \ password zabbix Digite nova senha : zabbixdbpw Digite -a novamente : zabbixdbpw
11
4Linux - www.4linux.com.br
interessante denir a senha por password pois assim ela no ca armazenada no histrico de comandos do usurio. Agora precisamos liberar a conexo do servidor ao banco de dados do zabbix, para isso edite o arquivo pg_hba.conf conforme abaixo e acrescente a linha em destaque.
1 2 3 4 5 6
postgres =# \q $ logout # vim / etc / postgresql /9.1/ main / pg_hba . conf host host zabbixdb zabbixdb zabbix zabbix 127.0.0.1/32 ::1/128 md5 md5
Outro ponto importante que merece ateno o IP no qual o PostgreSQL est fazendo binding ports. Reinicie o banco de dados e realize o teste de conexo.
1
1 2 3 4 5
# psql -h localhost -U zabbix -d zabbixdb psql (9.1.7) Digite " help " para ajuda . zabbixdb => \q
Se voc estiver usando a verso 9.0 ou superior do PostgreSQL e um Zabbix abaixo da verso 1.8.6 importante lembrar que o suporte a imagens do Zabbix assume que o banco utiliza a forma antiga de armazenamento bytea (escape em vez de hex). Para congurar o comportamento antigo use o comando ALTER DATABASE zabbixdb SET bytea_output=escape; dentro do console do psql. Isso pode ser congurado no usurio ou no postgresql.conf tambm.
12
4Linux - www.4linux.com.br
1 2
Agora vamos fazer a carga inicial do banco carregando os esquemas, os dados mais bsicos.
1 2 3 4 5
# $ $ $ $
su - postgres cd / usr / src / zabbix -2.0.5/ database / postgresql cat schema . sql | psql zabbix cat images . sql | psql zabbix cat data . sql | psql zabbix
$ psql zabbix zabbixdb => GRANT SELECT , UPDATE , DELETE , INSERT ON ALL TABLES IN SCHEMA public TO zabbix ; 3 zabbixdb = >\ q 4 $logout
Opcionalmente, se voc estiver usando um postgresql anterior a verso 9.0 o procedimento um pouco mais complexo.
1 2 3 4 5
$ psql zabbixdb postgres =# \t postgres =# \a postgres =# \o / tmp / grantzabbix . sql postgres =# SELECT GRANT SELECT , UPDATE , DELETE , INSERT ON schemaname || . || 6 relname || TO zabbix ; FROM pg \ _stat \ _user \ _tables ; 7 postgres =# \o 8 postgres =# \i / tmp / grantzabbix . sql
||
13
4Linux - www.4linux.com.br
9 10
postgres =# \q $ logout
1) O comando \a remove o alinhamento dos elementos na tabela; 2) O \t mostra apenas tuplas, eliminando cabealhos e rodaps; 3) O comando \o grava o output no arquivo denido (/tmp/grantzabbix.sql). Note que preciso de outro \o sem o nome do arquivo para encerrar o output; 4) Este comando em SQL seleciona todas as tabelas do banco de dados e monta uma string com o comando de permisso (GRANT), voc pode ver o contedo deste comando no arquivo /tmp/grantzabbix.sql; 5) O comando \i carrega e executa o contedo do arquivo gerado acima.
# aptitude install build - essential make pkg - config openjdk -6 - jdk # cd / usr / src / zabbix -2.0.5 # ./ configure -- help | less
14
4Linux - www.4linux.com.br mentas para facilitar a compilao de fontes em C. A opo help fornecida acima ir listar todas as opes que podemos ativar ou no para compilar o Zabbix. Note que o congure no compila nada ele apenas prepara a cama para realizar a compilao com o make. Na tabela a seguir esto as opes relevantes do congure para a nossa tarefa. Opo do congure
15
4Linux - www.4linux.com.br
Tabela 3.1: Opes de compilao Descrio Ativa a compilao do servidor. No caso presente iremos ativar esta opo, quando formos compilar apenas o agente iremos desabilit-la. - -enable-proxy Compila os binrios para sistemas distribudos. Como neste curso no abordaremos o sistema de proxy, vamos deixar essa opo desabilitada. - -enable-agent Compila os binrioss para os agentes. uma excelente idia sempre deixar esta opo ativada. Mesmo em servidores dedicados do Zabbix uma boa prtica monitorar a prpria mquina. - -enable-ipv6 Compila suporte a IPV6. Embora no seja absolutamente necessrio , dado o esgotamento de endereos IP da IANA, o 6 logo ser necessrio. - -enable-static Ativa a gerao de binrios de forma esttica. recomendado deixar esta opo desligada. - -with-ibm-db2 Ativa o suporte do banco de dados IBM-DB2. Vamos deixar desabilitado uma vez que usaremos o PostreSQL. - -with-mysql Ativa o suporte do banco de dados mysql. Vamos deixar desabilitado uma vez que usaremos o PostreSQL. - -with-oracle Ativa o suporte do banco de dados oracle. Vamos deixar desabilitado uma vez que usaremos o PostreSQL. - -with-postgres Ativa o suporte do banco de dados PostgreSQL. - -with-jabber Ativa suporte a servidores Jabber permitindo que o Zabbix envie alertas atravs deste servio de mensagens instantneas. - -with-odbc Ativa o suporte do banco de dados odbc. Vamos deixar desabilitado uma vez que usaremos o PostreSQL. - -with-net-snmp Ativa suporte a monitoramente vai SNMP usando a biblioteca net-snmp do unix. - -with-ucd-snmp Ativa suporte a monitoramente vai SNMP usando a biblioteca ucd. - -with-ssh2 Ativa suporte a monitoramente vai SSH e vericao de status de um servio de conexo remota segura. - -with-openipmi Ativa suporte a comandos de monitoramento de hardware por IPMI. - -with-ldap Ativa suporte a autenticao via LDAP e vericao de status de um servio de diretrios remotos . - -prex=diretrio Dene localicao da instalao do Zabbix. - -mandir=/usr/share/man Aponta a localizao correta da pgina de manual, assim podemos usar o comando man para acessar as opes dos binrios do Zabbix. Opes do congure - -enable-server Monitoramento de Redes com o Zabbix 2.0.X 16
4Linux - www.4linux.com.br
./ configure -- prefix =/ opt / zabbix -2.0.5 -- mandir =/ usr / share / man -enable - server 2 -- enable - proxy -- enable - agent -- enable - ipv6 -- with - postgresql -- with - jabber -- with - libcurl 3 -- with - net - snmp -- with - ssh2 -- without - openipmi -- with - ldap -- enable java
Erro
Voc pode otimizar os binrios tornando o Zabbix mais rpido mas dependente de uma CPU compatvel se voc exportar as variveis de ambiente CFLAGS e CXXFLAGS com o seguinte valor -O2 -pipe -march=native, antes de executar o congure. Se voc estiver usando um sistema de 32 bits acrescente ainda -fomit-frame-pointer. Cuidado com outros ags de compilao Voc pode acabar com um binrio defeituoso
# aptitude install postgresql - server - dev -9.1 libssh2 -1 - dev libopenipmi - dev 2 libsnmp - dev libksemel - dev libcurl4 - gnults - dev
17
4Linux - www.4linux.com.br
Voc pode substituir o -j2 por outro nmero para acelerar a sua compilao se voc tiver mltiplos cores. Uma regra geral 2xCores+1.
1 2 3 4
# # # #
make -j2 make install ln - svf / opt / zabbix -2.0.5 / opt / zabbix tree / opt / zabbix
O comando tree vai mostrar a hierarquia de diretrios e arquivos abaixo do caminho da instalao. A tabela abaixo tem o descritivo de cada um deles.
18
4Linux - www.4linux.com.br
zabbix_agent
zabbix_agentd zabbix_server
Tabela 3.3: Comandos do Zabbix Funcionalidade Utilitrio para realizar consultas nos agentes via linha de comando. Utilitrio para envio de traps para o servidor Zabbix. necessrio criar um item do tipo Zabbix Trap para lidar com estes eventos.til para alertar incidentes instantneamente para o servidor como o nicio, trmino ou erro de um backup. Agente para ser usado com o super deamon xinetd ou similar. No necessrio na maioria das vezes e ser removido do diretrio. O daemon do agente do Zabbix que ca na memria a espera das requisies do servidor. O daemon do servidor do Zabbix. Este o componente principal de toda a infraestrutura.
preciso remover o zabbix_agent , uma vez que iremos usar apenas o daemon zabbix_agentd. Tambm uma boa prtica no manter os smbolos de depurao nos binrios de produo. O comando strip ir retirar estes smbolos e o executvel nal ser ligeiramente menor em tamanho (o que ajuda a consumir menos memria tambm).
1 2
# rm / opt / zabbix -2.0.5/ sbin / zabbix_agent # strip -- strip - all / opt / zabbix -2.0.5/*/*
No aconselhvel executar daemons de sistema com o usurio root, por isso vamos criar um grupo e usurio de nome zabbix para que o servio entre na memria como usurio no privilegiado. O nome do usurio que o Zabbix usa hadcoded, ou seja, ele programado dentro do cdigo fonte e no pode ser alterado via congurao. Desse modo sempre temos que criar o usurio com o nome zabbix, j o nome do grupo totalmente opcional.
1 2
19
4Linux - www.4linux.com.br Ambos os daemons, do agente e do servidor, precisam de dois diretrios para armazenar os logs e o arquivo de PID. Com os comandos abaixo crie e d as permisses necessrias para ambos.
1 2
# mkdir / var /{ log , run }/ zabbix -p # chown zabbix . / var /{ run , log }/ zabbix -R
1 2 3 4 5 6
# vim / etc / services zabbix - agent zabbix - agent zabbix - trapper zabbix - trapper 10050/ tcp 10050/ udp 10051/ tcp 10051/ udp Zabbix Zabbix Zabbix Zabbix Agent Agent Trapper Trapper
Estas entradas permitem que programas como wireshark e netstat reconheam as portas do Zabbix.
1 2 3 4 5 6 7 8 9
# # # # # # # # #
cd ~/ conf / zabbix / tar xf zabbix - server - config . tar . bz2 -C / opt / zabbix / etc tar xf zabbix - agent - config . tar . bz2 -C / opt / zabbix mv / opt / zabbix / default / etc mv / opt / zabbix / init .d / etc chown root . zabbix / opt / zabbix / etc -R find / opt / zabbix / etc - type d - exec chmod 0750 {} \; find / opt / zabbix / etc - type f - exec chmod 0640 {} \; chmod 0750 / opt / zabbix / share / zabbix / externalscripts /* / etc / init . d / zabbix -*
20
4Linux - www.4linux.com.br 1) Note que o grupo dos diretrios e seus arquivos foram apontados para zabbix. O dono continuou a ser o root; 2) Todos os diretrios tiveram a permisso de acesso global revogada, nenhum usurio do sistema tem que acessar esta pasta exceto o do Zabbix (existem informaes sensveis como senhas em text/plain nestes arquivos). Tambm, apenas o root tem direitos de gravao nessas pastas o grupo zabbix tem apenas acesso de leitura. 3) Os arquivos seguem a mesma lgica que os diretrios. O Zabbix por padro procura pelos seus arquivos em /opt/zabbix/etc, a partir dos arquivos principais (zabbix_server.conf e zabbix_agentd.conf) outros arquivos foram chamados e inseridos na congurao. A tabela abaixo demonstra como caram organizados os diretrios e seu contedo.
Tabela 3.4: Diretrios e arquivos do Agente do Zabbix Diretrio ou Arquivo Descrio /opt/zabbix/etc/agent.d Diretrio para conguraes extras do agente.(carregado pelo arquivo principal) /opt/zabbix/etc/agent.d/activechecks.conf Congurao de checagens ativas do agente. /opt/zabbix/etc/agent.d/logs Congurao de logs (local, nvel de debug) do agente. /opt/zabbix/etc/agent.d/passivechecks.conf Congurao de checagens passivas do agente. /opt/zabbix/etc/agent.d/remote_commands.conf Congurao de recebimento de comandos remotos no agente. /opt/zabbix/etc/agent.d/userparams.conf Conguracao para parametros personalizados pelo usuario. /opt/zabbix/etc/zabbix_agentd.conf Arquivo principal de congurao do agente.
Tabela 3.5: Diretrios de scripts do Zabbix Diretrio Descrio /opt/zabbix/share/zabbix/alertscripts Diretrio para scripts de alertas externos. /opt/zabbix/share/zabbix/externalscripts Diretrio para scripts de extenso do agente do Zabbix.
21
4Linux - www.4linux.com.br
Tabela 3.6: Diretrios e arquivos do Servidor do Zabbix Diretrio ou Arquivo Descrio /opt/zabbix/etc/server.d Diretrio para conguraes extras do servidor.(carregado pelo arquivo principal) /opt/zabbix/etc/server.d/activechecks.conf Conguracoes para coletas ativas (que partem dos agentes para o servidor) /opt/zabbix/etc/server.d/alerts.conf Opcoes de conguracoes de alertas do Zabbix. /opt/zabbix/etc/server.d/cache.conf Opcoes de cache do Zabbix server. /opt/zabbix/etc/server.d/database.conf Congurao do back and do banco de dados do servidor Zabbix. /opt/zabbix/etc/server.d/external.conf Conguracao para recursos externos do servidor. /opt/zabbix/etc/server.d/housekeeping.conf Conguracao de housekeping do servidor do Zabbix. /opt/zabbix/etc/server.d/jmx-gateway.conf Conguracao de acesso ao JMX Gateway. /opt/zabbix/etc/server.d/logs.conf Congurao de logs (local, nvel de debug) do agente. /opt/zabbix/etc/server.d/node.conf Conguracao de node. /opt/zabbix/etc/server.d/passivechecks.conf Conguraes para coletas passivas (que parter do servidor para os agentes) /opt/zabbix/etc/server.d/proxy.conf Congurao de monitoramento distribudo do servidor. /opt/zabbix/etc/zabbix_server.conf Arquivo principal de congurao do servidor. No deixe de fazer o procedimento das permisses, ele vai tornar a sua instalao do Zabbix muito mais segura. Para nalizar vamos congurar o sistema para apontar o PATH para o link simblico de instalao. Isso vai facilitar o acesso aos comandos.
1 2 3 4 5
# vim / etc / profile .d/ zabbix - path . sh export PATH =" $PATH :/ opt / zabbix / sbin :/ opt / zabbix / bin " # . / etc / profile # zabbix_get -- help # zabbix_agentd -- help
22
4Linux - www.4linux.com.br
1 2 3 4 5 6
# vim / etc / zabbix / server .d / database . conf DBHost =127.0.0.1 DBPort =5432 DBName = zabbixdb DBUser = zabbix DBPassword = zabbixdbpw
1) O endereo IP ou nome DNS do servidor que esta com o banco de dados. Como no nosso cenrio o banco e o servidor Zabbix esto na mesma mquina virtual utilizamos o endereo de loopback; 2) A porta TCP de acesso do banco. Esta a porta padro do PostgreSQL; 3) Nome do banco de dados que criamos no incio do captulo; 4) Nome do usurio que criamos e demos permisso; 5) Senha do usurio acima. Colocando os scripts no boot da mquina virtual.
1 2
1 2
Verique se as ltimas linhas do log indicam se ambos iniciaram corretamente e tambm se todos os processos esto na memria.
1 2 3
# tail -n1 / var / log / zabbix / zabbix_server . log 1203:20110207:092633.044 server # 1 started [ DB Cache ] # tail -n1 / var / log / zabbix / zabbix_agentd . log
23