Monitoração com Nagios

Post on 18-Dec-2014

8.535 views 2 download

description

Palestra apresentada no estande da Globo.com no FISL 10 sobre monitoração utilizando Nagios.

Transcript of Monitoração com Nagios

Monitoração com NagiosCristiano Casado

Requisitos de sistema

Monitorar recursos do sistema: cpu, memória, I/O, partição de disco, rede Em diversas plataformas: Linux, Solaris, Windows, HPUX, … Monitorar objetos BD: threads, client connected, queries/seg, innoDB stats, … Em diversas plataformas: MySQL, Oracle, MS SQL Server Monitorar serviços: http, dns, smtp, ftp, … Monitorar aplicações: threads, connection pool, heap size, garbage collector, ... Monitorar equipamentos de rede: routers, firewalls, storages, caches, slb, ... Escalável e redundante Integração com ferramentas externas Representação gráfica da rede Planejamento de excessões

Requisitos de sistema

Resolução pró-ativa e execução de scripts remotos Hierarquia de objetos Interface web para administração Notificações por email, instant message, sms, ... Solução open-source e customizável para nossa necessidade

Solução Escolhida

Nagios é um sistema open-source bastante popular para monitoração de rede,servidores e serviços.

Originalmente criado com o nome NetSaint, foi escrito e é mantido por EthanGalstad e por vários desenvolvedores.

Foi lançado como beta release em Outubro de 2002.A versão stable é a 3.1.1 de 22 Junho de 2009.

Site oficialhttp://www.nagios.org

Screenshots

Screenshots

Screenshots

Estrutura básica

Host = hostname, description, address, parents, command, check attempts retry interval, check interval, contact, contactgroup, …

Hostgroup = name, description, members, …

Service = name, description, host, hostgroup, command, check attempts retry interval, check interval, contact, contactgroup, …

Servicegroup = name, description, members, …

Command = command, command line

Integração com ferramentas externas

Passive Checks

Nagios permite a forma passiva de monitoração onde a iniciativa de verificação do serviço e o envio dos resultados para o Nagios é realizada por uma aplicação externa.

Integração com ferramentas externas

Passive Checks

#!/bin/shechocmd="/bin/echo"CFG="/etc/nagios/send_nsca.cfg"NSCA="/usr/sbin/send_nsca"NSCA_SERVER="10.20.2.15" cmdline="$1;$2;$3;$4"

$echocmd $cmdline | $NSCA -H $NSCA_SERVER -d ";" -c $CFG

2. Execução do script:# ./submit_check_result_nsca host SSH 2 "SSH error"1 data packet(s) sent to host successfully.

3. Evento recebido e processado pelo Nagios:# tail /var/log/nagios/nagios.log [1239656419] EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;host;SSH;2;SSH error[1239656424] PASSIVE SERVICE CHECK: host;SSH;2;SSH error[1239656424] SERVICE ALERT: host;SSH;CRITICAL;SOFT;1;SSH error

Integração com ferramentas externas

External Commands

Nagios fornece 157 comandos para execução de funções internas.

CHANGE_SVC_CHECK_COMMAND;<hostname>;<service_description>;<check_command>SCHEDULE_HOST_DOWNTIME;<host_name>;<start_time>;<end_time>;<fixed>;<duration>;<author>;<comment>SCHEDULE_SVC_DOWNTIME;<host_name>;<service_desription><start_time>;<end_time>;<fixed>;<duration>;<author>;<comment>ENABLE_HOSTGROUP_HOST_CHECKS;<hostgroup_name>

#!/bin/sh

now=`date +%s`commandfile='/usr/local/nagios/var/rw/nagios.cmd'

/bin/printf "[%lu] ENABLE_HOSTGROUP_HOST_CHECKS;hostgroup1\n" $now > $commandfile

Integração com ferramentas externas

Nagios Event Broker (NEB)

Hierarquia de objetosNagios é capaz de determinar quando um hostmonitorado está em status down ou unreachableutilizando “parent host”.

define host {host_name Nagios}

define host {host_name Switch1parents Nagios}

define host {host_name Webparents Switch1

}

Representação gráfica da rede

NagVis é um addon que permite a visualização de dados do Nagios e de qualquer representação gráfica da estrutura IT e da rede.É um projeto open-source utilizado amplamente pela comunidade do Nagios e possui como features:

Representação dos hosts e services;Exibição dos atributos de um host ou services assim como seu status atual;Possibilidade de exibição somente dos problemas atuais;Customização de diagramas;Interface web de configuração.

Representação gráfica da rede

Representação gráfica da rede

Administração# host.cfgdefine host {use generic-hosthost_name remotehostaddress 192.168.1.50hostgroups allhosts}

# command.cfgdefine command {name check_httpcommand_name check_httpcommand_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$}

# service.cfgdefine service {use generic-servicehost_name remotehostservice_description HTTPcheck_command check_http}

Administração

NagiosQL é uma ferramenta de administração web para o Nagios. A aplicaçãoremove a complexidade do admin manter diversos arquivos .cfg na definiçãodos objetos de monitoração. webserver + PHP + MySQL criar, deletar, modificar e copiar os objetos de monitoração importação no MySQL a partir do .cfg auto backup dos arquivos de configuração check de consistência verificação de sintaxe executa comandos no Nagios: reload, check_config várias opções de linguagem fácil instalação

Administração

Arquitetura

Dúvidas e Documentação

Contato:Cristiano Casadoccasado@corp.globo.com

Nagios: www.nagios.orgNagvis: www.nagvis.orgNagiosQL: www.nagiosql.orgCentreon: www.centreon.comWiki: wiki.nagios.org