Documentação do Zabbix 1. Introdução Zabbix (http://www.zabbix.com) é uma solução open source de monitoramento para servidores, serviços e dispositivos de rede. De fácil utilização ele fornece mais funcionalidades do que o Nagios (http://www.nagios.org) ou BigBrother (http://bb4.com). Está sendo utilizada para monitoramento dos enlaces, verificação da latência dos links, e níveis de utilização de hardware dos servidores. 2. Instalando o APACHE O source do Apache-1.3.37 pode ser baixado da seguinte URL (Apache-1.3.37). A compilação foi padrão. Recomendo o uso do apache. Slackbuild para instalação. #./configure \ --with-layout=slackware \ --enable-module=most \ --enable-shared=max \ --manualdir=/var/www/htdocs/manual \ # make -j3 # checkinstall Fazer as seguintes alterações no arquivo de configuração httpd.conf: Em DirectoryIndex colocar: <IfModule mod_dir.c> DirectoryIndex index.html index.php </IfModule> Retire o comentário das linhas (final do arquivo): Include /etc/apache/mod_php.conf Include /etc/apache/mod_ssl.conf 3. Instalando o PHP com módulo para suporte no Apache O source do PHP-4.4.4 pode ser baixado do seguinte link (PHP-4.4.4). A compilação foi padrão. Recomendo o uso do php.slackbuild. É necessário ter o módulo com suporte ao Apache, jpeg e MySQL. #./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-discard-path \ --with-config-file-path=/etc/apache \ --enable-safe-mode \
--with-openssl \ --with-mhash \ --enable-bcmath \ --with-bz2 \ --with-pic \ --enable-calendar \ --enable-ctype \ --with-gdbm \ --with-db3 \ --with-imap-ssl=$imaplibdir \ --with-imap=$imaplibdir \ --enable-ftp \ --with-iconv \ --with-dom \ --with-exif \ --enable-exif \ --with-gd \ --enable-gd-native-ttf \ --with-jpeg-dir=/usr \ --with-png \ --with-gmp \ --with-pcre-regex=/usr \ --with-mysql=shared,/usr \ --with-gettext=shared,/usr \ --with-expat-dir=/usr \ --with-xml \ --enable-wddx \ --with-mm=/usr \ --enable-trans-sid \ --enable-shmop \ --enable-sockets \ --with-regex=php \ --enable-yp \ --enable-memory-limit \ --with-tsrm-pthreads \ --enable-shared \ --disable-debug \ --enable-fastcgi \ --enable-force-cgi-redirect \ --disable-static \ --with-apxs=/usr/sbin/apxs \ --with-zlib=/usr # make j3 # checkinstall Após a compilação, cria uma página de teste para ver se está tudo OK. Crie um arquivo index.php, no seu DocumentRoot, com o seguinte conteúdo: <? phpinfo();?> Reinicie os serviços e acesse no seu browser a URL, se estiver OK, vão aparecer às informações do seu sistema: http://localhost/ 4. Configurando o MySQL-4.1.21
Baixe o arquivo pré-compilado do seguinte link (MySQL-4.1.21) e instale. Após isso faça o login com o usuário mysql: # su mysql $ mysql_install_db /*Instala a base de dados MySQL $ exit # mysqld_safe --user=mysql& /*Inicia o MySQL com usuário mysql # mysql_secure_installation /* Realiza os ajustes necessários Vão aparecer várias perguntas, como setar a senha de root, opção para remover usuários anônimos do banco dados e base de dados de teste. Neste ponto prefiro que deixe a base de teste, pois na hora da instalação do módulo perl DBD::Mysql, ele fará um teste de conexão nesta tabela. Após isso a tabela e o usuário poderão ser removidos. Caso seja removido agora não tem nenhum problema, basta se conectar como root na instalação do módulo. O arquivo my.cnf que eu usei foi a seguinte: [mysql.server] datadir=/var/lib/mysql socket=/var/run/mysql/mysql.sock [mysqladmin] socket=/var/run/mysql/mysql.sock [mysqld] datadir=/var/lib/mysql socket=/var/run/mysql/mysql.sock language=/usr/share/mysql/english/ log=/var/log/mysql/mysqld.log [mysql] socket=/var/run/mysql/mysql.sock Crie o diretório /var/log/mysql e dê permissão para o usuário mysql. Reinicie o MySQL. Zabbix vem com os certificados do SQL usados criar o schema requerido da base de dados e introduzir também uma configuração padrão. Para o mysql será necessário utilizar: shell> mysql -u<username> -p<password> mysql> create database zabbix; mysql> quit; shell> cd create/schema shell> cat mysql.sql mysql -u<username> -p<password> zabbix shell> cd../data shell> cat data.sql mysql -u<username> -p<password> zabbix shell> cat images_mysql.sql mysql -u<username> -p<password> zabbix Instalando ZABBIX
Antes de começarmos a instalação, é necessário e válido, avaliarmos se os seguintes software estão instalados: Mysql Headers and Libraries (ou, Oracle, ou PostgreSQL, ou SQLite) NET-SNMP (ou UCD-SNMP) Iksemel (para Jabber) Libcurl library C compilador GNU Make Compilando Entre no diretório zabbix-1.4, você pode verificar os arquivos existentes nesta pasta, por padrão a compilação utilizada foi, a linha a seguir, porém existem outras opões que podem ser utilizadas também, e podem ser vistas com o comando./configure help../configure --prefix=/opt/zabbix --enable-server --enable-agent --with-mysql --with-libcurl --with-net-snmp Onde: ** --prefix= é a opção para definir a localização de onde será instalado os binários do Zabbix ** --enable-server ativa a opção de servidor ** --enable-agent ativa a opção de agent na máquina local ** --with-mysql especifica o tipo de banco de dados a ser utilizado ** --with-libcurl módulo necessário para monitoramento web ** --with-net-snmp módulo snmp É possível que exista o seguinte erro, isto se dá pela falta de uma library não instalada no sistema, que é a curl library. checking for curl-config... no configure: error: Not found Curl library Para correção da mesma, baixe : # wget http://mirror.pacific.net.au/linux/slackware/slackware-current/slackware/n/curl-7.16.2-i486-1.tgz # installpkg curl-7.16.2-i486-1.tgz Depois volte ao diretório para iniciar novamente a compilação do programa./configure --prefix=/opt/zabbix --enable-server --enable-agent --with-mysql --with-libcurl --with-net-snmp Caso esteje tudo correto, deverá aparecer a seguinte tela no fim da compilação: Configuration: Detected OS: linux-gnu Install path: /opt/zabbix
Compilation arch: linux Compiler: gcc Compiler flags: -g -O2 -I/usr/include/mysql -march=i486 -mcpu=i686 -I/usr/local/include Linker flags: -L/usr/lib/mysql -L/usr/local/lib -L/usr/local/lib Libraries: -lm -lresolv -lnsl -lmysqlclient -lcurl -lnetsnmp -I. Enable server: With database: Enable agent: yes MySQL yes *********************************************************** * Now run 'make install' * * * * Thank you for using ZABBIX! * * <http://www.zabbix.com> * *********************************************************** Aparecendo a tela acima, voltemos para o comando MAKE INSTALL Ocorrerá a compilação do zabbix, é bom ficar atento para verificação de caso haja qualquer erro. Se não, verifique dentro do diretório instalado a existência da pasta Bin, que contém os binários gerados pelo zabbix. # cd /opt/zabbix # ls bin Por padrão apenas os binários são instalados na máquina, logo, voltando ao diretório /zabbix-1.4 # cd /zabbix-1.4 Neste diretório será possível encontrar os arquivos zabbix_agent.conf zabbix_agentd.conf zabbix_server.conf zabbix_trapper.conf. Porém nesta instalação usaremos apenas o zabbix_server.conf # cd /zabbix-1.4/misc/conf # cp zabbix_server.conf /opt/zabbix Editando o Arquivo zabbix_server.conf É necessário apenas alterar os seguintes valores, e descomentar a linha DBPassword que por padrão vem comentada. Nestes valores insira o seu usuário e senha do mysql DBUser=root DBPassword=<password> Copiando os arquivos para exibição via web.
Dentro da pasta de instalação existe um diretório chamado frontends, o conteúdo deste deve ser copiado para dentro do diretório disponibilizado no apache, no nosso caso criamos um chamado zabbix. Entre no diretório frontends dentro da pasta zabbix-1.4 # cd zabbix-1.4 # cd frontends/php # cp -rf * /(diretório padrao do apache) Talvez seja necessário setar duas variáveis no php.ini Setar o tempo máximo de execução de 30 para 300 milissegundos e setar a zona de tempo para American/Sao_Paulo max_execution_time = 300 date.timezone = American/Sao_Paulo
Estando tudo correto, podemos iniciar a instalação do serviço zabbix. Podemos seguir a partir dos screens abaixo: Iniciando a instalação, abra seu brownser e digite o endereço utilizado para a instalação do zabbix, no caso, o servidor onde foi instalado e pasta escolhida no apache: Clique em NEXT
Marque o campo de seleção I AGREE e depois vá em next
Se toda a configuração estiver ok, a tela do Zabbix aparecerá como esta ai encima, caso contrário, verifique as informações em fail e corrija se necessário.
Efetue o teste de conexão no banco de dados. Com usuário criado no processo de instalação e importação de tabelas do zabbix ao mysql.
Clique em next
Salve o arquivo de configuração zabbix.conf.php e coloque no lugar do arquivo padrão dentro do seu diretório de confs do zabbix.
NEXT
Efetue o login como administrador para iniciar a utilização do servidor.
Depois da instalação inicial, o Zabbix tem somente 2 usuários definidos, "Admin" é o superusuário. O usuário Admin possui todas as permissões, já o usuário Guest é o usuário especial e default. Ele não precisa logar, porém por default suas pemissões são somente leitura. Para criação de um novo usuário, vá para a guia Administration, depois Users, na guia no campo superior direito, vá para Users, e logo a frente clique no botão CREATE USER Por padrão, o usuário criado, não possui todas as permissões desejadas. Defina conforme seu acesso.
Para inserir as medias type, para recebimento de alertas em seu email. Agora sua media email está definida. Mas a media precisa ser linkada com os usuários, caso contrário, não será utilizada.
Adicionando agents e hosts Nós iremos colocar o agent Zabbix rodando em nosso Zabbix server, e vamos monitorar esse mesmo servidor. Clique em Create host. Entre com todas os detalhes necessários. Podemos também utilizar um template Unix_t para simplificar nossa configuração. Caso não queira utilizar alguns dos templates prontos, escolha manualmente adicionando os Items e Triggers para o hosts a serem monitorados. Configurations // Hosts // Create Hosts
Nossos hosts monitorados Não tivemos interesse em utilizar os templates oferecidos pela ferramenta. Utilizamos a principio a verificação de um trigger icmp para teste de latência e verificação das pontas ativas.
Utilizando Item para monitoramento. Configuration // Items // Create Items
Criando TRIGGERS Configurations // Triggers //
Criando os Actions Cria-se o nome da atribuição, no caso action_popgo, seleciona-se a opção triggers, e o tipo de aviso que será utilizado, warning, depois adicionar a qual grupo será enviado o email
Estas são as principais configurações básicas a serem criadas, outras configurações podem ser encontradas no manual original da ferramenta zabbix link: http://www.zabbix.com/downloads/zabbix%20manual%20v1.4.pdf
Observações: Problemas foram encontrados ao utilizar a versão 4.0.27 do mysql, recomenda-se que a versão seja atualizada para 5