Nagios - Guia Rápido

O ciclo de vida do DevOps é um loop contínuo de vários estágios, o monitoramento contínuo é o último estágio desse loop. O monitoramento contínuo é uma das etapas deste ciclo de vida. Neste capítulo, vamos aprender em detalhes sobre o que é monitoramento contínuo e como o Nagios é útil para esse propósito.

O que é monitoramento contínuo

O monitoramento contínuo começa quando a implantação é feita nos servidores de produção. A partir de então, essa etapa é responsável por monitorar tudo que está acontecendo. Esta etapa é crucial para a produtividade do negócio.

Existem vários benefícios de usar o monitoramento contínuo -

  • Ele detecta todos os problemas de servidor e rede.
  • Ele encontra a causa raiz da falha.
  • Ajuda na redução do custo de manutenção.
  • Ajuda na solução de problemas de desempenho.
  • Ajuda a atualizar a infraestrutura antes que fique desatualizada.
  • Ele pode corrigir problemas automaticamente quando detectado.
  • Ele garante que os servidores, serviços, aplicativos e rede estejam sempre ativos e funcionando.
  • Ele monitora a infraestrutura completa a cada segundo.

O que é Nagios

Nagios é uma ferramenta de monitoramento contínuo de código aberto que monitora redes, aplicativos e servidores. Ele pode localizar e reparar problemas detectados na infraestrutura e impedir problemas futuros antes que afetem os usuários finais. Ele fornece o status completo de sua infraestrutura de TI e seu desempenho.

Por que Nagios

Nagios oferece os seguintes recursos, tornando-o utilizável por um grande grupo de comunidade de usuários -

  • Ele pode monitorar servidores de banco de dados como SQL Server, Oracle, Mysql, Postgres
  • Ele fornece informações de nível de aplicativo (Apache, Postfix, LDAP, Citrix etc.).
  • Fornece desenvolvimento ativo.
  • Tem excelente suporte de uma grande comunidade ativa.
  • O Nagios funciona em qualquer sistema operacional.
  • Ele pode fazer ping para ver se o host está acessível.

Benefícios do Nagios

O Nagios oferece os seguintes benefícios para os usuários -

  • Isso ajuda a se livrar dos testes periódicos.
  • Ele detecta falhas de frações de segundo quando a pulseira ainda está no estágio “intermitente”.
  • Ele reduz o custo de manutenção sem sacrificar o desempenho.
  • Ele fornece notificação oportuna para o gerenciamento de controle e avaria.

Este capítulo fala em detalhes sobre a arquitetura do Nagios.

Arquitetura Nagios

Os pontos a seguir são dignos de nota sobre a arquitetura do Nagios -

  • Nagios tem arquitetura de agente servidor.

  • O servidor Nagios é instalado no host e os plug-ins são instalados nos hosts / servidores remotos que devem ser monitorados.

  • O Nagios envia um sinal por meio de um planejador de processo para executar os plug-ins nos hosts / servidores locais / remotos.

  • Os plug-ins coletam os dados (uso da CPU, uso da memória, etc.) e os envia de volta ao planejador.

  • Em seguida, os agendamentos do processo enviam as notificações para o / s admin / s e atualizam a GUI do Nagios.

A figura a seguir mostra a arquitetura do Nagios Server Agent em detalhes -

Nagios contém vários produtos, conforme discutido em detalhes abaixo -

Nagios XI

Ele fornece monitoramento para componentes de infraestrutura de TI completos, como aplicativos, serviços, rede, sistemas operacionais, etc. Ele oferece uma visão completa de sua infraestrutura e processos de negócios. A GUI é facilmente personalizável, proporcionando a flexibilidade utilizada. A edição padrão desta ferramenta custa $ 1995 e a edição corporativa custa $ 3495.

Nagios Core

É o núcleo do monitoramento da infraestrutura de TI. O produto Nagios XI também é fundamentalmente baseado no núcleo do Nagios. Sempre que houver algum problema de falha na infraestrutura, ele envia um alerta / notificação ao administrador que pode agir rapidamente para resolver o problema. Esta ferramenta é totalmente gratuita.

Nagios Log Server

