Archive for outubro, 2012

Monitorando servidores remotos com o Nagios NRPE no Linux Centos 6

Há algum tempo atrás, escrevi um artigo sobre como instalar o Nagios em um servidor Linux Centos 5, e posteriormente atualizei para que funcionasse também no Centos 6 Minimal.

No artigo que escrevi, mostro como o Nagios pode monitorar a própria máquina, e agora irei mostrar como monitorar outras máquinas com o NRPE (Nagios Remote Plugin Executor).

Se você nunca instalou o Nagios, é importante que instale seguindo as instruções do artigo.

Para o exemplo, irei considerar duas máquinas:

  • Servidor – Servidor de monitoramento, com IP: 192.168.0.247
  • Cliente – Cliente que será monitorado, com IP: 192.168.0.248

O procedimento deve ser executado em uma máquina com instalação limpa do Centos 6 Minimal para que funcione corretamente. É importante que antes de testar em uma máquina de produção, você simule em máquinas virtuais.

As duas máquinas deverão estar com acesso à internet e com a rede local configurada.

Atenção! O Servidor já deverá estar como Nagios instalado. Se você ainda não fez isso, siga as instruções do artigo citado acima!

Execute os passos abaixo para instalar o NRPE no cliente (que será monitorado).

Obs.: Se os códigos abaixo aparecerem sem o destaque, acesse o link direto do artigo aqui.

Todos os comandos abaixo devem ser executados como root. Antes de começar, adquira permissões de root e atualize o sistema:

su -l
yum update

1. Pré-requisitos

yum install openssl-devel xinetd make gcc perl

2. Dados para acesso

useradd nagios
passwd nagios

3. Baixe os plugins e o NRPE

