zabbix - instalando e configurando monitor de rede zabbix

Upload: djcelsodub

Post on 02-Mar-2016

124 views

Category:

Documents


0 download

TRANSCRIPT

  • Instalao e Configurao do monitor de rede Zabbix

    ndice

    1. Autores 2. Introduo 3. Pr-requisitos

    3.1. Conhecimentos bsicos 3.2. Ambiente necessrio

    4. Parmetros para instalao 5. Instalao

    5.1. Instalao do servidor 6. Configurao bsica

    6.1. Alterando idioma 6.2. Adicionando host 6.3. Itens 6.4. Triggers 6.5. Actions 6.6. Grficos 6.7. Screens 6.8. Auditoria 6.9. Mapas

    7. Scripts 7.1. Servidor 7.2. Cliente

    Referncias Bibliogrficas Glossrio

    1. Autores

    Paulo Leonardo Samuel Carvalho Sibele Cndida Walter Junior

    2. Introduo Zabbix um monitor de rede que guarda as informaes coletadas, sendo possvel posteriormente sua consulta para saber a performace dos hosts e da rede como um todo.

    3. Pr-requisitos

    3.1. Conhecimentos bsicos

    Conhecimentos bsicos de GNU/Linux

    Conhecimentos bsicos de protocolo TCP/IP

    Conhecimentos bsicos de infra-estrutura de rede.

    3.2. Ambiente necessrio

    Ser presumido que seu servidor onde ser instalado o Zabbix Server est em perfeito estado como tambm os hosts onde sero instalados os agentes do Zabbix.

    A tabela abaixo mostra as verses de cada software usado.

    Tabela 1. Verso dos softwares

    4. Parmetros para instalao

    Software Verso

    Debian Etch

    Zabbix Server 1.1.7

    Zabbix Agent 1.1.7

    MySQL >= 4.0

    PHP >= 4.0

    libmysql++-dev 2.0.7-3

    libsnmp9-dev 5.2.3-2

    libmysqlclient15-dev 5.0.27-1

    apache2 2.2.3-3.1

    Pgina 1 de 9Instalao e Configurao do monitor de rede Zabbix

    13/11/2008http://www.gouvea.net/zabbix.html

  • Abaixo consta alguns parmetros que sero utilizados nesta documentao, para fins de padronizao do procedimento.

    Tabela 2. Parmetros

    5. Instalao

    5.1. Instalao do servidor

    Antes vamos instalar as dependncias necessrias.

    # aptitude update # aptitude install libmysqlclient15-dev libsnmp9-dev libmysql++-dev php5 mysql-server-5.0 apache2 php5

    A instalao do servidor super simples. Primeiramente entre no site do Zabbix na seo downloads [download] e baixe o pacote ou se preferir copie o procedimento abaixo pra fazer download do pacote via wget.

    # wget http://ufpr.dl.sourceforge.net/sourceforge/zabbix/zabbix-1.1.4.tar.gz

    Descompacte o pacote no diretrio /opt

    # tar xfvz zabbix-1.1.4.tar.gz -C /opt

    Remova o pacote e entre dentro do diretrio j descompactado.

    # rm /opt/zabbix-1.1.4.tar.gz # cd /opt/zabbix-1.1.4

    Antes de efetuar a compilao do source, criaremos o banco de dados utilizado pelo Zabbix. O software compatvel com os bancos de dados MySQL, PostgreSQL e Oracle. Porm na documentao iremos abordar apenas instalao utilizando o MySQL. Para prosseguir acesso o prompt do MySQL.

    # mysql -uroot -p

    Crie o banco e saida do MySQL.

    mysql> create database zabbix; mysql> quit

    Acesse o diretrio onde tem a estrutura do banco e copie-o para o respectivo banco criado no MySQL.

    # cd create/mysql # cat schema.sql | mysql -uroot -p zabbix

    Acesso o diretrio onde tem os dados e as images referentes ao funcionamento bsico do sistema.

    # cd ../data # cat data.sql | mysql -uroot -p zabbix # cat images.sql | mysql -uroot -p zabbix

    Pronto. At este ponto foi criado o banco de dados. Prosseguiremos agora com a compilao do software. V para o diretrio principal e digite o comando abaixo para compilar o software, habilitando o suporte a SNMP, compilao do servidor, cliente e do suporte a MySQL.

    # cd ../.. # ./configure --enable-server --with-mysql --with-net-snmp --enable-agent # make # make install

    Crie o diretrio onde ficaro os arquivos de configurao do Zabbix.

    # mkdir /etc/zabbix

    Crie o arquivo de configurao.

    Caracterstica Valor

    Pacote do source do Zabbix zabbix-1.1.7.tar.gz

    Local de manipulao do source /opt

    Pgina 2 de 9Instalao e Configurao do monitor de rede Zabbix

    13/11/2008http://www.gouvea.net/zabbix.html

  • # touch /etc/zabbix/zabbix_server.conf

    Inclua o contedo abaixo dentro do arquivo zabbix_server.conf pelo meio do VIM ou mesmo atravs do comando cat.

    # This is config file for ZABBIX server process # To get more information about ZABBIX, # go http://www.zabbix.com

    ############ GENERAL PARAMETERS #################

    # This defines which server this is. # Default value 1 # This parameter must be between 1 and 255 Server=1

    # Number of pre-forked instances of pollers # Default value is 6 # This parameter must be between 5 and 255 StartPollers=6

    # Number of pre-forked instances of trappers # Default value is 5 # This parameter must be between 2 and 255 StartTrappers=5

    # Listen port for trapping. Default port number is 10051. This parameter # must be between 1024 and 32767

    ListenPort=10051

    # How often ZABBIX will perform housekeeping procedure # (in hours) # Default value is 1 hour # Housekeeping is removing unnecessary information from # tables history, alert, and alarms # This parameter must be between 1 and 24

    HousekeepingFrequency=1

    # How often ZABBIX will try to send unsent alerts # (in seconds) # Default value is 30 seconds SenderFrequency=30

    # Uncomment this line to disable housekeeping procedure

    #DisableHousekeeping=1

    # Specifies debug level # 0 - debug is not created # 1 - critical information # 2 - error information # 3 - warnings (default) # 4 - for debugging (produces lots of information)

    DebugLevel=3

    # Specifies how long we wait for agent (in sec) # Must be between 1 and 30 Timeout=5

    # After how many seconds of unreachability treat a host as unavailable

    Pgina 3 de 9Instalao e Configurao do monitor de rede Zabbix

    13/11/2008http://www.gouvea.net/zabbix.html

  • #UnreachablePeriod=45

    # How ofter check host for availability during the unreachability period #UnavailableDelay=15

    # How ofter check host for availability during the unavailability period #UnavailableDelay=60

    # Name of PID file

    PidFile=/var/tmp/zabbix_server.pid

    # Name of log file # If not set, syslog is used

    LogFile=/tmp/zabbix_server.log

    #Location for custom alert scripts AlertScriptsPath=/home/zabbix/bin/

    #Location of 'fping. Default is /usr/sbin/fping #FpingLocation=/usr/sbin/fping

    # Frequency of ICMP pings. Defauls is 30 second. #PingerFrequency=30

    # Database host name # Default is localhost

    #DBHost=localhost

    # Database name

    DBName=zabbix

    # Database user

    DBUser=root

    # Database password # Comment this line if no password used

    DBPassword=senha_do_banco_zabbix

    # Connect to MySQL using Unix socket?

    #DBSocket=/tmp/mysql.sock

    Crie um usurio chamado zabbix.

    # useradd zabbix

    Inicie o servidor do Zabbix.

    # zabbix_server

    Crie um diretrio dentro do /var/www/ para ser adicionada o ambiente grfico do Zabbix.

    # mkdir /var/www/zabbix

    Alterar o contedo do arquivo /opt/zabbix-1.1.4/frontends/php/include/db.inc.php nas opes abaixo de acordo com as suas configuraes.

    Pgina 4 de 9Instalao e Configurao do monitor de rede Zabbix

    13/11/2008http://www.gouvea.net/zabbix.html

  • $DB_TYPE ="MYSQL"; $DB_SERVER ="localhost"; $DB_DATABASE ="zabbix"; $DB_USER ="root"; $DB_PWD ="senha_do_banco_zabbix";

    Copie todo contedo descompactado para a pasta onde dar acesso ao Zabbix Web.

    # cp -r /opt/zabbix-1.1.4/frontends/php/* /var/www/zabbix

    D as permisses necessrias aos arquivos para o Apache poder interpretar a aplicao.

    # chown -R www-data:www-data /var/www/zabbix

    J pode acessar o endereo do Zabbix pelo browser http://localhost/zabbix com o usurio admin.

    6. Configurao bsica Para a configurao das opes abaixo consideramos que voc j esteja logado perfeitamente, e de preferncia com o usurio admin, pois ele tem todas a permisses necessrias.

    6.1. Alterando idioma

    O software tem suporte a 12 idiomas, incluindo o Portugus-Brasil e o Ingls. Esta documentao ser totalmente em ingls por ser o idioma padro, porm ser explicado o modo de alterar para o idioma Portugus-Brasil. Para alterao v at Configuration > Users na coluna Alias clique no login desejado, selecionando em seguida no campo Language o idioma de sua preferncia, no caso Brazilian (PT).

    6.2. Adicionando host

    Para adicionar um host para monitoramente v em Configuration > Hosts e do lado direito clique em Create Host. Na prxima tela digite o nome do host e selecione se necessrio o grupo. Marque a opo Use IP Adress colocando posteriormente o endereo IP do host a ser monitorado. Escolha a no campo Link with Template a opo Unix_t se for um agente rodando no host e o sistema operacional derivado do unix (Linux, Unix, *BSD, etc).

    Se desejar, marque a opo Use profile para adicionar dados do host, ideal para utilizao em um inventrio.

    6.3. Itens

    Para cada host, existem vrios itens que so verificados. Sendo estes itens a verificao de algum servio, porta, processo, etc. possivel habilitar ou desabilitar cada item. Indo em Configuration > Items possvel fazer toda essas alteraes.

    Para adicionar um novo item v no canto superior direito em Create Item. Em Description o nome da verficao. Em Type selecione mesmo Zabbix Agent se o host estiver com um agente instalado. Abaixo tem algumas keys que podem ser utilizadas.

    proc.num[nome_do_processo] - Monitora um processo se ele est rodando ou no. Ex: proc.num[apache2]

    net.tcp.port[,nmero_do_porto] - Monitora um porto para conexes tcp. Ex: net.tcp.port[,53]

    vfs.fs.size[partio_a_ser_monitorada,free] - Monitora tamanho em livre em disco em determinada partio. Ex: vfs.fs.size[/home,free]

    Em Units, se estiver utilizando um item para verificao de espao, preencha com a letra B e no campo Use multipler selecione Custom multiplier adicionado no campo abaixo com o mesmo nome o valor 1024. Assim ser mostrado o resultado em mega, giga, kilo, etc.

    No campo Keep history (in days) coloque o valor 7 que o valor padro usado por todos os outros itens, porm este valor pode ser alterado de acordo com seu gosto.

    Para terminar de adicionar o item. Clique em Save para comcluir a configurao bsica deste item.

    6.4. Triggers

    O triggers so os alertas. Ele pega o dado que recolhido pelo item, (por isso necessrio um item para cada trigger) e faz a verificao. Se atingir a condio pr-determinada, ele ativa o alerta. Para acessar v em Configuration > Triggers, sendo possvel o gerenciamento dos triggers neste local.

    Para adicionar um trigger v no canto superior direito em Create Trigger. Em Name adicione o label do seu alerta. No campo Expression o local onde adicionado a expresso que ser condicionada com o dado que foi enviado pelo item. Abaixo alguns exemplos de criao de triggers.

    {host:proc.num[processo].last(0)}=0 - Alerta o processo, com a condio de quando o ltimo valor vindo do item for igual a 0 ativa o alerta. Ex:{Imprensa:proc.num[bacula-dir].last(0)}=0

    {host:net.tcp.port[,porto].last(0)}=0 - Alerta uma determinada porta TCP para quando ltimo valor originado do item for diferente do especificado ativa o alerta. Ex:{Imprensa:net.tcp.port[,53].last(0)}=0

    {host:net.tcp.service[http,ip_do_host].last(0)}=0 - Alerta se a porta (no modelo est o http) est ativa, sendo possvel fazer conexo. Ex:{Imprensa:net.tcp.service[http,64.233.187.99].last(0)}=0

    {host:vfs.fs.size[partio,free].last(0)}

  • Em Severity selecione o nvel do alerta, marcando se ele de informao, ateno, mdio, alto ou desastre. E clique em Save para terminar a configurao deste trigger.

    6.5. Actions

    As Actions ou aes, so as medidas tomadas (enviar e-mail ou executar algum comando remoto) se ativado algum alerta. Para acessar as Actions, v em Configuration > Actions. Clique no boto Create Action no campo superior direito para configurar uma ao.

    Na sesso Condition onde coloca as condicionais para ativao da ao. Crie sua condio e clique em Add para adicionada. Abaixo escolha em Send message to para quem deseja enviar a mensagem, sendo para um grupo ou algum usurio especfico. Posteriormente clique em Save para terminar a configurao da ao.

    6.6. Grficos

    Um dos grandes diferenciais do Zabbix para os outros sistemas de monitoramento a capacidade de gerao de belos e complexos grficos. No qual possvel ver com clareza informaes detalhadas e com de um jeito bastante interessante para o gerenciamento de redes. Para criao destes, v em Configuration> Graphs. No canto superior direito tem o boto Create Graphs. D um nome para o grfico e clique em Save. Agora sra exibido todos os grficos, na direo do item desejado clique em Edit. Clicando em Add Item possvel adicionar vrias itens para que seja exibido no grfico, de carga de CPU a Inodes utilizados. Nestes grficos possvel agregar valores, adicionar vrios parametros em um mesmo grfico, etc.

    6.7. Screens

    possivel que seja exibidos diversos informaes por grficos, dados, entre outras coisas de uma s vez, sendo de um nico host ou outros. Para adicionar uma screen ou tela, v em Configuration > Screen > Create Screen. D o nome da tela, escolha quantas columas e linhas dever ter seu screen. Clique em Save para terminar de criar. Agora sra exibido todos os screens, na direo do item desejado clique em Edit. Clicando em Edit em cada quadrado do screen, pode-se escolher entre vrios itens, at hora local do host que est sendo monitorado.

    6.8. Auditoria

    Para que um sistema seja seguro e confivel, o ideal que se tenha um controle total do aplicativo, inclusive um log para que seja possvel que se veja quais alteraes foram feitas. O Zabbix tem um sistema de auditoria no qual se registra todas alteraes feitas no sistema. Para acesso v em Configuration > Audit. possvel ver informaes pela hora, o usurio que fez a alterao, o recurso utilizado, a ao que foi feita e os detalhes desses alteraes.

    6.9. Mapas

    A criao de mapas um dos grandes recursos disponvel no Zabbix. No qual possvel a criao de mapas mostrando entre hosts, e a ligao entre eles, mostrando ao vivo o status de toda a rede. Para configurao do Zabbix acesse Configuration > Maps > Create Maps.

    7. Scripts Esta sesso est alguns scripts para inicializao do servidor e cliente do Zabbix.

    7.1. Servidor

    Este script serve para inicializar o servidor do Zabbix, inclusive para quando a mquina for reiniciada e o servio ficar novamente disponvel. Crie o arquivo /etc/init.d/zabbixServer.sh e inclua o contedo abaixo:

    #!/bin/sh

    server_cfgfile='/etc/zabbix/zabbix_server.conf' server_pidfile='/var/tmp/zabbix_server.pid' server_daemon='/usr/local/bin/zabbix_server' PATH=$PATH:/usr/bin:/usr/sbin:/bin export PATH

    case "$1" in start) proc=`ps -ef | grep zabbix_server | grep -v grep |wc -l` if [ $proc -ne 0 ]; then echo " Zabbix Server is ALREADY running" echo exit fi rm $server_pidfile 2>/dev/null echo echo "Starting Zabbix Server: ..." nohup $server_daemon -c $server_cfgfile > /dev/null 2>&1 & sleep 1 proc=`ps -ef | grep zabbix_server |grep -v grep |wc -l` if [ $proc -ne 0 ]; then echo " Zabbix Server is running"

    Pgina 6 de 9Instalao e Configurao do monitor de rede Zabbix

    13/11/2008http://www.gouvea.net/zabbix.html

  • else echo " Zabbix Server is NOT running" rm $server_pidfile 2>/dev/null echo " Try Starting Again!!" fi echo ;;

    stop) echo echo "Stopping Zabbix Server: ..." ## Killing Process kill `cat $server_pidfile 2>/dev/null` 2>/dev/null rm $server_pidfile 2>/dev/null sleep 1 proc=`ps -ef | grep zabbix_server |grep -v grep |wc -l` if [ $proc -ne 0 ]; then echo " Zabbix Server is running" else echo " Zabbix Server is NOT running" fi echo ;;

    restart) echo echo "Re-Starting Zabbix Server: ..." ## Killing Process kill `cat $server_pidfile 2>/dev/null` 2>/dev/null rm $server_pidfile 2>/dev/null ## Starting Process nohup $server_daemon -c $server_cfgfile > /dev/null 2>&1 & sleep 1

    proc=`ps -ef | grep zabbix_server |grep -v grep |wc -l` if [ $proc -ne 0 ]; then echo " Zabbix Server is running" else echo " Zabbix Server is NOT running" fi echo ;;

    status) echo echo "Checking Zabbix Server status: ..." proc=`ps -ef | grep zabbix_server |grep -v grep |wc -l` if [ $proc -ne 0 ]; then echo " Zabbix Server is running" else echo " Zabbix Server is NOT running" fi echo ;;

    *) echo echo " Usage: zabbixServer {start|stop|restart|status}" echo exit 1 esac

    Agora d a permisso de execuo para o arquivo e crie os links com o comando abaixo:

    Pgina 7 de 9Instalao e Configurao do monitor de rede Zabbix

    13/11/2008http://www.gouvea.net/zabbix.html

  • # chmod +x /etc/init.d/zabbixServer.sh # ln -s /etc/init.d/zabbixServer.sh /etc/rc2.d/S99ZabbixServer

    7.2. Cliente

    Este script serve para inicializar o cliente do Zabbix, inclusive para quando a mquina for reiniciada e o cliente ficar novamente disponvel. Crie o arquivo /etc/init.d/zabbixClient.sh e inclua o contedo abaixo:

    #!/bin/bash PATH=/bin:/usr/bin:/sbin:/usr/sbin:/zabbix/bin DAEMON=/usr/bin/zabbix_agentd

    DESC="Zabbix agent" CONFFILE=/etc/zabbix/zabbix_agentd.conf

    pidfile=$( [ -f "$CONFFILE" ] && grep "PidFile=/" $CONFFILE | awk -F= '{print $2}' ) zabport=$( [ -f "$CONFFILE" ] && grep "ListenPort=" $CONFFILE | awk -F= '{print $2}' ) zabservport=$( [ -f "$CONFFILE" ] && grep "ServerPort=" $CONFFILE | awk -F= '{print $2}' )

    name=${DAEMON##*/} test -f $DAEMON || exit 0 set -e case "$1" in start) echo "Starting $DESC: $name" [ ! "$pidfile" ] && echo "could not locate or encountered an error parsing configuration file $CONFFILE, exiting" && exit 1

    if [ -f $pidfile ]; then if [ "$(ps -ef | grep $(cat $pidfile) | grep $name)" ]; then echo "Zabbix agent appears to be running... PID $(cat $pidfile)" exit 1 else rm $pidfile fi fi start-stop-daemon --oknodo --start --pidfile $pidfile --exec $DAEMON && echo "$DESC Started" && exit 0 echo "$DESC Startup Failed" ;;

    stop) echo "Stopping $DESC: $name" start-stop-daemon --oknodo --stop --pidfile $pidfile --exec $DAEMON; ;;

    restart|force-reload) echo -n "Restarting $DESC" $0 stop $0 start ;;

    *) echo "Usage: $0 {start|stop|restart|force-reload}" >&2 exit 1 ;;

    esac

    exit 0

    Agora d a permisso de execuo para o arquivo e crie os links com o comando abaixo:

    # chmod +x /etc/init.d/zabbixClient.sh # ln -s /etc/init.d/zabbixClient.sh /etc/rc2.d/S99ZabbixClient

    Referncias Bibliogrficas [wk_tcpip] TCP/IP - Transmission Control Protocol / Internet Protocol. http://pt.wikipedia.org/wiki/TCPIP .

    [download] Zabbix - Download. http://www.zabbix.com/download.php .

    Pgina 8 de 9Instalao e Configurao do monitor de rede Zabbix

    13/11/2008http://www.gouvea.net/zabbix.html

  • [snmp] Protocolo SNMP. http://pt.wikipedia.org/wiki/SNMP .

    Glossrio

    TCP/IP - Transmission Control Protocol / Internet Protocol

    O protocolo TCP/IP a juno de 2 protocolos, o TCP, que o protocolo de controle de transmisses, e o IP, que o protocolo de internet. Mais informaes podem ser encontradas nesse site.[wk_tcpip]

    SNMP - Simple Network Management Protocol

    O protocolo SNMP largamente utilizado para prover a gesto de redes. Tanto para monitorar estaes de trabalho e servidores como ativos de rede, como switch e roteadores. Mais informaes podem ser adquiridas nesse site.[snmp]

    VIM - Vi IMproved

    O editor de textos VIM um dos editores de textos mais famosos que existe para linux, devido a sua versatilidade, robustez e utilidade.

    Pgina 9 de 9Instalao e Configurao do monitor de rede Zabbix

    13/11/2008http://www.gouvea.net/zabbix.html