Ele torna a pesquisa de dados de log muito simples e fácil. Ele mantém todos os dados de log em um local com configuração de alta disponibilidade. Ele pode enviar alertas facilmente se algum problema for encontrado nos dados de registro. Ele pode ser dimensionado para 1000s de servidores, dando mais potência, velocidade, armazenamento e confiabilidade à sua plataforma de análise de log. O preço desta ferramenta depende do número de instâncias - 1 instância $ 3995, 2 instâncias $ 4995, 3 instâncias $ 5995, 4 instâncias $ 6995, 10 instâncias $ 14995.

Nagios Fusion

Este produto fornece uma visão centralizada do sistema de monitoramento completo. Com o Nagios Fusion, você verifica a configuração de servidores de monitoramento separados para geografias distintas. Ele pode ser facilmente integrado ao Nagios XI e ao núcleo do Nagios para dar a visibilidade completa da infraestrutura. Essas ferramentas custam $ 2.495.

Nagios Network Analyzer

Ele fornece informações completas da infraestrutura de rede ao administrador com as ameaças em potencial na rede para que o administrador possa realizar ações rápidas. Ele compartilha dados muito detalhados sobre a rede após uma análise aprofundada da rede. Essas ferramentas custam $ 1995.

Neste capítulo, as etapas para configurar o Nagios no Ubuntu são discutidas em detalhes.

Antes de instalar o Nagios, alguns pacotes como Apache, PHP, pacotes de construção, etc., devem estar presentes em seu sistema Ubuntu. Portanto, vamos instalá-los primeiro.

Step 1 - Execute o seguinte comando para instalar pacotes pré-exigidos -

sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd
libgd-dev sendmail unzip

Step 2 - Em seguida, crie usuário e grupo para Nagios e adicione-os ao usuário www-data do Apache.

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagios,nagcmd www-data

Step 3 - Baixe o pacote Nagios mais recente.

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-
4.4.3.tar.gz

Step 4 - Extraia o arquivo tarball.

tar -xzf nagios-4.4.3.tar.gz
cd nagios-4.4.3/

Step 5 - Execute o seguinte comando para compilar o Nagios da fonte.

./configure --with-nagios-group=nagios --with-command-group=nagcmd

Step 6 - Execute o seguinte comando para construir arquivos Nagios.

make all

Step 7 - Execute o comando mostrado abaixo para instalar todos os arquivos Nagios.

sudo make install

Step 8 - Execute os seguintes comandos para instalar arquivos de configuração de comando init e externo.

sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sitesavailable/
nagios.conf

Step 9 - Agora copie o diretório do manipulador de eventos para o diretório Nagios.

sudo cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
sudo chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

Step 10 - Baixe e extraia os plug-ins do Nagios.

cd
wget https://nagios-plugins.org/download/nagiosplugins-
2.2.1.tar.gz
tar -xzf nagios-plugins*.tar.gz
cd nagios-plugins-2.2.1/

Step 11 - Instale os plugins do Nagios usando o comando abaixo.

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl
make
sudo make install

Step 12 - Agora edite o arquivo de configuração do Nagios e descomente a linha número 51 → cfg_dir = / usr / local / nagios / etc / servers

sudo gedit /usr/local/nagios/etc/nagios.cfg

Step 13 - Agora, crie um diretório de servidor.

sudo mkdir -p /usr/local/nagios/etc/servers

Step 14 - Editar arquivo de configuração de contatos.

sudo gedit /usr/local/nagios/etc/objects/contacts.cfg

Step 15 - Agora habilite os módulos Apache e configure um usuário nagiosadmin.

sudo a2enmod rewrite
sudo a2enmod cgi
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/

Step 16 - Agora, reinicie o Apache e o Nagios.

service apache2 restart
service nagios start
cd /etc/init.d/
sudo cp /etc/init.d/skeleton /etc/init.d/Nagios

Step 17 - Edite o arquivo Nagios.

sudo gedit /etc/init.d/Nagios
DESC = "Nagios"
NAME = nagios
DAEMON = /usr/local/nagios/bin/$NAME
DAEMON_ARGS = "-d /usr/local/nagios/etc/nagios.cfg"
PIDFILE = /usr/local/nagios/var/$NAME.lock

Step 18 - Torne o arquivo Nagios executável e inicie o Nagios.

sudo chmod +x /etc/init.d/nagios
service apache2 restart
service nagios start