Baixe os arquivos para instalação do NRPE e dos Plugins (visite http://www.nagios.org/download/ para a última versão). Esse passo-a-passo foi testado com o NRPE 2.12 e Nagios Plugins 1.4.11.

mkdir ~/downloads
cd ~/downloads
wget http://ufpr.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.11/nagios-plugins-1.4.11.tar.gz
wget http://ufpr.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz

4. Instale os plugins

tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
chown nagios.nagios /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios/libexec

5. Instale o NRPE

cd ~/downloads
tar xzf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure 
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd

6. Configurações adicionais do NRPE

Adicione o serviço do NRPE no arquivo /etc/services. Por algum motivo que desconheço, quando copio e colo a linha a ser adicionada, eu tenho um problema (mais adiante) ao configurar a máquina servidor para se conectar com o cliente. Retorna uma mensagem como essa: CHECK_NRPE: Error – Could not complete SSL handshake. Então recomendo que você não copie e cole a linha abaixo, e sim digite ela no arquivo /etc/services (vi /etc/services):

nrpe      5666/tcp     #NRPE

Adicione o xinetd para iniciar quando a máquina ligar, e reinicie o xinetd

chkconfig xinetd on
service xinetd restart

Verifique se o NRPE está ouvindo na porta 5666

netstat -at |grep nrpe

A saída deve ser algo como:

tcp    0    0 *:nrpe    *.*    LISTEN

Verifique se o NRPE está funcionando:

/usr/local/nagios/libexec/check_nrpe -H localhost

A saída deve ser algo como:

NRPE v2.12

Agora que verificamos que o NRPE está funcionando, abra o arquivo /etc/xinetd.d/nrpe e na linha "only_from", troque o IP 127.0.0.1 pelo IP do servidor de monitoramento. No nosso caso:

only_from       = 192.168.0.247

Abra a porta 5666 no Firewall:

/sbin/iptables -I INPUT -p tcp --dport 5666 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart

Agora execute os passos abaixo para instalar o NRPE no servidor (máquina que irá monitorar as outras)

7. Instale os pré-requisitos

yum -y install openssl-devel

8. Baixe o NRPE

Baixe os arquivos para instalação do NRPE (visite http://www.nagios.org/download/ para a última versão). Esse passo-a-passo foi testado com o NRPE 2.12.

cd ~/downloads
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

9. Instale o NRPE

tar xzf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure 
make all
make install-plugin

10. Testando a conexão com o cliente. Lembre-se de trocar pelo IP correto

/usr/local/nagios/libexec/check_nrpe -H 192.168.0.248

Se você receber o erro CHECK_NRPE: Error – Could not complete SSL handshake, veja novamente o passo 6.

Deverá retornar algo como:

NRPE v2.12

11. Crie a definição de comando do NRPE

Adicione ao arquivo /usr/local/nagios/etc/objects/commands.cfg (vi /usr/local/nagios/etc/objects/commands.cfg):

###############################################################################
# NRPE CHECK COMMAND
#
# Command to use NRPE to check remote host systems
###############################################################################

define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

12. Crie um template

Adicione ao arquivo /usr/local/nagios/etc/objects/linux-box-remote.cfg (vi /usr/local/nagios/etc/objects/linux-box-remote.cfg):

define host{
          name                  linux-box-remote 		; Name of this template
          use                   generic-host			; Inherit default values
          check_period          24x7
          check_interval        5
          retry_interval        1
          max_check_attempts    10
          check_command         check-host-alive
          notification_period   24x7
          notification_interval 30
          notification_options  d,r
          contact_groups        admins
          register              0 						; DONT REGISTER THIS - ITS A TEMPLATE	
          }

define host{
          use       linux-box-remote; 
          host_name cliente			; Nome do servidor (curto)
          alias     cliente			; Nome do servidor (pode ser maior)
          address   192.168.0.248   ; IP do cliente
          }

define service{
          use                 generic-service
          host_name           cliente
          service_description CPU Load
          check_command       check_nrpe!check_load
          }
define service{
          use                 generic-service
          host_name           cliente
          service_description Current Users
          check_command       check_nrpe!check_users
          }
define service{
          use                 generic-service
          host_name           cliente
          service_description /dev/hda1 Free Space
          check_command       check_nrpe!check_hda1
          }
define service{
          use                 generic-service
          host_name           cliente
          service_description Total Processes
          check_command       check_nrpe!check_total_procs
          }
define service{
          use                 generic-service
          host_name           cliente
          service_description Zombie Processes
          check_command       check_nrpe!check_zombie_procs
          }

13. Ative o template linux-box-remote.cfg.

Abra o arquivo /usr/local/nagios/etc/nagios.cfg (vi /usr/local/nagios/etc/nagios.cfg) e adicione:

#Definicoes para monitoramento de máquina linux remota
cfg_file=/usr/local/nagios/etc/objects/linux-box-remote.cfg

14. Verifique se as configurações estão corretas

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Deverá retornar algo como:

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

15. Reinicie os serviços e acesse o nagios

service httpd restart
service nagios restart

Agora é só acessar o servidor: 192.168.0.247/nagios e logar com o usuário nagiosadmin (e a senha que você definiu

Pronto! Agora você já pode monitorar suas máquinas remotas com o Nagios! Dúvidas? Use os comentários!

Fonte: http://www.kernelhardware.org/nagios-nrpe-to-monitor-remote-linux-server/


Enviando e-mails pelo terminal ou por um script Shell no Centos Linux 6

Enviar e-mails é uma coisa bastante útil quando se utiliza rotinas automáticas, como backups, por exemplo. Abaixo mostro uma dica rápida de como fazer isso.

Nos testes utilizei o Centos 6.3 minimal, que é a versão mais "básica" do CentOS.

Antes de começar, instale o sendmail. Lembre de estar logado como root:

yum install sendmail #Instalando sendmail
chkconfig sendmail on #Configurando para iniciar servico quando o computador ligar

Depois é só seguir o exemplo abaixo para enviar um e-mail:

echo "CORPO DO E-MAIL" | mail -s "ASSUNTO DO E-MAIL" endereco@do.email

Troque ASSUNTO DO E-MAIL, CORPO DO E-MAIL e endereco@do.email pelas informações corretas, e pronto! É claro que esse é um exemplo bem simplificado, útil para enviar alertas ao administrador de um servidor. Se quizer mais detalhes, veja o link abaixo.

Fonte: http://www.dicas-l.com.br/arquivo/enviar_email_com_msmtp.php


Configurando máquinas com ou sem horário de verão brasileiro no Centos Linux 6, Ubuntu 10.04 ou Mint 13

Se você, assim como eu, está com problemas em relação ao horário de verão em alguma máquina com o CentOS Linux, três linhas de código resolvem seu problema.

A dica abaixo foi testada inicialmente no CentOS, mas posteriormente testei no Linux Mint 13 (Maya) e Ubuntu 10.04 (Lucid Lynx). Provavelmente deverá funcionar também nas versões mais recentes do Ubuntu, no Debian e no Fedora.

Não se esqueça de executar os comandos como root, digitando su antes de começar, se estiver usando o CentOS, ou sudo antes de cada comando se estiver usando Ubuntu ou Linux Mint. No caso do Debian e do Fedora, não me lembro se já vem com senha de root ou com sudo definido.

Caso a máquina esteja em um local do Brasil que não está no horário de verão:

#FAZENDO BACKUP DO ARQUIVO QUE DEFINE A HORA DO SISTEMA
cp /etc/localtime /etc/localtime_bkp

#COPIANDO ARQUIVO REFERENTE AO TIMEZONE DE RECIFE, SEM HORARIO DE VERAO
cp /usr/share/zoneinfo/America/Recife /etc/localtime

#ATUALIZANDO A HORA
ntpdate br.pool.ntp.org pool.ntp.org

Caso a máquina esteja em um local do Brasil que está no horário de verão:

#FAZENDO BACKUP DO ARQUIVO QUE DEFINE A HORA DO SISTEMA
cp /etc/localtime /etc/localtime_bkp

#COPIANDO ARQUIVO REFERENTE AO TIMEZONE DE SAO PAULO, COM HORARIO DE VERAO
cp /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime

#ATUALIZANDO A HORA
ntpdate br.pool.ntp.org pool.ntp.org

Mais informações:


Fontes para Windows não funcionam no Centos Linux 6

Para resolver esse pequeno problema, copie todas as fontes que você quer para o diretório /usr/share/fonts

Atualize o sistema:

yum update

Instale as dependências:

yum install freetype

Se sua instalação for x86_64 (64 bits), instale o pacote rpm fontconfig-2.8.0-3.el6.x86_64.rpm:

rpm -Uvh ftp://mirror.switch.ch/pool/1/mirror/scientificlinux/6rolling/x86_64/os/Packages/fontconfig-2.8.0-3.el6.x86_64.rpm

Se sua instalação for i386 (32 bits), instale o pacote rpm fontconfig-2.8.0-3.el6.i686.rpm:

rpm -Uvh ftp://mirror.switch.ch/pool/1/mirror/scientificlinux/6rolling/i386/os/Packages/fontconfig-2.8.0-3.el6.i686.rpm

Se os endereços acima não funcionarem, você pode procurar um outro pelo site rpm.pbone.net

E por último, basta rodar o seguinte comando:

fc-cache -f -v

Caso esteja utilizando um servidor web como Tomcat ou Apache, talvez seja necessário reiniciar o serviço para que as alterações façam efeito.

Fonte: http://www.centos.org/modules/newbb/viewtopic.php?topic_id=39629&forum=55


Como descobrir no número do processo de um programa (Ex.: java) no CentOS Linux

Eventualmente precisamos saber o número do processo de um programa.

Os números de todos os processos rodando no sistema podem ser obtidos a partir do comando:

ps aux

Se você quizer sabe o número – e apenas o número – de processo de um programa específico, como por exemplo, o Java? Você pode fazer essa forma:

/sbin/pidof java

Caso você queira outras informações, além do número do precesso, pode fazer dessa forma:

ps aux | grep java

Procedimento testado no CentOS Linux 6.3


Instalando Tomcat 6 com o Wget e iniciando como serviço no Centos 6

O Tomcat 6 é uma das poucas aplicações que prefiro instalar com Wget ao invés de utilizar o yum. Mas e óbvio que isso é uma opção pessoal, e não estou dizendo que é a melhor.

A maioria das aplicações já está utilizando o Tomcat 7, o que é mais recomendado. Mas algumas aplicações só funcionam no Tomcat 6, e precisam ser migradas para o Tomcat 7.

A distribuição que estou utilizando no exemplo é CentOS 6.3, já com acesso à internet previamente configurado. A ISO dela é essa: CentOS-6.3-x86_64-minimal.iso.

Nesse artigo não vou considerar as melhores práticas de segurança. Isso é assunto para um próximo artigo.

A versão utilizada foi a 6.0.35. Caso o link que não funcione, ou queira verificar se existe uma versão mais nova, acesse: http://tomcat.apache.org/download-60.cgi

Acesse a máquina como root, e vamos ao passo-a-passo da instalação básica:

#Atualizando o sistema
yum -y update

#Instalado as dependências
yum -y install nano wget java-1.6.0-openjdk

#Indo para o diretório raiz (/)
cd /

#Baixando o Tomcat 6
wget http://apache.mirror.pop-sc.rnp.br/apache/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.tar.gz

#Descompactando
tar -zxvf apache-tomcat-6.0.35.tar.gz

#Movendo para a pastar /var
mv /apache-tomcat-6.0.35 /var/tomcat6

#Dando permissão de execução na pasta bin
chmod +x /var/tomcat6/bin

#Liberando as portas no firewall (iptables)
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
/sbin/iptables -I OUTPUT -p tcp --dport 8080 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart

#Iniciando o Tomcat
/var/tomcat6/bin/startup.sh

Pronto. A instalação básica já está pronta. Agora é só acessar o servidor através de um endereço como: 192.168.0.254:8080 – trocando pelo IP correto, é claro.

Se você não sabe qual o IP, basta dar um ifconfig e olhar em "inet end".

Agora vamos configurar o Tomcat 6 como serviço e iniciar automaticamente quando a máquina ligar.

Coloque o conteudo abaixo dentro do arquivo /etc/init.d/tomcat6 (nano /etc/init.d/tomcat6)

#!/bin/bash  
# description: Tomcat Start Stop Restart  
# processname: tomcat  
# chkconfig: 234 20 80  

case $1 in
   start)
    /var/tomcat6/bin/startup.sh;;
   stop)
    /var/tomcat6/bin/shutdown.sh;;
   restart)
    /var/tomcat6/bin/shutdown.sh
    /var/tomcat6/bin/startup.sh;;
   esac
   exit 0

