Differences

This shows you the differences between two versions of the page.

Link to this comparison view

instalacao_e_configuracao_do_servidor_nagios_e_clientes_nagios_com_nrpe_no_debian_wheezy_pt_br [2017/09/05 12:18] (current)
Line 1: Line 1:
 +====== Instalação e Configuração do Servidor Nagios e de Clientes Nagios com NRPE no Debian Wheezy ======
  
 +
 +E ai galera, aqui vou abordar a instalação e a configuração de um Servidor Nagios e a instalação e configuração do cliente Nagios com o NRPE, abaixo um pouco sobre nagios.
 +
 +**Nagios** é uma popular aplicação de monitoração de rede de código aberto distribuída sob a licença GPL. Ele pode monitorar tanto hosts quanto serviços, alertando-o quando ocorrerem problemas e também quando os problemas forem resolvidos.
 +
 +O Nagios foi originalmente criado sob o nome de Netsaint, foi escrito e é atualmente mantido por Ethan Galstad, junto com uma equipe de desenvolvedores que ativamente mantém plugins oficiais e não-oficiais.
 +
 +Nagios primeiramente foi escrito para o sistema operacional Linux, mas pode rodar em outros Unixes também.
 +
 +Visão Geral
 +
 +  * Monitora serviços de rede (SMTP, POP3, HTTP, NNTP, ICMP, SNMP)
 +  * Monitora recursos de computadores ou equipamentos de rede (carga do processador,​ uso de disco, logs do sistema) na maioria dos sistemas operacionais com suporte a rede, mesmo o Microsoft Windows com o plugin NRPE_NT.
 +  * Monitoração remota suportada através de túneis criptografados SSH ou SSL.
 +  * Desenvolvimento simples de plugins que permite aos usuários facilmente criar seus próprios modos de monitoração dependendo de suas necessidades,​ usando a ferramenta de desenvolvimento da sua escolha (Bash, C, Perl, Python, PHP, C#, etc.)
 +  * Checagem dos serviços paralelizadas,​ ou seja, se você tiver muitos itens monitorados não há risco de alguns deles não serem checados por falta de tempo.
 +  * Capacidade de definir a rede hierarquicamente definindo equipamentos "​pai",​ permitindo distinção dos equipamentos que estão indisponíveis daqueles que estão inalcançáveis.
 +  * Capacidade de notificar quando um serviço ou equipamento apresenta problemas e quando o problema é resolvido (via email, pager, SMS, ou qualquer outro meio definido pelo usuário por plugin).
 +  * Capacidade de definir tratadores de eventos que executam tarefas em situações pré-determinadas ou para a resolução pró-ativas de problemas.
 +  * Rotação automática de log.
 +  * Suporte para implementação de monitoração redundante.
 +  * Excelente interface web para visualização do atual status da rede, notificações,​ histórico de problemas, arquivos de log, etc…
 +  * Versão atual, estável core: 4.0.8
 +
 +
 +O que vou utilizar de máquinas
 +
 +  * **Nome Nagios Server:** nagios
 +   * **Ip:** 192.168.1.200
 +  * **Nome Nagios Cliente:** debian
 +   * **Ip:** 192.168.1.101
 +  * **Nome Nagios Cliente:** centos6
 +   * **Ip:** 192.168.1.202
 +  * **Nome Nagios Cliente:** centos7
 +   * **Ip:** 192.168.1.203
 +  * **Nome Nagios Cliente:** openbsd
 +   * **Ip:** 192.168.1.204
 +  * **Nome Nagios Cliente:** freebsd
 +   * **Ip:** 192.168.1.205
 +   
 +Prepare o seu sistema com o seguinte script [[https://​github.com/​douglasqsantos/​easy-debian|Easy-Debian]] para que não falte nenhum pacote ou configuração.
 +
 +
 +Vamos atualizar os repositórios e fazer um upgrade do servidor Nagios
 +
 +<sxh bash>
 +
 +aptitude update && aptitude dist-upgrade -y
 +</​sxh>​
 +
 +Agora vamos instalar as dependências
 +<sxh bash>
 +aptitude install apache2 libapache2-mod-php5 build-essential libgd2-xpm-dev libssl-dev php5 libgd-graph-perl postfix openssl libjpeg-dev \
 +libpng-dev snmp snmpd libsnmp-base mc php-pear libsnmp-dev libsasl2-2 libsasl2-modules mutt xinetd -y
 +</​sxh>​
 +
 +Agora vamos criar o usuário para o Nagios
 +<sxh bash>
 +
 +useradd nagios -s /bin/bash -m -r
 +</​sxh>​
 +
 +Agora precisamos criar um grupo para o nagios
 +<sxh bash>
 +
 +/​usr/​sbin/​groupadd nagcmd
 +</​sxh>​
 +
 +Agora vamos atribuir os usuários nagios e www-data ao grupo nagcmd
 +<sxh bash>
 +
 +/​usr/​sbin/​usermod -a -G nagcmd nagios
 +/​usr/​sbin/​usermod -a -G nagcmd www-data
 +</​sxh>​
 +
 +Agora vamos criar um diretório em /usr/src para armazenarmos os fontes do nagios
 +<sxh bash>
 +
 +mkdir -p /​usr/​src/​downloads
 +</​sxh>​
 +
 +
 +Agora vamos obter os fontes, vamos acessar o diretório aonde vai ficar armazenado os fontes
 +<sxh bash>
 +
 +cd /​usr/​src/​downloads
 +</​sxh>​
 +
 +Vamos obter o nagios core
 +<sxh bash>
 +
 +wget -c http://​douglasqsantos.com.br/​Downloads/​monitoring/​nagios-4.0.8.tar.gz
 +</​sxh>​
 +
 +Agora vamos obter os plugins
 +<sxh bash>
 +
 +wget -c http://​douglasqsantos.com.br/​Downloads/​monitoring/​nagios-plugins-2.0.3.tar.gz
 +</​sxh>​
 +
 +Agora vamos obter o nrpe que é o plugins que vai se conectar nos clientes para obter as informações para o nagios
 +<sxh bash>
 +
 +wget -c http://​douglasqsantos.com.br/​Downloads/​monitoring/​nrpe-2.15.tar.gz
 +</​sxh>​
 +
 +Agora vamos obter um thema para o nagios
 +<sxh bash>
 +
 +wget -c http://​douglasqsantos.com.br/​Downloads/​monitoring/​vautour_style.zip
 +</​sxh>​
 +
 +Agora vamos desempacotar o nagios
 +<sxh bash>
 +
 +tar -xzvf nagios-4.0.8.tar.gz
 +</​sxh>​
 +
 +Agora vamos acessar o diretório do nagios para podermos configurar e compilar ele
 +<sxh bash>
 +
 +cd nagios-4.0.8
 +</​sxh>​
 +
 +Agora vamos preparar ele para a compilação
 +<sxh bash>
 +
 +./configure --with-command-group=nagcmd
 +</​sxh>​
 +
 +Agora vamos compilar o nagios e os cgis
 +<sxh bash>
 +
 +make all
 +</​sxh>​
 +
 +Agora vamos instalar o nagios, cgis e os arquivos html
 +<sxh bash>
 +
 +make install
 +</​sxh>​
 +
 +Vamos mandar instalar o script de controle do daemon
 +<sxh bash>
 +
 +make install-init
 +</​sxh>​
 +
 +Agora precisamos fazer um ajuste neste arquivo o início do arquivo tem que ficar como abaixo.
 +<sxh bash>
 +
 +vim /​etc/​init.d/​nagios
 +#!/bin/sh
 +### BEGIN INIT INFO
 +# Provides: ​         nagios
 +# Required-Start: ​   $local_fs $remote_fs $network $syslog
 +# Required-Stop: ​    ​$local_fs $remote_fs $network $syslog
 +# Default-Start: ​    2 3 4 5
 +# Default-Stop: ​     0 1 6
 +# X-Interactive: ​    true
 +# Short-Description:​ Start/stop nagios server
 +### END INIT INFO
 +[...]
 +</​sxh>​
 +
 +Agora vamos retirar ele da inicialização
 +<sxh bash>
 +
 +insserv -r -v nagios
 +</​sxh>​
 +
 +Agora vamos inserir ele na inicialização
 +<sxh bash>
 +
 +insserv -f -v nagios
 +</​sxh>​
 +
 +Agora vamos mandar instalar os arquivos de configuração de exemplo
 +<sxh bash>
 +
 +make install-config
 +</​sxh>​
 +
 +Agora vamos mandar instalar e configurar as permissões dos diretórios para os comandos externos
 +<sxh bash>
 +
 +make install-commandmode
 +</​sxh>​
 +
 +Agora vamos mandar instalar a parte web
 +<sxh bash>
 +
 +make install-webconf
 +</​sxh>​
 +
 +Vamos mandar instalar o tema classico
 +<sxh bash>
 +
 +make install-classicui
 +</​sxh>​
 +
 +Agora vamos acessar o diretório com os fontes novamente
 +<sxh bash>
 +
 +cd /​usr/​src/​downloads
 +</​sxh>​
 +
 +Agora vamos extrair o novo tema
 +<sxh bash>
 +
 +unzip vautour_style.zip -d ./vautour
 +</​sxh>​
 +
 +Agora vamos fazer um backup do tema classico
 +<sxh bash>
 +
 +cp -Rfa /​usr/​local/​nagios/​share /​usr/​local/​nagios/​share_OLD
 +</​sxh>​
 +
 +Agora vamos instalar o novo tema
 +<sxh bash>
 +
 +cp -Rfa vautour/* /​usr/​local/​nagios/​share/​
 +</​sxh>​
 +
 +Agora vamos cadastrar o usuário para o acesso ao frontend do nagios
 +<sxh bash>
 +
 +htpasswd -c /​usr/​local/​nagios/​etc/​htpasswd.users nagiosadmin
 +</​sxh>​
 +
 +Agora vamos criar um virtualhost para o nagios
 +<sxh apache>
 +
 +vim /​etc/​apache2/​sites-available/​nagios
 +<​VirtualHost ​ *:80>
 +ServerName nagios.douglas.wiki.br
 +ServerAdmin douglas@douglas.wiki.br
 +DocumentRoot "/​usr/​local/​nagios/​share"​
 +ScriptAlias /​nagios/​cgi-bin "/​usr/​local/​nagios/​sbin"​
 +ScriptAlias /cgi-bin "/​usr/​local/​nagios/​sbin"​
 +
 +<​Directory "/​usr/​local/​nagios/​sbin">​
 +   ​Options ExecCGI
 +   ​AllowOverride None
 +   Order allow,deny
 +   Allow from all
 +   ​AuthName "​Nagios Access"​
 +   ​AuthType Basic
 +   ​AuthUserFile /​usr/​local/​nagios/​etc/​htpasswd.users
 +   ​Require valid-user
 +</​Directory>​
 +
 +Alias /nagios "/​usr/​local/​nagios/​share"​
 +
 +<​Directory "/​usr/​local/​nagios/​share">​
 +   ​Options None
 +   ​AllowOverride None
 +   Order allow,deny
 +   Allow from all
 +   ​AuthName "​Nagios Access"​
 +   ​AuthType Basic
 +   ​AuthUserFile /​usr/​local/​nagios/​etc/​htpasswd.users
 +   ​Require valid-user
 +</​Directory>​
 +ServerSignature Off
 +ErrorLog ${APACHE_LOG_DIR}/​nagios-error.log
 +LogLevel warn
 +CustomLog ${APACHE_LOG_DIR}/​nagios-access.log combined
 +</​VirtualHost>​
 +</​sxh>​
 +
 +Agora vamos desativar o virtualhost default
 +<sxh bash>
 +
 +a2dissite default
 +</​sxh>​
 +
 +Agora vamos ativar o virtualhost do nagios
 +<sxh bash>
 +
 +a2ensite nagios
 +</​sxh>​
 +
 +Agora vamos remover o arquivo que o nagios instalou no apache
 +<sxh bash>
 +
 +rm -rf /​etc/​apache2/​conf.d/​nagios.conf
 +</​sxh>​
 +
 +Vamos acessar o diretório dos fontes
 +<sxh bash>
 +
 +cd /​usr/​src/​downloads
 +</​sxh>​
 +
 +Agora vamos instalar os plugins
 +<sxh bash>
 +
 +tar -xzvf nagios-plugins-2.0.3.tar.gz
 +</​sxh>​
 +
 +Agora vamos acessar o diretório dos plugins
 +<sxh bash>
 +
 +cd nagios-plugins-2.0.3/​
 +</​sxh>​
 +
 +Agora vamos preparar ele para a compilação
 +<sxh bash>
 +
 +./configure --with-nagios-user=nagios --with-nagios-group=nagios
 +</​sxh>​
 +
 +Agora vamos mandar compilar ele
 +<sxh bash>
 +
 +make
 +</​sxh>​
 +
 +Agora vamos mandar instalar os plugins
 +<sxh bash>
 +
 +make install
 +</​sxh>​
 +
 +Agora vamos testar a configuração do nagios
 +<sxh bash>
 +/​usr/​local/​nagios/​bin/​nagios -v /​usr/​local/​nagios/​etc/​nagios.cfg
 +
 +Nagios Core 4.0.8
 +Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
 +Copyright (c) 1999-2009 Ethan Galstad
 +Last Modified: 08-12-2014
 +License: GPL
 +
 +Website: http://​www.nagios.org
 +Reading configuration data...
 +   Read main config file okay...
 +   Read object config files okay...
 +
 +Running pre-flight check on configuration data...
 +
 +Checking objects...
 +  Checked 8 services.
 +  Checked 1 hosts.
 +  Checked 1 host groups.
 +  Checked 0 service groups.
 +  Checked 1 contacts.
 +  Checked 1 contact groups.
 +  Checked 24 commands.
 +  Checked 5 time periods.
 +  Checked 0 host escalations.
 +  Checked 0 service escalations.
 +Checking for circular paths...
 +  Checked 1 hosts
 +  Checked 0 service dependencies
 +  Checked 0 host dependencies
 +  Checked 5 timeperiods
 +Checking global event handlers...
 +Checking obsessive compulsive processor commands...
 +Checking misc settings...
 +
 +Total Warnings: 0
 +Total Errors: ​  0
 +
 +Things look okay - No serious problems were detected during the pre-flight check
 +</​sxh>​
 +
 +Sempre precisamos ficar atentos com Total Warnings e Total erros, já que não temos nenhum problema podemos iniciar o nagios
 +<sxh bash>
 +
 +/​etc/​init.d/​nagios start
 +</​sxh>​
 +
 +Agora já podemos mandar reiniciar o apache e testar o nagios
 +<sxh bash>
 +
 +/​etc/​init.d/​apache2 restart
 +</​sxh>​
 +
 +Agora é so acessar http://​nagios.douglas.wiki.br ou http://​ip_servidor usuário: nagiosadmin senha: senha que foi definida com htpasswd
 +
 +
 +Considerações:​
 +  * Em **Host Detail**: Vamos ter informações de todos os hosts cadastrados e se eles estão up.
 +  * Em **Service Detail**: Vamos ter informações sobre todos os serviços cadastrados para os hosts.
 +
 +Vamos ter um warning no serviço do http por que a página do nagios contem autenticação,​ porém isso não é um problema.
 +
 +====== Arquivos de controle do Nagios ======
 +
 +Agora vamos ver o arquivo de controle de contatos caso tenhamos algum problema com o nosso nagios
 +
 +Vamos fazer um backup dele
 +
 +<sxh bash>
 +
 +cp -Rfa /​usr/​local/​nagios/​etc/​objects/​contacts.cfg{,​.bkp}
 +</​sxh>​
 +
 +Agora vamos editar este arquivo
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​objects/​contacts.cfg
 +### Aqui temos a definição de um contato, nome do contato, tipo de contato que é template um alias para ele e o seu email
 +define contact{
 +        contact_name ​                   nagiosadmin ​  
 +  use       ​generic-contact ​  
 +        alias                           ​Nagios Admin    ​
 +        email                           ​nagios@douglas.wiki.br
 +        }
 +
 +### Vamos definir mais um contato
 +define contact{
 +        contact_name ​                   douglas
 +  use       ​generic-contact ​  
 +        alias                           ​Douglas Q dos Santos
 +        email                           ​douglas@douglas.wiki.br
 +        }
 +
 +### Aqui nós definimos os grupos de contatos este primeiro é dos admins
 +
 +### Aqui precisamos definir o nome do grupo, um alias e quem são os membros os membros são separados por ","​
 +define contactgroup{
 +        contactgroup_name ​      ​admins
 +        alias                   ​Nagios Administrators
 +        members ​                ​nagiosadmin,​douglas
 +        }
 +</​sxh>​
 +
 +Vamos dar uma olhada agora no arquivo que controla quando que os serviços vão ser chacados
 +Vamos fazer um backup deste arquivo
 +<sxh bash>
 +
 +cp -Rfa /​usr/​local/​nagios/​etc/​objects/​timeperiods.cfg{,​.bkp}
 +</​sxh>​
 +
 +Agora vamos editar este arquivo
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​objects/​timeperiods.cfg
 +### Aqui na primeira definição temos eu acho que a mais importante monitoramente 24X7
 +### Aqui precisamos definir o nome para o periodo de tempo de checagem, um alias para ele e os dias e horários que vamos monitorar.
 +define timeperiod{
 +        timeperiod_name 24x7
 +        alias           24 Hours A Day, 7 Days A Week
 +        sunday ​         00:00-24:00
 +        monday ​         00:00-24:00
 +        tuesday ​        ​00:​00-24:​00
 +        wednesday ​      ​00:​00-24:​00
 +        thursday ​       00:00-24:00
 +        friday ​         00:00-24:00
 +        saturday ​       00:00-24:00
 +        }
 +
 +### Aqui vamos definir chacagem em horário comercial, seque a mesma lógica, define o nome e alias e os dias e horários que vamos monitorar
 +define timeperiod{
 +  timeperiod_name workhours
 +  alias   ​Normal Work Hours
 +  monday ​   09:00-17:00
 +  tuesday ​  ​09:​00-17:​00
 +  wednesday 09:00-17:00
 +  thursday ​ 09:00-17:00
 +  friday ​   09:00-17:00
 +  }
 +
 +### Aqui estamos definindo monitoramento nos feriados, os abaixo são os feriados dos U.S
 +define timeperiod{
 +  name      us-holidays
 +        timeperiod_name ​        ​us-holidays
 +        alias                   U.S. Holidays
 +
 +        january 1               ​00:​00-00:​00 ​    ; New Years
 +        monday -1 may           ​00:​00-00:​00 ​    ; Memorial Day (last Monday in May)
 +        july 4                  00:​00-00:​00 ​    ; Independence Day
 +        monday 1 september ​     00:​00-00:​00 ​    ; Labor Day (first Monday in September)
 +        thursday 4 november ​    ​00:​00-00:​00 ​    ; Thanksgiving (4th Thursday in November)
 +        december 25             ​00:​00-00:​00 ​    ; Christmas
 +        }
 +
 +
 +### Aqui abaixo estamos definindo o monitoramento 24X7 excluindo os feriados que definimos acima
 +define timeperiod{
 +        timeperiod_name 24x7_sans_holidays
 +        alias           24x7 Sans Holidays
 +  use   ​us-holidays ​  
 +        sunday ​         00:00-24:00
 +        monday ​         00:00-24:00
 +        tuesday ​        ​00:​00-24:​00
 +        wednesday ​      ​00:​00-24:​00
 +        thursday ​       00:00-24:00
 +        friday ​         00:00-24:00
 +        saturday ​       00:00-24:00
 +        }
 +
 +</​sxh>​
 +
 +A configuração que é carregada para monitorar o nosso servidor esta em /​usr/​local/​nagios/​etc/​objects/​localhost.cfg vou mostar o arquivo comentado e vou modificar mais algumas coisas
 +
 +Vamos fazer um backup do arquivo
 +<sxh bash>
 +
 +cp -Rfa /​usr/​local/​nagios/​etc/​objects/​localhost.cfg{,​.bkp}
 +</​sxh>​
 +
 +Agora vamos editar ele
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​objects/​localhost.cfg
 +### Aqui vamos definir qual template que ele vai utilizar o nome do host, um alias e o seu endereço
 +define host{
 +        use                     ​linux-server ​       ​
 +        host_name ​              ​Nagios
 +        alias                   ​Nagios
 +        address ​                ​127.0.0.1
 +        }
 +
 +### Aqui começa a definição de serviços
 +
 +### Vamos ter o template para o serviço, o hostname uma descrição para o serviço e o comando que vai ser executado para a checagem, aqui vamos ter uma checagem de ping
 +define service{
 +        use                             ​local-service ​        
 +        host_name ​                      ​Nagios
 +        service_description ​            PING
 +  check_command ​    ​check_ping!100.0,​20%!500.0,​60%
 +        }
 +
 +### Aqui temos a definição da checagem da partição raiz eu cou criar mais abaixo a checagem para /​usr,/​var,/​tmp e /home comente as que você não utilizar ;)
 +define service{
 +        use                             ​local-service  ​
 +        host_name ​                      ​Nagios
 +        service_description ​            Root Partition
 +  check_command ​    ​check_local_disk!20%!10%!/​
 +        }
 +
 +### Aqui temos a checagem da partição /boot
 +define service{
 +        use                             ​local-service  ​
 +        host_name ​                      ​Nagios
 +        service_description ​            Boot Partition
 +  check_command ​    ​check_local_disk!20%!10%!/​boot
 +        }
 +
 +### Aqui temos a checagem da partição /var
 +define service{
 +        use                             ​local-service  ​
 +        host_name ​                      ​Nagios
 +        service_description ​            Var Partition
 +  check_command ​    ​check_local_disk!20%!10%!/​var
 +        }
 +
 +### Aqui temos a checagem da partição /tmp
 +define service{
 +        use                             ​local-service  ​
 +        host_name ​                      ​Nagios
 +        service_description ​            Tmp Partition
 +  check_command ​    ​check_local_disk!20%!10%!/​tmp
 +        }
 +
 +### Aqui temos a checagem de usuários logados
 +define service{
 +        use                             ​local-service ​       ​
 +        host_name ​                      ​Nagios
 +        service_description ​            ​Current Users
 +  check_command ​    ​check_local_users!20!50
 +        }
 +
 +### Aqui temos a checagem da quantidade de processos
 +define service{
 +        use                             ​local-service ​
 +        host_name ​                      ​Nagios
 +        service_description ​            Total Processes
 +  check_command ​    ​check_local_procs!250!400!RSZDT
 +        }
 +
 +### Aqui temos a checagem do LOAD do servidor
 +define service{
 +        use                             ​local-service ​        
 +        host_name ​                      ​Nagios
 +        service_description ​            ​Current Load
 +  check_command ​    ​check_local_load!5.0,​4.0,​3.0!10.0,​6.0,​4.0
 +        }
 +
 +### Aqui temos a checagem da SWAP
 +define service{
 +        use                             ​local-service ​       ​
 +        host_name ​                      ​Nagios
 +        service_description ​            Swap Usage
 +  check_command ​    ​check_local_swap!20!10
 +        }
 +
 +### Aqui temos a checagem do serviço de SSH por padrão ele faz a chacagem na porta 22, depois vou mostrar como alterar isso ;)
 +define service{
 +        use                             ​local-service ​        
 +        host_name ​                      ​Nagios
 +        service_description ​            SSH
 +  check_command ​    ​check_ssh
 +        }
 +
 +### Aqui vamos a checagem do serviço de http vou comentar este serviço
 +#define service{
 +#        use                             ​local-service ​        ; Name of service template to use
 +#        host_name ​                      ​localhost
 +#        service_description ​            HTTP
 +# check_command ​    ​check_http
 +# notifications_enabled ​  0
 +#        }
 +
 +</​sxh>​
 +
 +Agora vamos criar a configuração para agruparmos os servidores por exemplo: por tipo de serviço.
 +<sxh bash>
 +
 +vim  /​usr/​local/​nagios/​etc/​objects/​hostgroup.cfg ​
 +### Grupo de monitoramento
 +### Aqui definimos o nome do grupo, um alias para o grupo e os membros que devem ser separador por vírgula ","​
 +define hostgroup{
 +        hostgroup_name ​ Monitoramento ​
 +        alias           ​Monitoramento ​
 +        members ​        ​Nagios ​    
 +        }
 +
 +</​sxh>​
 +
 +Agora vamos inserir ela no arquivo de referência do nagios
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​nagios.cfg ​
 +[...]
 +# Definitions for monitoring the local (Linux) host
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​localhost.cfg
 +
 +### Inclusão do arquivo de controle dos grupos de hosts
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​hostgroup.cfg
 +[...]
 +</​sxh>​
 +
 +Agora vamos checar se não temos erros em nossa configuração
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​bin/​nagios -v /​usr/​local/​nagios/​etc/​nagios.cfg
 +[...]
 +Total Warnings: 0
 +Total Errors: ​  0
 +
 +Things look okay - No serious problems were detected during the pre-flight check
 +</​sxh>​
 +
 +Agora vamos reiniciar o serviço do nagios
 +<sxh bash>
 +
 +/​etc/​init.d/​nagios restart
 +</​sxh>​
 +
 +====== Instalação e Configuração do NRPE ======
 +
 +Agora vamos a instalação e configuração do NRPE que é o serviço que vamos utilizar para capturar as informações para o nagios
 +
 +Ainda no servidor vamos acessar o diretório dos fontes
 +<sxh bash>
 +
 +cd /​usr/​src/​downloads
 +</​sxh>​
 +
 +Agora vamos desempacotar o nrpe
 +<sxh bash>
 +
 +tar -xzvf nrpe-2.15.tar.gz
 +</​sxh>​
 +
 +Agora vamos acessar ele
 +<sxh bash>
 +
 +cd nrpe-2.15/
 +</​sxh>​
 +
 +Agora vamos ajustar a configuração dele
 +<sxh bash>
 +
 +./configure --with-nagios-user=nagios --with-nagios-group=nagios
 +</​sxh>​
 +
 +**OBS:**
 +  * Caso utilize um Cliente 64 Bits precisamos passar a linha acima da seguinte forma
 +
 +<sxh bash>
 +./configure --with-nagios-user=nagios --with-nagios-group=nagios ​ --with-ssl=/​usr/​bin/​openssl --with-ssl-lib=/​usr/​lib/​x86_64-linux-gnu
 +</​sxh>​
 +
 +Agora vamos mandar compilar ele
 +<sxh bash>
 +
 +make all
 +</​sxh>​
 +
 +Agora vamos mandar instalar o plugin
 +<sxh bash>
 +
 +make install-plugin
 +</​sxh>​
 +
 +Agora vamos mandar instalar o daemon
 +<sxh bash>
 +
 +make install-daemon
 +</​sxh>​
 +
 +Agora vamos mandar instalar a configuração do daemon, aonde nós vamos definir como que o nrpe vai se comportar
 +<sxh bash>
 +
 +make install-daemon-config
 +</​sxh>​
 +
 +Agora vamos mandar instalar a configuração para o xinetd
 +<sxh bash>
 +
 +make install-xinetd
 +</​sxh>​
 +
 +Precisamos adicionar uma entrada em /​etc/​services para o serviço do nrpe, por que as vezes ele não sobe senão achar esta entrada.
 +<sxh bash>
 +
 +vim /​etc/​services
 +[...]
 +nrpe            5666/​tcp ​                       # NRPE
 +[...]
 +</​sxh>​
 +
 +
 +Agora vamos reiniciar o Xinetd
 +<sxh bash>
 +
 +/​etc/​init.d/​xinetd restart
 +</​sxh>​
 +
 +Agora vamos testar a conexão com o nrpe
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H localhost -4
 +NRPE v2.15
 +</​sxh>​
 +
 +Conseguimos conectar no nrpe, agora vamos obter a informação de quantos usuários logados nós temos 
 +<sxh bash>
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H localhost -c check_users -4
 +USERS OK - 1 users currently logged in |users=1;​5;​10;​0
 +</​sxh>​
 +
 +Agora vamos checar o load do sistema
 +<sxh bash>
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H localhost -c check_load -4
 +OK - load average: 0.01, 0.11, 0.19|load1=0.010;​15.000;​30.000;​0;​ load5=0.110;​10.000;​25.000;​0;​ load15=0.190;​5.000;​20.000;​0;​
 +</​sxh>​
 +
 +A chamada que eu fiz -c check_load está definida em /​usr/​local/​nagios/​etc/​nrpe.cfg daqui a pouco vou comentar sobre ela ;)
 +
 +Temos o nosso Nagios com NRPE funcionando agora precisamos configurar o cliente
 +
 +
 +Agora vamos fazer um backup do arquivo de comandos do nagios e vamos adicionar os comandos do nrpe
 +
 +Fazendo backup do arquivo de comandos
 +<sxh bash>
 +
 +cp -Rfa /​usr/​local/​nagios/​etc/​objects/​commands.cfg{,​.bkp}
 +</​sxh>​
 +
 +Agora vamos definir o nosso arquivo que controla o que podemos mandar o nagios checar
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​objects/​commands.cfg
 +
 +### Comando que controla o envio de Email de alerta sobre hosts
 +define command{
 +  command_name ​ notify-host-by-email
 +  command_line ​ /​usr/​bin/​printf "​%b"​ "***** Nagios ​ *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost:​ $HOSTNAME$\nState:​ $HOSTSTATE$\nAddress:​ $HOSTADDRESS$\nInfo:​ $HOSTOUTPUT$\n\nDate/​Time:​ $LONGDATETIME$\n"​ | /​usr/​bin/​mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ ​ **" $CONTACTEMAIL$
 +  }
 +
 +### Comando que controla o envio de Email de alerta sobre serviços
 +define command{
 +  command_name ​ notify-service-by-email
 +  command_line ​ /​usr/​bin/​printf "​%b"​ "***** Nagios ​ *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService:​ $SERVICEDESC$\nHost:​ $HOSTALIAS$\nAddress:​ $HOSTADDRESS$\nState:​ $SERVICESTATE$\n\nDate/​Time:​ $LONGDATETIME$\n\nAdditional Info:​\n\n$SERVICEOUTPUT$\n"​ | /​usr/​bin/​mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/​$SERVICEDESC$ is $SERVICESTATE$ ​ **" $CONTACTEMAIL$
 +  }
 +
 +
 +### Comandos de checagem
 +
 +
 +### Checagem via ping para verificar se o host está up
 +define command{
 +        command_name ​   check-host-alive
 +        command_line ​   $USER1$/​check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
 +        }
 +
 +### Checagem de partições
 +# '​check_local_disk'​ command definition
 +define command{
 +        command_name ​   check_local_disk
 +        command_line ​   $USER1$/​check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
 +        }
 +
 +
 +### Checagem do load local 
 +define command{
 +        command_name ​   check_local_load
 +        command_line ​   $USER1$/​check_load -w $ARG1$ -c $ARG2$
 +        }
 +
 +
 +### Checagem os processos locais
 +define command{
 +        command_name ​   check_local_procs
 +        command_line ​   $USER1$/​check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
 +        }
 +
 +
 +### Checagem dos usuários
 +define command{
 +        command_name ​   check_local_users
 +        command_line ​   $USER1$/​check_users -w $ARG1$ -c $ARG2$
 +        }
 +
 +
 +### Checagem da swap local
 +define command{
 +  command_name ​ check_local_swap
 +  command_line ​ $USER1$/​check_swap -w $ARG1$ -c $ARG2$
 +  }
 +
 +
 +### Chacagem do mrtgtraf
 +define command{
 +  command_name ​ check_local_mrtgtraf
 +  command_line ​ $USER1$/​check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$
 +  }
 +
 +
 +### Checagem de ftp pode ser local ou remoto
 +define command{
 +        command_name ​   check_ftp
 +        command_line ​   $USER1$/​check_ftp -H $HOSTADDRESS$ $ARG1$
 +        }
 +
 +
 +### Checagem de impressora pode ser local ou remoto
 +define command{
 +        command_name ​   check_hpjd
 +        command_line ​   $USER1$/​check_hpjd -H $HOSTADDRESS$ $ARG1$
 +        }
 +
 +
 +### Checagem de snmp pode ser local ou remoto
 +define command{
 +        command_name ​   check_snmp
 +        command_line ​   $USER1$/​check_snmp -H $HOSTADDRESS$ $ARG1$
 +        }
 +
 +
 +### Checagem de http local ou remoto
 +define command{
 +        command_name ​   check_http
 +        command_line ​   $USER1$/​check_http -I $HOSTADDRESS$ $ARG1$
 +        }
 +
 +
 +### Checagem de ssh
 +define command{
 +  command_name ​ check_ssh
 +  command_line ​ $USER1$/​check_ssh $ARG1$ $HOSTADDRESS$
 +  }
 +### para descobrir os paramêtros que podemos utilizar execute o comando com a opção --help ex: /​usr/​local/​nagios/​libexec/​check_ssh --help não se esqueça que ele tem uma ordem lógica
 +### Checagem de ssh com porta diferente utilizei como exemplo porta 2222
 +define command{
 +  command_name ​ check_ssh2
 +  command_line ​ $USER1$/​check_ssh $ARG1$ ​ -p 2222 $HOSTADDRESS$
 +  }
 +
 +### Checagem de dhcp local
 +define command{
 +  command_name ​ check_dhcp
 +  command_line ​ $USER1$/​check_dhcp $ARG1$
 +  }
 +
 +
 +### Chacagem de ping local ou remoto
 +define command{
 +        command_name ​   check_ping
 +        command_line ​   $USER1$/​check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
 +        }
 +
 +
 +### Checagem de pop local ou remoto
 +define command{
 +        command_name ​   check_pop
 +        command_line ​   $USER1$/​check_pop -H $HOSTADDRESS$ $ARG1$
 +        }
 +
 +
 +### Checagem de imap
 +define command{
 +        command_name ​   check_imap
 +        command_line ​   $USER1$/​check_imap -H $HOSTADDRESS$ $ARG1$
 +        }
 +
 +
 +### Checagem de smtp
 +define command{
 +        command_name ​   check_smtp
 +        command_line ​   $USER1$/​check_smtp -H $HOSTADDRESS$ $ARG1$
 +        }
 +
 +
 +### Checagem de tcp
 +define command{
 +  command_name ​ check_tcp
 +  command_line ​ $USER1$/​check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$
 +  }
 +
 +
 +### Checagem de udp
 +define command{
 +  command_name ​ check_udp
 +  command_line ​ $USER1$/​check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$
 +  }
 +
 +
 +### Checagem de nt
 +define command{
 +  command_name ​ check_nt
 +  command_line ​ $USER1$/​check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
 +  }
 +  ​
 +### Checagem com nrpe
 +define command{
 +        command_name check_nrpe
 +        command_line $USER1$/​check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -4
 +        }
 +
 +### Comandos utilizados para obter a performace da maquina e enviar para um arquivo
 +define command{
 +  command_name ​ process-host-perfdata
 +  command_line ​ /​usr/​bin/​printf "​%b"​ "​$LASTHOSTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$HOSTSTATETYPE$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$\n"​ >> /​usr/​local/​nagios/​var/​host-perfdata.out
 +  }
 +
 +
 +### Comandos utilizados para obter a performace da maquina e enviar para um arquivo
 +define command{
 +  command_name ​ process-service-perfdata
 +  command_line ​ /​usr/​bin/​printf "​%b"​ "​$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\n"​ >> /​usr/​local/​nagios/​var/​service-perfdata.out
 +  }
 +</​sxh>​
 +
 +====== Configurando o Cliente NRPE Debian Squeeze/​Wheezy ======
 +
 +Prepare o seu sistema com o seguinte script [[https://​github.com/​douglasqsantos/​easy-debian|Easy-Debian]] para que não falte nenhum pacote ou configuração.
 +
 +Vamos atualizar os repositórios e fazer um upgrade do cliente Nagios
 +
 +<sxh bash>
 +
 +aptitude update && aptitude dist-upgrade -y
 +</​sxh>​
 +
 +Agora vamos instalar as dependências
 +<sxh bash>
 +aptitude install build-essential libssl-dev openssl snmp snmpd libsnmp-base mc libsnmp-dev libsasl2-2 libsasl2-modules mutt xinetd -y
 +</​sxh>​
 +
 +Agora vamos criar o diretório para armazenar os fontes
 +<sxh bash>
 +
 +mkdir -p /​usr/​src/​downloads
 +</​sxh>​
 +
 +Agora vamos criar o usuário para o Nagios
 +<sxh bash>
 +
 +useradd nagios -s /bin/bash -m -r
 +</​sxh>​
 +
 +
 +Agora vamos acessar o diretório
 +<sxh bash>
 +
 +cd /​usr/​src/​downloads
 +</​sxh>​
 +
 +Agora vamos obter os pacotes do nrpe e dos plugins que o nrpe vai executar para enviar as informações para o nagios
 +
 +Vamos obter o nrpe
 +<sxh bash>
 +
 +wget -c http://​douglasqsantos.com.br/​Downloads/​monitoring/​nrpe-2.15.tar.gz
 +</​sxh>​
 +
 +Agora vamos obter os plugins
 +<sxh bash>
 +
 +wget -c http://​douglasqsantos.com.br/​Downloads/​monitoring/​nagios-plugins-2.0.3.tar.gz
 +</​sxh>​
 +
 +Agora vamos instalar os plugins
 +<sxh bash>
 +
 +tar -xzvf nagios-plugins-2.0.3.tar.gz
 +</​sxh>​
 +
 +Agora vamos acessar o diretório dos plugins
 +<sxh bash>
 +
 +cd nagios-plugins-2.0.3/​
 +</​sxh>​
 +
 +Agora vamos preparar ele para a compilação
 +<sxh bash>
 +
 +./configure --with-nagios-user=nagios --with-nagios-group=nagios
 +</​sxh>​
 +
 +Agora vamos mandar compilar ele
 +<sxh bash>
 +
 +make
 +</​sxh>​
 +
 +Agora vamos mandar instalar os plugins
 +<sxh bash>
 +
 +make install
 +</​sxh>​
 +
 +Agora vamos acessar o diretório dos fontes
 +<sxh bash>
 +
 +cd /​usr/​src/​downloads
 +</​sxh>​
 +
 +Agora vamos desempacotar o nrpe
 +<sxh bash>
 +
 +tar -xzvf nrpe-2.15.tar.gz
 +</​sxh>​
 +
 +Agora vamos acessar ele
 +<sxh bash>
 +
 +cd nrpe-2.15/
 +</​sxh>​
 +
 +Agora vamos ajustar a configuração dele
 +<sxh bash>
 +
 +./configure --with-nagios-user=nagios --with-nagios-group=nagios
 +</​sxh>​
 +
 +**OBS:**
 +  * Caso utilize um Cliente 64 Bits precisamos passar a linha acima da seguinte forma
 +
 +<sxh bash>
 +
 +./configure --with-nagios-user=nagios --with-nagios-group=nagios ​ --with-ssl=/​usr/​bin/​openssl --with-ssl-lib=/​usr/​lib/​x86_64-linux-gnu
 +</​sxh>​
 +
 +Agora vamos mandar compilar ele
 +<sxh bash>
 +
 +make all
 +</​sxh>​
 +
 +Agora vamos mandar instalar o plugin
 +<sxh bash>
 +
 +make install-plugin
 +</​sxh>​
 +
 +Agora vamos mandar instalar o daemon
 +<sxh bash>
 +
 +make install-daemon
 +</​sxh>​
 +
 +Agora vamos mandar instalar a configuração do daemon, aonde nós vamos definir como que o nrpe vai se comportar
 +<sxh bash>
 +
 +make install-daemon-config
 +</​sxh>​
 +
 +Agora vamos mandar instalar a configuração para o xinetd
 +<sxh bash>
 +
 +make install-xinetd
 +</​sxh>​
 +
 +Agora vamos acertar o nrpe para ele enviar as informações para o servidor, então após 127.0.0.1 vamos inserir o ip do servidor nagios
 +<sxh bash>
 +
 +vim /​etc/​xinetd.d/​nrpe
 +[...]
 +            only_from ​      = 127.0.0.1 192.168.1.200
 +</​sxh>​
 +
 +Agora vamos acertar o nrpe.cfg para que ele responda ao servidor Nagios
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​nrpe.cfg
 +[...]
 +allowed_hosts=127.0.0.1,​ 192.168.1.200
 +</​sxh>​
 +
 +Precisamos adicionar uma entrada em /​etc/​services para o serviço do nrpe, por que as vezes ele não sobe senão achar esta entrada.
 +<sxh bash>
 +
 +vim /​etc/​services
 +[...]
 +nrpe            5666/​tcp ​                       # NRPE
 +[...]
 +</​sxh>​
 +
 +
 +Agora vamos reiniciar o Xinetd
 +<sxh bash>
 +
 +/​etc/​init.d/​xinetd restart
 +</​sxh>​
 +
 +Agora vamos testar a conexão com o nrpe, **no servidor** execute os seguintes comandos
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.201
 +NRPE v2.15
 +</​sxh>​
 +
 +Conseguimos conectar no nrpe, agora vamos obter a informação de quantos usuários logados nós temos 
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.201 -c check_users
 +USERS OK - 1 users currently logged in |users=1;​5;​10;​0
 +</​sxh>​
 +
 +Agora vamos checar o load do sistema
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.201 -c check_load
 +OK - load average: 0.02, 0.09, 0.05|load1=0.020;​15.000;​30.000;​0;​ load5=0.090;​10.000;​25.000;​0;​ load15=0.050;​5.000;​20.000;​0;​
 +</​sxh>​
 +
 +No Cliente agora vamos ajustar o nrpe.cfg
 +Vamos fazer um backup do arquivo antes
 +<sxh bash>
 +
 +cp -Rfa /​usr/​local/​nagios/​etc/​nrpe.cfg{,​.bkp}
 +</​sxh>​
 +
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​nrpe.cfg
 +### Categoria de LOG
 +log_facility=daemon
 +
 +### Arquivo com o PID
 +pid_file=/​var/​run/​nrpe.pid
 +
 +### Porta do NRPE
 +server_port=5666
 +
 +# SERVER ADDRESS esta opção é ignorado quanto utilizamos xinetd ou inetd
 +#​server_address=0.0.0.0
 +
 +### Usuário NRPE
 +nrpe_user=nagios
 +
 +### Grupo NRPE
 +nrpe_group=nagios
 +
 +### Maquinas que poderão escutar o nrpe
 +allowed_hosts=127.0.0.1,​192.168.1.200
 + 
 +# Não habilitar esta opção pois o nagios pode enviar qualquer comando com qualquer parametro
 +dont_blame_nrpe=0
 +
 +### Quando precisamos utilizar sudo para executar algum plugin do nagios
 +# Execução de plugins pelo sudo deve ser configurado como abaixo
 +# nagios ​         ALL=(ALL) NOPASSWD: /​usr/​lib/​nagios/​plugins/​
 +### Chamada prefixo que vai ser utilizado no comando do nagios
 +# command_prefix=/​usr/​bin/​sudo ​
 +
 +### Opções de Debug
 +debug=0
 +
 +### Timeout para o NRPE
 +command_timeout=60
 +
 +### Timeout para Conexão
 +connection_timeout=300
 +
 +### Opções randomicas ​
 +#​allow_weak_random_seed=1
 +
 +### Incluir arquivo de configuração
 +#​include=<​somefile.cfg>​
 +
 +### Incluir diretório de configuração ​
 +#​include_dir=<​somedirectory>​
 +
 +### Aqui vamos definir os comandos que serão chamados pelo nagios quando mandarmos pelo /​usr/​local/​nagios/​libexec/​check_nrpe -H maquina -c comando que vai ser os abaixo entre conchetes ​
 +#que é um alias para o comando com que vai ser executado na maquina
 +command[check_users]=/​usr/​local/​nagios/​libexec/​check_users -w 5 -c 10
 +command[check_load]=/​usr/​local/​nagios/​libexec/​check_load -w 15,10,5 -c 30,25,20
 +command[check_zombie_procs]=/​usr/​local/​nagios/​libexec/​check_procs -w 5 -c 10 -s Z
 +command[check_total_procs]=/​usr/​local/​nagios/​libexec/​check_procs -w 150 -c 200 
 +command[check_raiz]=/​usr/​local/​nagios/​libexec/​check_disk -w 20 -c 10 -p /​dev/​mapper/​vg01-raiz
 +command[check_boot]=/​usr/​local/​nagios/​libexec/​check_disk -w 20 -c 10 -p /dev/sda1
 +command[check_tmp]=/​usr/​local/​nagios/​libexec/​check_disk -w 20 -c 10 -p /​dev/​mapper/​vg01-tmp
 +command[check_var]=/​usr/​local/​nagios/​libexec/​check_disk -w 20 -c 10 -p /​dev/​mapper/​vg01-var
 +command[check_swap]=/​usr/​local/​nagios/​libexec/​check_swap -w 20 -c 10
 +</​sxh>​
 +
 +
 +Aqui no cliente precisamos reiniciar o xinetd
 +<sxh bash>
 +
 +/​etc/​init.d/​xinetd restart
 +</​sxh>​
 +
 +**Agora no servidor Nagios vamos criar o arquivo que vai conter a configuração para monitorar o cliente nagios**
 +
 +<sxh bash>
 +vim /​usr/​local/​nagios/​etc/​objects/​debian.cfg
 +### Aqui vamos definir o nosso host a configuração é bem parecido com a do servidor mudamos algumas coisas para adaptar o nrpe
 +define host{
 +        use                     ​linux-server
 +        host_name ​              ​Debian
 +        alias                   ​Debian
 +        address ​                ​192.168.1.201
 +        }
 +
 +### Definição da checagem de ping
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​Debian
 +        service_description ​            PING
 +  check_command ​    ​check_ping!100.0,​20%!500.0,​60%
 +        }
 +
 +### Definição da checagem do Root partition, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​Debian
 +        service_description ​            Root Partition
 +  check_command ​    ​check_nrpe!check_raiz
 +        }
 +
 +### Definição da checagem do Home partition, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​Debian
 +        service_description ​            Boot Partition
 +  check_command ​    ​check_nrpe!check_boot
 +        }
 +
 +### Definição da checagem do Tmp partition, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​Debian
 +        service_description ​            Tmp Partition
 +  check_command ​    ​check_nrpe!check_tmp
 +        }
 +
 +### Definição da checagem do Var partition, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​Debian
 +        service_description ​            Var Partition
 +  check_command ​    ​check_nrpe!check_var
 +        }
 +
 +### Definição da checagem do Load, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​Debian
 +        service_description ​            Load
 +  check_command ​    ​check_nrpe!check_load
 +        }
 +
 +### Definição da checagem dos Usuáros logado, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​Debian
 +        service_description ​            Users
 +  check_command ​    ​check_nrpe!check_users
 +        }
 +
 +### Definição da checagem do total de processos, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​Debian
 +        service_description ​            Total de Processos
 +  check_command ​    ​check_nrpe!check_total_procs
 +        }
 +
 +### Definição da checagem dos processos Zumbis, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​Debian
 +        service_description ​            ​Processos Zumbis
 +  check_command ​    ​check_nrpe!check_zombie_procs
 +        }
 +
 +### Definição da checagem da Swap, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​Debian
 +        service_description ​            Swap Usage
 +        check_command ​                  ​check_nrpe!check_swap!20!10
 +        }
 +</​sxh>​
 +
 +Agora vamos adicionar criar a configuração para agruparmos os servidores por exemplo: por tipo de serviço.
 +<sxh bash>
 +vim  /​usr/​local/​nagios/​etc/​objects/​hostgroup.cfg ​
 +### Grupo de monitoramento
 +### Aqui definimos o nome do grupo, um alias para o grupo e os membros que devem ser separador por vírgula ","​
 +define hostgroup{
 +        hostgroup_name ​ Monitoramento ​
 +        alias           ​Monitoramento ​
 +        members ​        ​Nagios ​    
 +        }
 +
 +define hostgroup{
 +        hostgroup_name ​ Sistemas
 +        alias           ​Sistemas
 +        members ​        ​Debian ​    
 +        }
 +
 +</​sxh>​
 +
 +Agora vamos referenciar este arquivo na configuração do nagios no servidor, vamos inserir abaixo da configuração do localhost.
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​nagios.cfg ​
 +[...]
 +# Definitions for monitoring the local (Linux) host
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​localhost.cfg
 +
 +### Inclusão do arquivo de controle dos grupos de hosts
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​hostgroup.cfg
 +
 +### Inclusão do arquivo de controle do cliente Debian
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​debian.cfg
 +[...]
 +</​sxh>​
 +
 +
 +Agora vamos checar se não temos erros em nossa configuração
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​bin/​nagios -v /​usr/​local/​nagios/​etc/​nagios.cfg
 +[...]
 +Total Warnings: 0
 +Total Errors: ​  0
 +
 +Things look okay - No serious problems were detected during the pre-flight check
 +</​sxh>​
 +
 +Agora vamos reiniciar o serviço do nagios
 +<sxh bash>
 +
 +/​etc/​init.d/​nagios restart
 +</​sxh>​
 +
 +Agora é só acompanhar as estatísticas no Nagios ;)
 +
 +Para adicionar mais clientes podemos inserir no final do arquivo debian.cfg a mesma configuração feita para o cliente Debian e efetuar os mesmos ajustes no nrpe ou podemos criar um novo arquivo para cada cliente e informar no nagios.cfg
 +
 +Depois que o nagios checar as informações que mandamos ele monitorar vamos ter algo como abaixo.
 +
 +{{::​nagios-01.png?​500|}}
 +
 +
 +====== Configurando o Cliente NRPE CentOS6 ======
 +
 +Prepare o seu sistema com o seguinte script http://​wiki.douglasqsantos.com.br/​doku.php/​confinicialcentos6_en para que não falte nenhum pacote ou configuração.
 +
 +Vamos atualizar os repositórios e fazer um upgrade do cliente Nagios
 +<sxh bash>
 +yum check-update && yum update -y
 +</​sxh>​
 +
 +Agora vamos instalar as dependências
 +<sxh bash>
 +yum install openssl-devel xinetd -y
 +</​sxh>​
 +
 +Agora vamos criar o diretório para armazenar os fontes
 +<sxh bash>
 +mkdir -p /​usr/​src/​downloads
 +</​sxh>​
 +
 +Agora vamos criar o usuário para o Nagios
 +<sxh bash>
 +
 +useradd nagios -s /bin/bash -m -r
 +</​sxh>​
 +
 +
 +Agora vamos acessar o diretório
 +<sxh bash>
 +
 +cd /​usr/​src/​downloads
 +</​sxh>​
 +
 +Agora vamos obter os pacotes do nrpe e dos plugins que o nrpe vai executar para enviar as informações para o nagios
 +
 +Vamos obter o nrpe
 +<sxh bash>
 +wget -c http://​douglasqsantos.com.br/​Downloads/​monitoring/​nrpe-2.15.tar.gz
 +</​sxh>​
 +
 +Agora vamos obter os plugins
 +<sxh bash>
 +wget -c http://​douglasqsantos.com.br/​Downloads/​monitoring/​nagios-plugins-2.0.3.tar.gz
 +</​sxh>​
 +
 +Agora vamos instalar os plugins
 +<sxh bash>
 +tar -xzvf nagios-plugins-2.0.3.tar.gz
 +</​sxh>​
 +
 +Agora vamos acessar o diretório dos plugins
 +<sxh bash>
 +
 +cd nagios-plugins-2.0.3/​
 +</​sxh>​
 +
 +Agora vamos preparar ele para a compilação
 +<sxh bash>
 +
 +./configure --with-nagios-user=nagios --with-nagios-group=nagios
 +</​sxh>​
 +
 +Agora vamos mandar compilar ele
 +<sxh bash>
 +
 +make
 +</​sxh>​
 +
 +Agora vamos mandar instalar os plugins
 +<sxh bash>
 +
 +make install
 +</​sxh>​
 +
 +Agora vamos acessar o diretório dos fontes
 +<sxh bash>
 +
 +cd /​usr/​src/​downloads
 +</​sxh>​
 +
 +Agora vamos desempacotar o nrpe
 +<sxh bash>
 +
 +tar -xzvf nrpe-2.15.tar.gz
 +</​sxh>​
 +
 +Agora vamos acessar ele
 +<sxh bash>
 +
 +cd nrpe-2.15/
 +</​sxh>​
 +
 +Agora vamos ajustar a configuração dele
 +<sxh bash>
 +
 +./configure --with-nagios-user=nagios --with-nagios-group=nagios
 +</​sxh>​
 +
 +Agora vamos mandar compilar ele
 +<sxh bash>
 +make all
 +</​sxh>​
 +
 +Agora vamos mandar instalar o plugin
 +<sxh bash>
 +make install-plugin
 +</​sxh>​
 +
 +Agora vamos mandar instalar o daemon
 +<sxh bash>
 +make install-daemon
 +</​sxh>​
 +
 +Agora vamos mandar instalar a configuração do daemon, aonde nós vamos definir como que o nrpe vai se comportar
 +<sxh bash>
 +make install-daemon-config
 +</​sxh>​
 +
 +Agora vamos mandar instalar a configuração para o xinetd
 +<sxh bash>
 +make install-xinetd
 +</​sxh>​
 +
 +Agora vamos acertar o nrpe para ele enviar as informações para o servidor, então após 127.0.0.1 vamos inserir o ip do servidor nagios
 +<sxh bash>
 +vim /​etc/​xinetd.d/​nrpe
 +[...]
 +            only_from ​      = 127.0.0.1 192.168.1.200
 +</​sxh>​
 +
 +Agora vamos acertar o nrpe.cfg para que ele responda ao servidor Nagios
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​nrpe.cfg
 +[...]
 +allowed_hosts=127.0.0.1,​ 192.168.1.200
 +</​sxh>​
 +
 +Precisamos adicionar uma entrada em /​etc/​services para o serviço do nrpe, por que as vezes ele não sobe senão achar esta entrada.
 +<sxh bash>
 +
 +vim /​etc/​services
 +[...]
 +nrpe            5666/​tcp ​                       # NRPE
 +[...]
 +</​sxh>​
 +
 +
 +Agora vamos reiniciar o Xinetd
 +<sxh bash>
 +
 +/​etc/​init.d/​xinetd restart
 +</​sxh>​
 +
 +Agora vamos testar a conexão com o nrpe, no servidor execute os seguintes comandos
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.202
 +NRPE v2.15
 +</​sxh>​
 +
 +Conseguimos conectar no nrpe, agora vamos obter a informação de quantos usuários logados nós temos 
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.202 -c check_users
 +USERS OK - 1 users currently logged in |users=1;​5;​10;​0
 +</​sxh>​
 +
 +Agora vamos checar o load do sistema
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.202 -c check_load
 +OK - load average: 0.02, 0.09, 0.05|load1=0.020;​15.000;​30.000;​0;​ load5=0.090;​10.000;​25.000;​0;​ load15=0.050;​5.000;​20.000;​0;​
 +</​sxh>​
 +
 +No Cliente agora vamos ajustar o nrpe.cfg
 +Vamos fazer um backup do arquivo antes
 +<sxh bash>
 +
 +cp -Rfa /​usr/​local/​nagios/​etc/​nrpe.cfg{,​.bkp}
 +</​sxh>​
 +
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​nrpe.cfg
 +### Categoria de LOG
 +log_facility=daemon
 +
 +### Arquivo com o PID
 +pid_file=/​var/​run/​nrpe.pid
 +
 +### Porta do NRPE
 +server_port=5666
 +
 +# SERVER ADDRESS esta opção é ignorado quanto utilizamos xinetd ou inetd
 +#​server_address=0.0.0.0
 +
 +### Usuário NRPE
 +nrpe_user=nagios
 +
 +### Grupo NRPE
 +nrpe_group=nagios
 +
 +### Maquinas que poderão escutar o nrpe
 +allowed_hosts=127.0.0.1,​192.168.1.200
 + 
 +# Não habilitar esta opção pois o nagios pode enviar qualquer comando com qualquer parametro
 +dont_blame_nrpe=0
 +
 +### Quando precisamos utilizar sudo para executar algum plugin do nagios
 +# Execução de plugins pelo sudo deve ser configurado como abaixo
 +# nagios ​         ALL=(ALL) NOPASSWD: /​usr/​lib/​nagios/​plugins/​
 +### Chamada prefixo que vai ser utilizado no comando do nagios
 +# command_prefix=/​usr/​bin/​sudo ​
 +
 +### Opções de Debug
 +debug=0
 +
 +### Timeout para o NRPE
 +command_timeout=60
 +
 +### Timeout para Conexão
 +connection_timeout=300
 +
 +### Opções randomicas ​
 +#​allow_weak_random_seed=1
 +
 +### Incluir arquivo de configuração
 +#​include=<​somefile.cfg>​
 +
 +### Incluir diretório de configuração ​
 +#​include_dir=<​somedirectory>​
 +
 +### Aqui vamos definir os comandos que serão chamados pelo nagios quando mandarmos pelo /​usr/​local/​nagios/​libexec/​check_nrpe -H maquina -c comando que vai ser os abaixo entre conchetes ​
 +#que é um alias para o comando com que vai ser executado na maquina
 +command[check_users]=/​usr/​local/​nagios/​libexec/​check_users -w 5 -c 10
 +command[check_load]=/​usr/​local/​nagios/​libexec/​check_load -w 15,10,5 -c 30,25,20
 +command[check_zombie_procs]=/​usr/​local/​nagios/​libexec/​check_procs -w 5 -c 10 -s Z
 +command[check_total_procs]=/​usr/​local/​nagios/​libexec/​check_procs -w 150 -c 200 
 +command[check_raiz]=/​usr/​local/​nagios/​libexec/​check_disk -w 20 -c 10 -p /​dev/​mapper/​VolGroup-lv_root
 +command[check_boot]=/​usr/​local/​nagios/​libexec/​check_disk -w 20 -c 10 -p /dev/sda1
 +command[check_swap]=/​usr/​local/​nagios/​libexec/​check_swap -w 20 -c 10
 +</​sxh>​
 +
 +
 +Aqui no cliente precisamos reiniciar o xinetd
 +<sxh bash>
 +
 +/​etc/​init.d/​xinetd restart
 +</​sxh>​
 +
 +**Agora no servidor Nagios vamos criar o arquivo que vai conter a configuração para monitorar o cliente nagios**
 +
 +<sxh bash>
 +vim /​usr/​local/​nagios/​etc/​objects/​centos6.cfg
 +### Aqui vamos definir o nosso host a configuração é bem parecido com a do servidor mudamos algumas coisas para adaptar o nrpe
 +define host{
 +        use                     ​linux-server
 +        host_name ​              ​CentOS6
 +        alias                   ​CentOS6
 +        address ​                ​192.168.1.202
 +        }
 +
 +### Definição da checagem de ping
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​CentOS6
 +        service_description ​            PING
 +  check_command ​    ​check_ping!100.0,​20%!500.0,​60%
 +        }
 +
 +### Definição da checagem do Root partition, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​CentOS6
 +        service_description ​            Root Partition
 +  check_command ​    ​check_nrpe!check_raiz
 +        }
 +
 +### Definição da checagem do Home partition, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​CentOS6
 +        service_description ​            Boot Partition
 +  check_command ​    ​check_nrpe!check_boot
 +        }
 +
 +### Definição da checagem do Load, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​CentOS6
 +        service_description ​            Load
 +  check_command ​    ​check_nrpe!check_load
 +        }
 +
 +### Definição da checagem dos Usuáros logado, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​CentOS6
 +        service_description ​            Users
 +  check_command ​    ​check_nrpe!check_users
 +        }
 +
 +### Definição da checagem do total de processos, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​CentOS6
 +        service_description ​            Total de Processos
 +  check_command ​    ​check_nrpe!check_total_procs
 +        }
 +
 +### Definição da checagem dos processos Zumbis, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​CentOS6
 +        service_description ​            ​Processos Zumbis
 +  check_command ​    ​check_nrpe!check_zombie_procs
 +        }
 +
 +### Definição da checagem da Swap, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​CentOS6
 +        service_description ​            Swap Usage
 +        check_command ​                  ​check_nrpe!check_swap!20!10
 +        }
 +</​sxh>​
 +
 +Agora vamos adicionar criar a configuração para agruparmos os servidores por exemplo: por tipo de serviço.
 +<sxh bash>
 +vim  /​usr/​local/​nagios/​etc/​objects/​hostgroup.cfg ​
 +### Grupo de monitoramento
 +### Aqui definimos o nome do grupo, um alias para o grupo e os membros que devem ser separador por vírgula ","​
 +define hostgroup{
 +        hostgroup_name ​ Monitoramento ​
 +        alias           ​Monitoramento ​
 +        members ​        ​Nagios ​    
 +        }
 +
 +define hostgroup{
 +        hostgroup_name ​ Sistemas
 +        alias           ​Sistemas
 +        members ​        ​Debian,​CentOS6 ​    
 +        }
 +
 +</​sxh>​
 +
 +Agora vamos referenciar este arquivo na configuração do nagios no servidor, vamos inserir abaixo da configuração do localhost.
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​nagios.cfg ​
 +[...]
 +# Definitions for monitoring the local (Linux) host
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​localhost.cfg
 +
 +### Inclusão do arquivo de controle dos grupos de hosts
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​hostgroup.cfg
 +
 +### Inclusão do arquivo de controle do cliente Debian
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​debian.cfg
 +
 +### Inclusão do arquivo de controle do cliente CentOS6
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​centos6.cfg
 +[...]
 +</​sxh>​
 +
 +
 +Agora vamos checar se não temos erros em nossa configuração
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​bin/​nagios -v /​usr/​local/​nagios/​etc/​nagios.cfg
 +[...]
 +Total Warnings: 0
 +Total Errors: ​  0
 +
 +Things look okay - No serious problems were detected during the pre-flight check
 +</​sxh>​
 +
 +Agora vamos reiniciar o serviço do nagios
 +<sxh bash>
 +
 +/​etc/​init.d/​nagios restart
 +</​sxh>​
 +
 +Agora é só acompanhar as estatísticas no Nagios ;)
 +
 +Para adicionar mais clientes podemos inserir no final do arquivo centos6.cfg a mesma configuração feita para o cliente CentOS6 e efetuar os mesmos ajustes no nrpe ou podemos criar um novo arquivo para cada cliente e informar no nagios.cfg
 +
 +Depois que o nagios checar as informações que mandamos ele monitorar vamos ter algo como abaixo.
 +
 +{{::​nagios-02.png?​500|}}
 +
 +====== Configurando o Cliente NRPE CentOS7 ======
 +
 +
 +Prepare o seu sistema com o seguinte script http://​wiki.douglasqsantos.com.br/​doku.php/​confinicialcentos7_en para que não falte nenhum pacote ou configuração.
 +
 +Vamos atualizar os repositórios e fazer um upgrade do cliente Nagios
 +<sxh bash>
 +yum check-update && yum update -y
 +</​sxh>​
 +
 +Agora vamos instalar as dependências
 +<sxh bash>
 +yum install openssl-devel xinetd -y
 +</​sxh>​
 +
 +Agora vamos criar o diretório para armazenar os fontes
 +<sxh bash>
 +mkdir -p /​usr/​src/​downloads
 +</​sxh>​
 +
 +Agora vamos criar o usuário para o Nagios
 +<sxh bash>
 +
 +useradd nagios -s /bin/bash -m -r
 +</​sxh>​
 +
 +
 +Agora vamos acessar o diretório
 +<sxh bash>
 +
 +cd /​usr/​src/​downloads
 +</​sxh>​
 +
 +Agora vamos obter os pacotes do nrpe e dos plugins que o nrpe vai executar para enviar as informações para o nagios
 +
 +Vamos obter o nrpe
 +<sxh bash>
 +wget -c http://​douglasqsantos.com.br/​Downloads/​monitoring/​nrpe-2.15.tar.gz
 +</​sxh>​
 +
 +Agora vamos obter os plugins
 +<sxh bash>
 +wget -c http://​douglasqsantos.com.br/​Downloads/​monitoring/​nagios-plugins-2.0.3.tar.gz
 +</​sxh>​
 +
 +Agora vamos instalar os plugins
 +<sxh bash>
 +tar -xzvf nagios-plugins-2.0.3.tar.gz
 +</​sxh>​
 +
 +Agora vamos acessar o diretório dos plugins
 +<sxh bash>
 +
 +cd nagios-plugins-2.0.3/​
 +</​sxh>​
 +
 +Agora vamos preparar ele para a compilação
 +<sxh bash>
 +
 +./configure --with-nagios-user=nagios --with-nagios-group=nagios
 +</​sxh>​
 +
 +Agora vamos mandar compilar ele
 +<sxh bash>
 +
 +make
 +</​sxh>​
 +
 +Agora vamos mandar instalar os plugins
 +<sxh bash>
 +
 +make install
 +</​sxh>​
 +
 +Agora vamos acessar o diretório dos fontes
 +<sxh bash>
 +
 +cd /​usr/​src/​downloads
 +</​sxh>​
 +
 +Agora vamos desempacotar o nrpe
 +<sxh bash>
 +
 +tar -xzvf nrpe-2.15.tar.gz
 +</​sxh>​
 +
 +Agora vamos acessar ele
 +<sxh bash>
 +
 +cd nrpe-2.15/
 +</​sxh>​
 +
 +Agora vamos ajustar a configuração dele
 +<sxh bash>
 +
 +./configure --with-nagios-user=nagios --with-nagios-group=nagios
 +</​sxh>​
 +
 +Agora vamos mandar compilar ele
 +<sxh bash>
 +make all
 +</​sxh>​
 +
 +Agora vamos mandar instalar o plugin
 +<sxh bash>
 +make install-plugin
 +</​sxh>​
 +
 +Agora vamos mandar instalar o daemon
 +<sxh bash>
 +make install-daemon
 +</​sxh>​
 +
 +Agora vamos mandar instalar a configuração do daemon, aonde nós vamos definir como que o nrpe vai se comportar
 +<sxh bash>
 +make install-daemon-config
 +</​sxh>​
 +
 +Agora vamos mandar instalar a configuração para o xinetd
 +<sxh bash>
 +make install-xinetd
 +</​sxh>​
 +
 +Agora vamos acertar o nrpe para ele enviar as informações para o servidor, então após 127.0.0.1 vamos inserir o ip do servidor nagios
 +<sxh bash>
 +vim /​etc/​xinetd.d/​nrpe
 +[...]
 +            only_from ​      = 127.0.0.1 192.168.1.200
 +</​sxh>​
 +
 +Agora vamos acertar o nrpe.cfg para que ele responda ao servidor Nagios
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​nrpe.cfg
 +[...]
 +allowed_hosts=127.0.0.1,​ 192.168.1.200
 +</​sxh>​
 +
 +Precisamos adicionar uma entrada em /​etc/​services para o serviço do nrpe, por que as vezes ele não sobe senão achar esta entrada.
 +<sxh bash>
 +
 +vim /​etc/​services
 +[...]
 +nrpe            5666/​tcp ​                       # NRPE
 +[...]
 +</​sxh>​
 +
 +
 +Vamos habilitar o xinetd para subir na inicialização do sistema
 +<sxh bash>
 +systemctl enable xinetd.service
 +</​sxh>​
 +
 +Agora vamos reiniciar o Xinetd
 +<sxh bash>
 +systemctl restart xinetd.service
 +</​sxh>​
 +
 +Agora vamos testar a conexão com o nrpe, no servidor execute os seguintes comandos
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.203
 +NRPE v2.15
 +</​sxh>​
 +
 +Conseguimos conectar no nrpe, agora vamos obter a informação de quantos usuários logados nós temos 
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.203 -c check_users
 +USERS OK - 1 users currently logged in |users=1;​5;​10;​0
 +</​sxh>​
 +
 +Agora vamos checar o load do sistema
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.203 -c check_load
 +OK - load average: 0.02, 0.09, 0.05|load1=0.020;​15.000;​30.000;​0;​ load5=0.090;​10.000;​25.000;​0;​ load15=0.050;​5.000;​20.000;​0;​
 +</​sxh>​
 +
 +No Cliente agora vamos ajustar o nrpe.cfg
 +Vamos fazer um backup do arquivo antes
 +<sxh bash>
 +
 +cp -Rfa /​usr/​local/​nagios/​etc/​nrpe.cfg{,​.bkp}
 +</​sxh>​
 +
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​nrpe.cfg
 +### Categoria de LOG
 +log_facility=daemon
 +
 +### Arquivo com o PID
 +pid_file=/​var/​run/​nrpe.pid
 +
 +### Porta do NRPE
 +server_port=5666
 +
 +# SERVER ADDRESS esta opção é ignorado quanto utilizamos xinetd ou inetd
 +#​server_address=0.0.0.0
 +
 +### Usuário NRPE
 +nrpe_user=nagios
 +
 +### Grupo NRPE
 +nrpe_group=nagios
 +
 +### Maquinas que poderão escutar o nrpe
 +allowed_hosts=127.0.0.1,​192.168.1.200
 + 
 +# Não habilitar esta opção pois o nagios pode enviar qualquer comando com qualquer parametro
 +dont_blame_nrpe=0
 +
 +### Quando precisamos utilizar sudo para executar algum plugin do nagios
 +# Execução de plugins pelo sudo deve ser configurado como abaixo
 +# nagios ​         ALL=(ALL) NOPASSWD: /​usr/​lib/​nagios/​plugins/​
 +### Chamada prefixo que vai ser utilizado no comando do nagios
 +# command_prefix=/​usr/​bin/​sudo ​
 +
 +### Opções de Debug
 +debug=0
 +
 +### Timeout para o NRPE
 +command_timeout=60
 +
 +### Timeout para Conexão
 +connection_timeout=300
 +
 +### Opções randomicas ​
 +#​allow_weak_random_seed=1
 +
 +### Incluir arquivo de configuração
 +#​include=<​somefile.cfg>​
 +
 +### Incluir diretório de configuração ​
 +#​include_dir=<​somedirectory>​
 +
 +### Aqui vamos definir os comandos que serão chamados pelo nagios quando mandarmos pelo /​usr/​local/​nagios/​libexec/​check_nrpe -H maquina -c comando que vai ser os abaixo entre conchetes ​
 +#que é um alias para o comando com que vai ser executado na maquina
 +command[check_users]=/​usr/​local/​nagios/​libexec/​check_users -w 5 -c 10
 +command[check_load]=/​usr/​local/​nagios/​libexec/​check_load -w 15,10,5 -c 30,25,20
 +command[check_zombie_procs]=/​usr/​local/​nagios/​libexec/​check_procs -w 5 -c 10 -s Z
 +command[check_total_procs]=/​usr/​local/​nagios/​libexec/​check_procs -w 150 -c 200 
 +command[check_raiz]=/​usr/​local/​nagios/​libexec/​check_disk -w 20 -c 10 -p /​dev/​mapper/​centos-root
 +command[check_boot]=/​usr/​local/​nagios/​libexec/​check_disk -w 20 -c 10 -p /dev/sda1
 +command[check_swap]=/​usr/​local/​nagios/​libexec/​check_swap -w 20 -c 10
 +</​sxh>​
 +
 +
 +Aqui no cliente precisamos reiniciar o xinetd
 +<sxh bash>
 +systemctl restart xinetd.service
 +</​sxh>​
 +
 +**Agora no servidor Nagios vamos criar o arquivo que vai conter a configuração para monitorar o cliente nagios**
 +
 +<sxh bash>
 +vim /​usr/​local/​nagios/​etc/​objects/​centos7.cfg
 +### Aqui vamos definir o nosso host a configuração é bem parecido com a do servidor mudamos algumas coisas para adaptar o nrpe
 +define host{
 +        use                     ​linux-server
 +        host_name ​              ​CentOS7
 +        alias                   ​CentOS7
 +        address ​                ​192.168.1.203
 +        }
 +
 +### Definição da checagem de ping
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​CentOS7
 +        service_description ​            PING
 +  check_command ​     check_ping!100.0,​20%!500.0,​60%
 +        }
 +
 +### Definição da checagem do Root partition, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​CentOS7
 +        service_description ​            Root Partition
 +  check_command ​    ​check_nrpe!check_raiz
 +        }
 +
 +### Definição da checagem do Home partition, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​CentOS7
 +        service_description ​            Boot Partition
 +  check_command ​    ​check_nrpe!check_boot
 +        }
 +
 +### Definição da checagem do Load, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​CentOS7
 +        service_description ​            Load
 +  check_command ​    ​check_nrpe!check_load
 +        }
 +
 +### Definição da checagem dos Usuáros logado, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​CentOS7
 +        service_description ​            Users
 +  check_command ​    ​check_nrpe!check_users
 +        }
 +
 +### Definição da checagem do total de processos, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​CentOS7
 +        service_description ​            Total de Processos
 +  check_command ​    ​check_nrpe!check_total_procs
 +        }
 +
 +### Definição da checagem dos processos Zumbis, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​CentOS7
 +        service_description ​            ​Processos Zumbis
 +  check_command ​    ​check_nrpe!check_zombie_procs
 +        }
 +
 +### Definição da checagem da Swap, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​CentOS7
 +        service_description ​            Swap Usage
 +        check_command ​                  ​check_nrpe!check_swap!20!10
 +        }
 +</​sxh>​
 +
 +Agora vamos adicionar criar a configuração para agruparmos os servidores por exemplo: por tipo de serviço.
 +<sxh bash>
 +vim  /​usr/​local/​nagios/​etc/​objects/​hostgroup.cfg ​
 +### Grupo de monitoramento
 +### Aqui definimos o nome do grupo, um alias para o grupo e os membros que devem ser separador por vírgula ","​
 +define hostgroup{
 +        hostgroup_name ​ Monitoramento ​
 +        alias           ​Monitoramento ​
 +        members ​        ​Nagios ​    
 +        }
 +
 +define hostgroup{
 +        hostgroup_name ​ Sistemas
 +        alias           ​Sistemas
 +        members ​        ​Debian,​CentOS6,​CentOS7 ​    
 +        }
 +
 +</​sxh>​
 +
 +Agora vamos referenciar este arquivo na configuração do nagios no servidor, vamos inserir abaixo da configuração do localhost.
 +<sxh bash>
 +
 +vim /​usr/​local/​nagios/​etc/​nagios.cfg ​
 +[...]
 +# Definitions for monitoring the local (Linux) host
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​localhost.cfg
 +
 +### Inclusão do arquivo de controle dos grupos de hosts
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​hostgroup.cfg
 +
 +### Inclusão do arquivo de controle do cliente Debian
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​debian.cfg
 +
 +### Inclusão do arquivo de controle do cliente CentOS6
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​centos6.cfg
 +
 +### Inclusão do arquivo de controle do cliente CentOS7
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​centos7.cfg
 +[...]
 +</​sxh>​
 +
 +
 +Agora vamos checar se não temos erros em nossa configuração
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​bin/​nagios -v /​usr/​local/​nagios/​etc/​nagios.cfg
 +[...]
 +Total Warnings: 0
 +Total Errors: ​  0
 +
 +Things look okay - No serious problems were detected during the pre-flight check
 +</​sxh>​
 +
 +Agora vamos reiniciar o serviço do nagios
 +<sxh bash>
 +
 +/​etc/​init.d/​nagios restart
 +</​sxh>​
 +
 +Agora é só acompanhar as estatísticas no Nagios ;)
 +
 +Para adicionar mais clientes podemos inserir no final do arquivo centos7.cfg a mesma configuração feita para o cliente CentOS7 e efetuar os mesmos ajustes no nrpe ou podemos criar um novo arquivo para cada cliente e informar no nagios.cfg
 +
 +Depois que o nagios checar as informações que mandamos ele monitorar vamos ter algo como abaixo.
 +
 +{{::​nagios-03.png?​500|}}
 +
 +====== Configurando o Cliente NRPE OpenBSD 5.6 ======
 +
 +
 +Vamos instalar o nrpe pelos repositórios do openbsd que já vem com patch por causa da libssl e outros patchs de segurança, fazer tudo no braço da muito trampo e fora que não fica tão bom quanto o que o pessoal da OpenBSD deixou ;)
 +
 +Vamos mandar instalar o nrpe
 +<sxh bash>
 +pkg_add -v nrpe
 +</​sxh>​
 +
 +Precisamos adicionar uma entrada em /​etc/​services para o serviço do nrpe, por que as vezes ele não sobe senão achar esta entrada.
 +<sxh bash>
 +vim /​etc/​services
 +[...]
 +nrpe            5666/​tcp ​                       # NRPE
 +[...]
 +</​sxh>​
 +
 +
 +No Cliente agora vamos ajustar o nrpe.cfg
 +Vamos fazer um backup do arquivo antes
 +<sxh bash>
 +cp -Rf /​etc/​nrpe.cfg{,​.bkp}
 +</​sxh>​
 +
 +<sxh bash>
 +vim /​etc/​nrpe.cfg
 +### Categoria de LOG
 +log_facility=daemon
 +
 +### Arquivo com o PID
 +pid_file=/​var/​run/​nrpe/​nrpe.pid
 +
 +### Porta do NRPE
 +server_port=5666
 +
 +# SERVER ADDRESS esta opção é ignorado quanto utilizamos xinetd ou inetd
 +#​server_address=0.0.0.0
 +
 +### Usuário NRPE
 +nrpe_user=_nrpe
 +
 +### Grupo NRPE
 +nrpe_group=_nrpe
 +
 +### Maquinas que poderão escutar o nrpe
 +allowed_hosts=127.0.0.1,​192.168.1.200
 + 
 +# Não habilitar esta opção pois o nagios pode enviar qualquer comando com qualquer parametro
 +dont_blame_nrpe=0
 +
 +### Quando precisamos utilizar sudo para executar algum plugin do nagios
 +# Execução de plugins pelo sudo deve ser configurado como abaixo
 +# nagios ​         ALL=(ALL) NOPASSWD: /​usr/​lib/​nagios/​plugins/​
 +### Chamada prefixo que vai ser utilizado no comando do nagios
 +# command_prefix=/​usr/​bin/​sudo ​
 +
 +### Opções de Debug
 +debug=0
 +
 +### Timeout para o NRPE
 +command_timeout=60
 +
 +### Timeout para Conexão
 +connection_timeout=300
 +
 +### Opções randomicas ​
 +#​allow_weak_random_seed=1
 +
 +### Incluir arquivo de configuração
 +#​include=<​somefile.cfg>​
 +
 +### Incluir diretório de configuração ​
 +#​include_dir=<​somedirectory>​
 +
 +### Aqui vamos definir os comandos que serão chamados pelo nagios quando mandarmos pelo /​usr/​local/​nagios/​libexec/​check_nrpe -H maquina -c comando que vai ser os abaixo entre conchetes ​
 +#que é um alias para o comando com que vai ser executado na maquina
 +command[check_users]=/​usr/​local/​libexec/​nagios/​check_users -w 5 -c 10
 +command[check_load]=/​usr/​local/​libexec/​nagios/​check_load -w 15,10,5 -c 30,25,20
 +command[check_zombie_procs]=/​usr/​local/​libexec/​nagios/​check_procs -w 5 -c 10 -s Z
 +command[check_total_procs]=/​usr/​local/​libexec/​nagios/​check_procs -w 150 -c 200
 +command[check_raiz]=/​usr/​local/​libexec/​nagios/​check_disk -w 20% -c 10% /dev/wd0a
 +command[check_home]=/​usr/​local/​libexec/​nagios/​check_disk -w 20% -c 10% /dev/wd0k
 +command[check_tmp]=/​usr/​local/​libexec/​nagios/​check_disk -w 20% -c 10% /dev/wd0d
 +command[check_usr]=/​usr/​local/​libexec/​nagios/​check_disk -w 20% -c 10% /dev/wd0f
 +command[check_var]=/​usr/​local/​libexec/​nagios/​check_disk -w 20% -c 10% /dev/wd0e
 +command[check_swap]=/​usr/​local/​libexec/​nagios/​check_swap -w 20 -c 10
 +</​sxh>​
 +
 +Agora vamos ajustar o nrpe para subir na inicialização do sistema
 +<sxh bash>
 +vim /​etc/​rc.conf.local
 +nrpe_flags=""​
 +pkg_scripts="​nrpe"​
 +</​sxh>​
 +
 +Aqui no cliente precisamos reiniciar o xinetd
 +<sxh bash>
 +/​etc/​rc.d/​nrpe restart
 +</​sxh>​
 +
 +Agora vamos testar a conexão com o nrpe, no servidor execute os seguintes comandos
 +<sxh bash>
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.204
 +NRPE v2.15
 +</​sxh>​
 +
 +Conseguimos conectar no nrpe, agora vamos obter a informação de quantos usuários logados nós temos 
 +<sxh bash>
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.204 -c check_users
 +USERS OK - 1 users currently logged in |users=1;​5;​10;​0
 +</​sxh>​
 +
 +Agora vamos checar o load do sistema
 +<sxh bash>
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.204 -c check_load
 +OK - load average: 0.22, 0.15, 0.09|load1=0.220;​15.000;​30.000;​0;​ load5=0.150;​10.000;​25.000;​0;​ load15=0.090;​5.000;​20.000;​0
 +</​sxh>​
 +
 +
 +**Agora no servidor Nagios vamos criar o arquivo que vai conter a configuração para monitorar o cliente nagios**
 +
 +<sxh bash>
 +vim /​usr/​local/​nagios/​etc/​objects/​openbsd56.cfg
 +### Aqui vamos definir o nosso host a configuração é bem parecido com a do servidor mudamos algumas coisas para adaptar o nrpe
 +define host{
 +        use                     ​linux-server
 +        host_name ​              ​OpenBSD56
 +        alias                   ​OpenBSD56
 +        address ​                ​192.168.1.204
 +        }
 +
 +### Definição da checagem de ping
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​OpenBSD56
 +        service_description ​            PING
 +  check_command ​     check_ping!100.0,​20%!500.0,​60%
 +        }
 +
 +### Definição da checagem do Root partition, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​OpenBSD56
 +        service_description ​            Root Partition
 +  check_command ​    ​check_nrpe!check_raiz
 +        }
 +
 +### Definição da checagem do Home partition, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​OpenBSD56
 +        service_description ​            Home Partition
 +  check_command ​    ​check_nrpe!check_home
 +        }
 +
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​OpenBSD56
 +        service_description ​            Tmp Partition
 +  check_command ​    ​check_nrpe!check_tmp
 +        }
 +
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​OpenBSD56
 +        service_description ​            Usr Partition
 +  check_command ​    ​check_nrpe!check_usr
 +        }
 +
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​OpenBSD56
 +        service_description ​            Var Partition
 +  check_command ​    ​check_nrpe!check_var
 +        }
 +
 +
 +### Definição da checagem do Load, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​OpenBSD56
 +        service_description ​            Load
 +  check_command ​    ​check_nrpe!check_load
 +        }
 +
 +### Definição da checagem dos Usuáros logado, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​OpenBSD56
 +        service_description ​            Users
 +  check_command ​    ​check_nrpe!check_users
 +        }
 +
 +### Definição da checagem do total de processos, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​OpenBSD56
 +        service_description ​            Total de Processos
 +  check_command ​    ​check_nrpe!check_total_procs
 +        }
 +
 +### Definição da checagem dos processos Zumbis, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​OpenBSD56
 +        service_description ​            ​Processos Zumbis
 +  check_command ​    ​check_nrpe!check_zombie_procs
 +        }
 +
 +### Definição da checagem da Swap, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​OpenBSD56
 +        service_description ​            Swap Usage
 +        check_command ​                  ​check_nrpe!check_swap!20!10
 +        }
 +</​sxh>​
 +
 +Agora vamos adicionar criar a configuração para agruparmos os servidores por exemplo: por tipo de serviço.
 +<sxh bash>
 +vim  /​usr/​local/​nagios/​etc/​objects/​hostgroup.cfg ​
 +### Grupo de monitoramento
 +### Aqui definimos o nome do grupo, um alias para o grupo e os membros que devem ser separador por vírgula ","​
 +define hostgroup{
 +        hostgroup_name ​ Monitoramento ​
 +        alias           ​Monitoramento ​
 +        members ​        ​Nagios ​    
 +        }
 +
 +define hostgroup{
 +        hostgroup_name ​ Sistemas
 +        alias           ​Sistemas
 +        members ​        ​Debian,​CentOS6,​CentOS7,​ OpenBSD56 ​    
 +        }
 +
 +</​sxh>​
 +
 +Agora vamos referenciar este arquivo na configuração do nagios no servidor, vamos inserir abaixo da configuração do localhost.
 +<sxh bash>
 +vim /​usr/​local/​nagios/​etc/​nagios.cfg ​
 +[...]
 +# Definitions for monitoring the local (Linux) host
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​localhost.cfg
 +
 +### Inclusão do arquivo de controle dos grupos de hosts
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​hostgroup.cfg
 +
 +### Inclusão do arquivo de controle do cliente Debian
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​debian.cfg
 +
 +### Inclusão do arquivo de controle do cliente CentOS6
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​centos6.cfg
 +
 +### Inclusão do arquivo de controle do cliente CentOS7
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​centos7.cfg
 +
 +### Inclusão do arquivo de controle do cliente OpenBSD 5.6
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​openbsd56.cfg
 +[...]
 +</​sxh>​
 +
 +
 +Agora vamos checar se não temos erros em nossa configuração
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​bin/​nagios -v /​usr/​local/​nagios/​etc/​nagios.cfg
 +[...]
 +Total Warnings: 0
 +Total Errors: ​  0
 +
 +Things look okay - No serious problems were detected during the pre-flight check
 +</​sxh>​
 +
 +Agora vamos reiniciar o serviço do nagios
 +<sxh bash>
 +
 +/​etc/​init.d/​nagios restart
 +</​sxh>​
 +
 +Agora é só acompanhar as estatísticas no Nagios ;)
 +
 +Para adicionar mais clientes podemos inserir no final do arquivo openbsd56.cfg a mesma configuração feita para o cliente OpenBSD56 e efetuar os mesmos ajustes no nrpe ou podemos criar um novo arquivo para cada cliente e informar no nagios.cfg
 +
 +Depois que o nagios checar as informações que mandamos ele monitorar vamos ter algo como abaixo.
 +
 +{{::​nagios-04.png?​500|}}
 +
 +====== Configurando o Cliente NRPE FreeBSD 10 ======
 +
 +Vamos obter os ports para o freebsd
 +<sxh bash>
 +portsnap fetch && portsnap extract && portsnap update
 +</​sxh>​
 +
 +Agora vamos acessar o ports do nrpe
 +<sxh bash>
 +/​usr/​ports/​net-mgmt/​nrpe
 +</​sxh>​
 +
 +Agora vamos mandar compilar o nrpe com o suporte a SSL e receber parametros ARGS
 +<sxh bash>
 +make WITH="​ARGS SSL"
 +</​sxh>​
 +
 +Vamos mandar instalar o nrpe
 +<sxh bash>
 +make install
 +</​sxh>​
 +
 +Agora vamos adicionar ele na inicialização do sistema
 +<sxh bash>
 +echo '​nrpe2_enable="​YES"'​ >> /​etc/​rc.conf
 +</​sxh>​
 +
 +
 +
 +Precisamos adicionar uma entrada em /​etc/​services para o serviço do nrpe, por que as vezes ele não sobe senão achar esta entrada.
 +<sxh bash>
 +vim /​etc/​services
 +[...]
 +nrpe            5666/​tcp ​                       # NRPE
 +[...]
 +</​sxh>​
 +
 +
 +No Cliente agora vamos ajustar o nrpe.cfg
 +Vamos fazer um backup do arquivo antes
 +<sxh bash>
 +cp -Rf /​usr/​local/​etc/​nrpe.cfg{,​.bkp}
 +</​sxh>​
 +
 +<sxh bash>
 +vim /​usr/​local/​etc/​nrpe.cfg
 +### Categoria de LOG
 +log_facility=daemon
 +
 +### Arquivo com o PID
 +pid_file=/​var/​run/​nrpe2/​nrpe2.pid
 +
 +### Porta do NRPE
 +server_port=5666
 +
 +# SERVER ADDRESS esta opção é ignorado quanto utilizamos xinetd ou inetd
 +#​server_address=0.0.0.0
 +
 +### Usuário NRPE
 +nrpe_user=nagios
 +
 +### Grupo NRPE
 +nrpe_group=nagios
 +
 +### Maquinas que poderão escutar o nrpe
 +allowed_hosts=127.0.0.1,​192.168.1.200
 + 
 +# Não habilitar esta opção pois o nagios pode enviar qualquer comando com qualquer parametro
 +dont_blame_nrpe=0
 +
 +### Quando precisamos utilizar sudo para executar algum plugin do nagios
 +# Execução de plugins pelo sudo deve ser configurado como abaixo
 +# nagios ​         ALL=(ALL) NOPASSWD: /​usr/​lib/​nagios/​plugins/​
 +### Chamada prefixo que vai ser utilizado no comando do nagios
 +# command_prefix=/​usr/​bin/​sudo ​
 +
 +### Opções de Debug
 +debug=0
 +
 +### Timeout para o NRPE
 +command_timeout=60
 +
 +### Timeout para Conexão
 +connection_timeout=300
 +
 +### Opções randomicas ​
 +#​allow_weak_random_seed=1
 +
 +### Incluir arquivo de configuração
 +#​include=<​somefile.cfg>​
 +
 +### Incluir diretório de configuração ​
 +#​include_dir=<​somedirectory>​
 +
 +### Aqui vamos definir os comandos que serão chamados pelo nagios quando mandarmos pelo /​usr/​local/​nagios/​libexec/​check_nrpe -H maquina -c comando que vai ser os abaixo entre conchetes ​
 +#que é um alias para o comando com que vai ser executado na maquina
 +command[check_users]=/​usr/​local/​libexec/​nagios/​check_users -w 5 -c 10
 +command[check_load]=/​usr/​local/​libexec/​nagios/​check_load -w 15,10,5 -c 30,25,20
 +command[check_raiz]=/​usr/​local/​libexec/​nagios/​check_disk -w 20% -c 10% -p /
 +command[check_zombie_procs]=/​usr/​local/​libexec/​nagios/​check_procs -w 5 -c 10 -s Z
 +command[check_total_procs]=/​usr/​local/​libexec/​nagios/​check_procs -w 150 -c 200 
 +command[check_swap]=/​usr/​local/​libexec/​nagios/​check_swap -w 20 -c 10
 +</​sxh>​
 +
 +Aqui no cliente precisamos reiniciar o xinetd
 +<sxh bash>
 +/​usr/​local/​etc/​rc.d/​nrpe2 restart
 +</​sxh>​
 +
 +Agora vamos testar a conexão com o nrpe, no servidor execute os seguintes comandos
 +<sxh bash>
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.205
 +NRPE v2.15
 +</​sxh>​
 +
 +Conseguimos conectar no nrpe, agora vamos obter a informação de quantos usuários logados nós temos 
 +<sxh bash>
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.204 -c check_users
 +USERS OK - 1 users currently logged in |users=1;​5;​10;​0
 +</​sxh>​
 +
 +Agora vamos checar o load do sistema
 +<sxh bash>
 +/​usr/​local/​nagios/​libexec/​check_nrpe -H 192.168.1.204 -c check_load
 +OK - load average: 0.17, 0.21, 0.17|load1=0.170;​15.000;​30.000;​0;​ load5=0.210;​10.000;​25.000;​0;​ load15=0.170;​5.000;​20.000;​0;​
 +</​sxh>​
 +
 +
 +**Agora no servidor Nagios vamos criar o arquivo que vai conter a configuração para monitorar o cliente nagios**
 +
 +<sxh bash>
 +vim /​usr/​local/​nagios/​etc/​objects/​freebsd10.cfg
 +### Aqui vamos definir o nosso host a configuração é bem parecido com a do servidor mudamos algumas coisas para adaptar o nrpe
 +define host{
 +        use                     ​linux-server
 +        host_name ​              ​FreeBSD10
 +        alias                   ​FreeBSD10
 +        address ​                ​192.168.1.205
 +        }
 +
 +### Definição da checagem de ping
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​FreeBSD10
 +        service_description ​            PING
 +  check_command ​     check_ping!100.0,​20%!500.0,​60%
 +        }
 +
 +### Definição da checagem do Root partition, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service
 +        host_name ​                      ​FreeBSD10
 +        service_description ​            Root Partition
 +        check_command ​    ​check_nrpe!check_raiz
 +        }
 +
 +### Definição da checagem do Load, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​FreeBSD10
 +        service_description ​            Load
 +        check_command ​    ​check_nrpe!check_load
 +        }
 +
 +### Definição da checagem dos Usuáros logado, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​FreeBSD10
 +        service_description ​            Users
 +        check_command ​    ​check_nrpe!check_users
 +        }
 +
 +### Definição da checagem do total de processos, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​FreeBSD10
 +        service_description ​            Total de Processos
 +        check_command ​    ​check_nrpe!check_total_procs
 +        }
 +
 +### Definição da checagem dos processos Zumbis, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​FreeBSD10
 +        service_description ​            ​Processos Zumbis
 +        check_command ​    ​check_nrpe!check_zombie_procs
 +        }
 +
 +### Definição da checagem da Swap, note que o comando é diferente do nagios server
 +define service{
 +        use                             ​local-service ​        ; Name of service template to use
 +        host_name ​                      ​FreeBSD10
 +        service_description ​            Swap Usage
 +        check_command ​                  ​check_nrpe!check_swap!20!10
 +        }
 +</​sxh>​
 +
 +Agora vamos adicionar criar a configuração para agruparmos os servidores por exemplo: por tipo de serviço.
 +<sxh bash>
 +vim  /​usr/​local/​nagios/​etc/​objects/​hostgroup.cfg ​
 +### Grupo de monitoramento
 +### Aqui definimos o nome do grupo, um alias para o grupo e os membros que devem ser separador por vírgula ","​
 +define hostgroup{
 +        hostgroup_name ​ Monitoramento ​
 +        alias           ​Monitoramento ​
 +        members ​        ​Nagios ​    
 +        }
 +
 +define hostgroup{
 +        hostgroup_name ​ Sistemas
 +        alias           ​Sistemas
 +        members ​        ​Debian,​ CentOS6, CentOS7, OpenBSD56, FreeBSD10 ​    
 +        }
 +
 +</​sxh>​
 +
 +Agora vamos referenciar este arquivo na configuração do nagios no servidor, vamos inserir abaixo da configuração do localhost.
 +<sxh bash>
 +vim /​usr/​local/​nagios/​etc/​nagios.cfg ​
 +[...]
 +# Definitions for monitoring the local (Linux) host
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​localhost.cfg
 +
 +### Inclusão do arquivo de controle dos grupos de hosts
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​hostgroup.cfg
 +
 +### Inclusão do arquivo de controle do cliente Debian
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​debian.cfg
 +
 +### Inclusão do arquivo de controle do cliente CentOS6
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​centos6.cfg
 +
 +### Inclusão do arquivo de controle do cliente CentOS7
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​centos7.cfg
 +
 +### Inclusão do arquivo de controle do cliente OpenBSD 5.6
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​openbsd56.cfg
 +
 +### Inclusão do arquivo de controle do cliente FreeBSD 10
 +cfg_file=/​usr/​local/​nagios/​etc/​objects/​freebsd10.cfg
 +[...]
 +</​sxh>​
 +
 +
 +Agora vamos checar se não temos erros em nossa configuração
 +<sxh bash>
 +
 +/​usr/​local/​nagios/​bin/​nagios -v /​usr/​local/​nagios/​etc/​nagios.cfg
 +[...]
 +Total Warnings: 0
 +Total Errors: ​  0
 +
 +Things look okay - No serious problems were detected during the pre-flight check
 +</​sxh>​
 +
 +Agora vamos reiniciar o serviço do nagios
 +<sxh bash>
 +
 +/​etc/​init.d/​nagios restart
 +</​sxh>​
 +
 +Agora é só acompanhar as estatísticas no Nagios ;)
 +
 +Para adicionar mais clientes podemos inserir no final do arquivo freebsd10.cfg a mesma configuração feita para o cliente FreeBSD10 e efetuar os mesmos ajustes no nrpe ou podemos criar um novo arquivo para cada cliente e informar no nagios.cfg
 +
 +Depois que o nagios checar as informações que mandamos ele monitorar vamos ter algo como abaixo.
 +
 +{{::​nagios-05.png?​500|}}
 +====== Referências ======
 +
 +  - http://​www.nagios.org/​
 +  - http://​www.nagios.org/​documentation
 +  - http://​library.nagios.com/​library/​products/​nagioscore/​manuals/​
 +  - http://​support.nagios.com/​knowledgebase/​faqs
 +  - http://​support.nagios.com/​wiki/​index.php/​Main_Page
 +  - http://​nagiosplugins.org/​man/​check_disk
 +  - http://​nagios-br.com/​
 +  - http://​blog.gnucom.cc/​2009/​event-handlers-in-nagios-using-nrpe/​