Step 19 - Agora vá para o seu navegador e abra o url → http://localhost/nagios. Agora faça login no Nagios com o nome de usuário nagiosadmin e use a senha que você configurou anteriormente. A tela de login do Nagios é mostrada na imagem abaixo -

Se você seguiu todas as etapas corretamente, sua interface da web do Nagios aparecerá. Você pode encontrar o painel do Nagios conforme mostrado abaixo -

No capítulo anterior, vimos a instalação do Nagios. Neste capítulo, vamos entender sua configuração em detalhes.

Os arquivos de configuração do Nagios estão localizados em / usr / local / nagios / etc. Esses arquivos são mostrados na imagem abaixo -

Vamos entender a importância de cada arquivo agora -

nagios.cfg

Este é o arquivo de configuração principal do núcleo do Nagios. Este arquivo contém a localização do arquivo de log do Nagios, hosts e intervalo de atualização de estado de serviços, arquivo de bloqueio e arquivo status.dat. Os usuários e grupos do Nagios nos quais as instâncias estão sendo executadas são definidos neste arquivo. Possui o caminho de todos os arquivos de configuração de objetos individuais, como comandos, contatos, modelos, etc.

cgi.cfg

Por padrão, o arquivo de configuração CGI do Nagios é denominado cgi.cfg. Ele informa aos CGIs onde encontrar o arquivo de configuração principal. Os CGIs lerão os arquivos de configuração principal e do host para quaisquer outros dados de que possam precisar. Ele contém todas as informações do usuário e do grupo e seus direitos e permissões. Ele também contém o caminho para todos os arquivos de front-end do Nagios.

resource.cfg

Você pode definir macros $ USERx $ neste arquivo, que por sua vez pode ser usado em definições de comando em seu (s) arquivo (s) de configuração de host. As macros $ USERx $ são úteis para armazenar informações confidenciais, como nomes de usuário, senhas, etc.

Eles também são úteis para especificar o caminho para plug-ins e manipuladores de eventos - se você decidir mover os plug-ins ou manipuladores de eventos para um diretório diferente no futuro, você pode apenas atualizar uma ou duas macros $ USERx $, em vez de modificar muitas definições de comando. Os arquivos de recursos também podem ser usados ​​para armazenar diretivas de configuração para fontes de dados externas como MySQL.

Os arquivos de configuração dentro do diretório de objetos são usados ​​para definir comandos, contatos, hosts, serviços etc.

commands.cfg

Este arquivo de configuração fornece algumas definições de comando de exemplo que você pode consultar nas definições de host, serviço e contato. Esses comandos são usados ​​para verificar e monitorar hosts e serviços. Você pode executar esses comandos localmente em um console Linux, onde também obterá a saída do comando executado.

Exemplo

define command {
   command_name check_local_disk
   command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
}

define command {
   command_name check_local_load
   command_line $USER1$/check_load -w $ARG1$ -c $ARG2$
}

define command {
   command_name check_local_procs
   command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
}

contatos.cfg

Este arquivo contém informações de contatos e grupos de Nagios. Por padrão, um contato já está presente admin Nagios.

Exemplo

define contact {
   contact_name nagiosadmin
   use generic-contact
   alias Nagios Admin
   email [email protected]
}

define contactgroup {
   contactgroup_name admins
   alias Nagios Administrators
   members nagiosadmin
}

templates.cfg

Este arquivo de configuração fornece alguns modelos de definição de objeto de exemplo que são referidos por outras definições de host, serviço, contato, etc. em outros arquivos de configuração.

timeperiods.cfg

Este arquivo de configuração fornece algumas definições de período de tempo de exemplo que você pode consultar nas definições de host, serviço, contato e dependência.

Nagios é a ferramenta de monitoramento com uma infinidade de recursos, conforme mostrado abaixo -

  • O Nagios Core é de código aberto e, portanto, de uso gratuito.

  • Motor de monitoramento poderoso que pode escalar e gerenciar milhares de hosts e servidores.

  • Painel de controle da web abrangente dando a visibilidade de componentes de rede completos e dados de monitoramento.

  • Ele tem recursos de multilocação onde vários usuários têm acesso ao painel do Nagios.

  • Possui arquitetura extensível que pode se integrar facilmente com aplicativos de terceiros com APIs múltiplas.

  • Nagios tem uma comunidade grande e muito ativa com mais de 1 milhão de usuários em todo o mundo.

  • Sistema de alerta rápido, envia alertas aos administradores imediatamente após qualquer problema ser identificado.

  • Vários plug-ins disponíveis para suportar o Nagios, plug-ins codificados personalizados também podem ser usados ​​com o Nagios.

  • Possui um bom sistema de log e banco de dados, armazenando tudo o que acontece na rede com facilidade.

  • O recurso de planejamento proativo ajuda a saber quando é hora de atualizar a infraestrutura.