Depois dê permissão de execução ao script:

chmod +x /etc/init.d/tomcat6

A partir de agora, você pode iniciar, parar e reiniciar o Tomcat 6 da seguinte forma:

#Iniciando o Tomcat 6
service tomcat6 start

#Parando o Tomcat 6
service tomcat6 stop

#Reiniciando o Tomcat 6
service tomcat6 restart

Para finalizar, vamos configurar o serviço para iniciar quando a máquina ligar:

chkconfig --add tomcat6
chkconfig --level 234 tomcat6 on

Mais informações: http://www.davidghedini.com/pg/entry/install_tomcat_6_on_centos


Instalando o Nagios no Linux CentOS 5 ou CentOS 6

O Nagios, como talvez você já saiba, é um software para monitoramento de servidores. Não é o objetivo desse artigo explicar o que o Nagios faz, mas sim, como instalar rapidamente no CentOS. Inicialmente o procedimento foi executado no CentOS 5, mas foi atualizado para ser instalado tanto no Centos 5, quanto no CentOS 6.

Recomendo que utilize uma nova instalação (e de preferência que teste primeiro uma máquina virtual), e com acesso à internet.

Todos os comandos abaixo devem ser executados como root. Antes de começar, adquira permissões de root e atualize o sistema:

su -l
yum update

