monitoração com nagios

21
Monitoração com Nagios Cristiano Casado

Upload: cristiano-casado

Post on 18-Dec-2014

8.535 views

Category:

Technology


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Monitoração com Nagios

Monitoração com NagiosCristiano Casado

Page 2: Monitoração com Nagios

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

Page 3: Monitoração com Nagios

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

Page 4: Monitoração com Nagios

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

Page 5: Monitoração com Nagios

Screenshots

Page 6: Monitoração com Nagios

Screenshots

Page 7: Monitoração com Nagios

Screenshots

Page 8: Monitoração com Nagios

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

Page 9: Monitoração com Nagios

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.

Page 10: Monitoração com Nagios

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

Page 11: Monitoração com Nagios

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

Page 12: Monitoração com Nagios

Integração com ferramentas externas

Nagios Event Broker (NEB)

Page 13: Monitoração com Nagios

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

}

Page 14: Monitoração com Nagios

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.

Page 15: Monitoração com Nagios

Representação gráfica da rede

Page 16: Monitoração com Nagios

Representação gráfica da rede

Page 17: Monitoração com Nagios

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}

Page 18: Monitoração com Nagios

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

Page 19: Monitoração com Nagios

Administração

Page 20: Monitoração com Nagios

Arquitetura

Page 21: Monitoração com Nagios

Dúvidas e Documentação

Contato:Cristiano [email protected]

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