O Nagios pode ser aplicável a uma ampla gama de aplicações. Eles são dados aqui -

  • Monitore os recursos do host, como espaço em disco, registros do sistema etc.

  • Monitore os recursos da rede - http, ftp, smtp, ssh etc.

  • Monitore os arquivos de log continuamente para identificar infra-problemas.

  • Monitore aplicativos windows / linux / unix / web e seu estado.

  • Nagios Remote Plugin Executer (NRPE) pode monitorar serviços remotamente.

  • Execute verificações de serviço em paralelo.

  • Os túneis SSH ou SSL também podem ser usados ​​para monitoramento remoto.

  • Enviar alertas / notificações

  • via e-mail, sms, pager de qualquer problema de infraestrutura

  • Recomendar quando atualizar a infraestrutura de TI.

Nagios é a ferramenta mais popular usada para monitorar hosts e serviços em execução em sua infraestrutura de TI. Hosts e configurações de serviço são os blocos de construção do Nagios Core.

  • O host é como um computador; pode ser um dispositivo físico ou virtual.

  • Serviços são aqueles usados ​​pelo Nagios para verificar algo sobre um host.

Você pode criar um arquivo host dentro do diretório do servidor do Nagios e mencionar as definições de host e serviço. Por exemplo -

sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg

# Arquivo de configuração do Ubuntu Host

