Zabbix 2.0 com PostgreSQL no Debian Wheezy


Olá meus amigos, esta é minha primeira contribuição para o Blog do meu amigo Pedro. Há algum tempo este grande entusiasta do Linux conseguiu me mostrar que não necessitamos ser radicais mas sim aproveitar o que há de bom em cada tecnologia. Livres ou Não.

Nos últimos dias fiz uma consultoria sobre IT Asset Management que irei postar em 3 partes a primeira é o monitoramento ativo de TIC. Segue abaixo a introdução e o CheckList para a implementação de um Server Zabbix em Debian com toda sua configuação necessária em PostgreSQL.

 Gestão Integrada de Ativos de TI

Tanto a adoção de uma solução de Gestão de Ativos de TI (IT Asset Management) como a adoção de uma solução de Gestão de Incidentes que sejam desvinculadas entre si, podem produzir resultados isolados, mas não alcançarão plenamente o objetivo final que é o controle sincronizado e integro do ambiente de TI. E se estas duas iniciativas forem conduzidas sem o apoio de processos formalmente definidos poderemos até alcançar resultados efetivos por um certo tempo mas não teremos a garantia de continuidade, estabilidade e produtividade a médio e longo prazo.

Com a agregação da gestão de incidentes, da gestão de ativos de TI e do estabelecimento de uma metodologia de operação destes ambientes baseada em procedimentos e normas contidas e disseminadas facilmente através de um ambiente de gestão de conhecimento teremos potencializados os fatores de sucesso na gestão do ambiente de TI.

Cada um deles isoladamente é capaz de produzir resultados específicos, mas a integração entre eles fará com que a somatória de resultados produzida seja maior que a união dos resultados isolados de cada um.
Descartar um destes elementos poderá comprometer os resultados produzidos pelos demais e assim sucessivamente. Em face deste cenário faremos a Gestão Integradas em 3 (três) fases sendo a primeira o Monitoramento dos Ativos tecnológicos em paralelo será desenvolvido os processos que mantém esta operação, em um segundo momento será implementada a Gestão de Incidentes e seus processos de Suporte finalizando o triângulo da Gestão de Ativos de TIC.

Porque Zabbix ?

Zabbix é um software que monitora diversos parâmetros de uma rede como a integridade e desempenho dos servidores. Oferece excelentes relatórios e visualização de dados de recursos com base nos dados armazenados, e usa um mecanismo de notificação flexível que permite aos usuários configurar e-mail com alertas para qualquer evento, o que permite uma reação rápida para os problemas do servidor.
Corretamente configurado, o Zabbix pode desempenhar um papel importante no controle da infraestrutura de TI. Isto é igualmente verdade para as pequenas organizações com alguns servidores e para grandes empresas com um grande número de servidores.

O Zabbix é escrito e distribuído sob a GNU General Public License versão 2. Isso significa que seu código-fonte é distribuído gratuitamente e está disponível para o público em geral.

O que o Zabbix oferece:
  • Monitoração distribuida com a administração centralizada via WEB
  • Suporte para mecanismo de pooling e trapping
  • Auto-descoberta de servidores e dispositivos de rede
  • Aplicação-servidor compativel com Linux, Solaris, HP-UX, AIX, BSD Livre, Open BSD, Mac OS X
  • Aplicação cliente de alta performance compativel com Linux, Solaris, HP-UX, AIX, BSD Livre, Open BSD, OS X, Tru64/OSF1, NT4.0, Windows 2000, Windows 2003, Windows XP, Windows Vista
  • Monitoramento sem agente
  • Autenticação segura de usuário
  • Permissões flexiveis de usuário
  • Interface baseada em web
  • Notificação por e-mail flexivel de eventos predefinidos
  • Visualização em alto nível dos recursos monitorados a nivel gerencial
  • Auditoria
Na lista abaixo temos algumas vantagens de se utilizar o Zabbix:
  • Altamente eficiente para agentes baseado nas plataformas UNIX e WIN32
  • Solução Open Source
  • Baixa curva de aprendizado
  • Retorno do investimento elevado. Downtimes são muito caros.
  • Baixo custo do licenciamento
  • Configuração muito simples
  • Sistema de monitoramento centralizado. Todas as informações (configuração, dados de desempenho) são armazenado em banco de dados relacional
  • Árvore de serviço de alto nível
  • Instalação muito fácil
  • Suporte para SNMP. Com trapping e polling
  • Capacidades de visualização
  • Desenvolvido com procedimento de limpeza

