Monitorando Rede com Zabbix no Debian 7
Neste artigo, mostrarei como instalar e configurar o Zabbix no Debian 7, esta excelente ferramenta para monitoramento de rede. E ensinar como já começar o monitoramento de clientes Linux e Windows.
Parte 2: Instalação
Vamos começar, realmente, a instalação do Zabbix. O primeiro passo é popular a base de dados que criamos anteriormente:
# cat /etc/zabbix/install/zabbix-2.0.8/database/mysql/schema.sql | mysql -u zabbix -p<password> zabbix
# cat /etc/zabbix/install/zabbix-2.0.8/database/mysql/images.sql | mysql -u zabbix -p<password> zabbix
# cat /etc/zabbix/install/zabbix-2.0.8/database/mysql/data.sql | mysql -u zabbix -p<password> zabbix
Depois de popular o banco de dados, vamos configurar o pacote para a instalação. Para isso, navegue até o deretório "/etc/zabbix/install/zabbix-2.0.8/":
# ./configure --prefix=/etc/zabbix --enable-server --enable-agent --enable-java --with-mysql --with-net-snmp --with-jabber --with-libcurl=/usr/bin/curl-config --with-ssh2 --with-openipmi
Onde:
Obs: caso queira verificar todos os módulos disponíveis no Zabbix, execute o comando
./configure --help
Depois de configurarmos o pacote, vamos compilar e instalar:
# make; make install
Vamos editar o arquivo "/etc/services", adicionando as portas necessárias para comunicação do Zabbix:
# pico /etc/services
Obs: como é possível reparar neste arquivo, as portas estão em ordem, adicione as linhas acima nesta ordem. Lembrando que, em alguns casos, a linha é adicionada automaticamente, então, tente localiza-las antes de inserir manualmente.
Agora, vamos criar alguns links para ficar mais fácil a localização dos arquivos de configuração, tanto do cliente, como do servidor Zabbix:
# ln -s /etc/zabbix/etc/zabbix_agentd.conf /etc/zabbix
# ln -s /etc/zabbix/etc/zabbix_server.conf /etc/zabbix
Vamos editar o arquivo "/etc/zabbix/zabbix_agentd.conf", alterando os seguintes valores:
# pico /etc/zabbix/zabbix_agentd.conf
Depois, vamos alterar as configurações do arquivo "/etc/zabbix/zabbix_agentd.conf", que é a configuração do servidor Zabbix:
# pico /etc/zabbix/zabbix_server.conf
Obs: certifique-se que o caminho do fping da sua instalação é realmente igual ao do nosso exemplo com o comando whereis fping, para que não haja problemas posteriormente.
Vamos configurar agora, a parte dos frontends:
# mkdir /var/www/zabbix
# cp -R /etc/zabbix/install/zabbix-2.0.8/frontends/php/* /var/www/zabbix/
# chown -R www-data:www-data /var/www/zabbix/
# /etc/init.d/apache2 restart
Agora, precisamos criar os scripts de start-stop-restart, tanto do servidor, quanto do cliente Zabbix:
# pico /etc/init.d/zabbix_agentd
# pico /etc/init.d/zabbix_server
Vamos dar permissão aos scripts e iniciar o agente e o servidor Zabbix:
# chmod +x /etc/init.d/zabbix_server /etc/init.d/zabbix_agentd
# /etc/init.d/zabbix-server start
# /etc/init.d/zabbix-agentd start
Vamos configurar a inicialização do sistema para que os serviços sejam devidamente iniciados junto com o sistema:
# update-rc.d -f zabbix_server defaults
# update-rc.d -f zabbix_agentd defaults
Pronto, já fizemos todas as configurações necessárias no Unix. Vamos agora à parte gráfica do negócio, para isso, devemos acessar o endereço:
http://ip_do_servidor/zabbix
Uma janela semelhante a essa será exibida. Clique em: Next
Verifique todas as dependências e se estiver tudo Ok, clique em: Next
Preencha os campos para conexão com o banco de dados, clique em Test connection para testar a conexão e, se estiver Ok, clique em: Next
# cat /etc/zabbix/install/zabbix-2.0.8/database/mysql/schema.sql | mysql -u zabbix -p<password> zabbix
# cat /etc/zabbix/install/zabbix-2.0.8/database/mysql/images.sql | mysql -u zabbix -p<password> zabbix
# cat /etc/zabbix/install/zabbix-2.0.8/database/mysql/data.sql | mysql -u zabbix -p<password> zabbix
Depois de popular o banco de dados, vamos configurar o pacote para a instalação. Para isso, navegue até o deretório "/etc/zabbix/install/zabbix-2.0.8/":
# ./configure --prefix=/etc/zabbix --enable-server --enable-agent --enable-java --with-mysql --with-net-snmp --with-jabber --with-libcurl=/usr/bin/curl-config --with-ssh2 --with-openipmi
Onde:
- --prefix=/etc/zabbix → Indicando o diretório dos arquivos de instalação.
- --enable-server → Habilitando o servidor Zabbix.
- --enable-agent → Habilitando o agente Zabbix.
- --enable-java → Habilitando o Java.
- --with-mysql → Indicando qual será a nossa base de dados, no nosso caso o MySQL.
- --with-net-snmp → Habilitando o monitoramento SNMP.
- --with-jabber → Habilitando o envio de mensagens via Jabber.
- --with-libcurl=/usr/bin/curl-config → Habilitando a biblioteca Curl e indicando o seu diretório.
- --with-ssh2 → Habilitando o modulo SSH2 para comandos remotos e monitoramento via SSH.
- --with-openipmi → Habilitando o monitoramento IPMI.
Obs: caso queira verificar todos os módulos disponíveis no Zabbix, execute o comando
./configure --help
Depois de configurarmos o pacote, vamos compilar e instalar:
# make; make install
Vamos editar o arquivo "/etc/services", adicionando as portas necessárias para comunicação do Zabbix:
# pico /etc/services
zabbix-agent 10050/tcp #Zabbix Agent
zabbix-agent 10050/udp #Zabbix Agent
zabbix-trapper 10051/tcp #Zabbix Trapper
zabbix-trapper 10051/udp #Zabbix Trapper
zabbix-agent 10050/udp #Zabbix Agent
zabbix-trapper 10051/tcp #Zabbix Trapper
zabbix-trapper 10051/udp #Zabbix Trapper
Obs: como é possível reparar neste arquivo, as portas estão em ordem, adicione as linhas acima nesta ordem. Lembrando que, em alguns casos, a linha é adicionada automaticamente, então, tente localiza-las antes de inserir manualmente.
Agora, vamos criar alguns links para ficar mais fácil a localização dos arquivos de configuração, tanto do cliente, como do servidor Zabbix:
# ln -s /etc/zabbix/etc/zabbix_agentd.conf /etc/zabbix
# ln -s /etc/zabbix/etc/zabbix_server.conf /etc/zabbix
Vamos editar o arquivo "/etc/zabbix/zabbix_agentd.conf", alterando os seguintes valores:
# pico /etc/zabbix/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid
LogFile=/tmp/zabbix_agentd.log
LogFileSize=2
DebugLevel=3
EnableRemoteCommands=1
LogRemoteCommands=1
Server=127.0.0.1
ListenPort=10050
Hostname=Informe_o_nome_do_seu_servidor
LogFile=/tmp/zabbix_agentd.log
LogFileSize=2
DebugLevel=3
EnableRemoteCommands=1
LogRemoteCommands=1
Server=127.0.0.1
ListenPort=10050
Hostname=Informe_o_nome_do_seu_servidor
Depois, vamos alterar as configurações do arquivo "/etc/zabbix/zabbix_agentd.conf", que é a configuração do servidor Zabbix:
# pico /etc/zabbix/zabbix_server.conf
ListenPort=10051
LogFile=/tmp/zabbix_server.log
LogFileSize=2
PidFile=/tmp/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=senha do zabbix para acessar o banco de dados
StartIPMIPollers=1
StartDiscoverers=5
FpingLocation=/usr/sbin/fping
LogFile=/tmp/zabbix_server.log
LogFileSize=2
PidFile=/tmp/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=senha do zabbix para acessar o banco de dados
StartIPMIPollers=1
StartDiscoverers=5
FpingLocation=/usr/sbin/fping
Obs: certifique-se que o caminho do fping da sua instalação é realmente igual ao do nosso exemplo com o comando whereis fping, para que não haja problemas posteriormente.
Vamos configurar agora, a parte dos frontends:
# mkdir /var/www/zabbix
# cp -R /etc/zabbix/install/zabbix-2.0.8/frontends/php/* /var/www/zabbix/
# chown -R www-data:www-data /var/www/zabbix/
# /etc/init.d/apache2 restart
Agora, precisamos criar os scripts de start-stop-restart, tanto do servidor, quanto do cliente Zabbix:
# pico /etc/init.d/zabbix_agentd
#!/bin/sh
#
# Zabbix agent start/stop script.
#
# Written by Alexei Vladishev <alexei.vladishev@zabbix.com>.
NAME=zabbix_agentd
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/home/zabbix/bin
DAEMON=/etc/zabbix/sbin/${NAME}
DESC="Zabbix agent daemon"
PID=/tmp/$NAME.pid
test -f $DAEMON || exit 0
set -e
case "$1" in
start)
echo "Starting $DESC: $NAME"
start-stop-daemon --oknodo --start --pidfile $PID \
--exec $DAEMON
;;
stop)
echo "Stopping $DESC: $NAME"
start-stop-daemon --oknodo --stop --pidfile $PID \
--exec $DAEMON
;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is
# just the same as "restart".
#
# echo -n "Restarting $DESC: zabbix_agent"
$0 stop
$0 start
# start-stop-daemon --stop --quiet --pidfile \
# /tmp/$NAME.pid --user zabbix --exec $DAEMON
# sleep 1
# start-stop-daemon --start --quiet --pidfile \
# /tmp/$NAME.pid --user zabbix --exec $DAEMON
# echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|force-reload}" >&2
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
#
# Zabbix agent start/stop script.
#
# Written by Alexei Vladishev <alexei.vladishev@zabbix.com>.
NAME=zabbix_agentd
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/home/zabbix/bin
DAEMON=/etc/zabbix/sbin/${NAME}
DESC="Zabbix agent daemon"
PID=/tmp/$NAME.pid
test -f $DAEMON || exit 0
set -e
case "$1" in
start)
echo "Starting $DESC: $NAME"
start-stop-daemon --oknodo --start --pidfile $PID \
--exec $DAEMON
;;
stop)
echo "Stopping $DESC: $NAME"
start-stop-daemon --oknodo --stop --pidfile $PID \
--exec $DAEMON
;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is
# just the same as "restart".
#
# echo -n "Restarting $DESC: zabbix_agent"
$0 stop
$0 start
# start-stop-daemon --stop --quiet --pidfile \
# /tmp/$NAME.pid --user zabbix --exec $DAEMON
# sleep 1
# start-stop-daemon --start --quiet --pidfile \
# /tmp/$NAME.pid --user zabbix --exec $DAEMON
# echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|force-reload}" >&2
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
# pico /etc/init.d/zabbix_server
#!/bin/sh
#
# Zabbix daemon start/stop script.
#
# Written by Alexei Vladishev <alexei.vladishev@zabbix.com>.
NAME=zabbix_server
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/home/zabbix/bin
DAEMON=/etc/zabbix/sbin/${NAME}
DESC="Zabbix server daemon"
PID=/tmp/$NAME.pid
test -f $DAEMON || exit 0
set -e
case "$1" in
start)
echo "Starting $DESC: $NAME"
start-stop-daemon --oknodo --start --pidfile $PID \
--exec $DAEMON
;;
stop)
echo "Stopping $DESC: $NAME"
start-stop-daemon --oknodo --stop --pidfile $PID \
--exec $DAEMON
;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is 10
# just the same as "restart".
#
# echo -n "Restarting $DESC: zabbix_server"
$0 stop
$0 start
# start-stop-daemon --stop --quiet --pidfile \
# /tmp/$NAME.pid --user zabbix --exec $DAEMON
# sleep 1
# start-stop-daemon --start --quiet --pidfile \
# /tmp/$NAME.pid --user zabbix --exec $DAEMON
# echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|force-reload}" >&2
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
#
# Zabbix daemon start/stop script.
#
# Written by Alexei Vladishev <alexei.vladishev@zabbix.com>.
NAME=zabbix_server
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/home/zabbix/bin
DAEMON=/etc/zabbix/sbin/${NAME}
DESC="Zabbix server daemon"
PID=/tmp/$NAME.pid
test -f $DAEMON || exit 0
set -e
case "$1" in
start)
echo "Starting $DESC: $NAME"
start-stop-daemon --oknodo --start --pidfile $PID \
--exec $DAEMON
;;
stop)
echo "Stopping $DESC: $NAME"
start-stop-daemon --oknodo --stop --pidfile $PID \
--exec $DAEMON
;;
restart|force-reload)
#
# If the "reload" option is implemented, move the "force-reload"
# option to the "reload" entry above. If not, "force-reload" is 10
# just the same as "restart".
#
# echo -n "Restarting $DESC: zabbix_server"
$0 stop
$0 start
# start-stop-daemon --stop --quiet --pidfile \
# /tmp/$NAME.pid --user zabbix --exec $DAEMON
# sleep 1
# start-stop-daemon --start --quiet --pidfile \
# /tmp/$NAME.pid --user zabbix --exec $DAEMON
# echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|force-reload}" >&2
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
Vamos dar permissão aos scripts e iniciar o agente e o servidor Zabbix:
# chmod +x /etc/init.d/zabbix_server /etc/init.d/zabbix_agentd
# /etc/init.d/zabbix-server start
# /etc/init.d/zabbix-agentd start
Vamos configurar a inicialização do sistema para que os serviços sejam devidamente iniciados junto com o sistema:
# update-rc.d -f zabbix_server defaults
# update-rc.d -f zabbix_agentd defaults
Pronto, já fizemos todas as configurações necessárias no Unix. Vamos agora à parte gráfica do negócio, para isso, devemos acessar o endereço:
http://ip_do_servidor/zabbix
Uma janela semelhante a essa será exibida. Clique em: Next
Verifique todas as dependências e se estiver tudo Ok, clique em: Next
Deixe padrão o nome do host e a porta, e em Name, insira o nome do seu servidor e clique em: Next
Confira os dados inseridos e clique em: Next
Pronto, o Zabbix já está configurado. Logo após clicar em Finish, será exibida a tela de login.
Por padrão:
- Usuário: admin
- Senha: zabbix
Para habilita-lo, vá em Configuration e depois em Host, logo você visualizará o servidor. E em Status, estará como Not monitored, basta clicar em cima que o status ficará como Monitored.
Curso completo de Zabbix na Treinatux Interativa, EAD, compartilhamento de shell e aulas que ficam gravadas em formato mp4 para download posterior.
www.treinatuxinterativa.com