define host {
   use linux-server
   host_name ubuntu_host
   alias Ubuntu Host
   address 192.168.1.10
   register 1
}
define service {
   host_name ubuntu_host
   service_description PING
   check_command check_ping!100.0,20%!500.0,60%
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

As definições acima adicionam um host chamado ubuntu_host e define os serviços que serão executados neste host. Quando você reiniciar o Nagios, este host começará a ser monitorado pelo Nagios e os serviços especificados serão executados.

Existem muitos outros serviços no Nagios que podem ser usados ​​para monitorar praticamente qualquer coisa no host em execução.

Uma definição de comando define um comando. Os comandos incluem verificações de serviço, notificações de serviço, manipuladores de eventos de serviço, verificações de host, notificações de host e manipuladores de eventos de host. As definições de comando para Nagios são definidas no arquivo commands.cfg.

A seguir está o formato para definir um Comando -

define command {
   command_name command_name
   command_line command_line
}

Command name- Esta diretiva é usada para identificar o comando. As definições de contato, host e serviço são referenciadas pelo nome do comando.

Command line - Esta diretiva é usada para definir o que é executado pelo Nagios quando o comando é usado para verificações de serviço ou host, notificações ou manipuladores de eventos.

Exemplo

define command{
   command_name check_ssh
   command_line /usr/lib/nagios/plugins/check_ssh ‘$HOSTADDRESS$’
}

Este comando executará o plugin - / usr / libl / nagios / plugins / check_ssh com 1 parâmetro: '$ HOSTADDRESS $'

Uma definição de host muito curta que usaria este comando de verificação pode ser semelhante à mostrada aqui -

define host{
   host_name host_tutorial
   address 10.0.0.1
   check_command check_ssh
}

As definições de comando informam como executar verificações de host / serviço. Também definem como gerar notificações se algum problema for identificado e como lidar com qualquer evento. Existem vários comandos para realizar as verificações, como comandos para verificar se o SSH está funcionando corretamente ou não, comando para verificar se o banco de dados está instalado e funcionando, comando para verificar se um host está ativo ou não e muitos mais.

Existem comandos que informam aos usuários quais problemas estão presentes na infraestrutura. Você pode criar seus próprios comandos personalizados ou usar qualquer comando de terceiros no Nagios, e eles são tratados de forma semelhante ao projeto de plug-ins do Nagios, não há distinção entre eles.

Você também pode passar argumentos no comando, o que dá mais flexibilidade na execução das verificações. É assim que você precisa definir um comando com o parâmetro -

define command {
   command_name check-host-alive-limits
   command_line $USER5$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}

A definição de host para o comando acima -

define host {
   host_name system2
   address 10.0.15.1
   check_command check-host-alive-limits!1000.0,70%!5000.0,100%
}

Você pode executar comandos externos no Nagios adicionando-os ao arquivo de comandos que é processado pelo daemon do Nagios periodicamente.

Com comandos externos, você pode realizar muitas verificações enquanto o Nagios está em execução. Você pode desabilitar temporariamente algumas verificações ou forçar a execução imediata de algumas verificações, desabilitar notificações temporariamente etc.

[time] command_id;command_arguments

Você também pode verificar a lista de todos os comandos externos que podem ser usados ​​no Nagios aqui -https://assets.nagios.com/downloads/nagioscore/docs/externalcmds/

Uma vez que o host e os serviços são configurados no Nagios, verificações são usadas para ver se os hosts e serviços estão funcionando como deveriam ou não. Vejamos um exemplo para realizar verificações no host -

Considere que você colocou suas definições de host dentro do arquivo host1.cfg no diretório / usr / local / nagios / etc / objects.

cd /usr/local/nagios/etc/objects
gedit host1.cfg

Esta é a aparência das suas definições de host atualmente -

define host {
   host_name host1
   address 10.0.0.1
}

Agora vamos adicionar a diretiva check_interval. Esta diretiva é usada para realizar verificações programadas dos hosts para o número que você definiu; por padrão, é em minutos. Usando a definição abaixo, as verificações no host serão realizadas a cada 3 minutos.

define host {
   host_name host1
   address 10.0.0.1
   check_interval 3
}

No Nagios, 2 tipos de verificações são realizadas em hosts e serviços -

  • Verificações ativas
  • Verificações Passivas

Verificações ativas

As verificações ativas são iniciadas pelo processo do Nagios e, em seguida, executadas regularmente. A lógica de verificação dentro do processo Nagios inicia a verificação ativa. Para monitorar hosts e serviços em execução em máquinas remotas, o Nagios executa plug-ins e informa quais informações coletar. O plug-in é executado na máquina remota onde coleta as informações necessárias e as envia de volta ao daemon do Nagios. Dependendo do status recebido nos hosts e serviços, a ação apropriada é executada.

A figura abaixo mostra uma verificação ativa -

Eles são executados em intervalos regulares, conforme definido por check_interval e retry_interval.

As verificações passivas são realizadas por processos externos e os resultados são devolvidos ao Nagios para processamento.

As verificações passivas funcionam conforme explicado aqui -

Um aplicativo externo verifica o status em hosts / serviços e grava o resultado no arquivo de comando externo. Quando o daemon do Nagios lê o arquivo de comando externo, ele lê e envia todas as verificações passivas na fila para processá-las posteriormente. Periodicamente, quando essas verificações são processadas, notificações ou alertas são enviados dependendo da informação no resultado da verificação.

A figura abaixo mostra uma verificação passiva -

Portanto, a diferença entre a verificação ativa e passiva é que as verificações ativas são executadas pelo Nagios e as passivas são executadas por aplicativos externos.

Essas verificações são úteis quando você não pode monitorar hosts / serviços regularmente.

O Nagios armazena o status dos hosts e serviços que está monitorando para determinar se estão funcionando corretamente ou não. Haveria muitos casos em que as falhas aconteceriam aleatoriamente e seriam temporárias; portanto, o Nagios usa estados para verificar o status atual de um host ou serviço.

Existem dois tipos de estados -

  • Estado suave
  • Estado difícil

Estado suave

Quando um host ou serviço está inativo por um período muito curto e seu status não é conhecido ou é diferente do anterior, os estados suaves são usados. O host ou os serviços serão testados repetidamente até que o status seja permanente.

Hard State

Quando max_check_attempts é executado e o status do host ou serviço ainda não está OK, o hard state é usado. Nagios executa manipuladores de eventos para lidar com estados de hardware.

A figura a seguir mostra estados suaves e estados físicos.

Este capítulo dá uma ideia das portas e protocolos que o Nagios abrange.

Protocolos

Os protocolos padrão usados ​​pelo Nagios são fornecidos em -

  • http (s), portas 80 e 443 - As interfaces do produto são baseadas na web no Nagios. Os agentes Nagios podem usar http para mover dados.

  • snmp, portas 161 e 162 - snmp é uma parte importante do monitoramento de rede. A porta 161 é usada para enviar solicitações aos nós e o posto 162 é usado para receber resultados.

  • ssh, porta 22 - Nagios foi desenvolvido para rodar nativamente no CentOS ou RHEL Linux. O administrador pode fazer o login no Nagios por meio de SSH sempre que desejar e realizar verificações.

Ports

As portas padrão usadas pelos plug-ins comuns do Nagios são as fornecidas em -

  • Butcheck_nt (nsclient ++) 12489
  • NRPE 5666
  • NSCA 5667
  • NCPA 5693
  • MSSQL 1433
  • MySQL 3306
  • PostgreSQL 5432
  • MongoDB 27017, 27018
  • OracleDB 1521
  • Email (SMTP) 25, 465, 587
  • WMI 135, 445 / portas adicionais atribuídas dinamicamente no intervalo de 1024-1034

Os plug-ins ajudam a monitorar bancos de dados, sistemas operacionais, aplicativos, equipamentos de rede, protocolos com o Nagios. Plugins são executáveis ​​ou scripts compilados (Perl ou não Perl) que estendem a funcionalidade do Nagios para monitorar servidores e hosts. O Nagios executará um plug-in para verificar o status de um serviço ou host. O Nagios pode ser compilado com suporte para um interpretador Perl integrado para executar plug-ins Perl. Sem ele, o Nagios executa plug-ins Perl e não-Perl bifurcando e executando os plug-ins como um comando externo.

Tipos de plug-ins Nagios

O Nagios possui os seguintes plug-ins disponíveis -

Official Nagios Plugins- Existem 50 plug-ins oficiais do Nagios. Os plug-ins oficiais do Nagios são desenvolvidos e mantidos pela equipe oficial de plug-ins do Nagios.

Community Plugins - Existem mais de 3.000 plug-ins do Nagios de terceiros que foram desenvolvidos por centenas de membros da comunidade do Nagios.

Custom Plugins- Você também pode escrever seus próprios plug-ins personalizados. Existem certas diretrizes que devem ser seguidas para escrever Plug-ins personalizados.

Diretrizes para escrever plugins personalizados do Nagios

Ao escrever plug-in personalizado no Nagios, você precisa seguir as diretrizes fornecidas abaixo -

  • Os plug-ins devem fornecer uma opção de linha de comando "-V" (verifique as alterações de configuração)
  • Imprima apenas uma linha de texto
  • Imprima o diagnóstico e apenas parte da mensagem de ajuda
  • Os plug-ins de rede usam DEFAULT_SOCKET_TIMEOUT para atingir o tempo limite
  • "-v", ou "--verbose“ está relacionado ao nível de verbosidade
  • "-t" ou "--timeout" (tempo limite do plugin);
  • "-w" ou "--warning" (limite de aviso);
  • "-c" ou "--critical" (limite crítico);
  • "-H" ou "--hostname" (nome do host a ser verificado)

Vários plug-ins do Nagios são executados e verificam ao mesmo tempo, para que todos funcionem perfeitamente juntos, o plug-in do Nagios segue um código de status. A tabela abaixo informa o status do código de saída e sua descrição -

Código de Saída Status Descrição
0 Está bem Trabalhando bem
1 ATENÇÃO Funcionando bem, mas precisa de atenção
2 CRÍTICO Não está funcionando corretamente
3 DESCONHECIDO Quando o plugin não consegue determinar o status do host / serviço

Os plug-ins do Nagios usam opções para sua configuração. A seguir estão alguns parâmetros importantes aceitos pelo plugin Nagios -

Sr. Não Opção e descrição
1

-h, --help

Isso fornece ajuda

2

-V, --version

Isso imprime a versão exata do plugin

3

-v, --verbose

Isso faz com que o plugin forneça informações mais detalhadas sobre o que está fazendo

4

-t, --timeout

Isso fornece o tempo limite (em segundos); após este tempo, o plugin irá relatar o status CRÍTICO

5

-w, --warning

Isso fornece os limites específicos do plugin para o status WARNING

6

-c, --critical

Isso fornece os limites específicos do plug-in para o status CRÍTICO

7

-H, --hostname

Isso fornece o nome do host, endereço IP ou soquete Unix para se comunicar

8

-4, --use-ipv4

Isso permite que você use IPv4 para conectividade de rede

9

-6, --use-ipv6

Isso permite que você use IPv6 para conectividade de rede

10

-p, --port

Isso é usado para se conectar à porta TCP ou UDP

11

-s, -- send

Isso fornece a string que será enviada ao servidor

12

-e, --expect

Isso fornece a string que deve ser enviada de volta do servidor

13

-q, --quit

Isso fornece a string a ser enviada ao servidor para fechar a conexão

O pacote de plug-ins do Nagios tem várias verificações disponíveis para hosts e serviços para monitorar a infraestrutura. Vamos experimentar os plug-ins do Nagios para realizar algumas verificações.

SMTP é um protocolo usado para enviar e-mails. Os plug-ins padrão do Nagios possuem comandos para realizar verificações de SMTP. A definição de comando para SMTP -

define command {
   command_name check_smtp
   command_line $USER2$/check_smtp -H $HOSTADDRESS$
}

Vamos usar o plugin Nagios para monitorar o MySQL. Nagios oferece 2 plug-ins para monitorar o MySQL. O primeiro plug-in verifica se a conexão mysql está funcionando ou não, e o segundo plug-in é usado para calcular o tempo gasto para executar uma consulta SQL.

As definições dos comandos para ambos são as seguintes -

define command {
   command_name check_mysql
   command_line $USER1$/check_mysql –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -S –w 10 –c 30
}

define command {
   command_name check_mysql_query
   command_line $USER1$/check_mysql_query –H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -d
   $ARG3$ -q $ARG4$ –w $ARG5$ -c $ARG6$
}

Note - Nome de usuário, senha e nome do banco de dados são necessários como argumentos em ambos os comandos.

O Nagios oferece um plugin para verificar o espaço em disco montado em todas as partições. A definição do comando é a seguinte

define command {
   command_name check_partition
   command_line $USER1$/check_disk –p $ARG1$ –w $ARG2$ -c $ARG3$
}

A maioria das verificações pode ser feita por meio de plug-ins padrão do Nagios. Mas existem aplicativos que requerem verificações especiais para monitorá-los, caso em que você pode usar plug-ins do Nagios de terceiros que fornecerão verificações mais sofisticadas no aplicativo. É importante saber sobre questões de segurança e licenciamento quando você estiver usando um plugin de terceiros do Nagios exchange ou baixando o plugin de outro site.

O daemon Nagios que executa verificações em máquinas remotas no NRPE (Nagios Remote Plugin Executor). Ele permite que você execute plugins do Nagios em outras máquinas remotamente. Você pode monitorar métricas de máquinas remotas, como uso de disco, carga de CPU, etc. Ele também pode verificar métricas de máquinas Windows remotas por meio de alguns complementos de agente do Windows.

Vamos ver como instalar e configurar o NRPE passo a passo na máquina cliente que precisa ser monitorada.

Step 1 - Execute o comando abaixo para instalar o NRPE na máquina Linux remota a ser monitorada.

sudo apt-get install nagios-nrpe-server nagios-plugins

Step 2 - Agora, crie um arquivo host dentro do diretório do servidor e coloque todas as definições necessárias para o host.

sudo gedit /usr/local/nagios/etc/servers/ubuntu_host.cfg
# Ubuntu Host configuration file

define host {
   use linux-server
   host_name ubuntu_host
   alias Ubuntu Host
   address 192.168.1.10
   register 1
}

define service {
   host_name ubuntu_host
   service_description PING
   check_command check_ping!100.0,20%!500.0,60%
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Check Users
   check_command check_local_users!20!50
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Local Disk
   check_command check_local_disk!20%!10%!/
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Check SSH
   check_command check_ssh
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

define service {
   host_name ubuntu_host
   service_description Total Process
   check_command check_local_procs!250!400!RSZDT
   max_check_attempts 2
   check_interval 2
   retry_interval 2
   check_period 24x7
   check_freshness 1
   contact_groups admins
   notification_interval 2
   notification_period 24x7
   notifications_enabled 1
   register 1
}

Step 3 - Execute o comando mostrado abaixo para a verificação do arquivo de configuração.

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

Step 4 - Reinicie NRPE, Apache e Nagios se não houver erros.

service nagios-nrpe-server restart
service apache2 restart
service nagios restart

Step 5- Abra seu navegador e vá para a interface da web do Nagios. Você pode ver que o host que precisa ser monitorado foi adicionado ao serviço principal do Nagios. Da mesma forma, você pode adicionar mais hosts a serem monitorados pelo Nagios.

V-Shell é uma interface web leve para Nagios Core escrita em PHP. É fácil de instalar e usar e é uma alternativa à saída do Nagios. A interface do VShell está em AngularJs, portanto, o design é responsivo e moderno. Ele fornece funcionalidade de pesquisa rápida e API RESTful fornecida por CodeIgniter.

Nagios VShell é compatível com Nagios XI e Nagios Core 3.x. Requer php 5.3 ou superior, php-cli e apache instalados no sistema. Vamos ver como instalar o Nagios VShell.

Step 1 - Vá para o diretório tmp e baixe o arquivo tar vshell.

cd /tmp
wget http://assets.nagios.com/downloads/exchange/nagiosvshell/vshell.tar.gz

Step 2 - Extraia o arquivo tar.

tar zxf vshell.tar.gz

Step 3- Vá para o diretório vshell e dê permissão executável para o arquivo install.php. Finalmente, execute o script de instalação.

cd vshell
chmod +x install.php
./install.php

Step 4 - Agora vá parahttps://192.168.56.101/vshell em seu navegador, faça o login com nagiosadmin e seu Vshell aparecerá.

Neste capítulo, vamos examinar os estudos de caso de duas organizações que implementaram o Nagios com sucesso.

Bitnetix com Nagios

Bitnetix em uma organização de consultoria de TI que está em redes, datacenter, monitoramento e voz sobre IP. Por meio de suas ofertas, eles fazem as pequenas empresas parecerem grandes. Suas soluções ajudam você a gerenciar melhor o relacionamento com os clientes, aumentando o engajamento e melhorando sua satisfação. Eles dizem que estão no negócio de comunicação, portanto, comunicar a mensagem certa aos seus clientes no momento certo é muito importante para eles.

A Bitnetix estava trabalhando com um cliente que gostava de marketing por email. Eles costumavam monitorar servidores AWS que eram alocados dinamicamente e eram responsáveis ​​por entregar milhares de e-mails aos clientes. Eles estavam usando o Nagios core antes, mas queriam mudar para o novo Nagios XI e integrar-se ao chef com tempo de inatividade zero. Houve desafios em mover a configuração de status ao vivo no núcleo do Nagios para verificações apropriadas no Nagios XI. Mas com o Nagios, eles foram capazes de definir o arquivo de configuração do Nagios XI com o chef integrado. Eles foram capazes de mover todos os clientes do Nagios core para o Nagios XI com tempo de inatividade zero. O Nagios XI também foi capaz de se integrar ao PagerDuty para enviar notificações instantâneas.

EverWatch.gobal com Nagios

EverWatch.global é uma organização de consultoria e gerenciamento de TI que ajuda organizações sem fins lucrativos e pequenas / médias. Sua sede se encontra em Rochester, Nova York. Eles ganharam vários prêmios por seu trabalho com Nagios.

EverWatch.global estava trabalhando com um cliente de varejo de comércio eletrônico com uma receita anual de bilhões de dólares. Eles eram responsáveis ​​por manter o site funcionando o tempo todo, monitorando o carrinho e a funcionalidade de checkout, enviando notificações para o pessoal necessário em caso de difamação. O desafio era que os servidores de seus clientes estavam localizados a 500 milhas de sua sede em Nova York. Para monitorar a produção, teste, garantia de qualidade e desenvolvimento na mesma plataforma, as configurações deveriam ser exclusivas e semelhantes para ambas as áreas.

Com a ajuda do Nagios, eles foram capazes de criar regras de firewall ssh para equipamentos e Centro de Operações de Rede. Eles também foram capazes de realizar verificações de ocorrências de difamação e reduzir falsos positivos. Ao configurar manipuladores de eventos no Nagios, o número de notificações diminuiu drasticamente. Nagios ajudou a manter o tempo de atividade do site de seus clientes de 85% ao ano para 98% ao ano, o que foi um grande sucesso.

“Em termos de dólares reais, a empresa conseguiu atingir quase US $ 125 milhões em vendas adicionais como resultado.” Eric Loyd, CEOEverWatch Global.