Para qualquer administrador de sistemas, é fulcral ter controlo sobre a sua infraestrutura. Cada vez mais, isso é uma tarefa complicada pois cada vez há mais dispositivos que devem ser monitorizados. Com base neste problema nasceram as plataformas de monitorização, plataformas que nos alertam para os mais variados tipos de problemas de forma centralizada.
Hoje vamos falar um pouco sobre aquela que provavelmente é a uma das ferramentas OpenSource mais usadas neste contexto, o Nagios.
O Nagios permite a monitorização dos mais variados tipos de equipamentos (impressoras, routers, NAS, servidores, computadores, etc.) com uma comunidade extremamente ativa sempre a disponibilizar novos plugins e novas ferramentas.
Instalação Nagios no CentOS 7
Para começar devemos instalar o repositório EPEL e fazer update à nossa máquina:
yum install epel-release yum update
Em seguida podemos então instalar o nagios. Aqui temos duas opções, usar a versão que está nos repositórios ou instalar manualmente.
Confesso que sou maior adepto de usar o que está nos repositórios (a não ser que a versão que esteja seja muito desactualizada ou não traga alguma função que considere útil). O motivo disso é que os pacotes que são distribuídos nos repositórios são testados e a probabilidade de haver problemas de incompatibilidade se tiverem todo o software vindo dos repositórios é muito menor.
Atualmente, 14 de outubro de 2018, a versão disponível nos repositórios é a 3.4.3 e a versão mais atual a 4.4.2.
Vendo o changelog das versões, não há nenhum major update que pareça valer o risco de incompatibilidades no sistema.
Instalação
yum install nagios nrpe nagios-plugins-*
Seguindo este método de instalação, o Nagios vai ficar contido em duas pastas:
- /etc/nagios/ -> pasta com os ficheiros de configuração
- /usr/lib64/nagios/ -> pasta com os executáveis e os plugins
Configuração
Existem inúmeras configurações possíveis, também dependendo dos requisitos de cada um. Gostava de destacar 3 configurações:
Indicar ao Nagios que os “clientes” vão estar separados por ficheiros, editando o ficheiro /etc/nagios/nagios.cfg.
nano /etc/nagios/nagios.cfg #Descomentar a seguinte linha cfg_dir=/etc/nagios/servers mkdir /etc/nagios/servers
Assim o Nagios vai procurar todos os ficheiros na pasta /etc/nagios/servers com a terminação “.cfg” e encarar cada um deles como um cliente. Esta configuração facilita a organização.
Devemos também editar o email de contacto de forma que o Nagios nos possa notificar quando há problemas.
nano /etc/nagios/objects/contacts.cfg #editar o campo abaixo email [email protected] ;
Por fim devemos adicionar um comando para o Nagios poder executar mais verificações nos nossos clientes através do plugin NRPE (Nagios Remote Plugin Executor). Para tal:
nano /etc/nagios/objects/commands.cfg #ADICIONAR O SEGUINTE BLOCO define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 60 -c $ARG1$ }
Devemos ainda redefinir a password da plataforma web:
htpasswd -c /etc/nagios/passwd nagiosadmin
Configurar a firewall:
firewall-cmd --add-port=5666/tcp --permanent firewall-cmd --add-port=80/tcp --permanent firewall-cmd --reload
Configurar os serviços para arrancar no boot:
systemctl enable httpd systemctl enable nagios
E neste momento já podemos iniciar os serviços:
systemctl start httpd systemctl start nagios
Abrindo um browser e dirigindo-nos ao IP “http://ip.da.maquina/nagios” ser-nos-á pedido o utilizador “nagiosadmin” e a password introduzida anteriormente.
Após introduzirmos as credenciais veremos a página do Nagios.
Podemos em seguida escolher várias visões no menu do lado esquerdo. Por exemplo, carregando em “services” obtemos a seguinte vista.
Configuração do Cliente
Agora que temos o Nagios a funcionar, vamos configurar o primeiro cliente. A máquina de base é novamente um CentOS7.
Começando novamente pelo repositório EPEL.
yum install epel-release
Seguindo para a instalação do NRPE.
yum install nrpe nagios-plugins-all
Devemos em seguida configurar o NRPE.
nano /etc/nagios/nrpe.cfg #EDITAR A SEGUINTE LINHA PARA CONTER O IP DO NAGIOS #NESTE CASO DE TESTE O IP DO NAGIOS 192.168.2.163 allowed_hosts=127.0.0.1,::1,192.168.2.163 #estas modificações já são pessoais e deixo ao critério de cada um a definição dos alarmes command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -e -l command[check_load]=/usr/lib64/nagios/plugins/check_load -r -w .80,.70,.60 -c .90,.85,.60 command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 1000 -c 2000
Em seguida, deve ser configurada a firewall:
firewall-cmd --add-port=5666/tcp --permanent firewall-cmd --reload
Configurar o NRPE para começar no boot:
systemctl enable nrpe
E iniciar o serviço:
systemctl start nrpe
Agora que a máquina cliente está pronta, é necessário ir novamente à máquina do Nagios e dizer-lhe onde procurar.
Para tal na máquina do Nagios, deve ser criado o ficheiro de configuração do cliente, vamos chamar a esta máquina “cliente1”.
nano /etc/nagios/servers/cliente1.cfg
Em baixo um exemplo simples de configuração:
define host { use linux-server host_name cliente1 alias cliente1 address 192.168.2.162 max_check_attempts 5 check_period 24x7 notification_interval 30 notification_period 24x7 } define service { use generic-service host_name cliente1 service_description PING check_command check_ping!100.0,20%!500.0,60% } define service { use generic-service host_name cliente1 service_description SSH check_command check_ssh notifications_enabled 0 } define service { use generic-service host_name cliente1 service_description Disk check_command check_nrpe!check_disk } define service { use generic-service host_name cliente1 service_description Load check_command check_nrpe!check_load notifications_enabled 0 } define service { use generic-service host_name cliente1 service_description Procs check_command check_nrpe!check_total_procs notifications_enabled 0 }
Por fim, precisamos de reiniciar o nagios:
systemctl restart nagios
Agora se nos dirigirmos novamente à página do Nagios iremos encontrar o nosso novo cliente.
E no menu “services” veremos já os serviços deste cliente.
Serviços Adicionais
Como já indicado em cima, existem uma infinidade de plugins para Nagios (e podemos sempre criar os nossos), e neste passo vamos mostrar como configurar um dos que eu considero mais fundamentais nos tempos que correm.
Vamos configurar o Nagios para nos alertar quando temos updates de segurança pendentes.
Para tal começamos pela máquina cliente.
Este plugin é barrado remotamente pelo SELinux, de forma a ele funcionar temos de indicar ao SELinux que os processos despoletados pelo NRPE são de confiança com o seguinte comando:
semanage permissive -a nrpe_t
Em seguida, deve ser instalado o plugin:
cd /usr/lib64/nagios/plugins Wget https://raw.githubusercontent.com/HariSekhon/nagios-plugins/master/check_yum.py chmod 755 check_yum.py
Depois configuramos o NRPE para incluir o novo serviço.
nano /etc/nagios/nrpe.cfg #ADICIONAMOS A SEGUINTE LINHA command[check_yum]=/usr/lib64/nagios/plugins/check_yum.py
E reiniciamos o serviço:
systemctl restart nrpe
Agora falta na máquina Nagios indicarmos o novo serviço, para tal na máquina Nagios, editamos o ficheiro de configuração do nosso cliente1 criado anteriormente:
nano /etc/nagios/servers/cliente1.cfg #adicionamos o seguinte bloco define service { use generic-service host_name cliente1 service_description YUM check_command check_nrpe!check_yum }
E por fim reiniciamos o serviço
systemctl restart nagios
Agora se nos dirigirmos à página web veremos a indicação do novo serviço.
Esperemos que este artigo possa ser útil. Estamos a preparar mais alguns artigos sobre como dar ainda mais utilidade ao Nagios para as próximas semanas. Deixem os vossos comentários, sugestões e dúvidas.