1. Pré-requisitos

Instale os seguintes pacotes:

yum install httpd php
yum install gcc glibc glibc-common
yum install gd gd-devel

Se você estiver instalando no CentOS 6 Minimal, instale também os seguintes pacotes:

yum install perl make

2. Dados para acesso

Crie o usuário nagios e defina a senha:

/usr/sbin/useradd -m nagios
passwd nagios

Crie o grupo nagcmd para permitir comandos externos, enviados pela interface web. Os usuários nagios e apache devem fazer parte desse grupo:

/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd apache

3. Baixe o Nagios e os Plugins

Crie um diretório para armezenar os arquivos temporariamente:

mkdir ~/downloads
cd ~/downloads

Baixe os arquivos para instalação do Nagios e dos Plugins (visite http://www.nagios.org/download/ para a última versão). Esse passo-a-passo foi testado com o Nagios 3.1.1 e Nagios Plugins 1.4.11.

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
wget http://nagios-plugins.org/download/nagios-plugins-1.4.11.tar.gz

4. Compile e instale o Nagios

cd ~/downloads
tar xzf nagios-3.2.3.tar.gz
cd nagios-3.2.3

Execute os comandos abaixo para compilar e instalar o Nagios:

./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode

5. Configure o Nagios

Um arquivo de configuração de exemplo está no diretório /usr/local/nagios/etc

Edite o arquivo /usr/local/nagios/etc/objects/contacts.cfg e altere o e-mail associado para que você possa receber alertas:

vi /usr/local/nagios/etc/objects/contacts.cfg

6. Configure a interface web

make install-webconf

Crie o usuário nagiosadmin e digite a senha duas vezes. Não esqueça essa senha, pois ela será necessária para o acesso pela interface web:

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Reinicie o Apache:

service httpd restart

7. Compile e instale os Plugins

cd ~/downloads
tar xzf nagios-plugins-1.4.11.tar.gz
cd nagios-plugins-1.4.11
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install

8. Inicie o Nagios

Configurar para que o Nagios inicie automaticamente quando o sistema iniciar:

chkconfig --add nagios
chkconfig nagios on

Verificar o arquivo de configuração:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Se não tiver erros (Errors ou Warnings):

service nagios start

9. Modifique as configurações SELinux

O CentOS vem com o SELinux (Security Enhanced Linux) instalado e configurado no modo "Enforcing" por padrão. Isso pode resultar em um "Internal Server Error" (Erro Interno do Servidor). Para alterar isso, digite:

setenforce 0

Para tornar a alteração permanente, altere o arquivo /etc/selinux/config e deixe a linha SELINUX=disabled

vi /etc/selinux/config

Caso prefira, ao invés de desabilitar o SELinux ou modificar para o modo permissivo, você pode utilizar os comandos abaixo para rodar CGIs no modo "Enforcing" do SELinux:

chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/

10. Configure o Firewall

Libere a porta 80 no Firewall:

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart 

11. Acesse pela Interface Web

Acesse o Nagios pela interface web, pelo seu navegador:

http://localhost/nagios/

Se você estiver instalando em uma máquina remota, troque "localhost" pelo IP do servidor.

Fonte: http://nagios.sourceforge.net/docs/3_0/quickstart-fedora.html

 


  • Publicidade

  • Redes Sociais

    Facebook  Twitter
  • Estatísticas

    Page Views (desde março de 2010):

    Estatísticas detalhadas
  • Novidades por e-mail!

    Digite seu e-mail:


    Fique tranquilo. Seu e-mail não será usado para outros fins, e você poderá se descadastrar quando quizer.

    Eu!

    Tiago Passos
    Todo o conteúdo desse site esta licenciado sob a licença Creative Commons 3.0 (CC BY 3.0). Você pode copiar e modificar o conteúdo desde que cite o autor.
    iDream theme by Templates Next | Powered by WordPress