O Zabbix é composto de vários componentes:

  • Zabbix Server – Este é o centro do Software Zabbix. O servidor pode verificar remotamente os serviços de rede (como servidores web e servidores de e-mail), utilizando controles simples. Ele é o componente central para o qual os agentes reportam a disponibilidade, integridade de informações e estatísticas dos servidores. É nele que toda a configuração, estatísticas e dados operacionais são armazenados, sendo o componente que participará ativamente alertando os administradores quando surgirem problemas em qualquer um dos sistemas monitorados;

  • Zabbix Proxy – É uma parte opcional da implantação do Zabbix. O Proxy coleta dados de desempenho e disponibilidade, em nome do Zabbix Server. Todos os dados coletados localmente são transferidos para o Zabbix Server Proxy. O Zabbix Proxy é uma solução ideal para um controle centralizado de locais remotos, filiais, não havendo a necessidade dos administradores de redes locais;

  • Zabbix Agent – A fim de acompanhar ativamente recursos e aplicações locais (como discos rígidos, memória, processador, etc.) em sistemas em rede, os sistemas devem executar o Agente Zabbix. O agente vai reunir informações operacionais do sistema em que está em execução, e informar esses dados ao Zabbix para posterior processamento. Em caso de falhas (como um disco rígido estar lotado, ou um processo cair), o servidor Zabbix pode ativamente alertar os administradores da máquina que relatou o problema;

  • Interface Web – Permite fácil acesso aos dados de monitoração e configuração do Zabbix em qualquer lugar e em qualquer plataforma. A interface é uma parte do servidor Zabbix, e é geralmente (mas não necessariamente) executada na mesma máquina física como uma execução do servidor Zabbix Server.

Procedimento para a Instalação do Serviço de Monitoramento de Ativos em T.I.C.

Observe os requisitos mínimos para cada instalação conforme a tabela abaixo:

Faça o download da chave e adicionei ao seu chaveiro.
wget http://repo.zabbix.com/zabbix-official-repo.key -O - | apt-key add -

Configurando repositório

# Adicione a linha abaixo ao sources.list do seu Debian Wheezy
vim /etc/apt/sources.list
deb http://repo.zabbix.com/zabbix/2.0/debian wheezy main

# Atualize os índices de pacotes
apt-get update
apt-get cache search zabbix

Acompanhe a saída

p zabbix-agent - network monitoring solution - agent
p zabbix-frontend-php - network monitoring solution - PHP front-end
p zabbix-get - network monitoring solution - get
p zabbix-java-gateway - network monitoring solution - java-gateway
p zabbix-proxy-mysql - network monitoring solution - proxy (using MySQL)
p zabbix-proxy-pgsql - network monitoring solution - proxy (using PostgreSQL)
p zabbix-proxy-sqlite3 - network monitoring solution - proxy (using SQLite3)
p zabbix-release - Zabbix official repository configuration
p zabbix-sender - network monitoring solution - sender
p zabbix-server-mysql - network monitoring solution - server (using MySQL)
p zabbix-server-pgsql - network monitoring solution - server (using PostgreSQL)

Instalando o Servidor (PostgreSql)

# Zabbix Server com backend pgsql
apt-get install zabbix-server-pgsql
Não faça nenhuma configuração durante a instalação do banco

# Instalando o agente de monitoramento do Zabbix
apt-get install zabbix-agent
# Não faça nenhuma configuração durante a instalação do banco

# Instalando Zabbix Java Gateway
# Instalando o gateway de monitoramento de aplicações JAVA e máquina virtual java.
apt-get install zabbix-java-gateway

#Instalando frontend web para configuração e visualização de dados de monitoramento
apt-get install zabbix-frontend-php

# Update para o PostgreSql no Php5 devido ao mesmo vir nativo com o MySql
apt-get install php5-pgsql libpq-dev


3. Configurando as Instalações

Módulo Web

# Edite o arquivo:
vim /etc/php5/apache2/php.ini

# Edite a linha “date.timezone” no Modules Settings
# Modules Settings
# Insira:
date.timezone=America/Sao_Paulo

# Edite as linhas “max_execution_time”; “max_input_time” e “ no Resources Limits
max_execution_time = 300
max_input_time = 300

# Edite a linha “post_max_size” no Data Handling
post_max_size = 16M
# Restart o Apache
/etc/init.d/apache2 restart
  

Módulo PostgreSql

# Edite o arquivo:
vim /etc/postgresql/9.1/main/pg-hba.conf
Edite as linhas para que estejam configuradas como a descrição abaixo:

# Database administrative login by Unix domain socket
local all postgres trust

# TYPE DATABASE USER ADDRESS METHOD

# ”local" is for Unix domain socket connections only
local      all       all                     trust
# IPv4 local connections:
host      all       all 127.0.0.1/32 trust
# IPv6 local connections:
host      all       all ::1/128         trust

# Edite o arquivo:
vim /etc/postgresql/9.1/main/postgresql.conf

# Edite a linha “listen_addresses” no Connections and Authentication
# Connections and Authentication
# Insira:
listen_addresses = 'localhost' (Essa linha por padrão deverá estar comentada, então apenas retire a #)

# Reinicie o PostgreSql
/etc/init.d/postgresql restart

# Criando o Banco
su postgres
$ createdb zabbix
$ createuser -a -d -E -P zabbix (será solicitada a senha do usuário de acesso ao BD)

# Faça a inserção dos *.sql para popularmos o banco exatamente como a ordem descrita abaixo:

$ psql -U <username> zabbix < /usr/share/zabbix-server-pgsql/schema.sql
$ psql -U <username> zabbix < /usr/share/zabbix-server-pgsql/.images.sql
$ psql -U <username> zabbix < /usr/share/zabbix-server-pgsql/data.sql

$ exit
    Obs(1): No caso da instalação do Zabbix-Proxy restaure apenas o schema.sql
    Existe a possibilidade de acontecer um BUG no Login do Admin no primeiro acesso e será resolvido da seguinte forma:
    Login: Admin / Senha:”zabbix”
    Caso não reconheça execute o procedimento abaixo:
    su postgres
    $ psql zabbix
    zabbix=# SELECT userid, alias, name FROM users;

userid | alias | name
--------+-------+---------
2 | guest | Default
1 | Admin | Zabbix

Com esta informação faremos o reset da senha do administrador:


zabbix=# UPDATE users SET passwd = MD5('temp') WHERE userid = 1;

Configuramos a senha "temp" para o usuario 1(Admin)

zabbix=# /q
$ exit

Módulo Agente

# Edite o arquivo:
vim /etc/zabbix/zabbix_agentd.conf

# Edite a “Option: LogFileSize”
LogFileSize=2

# Edite a “Option DebugLevel”
DebugLevel=3

# Edite a “Option: EnableRemoteCommands”:
EnableRemoteCommands=1

# Edite a “Option LogRemoteCommands”
LogRemoteCommands=1

# Edite a “Option: Server”:
Server=127.0.0.1

# Edite a “Option ListenPort”:
ListenPort=10050

# Edite a “Option ServerActive”:
#ServerActive=127.0.0.1

# Edite a “Option Hostname”:
Hostname=(informe o nome exato do host, exatamente como aparece no prompt antes dos símobolos “$” e “#”).

# Finalize a configuração:
:wq

Módulo Server

# Edite o arquivo:
vim /etc/zabbix/zabbix_server.conf

# Edite a “Option: ListenPort”:
ListenPort:10051

# Edite a “Option: LogFileSize”
LogFileSize=2

# Edite a “Option: DebugLevel”
DebugLevel=3

# Edite a “Option: DBHost”:
DBHost=localhost

# Edite a “Option: DBName”:
DBName=zabbix

# Edite a “Option: DBUser”:
DBUser=zabbix

# Edite a “Option: DBPassword”:
DBPassword=(coloque a senha do Banco criada no passo anterior “Módulo PostgreSQL”)

# Edite em “Advanced Parâmeters” a “Option: StartIPMIPollers”:
StartIPMIPollers=1

# Edite em “Advanced Parâmeters” a “Option: StartDiscoveres”:
StartDiscoveres=5

Acessando via WEB

Anteriormente finalizamos as configurações via CLI, agora acessaremos da nossa rede a interface WEB do Zabbix instalado no servidor. Abrao navegador e digite no endereço http://ip-do- servidor/zabbix e siga as recomendações abaixo.




 Tela 2: Cheque as dependências do Zabbix. Se estiver tudo ok, clique em Next.

Obs: Caso contrário, reveja os passos executados ao longo deste Manual para encontrar o problema.


Tela 3: Informe o tipo da base de dados (no nosso caso PostgreSQL), o usuário e a senha (Definidos na criação do banco). Em seguida, clique no botão Test Connection. Se estiver ok, clique em Next..


Tela 4: Informe o IP (padrão localhost exceto quando os servidores WEB e Banco esão em Hadwares separados) do servidor Zabbix e a porta em que ele será executado (a padrão é 10051). No campo Name use um nome caso deseje administrar vários servidores Zabbix.
Depois clique em Next.


Tela 5: Revise as configurações e se estiver ok, clique em Next.


Tela 6: Pronto! O Zabbix está instalado.


Tela 7: Logue no Zabbix com o usuário Admin e senha zabbix.


Obs:Caso a senha seja invalidada execute o passo de reset de senha diretamente no banco conforme descrido no Módulo PostgreSql.

Instalando os Agentes Zabbix

Linux


Debian

# Adicione a linha abaixo ao sources.list do seu Debian Wheezy
vim /etc/apt/sources.list
deb http://repo.zabbix.com/zabbix/2.0/debian wheezy main

# Atualize os índices de pacotes
apt-get update

# Instalando o agente de monitoramento do Zabbix
apt-get install zabbix-agent

# Edite o arquivo:
vim /etc/zabbix/zabbix_agentd.conf

# Edite a “Option: LogFileSize”
LogFileSize=2

# Edite a “Option DebugLevel”
DebugLevel=3

# Edite a “Option: Server”:
Server=(IP do Server Zabbix)

# Edite a “Option ListenPort”:
ListenPort=10050

# Edite a “Option Hostname”:
Hostname=(informe o nome exato do host, exatamente como aparece no prompt antes dos símobolos “$” e “#”).

# Finalize a configuração:
:wq

# Reinicie o Serviço
/etc/init.d/zabbix-agent restart


Ubuntu

# Adicione a linha abaixo ao sources.list do seu Ubuntu Precise
vim /etc/apt/sources.list
deb http://repo.zabbix.com/zabbix/2.0/ubuntu precise main

# Atualize os índices de pacotes
apt-get update

# Instalando o agente de monitoramento do Zabbix
apt-get install zabbix-agent

# Edite o arquivo:
vim /etc/zabbix/zabbix_agentd.conf

# Edite a “Option: LogFileSize”
LogFileSize=2

# Edite a “Option DebugLevel”
DebugLevel=3

# Edite a “Option: Server”:
Server=(IP do Server Zabbix)

# Edite a “Option ListenPort”:
ListenPort=10050

# Edite a “Option Hostname”:
Hostname=(informe o nome exato do host, exatamente como aparece no prompt antes dos símobolos “$” e “#”).

# Finalize a configuração:
:wq

# Reinicie o Serviço
/etc/init.d/zabbix-agent restart


Referências:

http://pt.wikipedia.org/wiki/Zabbix – Acessado em 20 de agosto de 2013 ás 10:45am

Manual do Zabbix 2.0. Disponível em:
http://www.zabbix.com/documentation/2.0/manual/introduction Acessado em: 20 de agosto de 2013 ás 10:50am

Zabbix Requirements. Disponível em:

Configuração interface WEB:
https://www.zabbix.com/documentation/2.0/manual/installation/install cessado em: 20 de agosto de 2013 ás 10:58am

3 comentários:

  1. Parabénz muito bom...excelente tutorial
    obs: no lugar de apt-get search
    seria:
    apt-cache search

    ResponderExcluir
  2. Eu gosto de usar com o PostgreSQL - ferramenta gratuita Valentina Studio, faz tudo o que você precisa, e faz isso muito bem http://www.valentina-db.com/en/valentina-studio-overview

    ResponderExcluir
  3. Pessoal, obrigado pelas dicas e força. Desculpe a demora na moderação dos comentarios, estava fora da cidade. Viagem a trabalho.

    ResponderExcluir