O poderoso Nagios

Bom pessoal, este é meu primeiro artigo, escolhi uma das melhores ferramentas (senão a melhor) para gerenciamento de redes. O poderoso Nagios, espero que gostem do artigo. Viva o mundo livre!

[ Hits: 67.012 ]

Por: Pedro Franca em 29/06/2012


Ativando monitoramento



Ativando monitoramento Linux

Para ativar o monitoramento GNU/Linux, vamos tomar como exemplo o arquivo abaixo, citado anteriormente:

#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

Em primeiro lugar, vamos criar outro arquivo com o nome da máquina monitorada. Ex.:

# nano /usr/local/nagios/etc/objects/firewall.cfg

Vale lembrar que todos arquivos novos tem que ter a extensão .cfg, e o mesmo tem que ser informado dentro do arquivo nagios.cfg, ou seja, após criar este arquivo vamos editar o arquivo nagios:

# nano /usr/local/nagios/etc/nagios.cfg

E, abaixo da seguinte linha:

#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

Vamos adicionar outro arquivo de leitura para o Nagios, neste caso, seria o:

#cfg_file=/usr/local/nagios/etc/objects/firewall.cfg

OK, agora vamos editar o arquivo firewall.cfg. Dentro dele temos que colocar as seguinte informações:
  • HOST DEFINITION
  • HOST GROUP DEFINITION
  • SERVICE DEFINITIONS

Um arquivo-exemplo ficaria assim:

#HOST GROUP DEFINITION
# Define a host for the local machine
define host{
        use                     linux-server            ; Name of host template to use
        host_name               nome da máquina
        alias                   nome da máquina
        address                 seu IP
        }

HOST DEFINITION
# Define a host for the local machine

define host{
        use                     linux-server            ; Name of host template to use
        host_name               NOME DA MÁQUINA
        alias                   NOME DA MÁQUINA
        address                 IP A SER MONITORADO
        max_check_attempts          2 #NUMERO DE VEZES QUE O NAGIOS VERIFICARA O HOST ATE ALERTAR UM PROBLEMA
        check_interval              2 # ESSA DIRETIVA SERVE PARA DEFINIR O TEMPO PARA ESPERAR ANTES DE AGENDAR A PROXIMA CHECAGEM
        check_period                24x7 # TEMPO QUE O NAGIOS IRAR MONITORAR "TODOS OS DIAS DA SEMANA"
        notification_interval       60 # TEMPO QUE O NAGIOS AGUARDA PARA RE-NOTIFICAR QUE O SERVIÇO NAO ESTÁ OK
        notification_period         24x7 # TEMPO QUE O NAGIOS IRAR NOTIFICAR "TODOS OS DIAS DA SEMANA"
        notification_options        d,u,r TIPO DE NOTIFICAÇÃO (D -DOWN U- UNREACHABLE R - RECOVER)
        contact_groups              Administrator
        icon_image      firewall.jpg # IMAGEM USADA PARA IDENTIFICAR NO MAP
        icon_image_alt  firewall Linux #IMAGEM USADA PARA IDENTIFICAR NO MAP
        statusmap_image firewall.jpg #IMAGEM USADA PARA IDENTIFICAR NO MAP
        }

#################################################
#################################################
#
# SERVICE DEFINITIONS
#
#################################################
#################################################

# Define a service to "ping" the local machine

define service{
        use                             local-service         ; Name of service template to use
        host_name                       NOME DA MAQUINA
        service_description             PING
   check_command         check_ping!100.0,20%!500.0,60%
       max_check_attempts          2
       normal_check_interval       2
       retry_check_interval        2
       check_period                24x7
       retain_status_information   1
       notification_interval       60
       notification_period         24x7
   notification_options        c,r
       contact_groups              Administrator
        }

Ativando monitoramento Windows

Para monitorar o Windows, temos que instalar um agente nas estações para colhimento das informações que o Nagios precisa.

Para Windows Server 2003, XP e Windows 7, podemos instalar o NSClient++, que está no seguinte link:
Após fazer o download, instalei ele nas máquinas cliente. Como sempre, é a instalação padrão do Windows: next, next, next, finish. ;)

Mas temos que fazer algumas configurações dentro do arquivo criado no C.

Antes de iniciar o serviço NSClientpp (Nagios) 0.2.7, devemos configurar dois arquivos importantes: NSC.ini e o counters.defs.

Estes arquivos ficam no seguinte diretório: C:\Program Files\NSClient++, dentro dele edite o arquivo NSC.ini

Descomente as linhas com os módulos dll. Deixando comentado somente o NRPEL. Ficando desta forma:

FileLogger.dll
CheckSystem.dll
CheckDisk.dll
NSClientListener.dll
;NRPEListener.dll
SysTray.dll
CheckEventLog.dll
CheckHelpers.dll

Encontre a linha: NSCLIENT PORT NUMBER

E descomente a linha: port=12489

Altere esta porta para "1248", por motivos de incompatibilidade.

Salve e saia do arquivo.

Agora o counters.Defs.

Para finalizar, encontre o a linha: ALLOWED HOST ADDRESSES

E coloque o IP do servidor Nagios. Lembre-se de descomentar a linha: allowed_hosts=(ip do servidor nagios)

Feito isso, agora sim podemos iniciar o serviço "NSClientpp" (Nagios).

Para iniciar este serviço, temos que ir nos serviços do Windows. Podemos usar os seguinte comando:

services.msc

Temos que encontrar o serviço NSClient++ (Win32), clicando 2x temos que ir na opção logon e deixar marcado a opção:

"Permitir que o serviço interaja com a área de trabalho"

Depois disso, volte na aba geral e inicie o serviço.

Agora vamos criar o arquivo do Windows:

# nano /usr/local/nagios/etc/objects/srv-windows.cfg

Dentro deles temos que ter as seguintes informações:

#################################################
#################################################
#
# HOST GROUP DEFINITIONS
#
#################################################
#################################################

# Define a hostgroup for Windows machines
# All hosts that use the windows-server template will automatically be a member of this group

define hostgroup{
   hostgroup_name   windows-servers   ; The name of the hostgroup
   alias      NOME DA MAQUINA   ; Long name of the group
   }
#################################################
#################################################
#
# HOST DEFINITIONS
#
#################################################
#################################################

# Define a host for the Windows machine we'll be monitoring
# Change the host_name, alias, and address to fit your situation

define host{
   use      windows-server   ; Inherit default values from a template
   host_name      NOME DA MAQUINA   ; The name we're giving to this host
   alias      NOME DA MAQUINA      ; A longer name associated with the host
   address      SIP DA MAQUINA MONITORADA   ; IP address of the host
       max_check_attempts          2
       check_interval              2
       check_period                24x7
       notification_interval       60
       notification_period         24x7
       notification_options        d,u,r
       contact_groups              Administrator  
       icon_image        serv3.jpg
       icon_image_alt  Servidor Windows
       statusmap_image serv3.jpg
         }

Página anterior     Próxima página

Páginas do artigo
   1. Configurando os repositórios
   2. Instalação do Nagios
   3. Ativando monitoramento
   4. Considerações finais
Outros artigos deste autor

Monitoração com Zabbix no Debian Squeeze

Proxy transparente com Squid, com controle de banda e bloqueio por horários

OpenVPN para clientes Windows no Debian Squeeze

Leitura recomendada

Slackware - Instalação com Tagfiles

Minha experiência com o Fedora 15

Stalonetray - Um system tray provisório para o Plasma 5

Teclados USB e Linux

Servidor VPN PPTP com autenticação de usuários no Active Directory

  
Comentários
[1] Comentário enviado por phrich em 29/06/2012 - 12:32h

Parabéns pelo Artigo.

[2] Comentário enviado por danniel-lara em 29/06/2012 - 15:09h

Parabéns pelo artigo
muito bom mesmo


[3] Comentário enviado por removido em 29/06/2012 - 15:55h

A coincidência foi enorme: o próximo projeto que iria implementar na empresa era justamente o Nagios. Foi clicar na página inicial do VOL que tava lá o seu artigo. Valeu. Abs!

[4] Comentário enviado por thiagosmg em 29/06/2012 - 16:08h

Parabéns! Excelente artigo! me ajudou muito...

[5] Comentário enviado por leandromoreirati em 29/06/2012 - 20:31h

Parabens pelo artigo muito bem elaborado, apenas gostaria de fazer uma consideração trabalho com o nagios mas trabalho também com o zabbix, que pra mim é muito prático, coisa que o nagios não é e como tempo é dinheiro vale apena uma conferida nele.

abraços a todos.h

[6] Comentário enviado por williammessias em 02/07/2012 - 16:50h

Mandou bem neste artigo.... Perito!!! Valeu por compartilhar com a comunicade!

[7] Comentário enviado por fgotardi em 03/07/2012 - 10:33h

Artigo muito bom mesmo, com todos os detalhes.

Gostaria apenas de salientar que se você quiser monitorar seus hosts pelo Google Mapas existe uma opção bem legal e fácil de configurar chamada de NAGMAP.

Para isso basta baixa-lo no seguinte endereço:

https://github.com/hecko/nagmap/tarball/1.0-beta1

Descompactar no diretorio do Apache2 no caso do documento acima, fica em /var/www/

Em seguida entre no diretório /var/www/nagmap e edite o arquivo config.php adicionando as coordenadas geograficas na seguinte opção:

$nagmap_map_centre = 'latitude, longitude';
$nagmap_map_zoom = 13; #coloque o numero que melhor encaixa com seu caso

Após efetuar essas alterações você já consegue visualizar o mapa da sua cidade e seus ativos digitando o seguinte endereço em seu browser:

http://ip_do_nagios/nagmap

Caso você tenha interesse em adicionar um link do Nagmap dentro do Nagios para não ter que abrir uma nova aba no browser edite o seguinte arquivo:

/usr/local/nagios/share/side.php

e adicione na altura da linha 42 a seguinte linha abaixo:

<li><a href="<?php echo $cfg["http://nagiospmj"];?>/nagmap" target="<?php echo $link_target;?>">Google Mapas</a></li>


Pronto está tudo configurado, espero também ter ajudado!!!

[8] Comentário enviado por waldemf em 03/07/2012 - 10:46h

Muito bem comentado Fgotardi.
Parabens!

[9] Comentário enviado por fgotardi em 04/07/2012 - 10:41h

Opa eu esqueci de dizer que é necessário adicionar 2 linhas no define host (do Nagios). As linhas seriam as seguintes:

notes latlng: latitude,longitude
register 1

[10] Comentário enviado por m4cgbr em 09/07/2012 - 11:57h


[5] Comentário enviado por leo_jfa em 29/06/2012 - 20:31h:

Parabens pelo artigo muito bem elaborado, apenas gostaria de fazer uma consideração trabalho com o nagios mas trabalho também com o zabbix, que pra mim é muito prático, coisa que o nagios não é e como tempo é dinheiro vale apena uma conferida nele.

abraços a todos.h


leo_ifa tudo bem,
Você não vai acreditar, ao ver o título deste artigo, me loguei justamente para escrever / mencionar o Zabbix para nosso colega que escreveu este belo artigo, pois eu também uso o Nagios, mas atende 100% minhas necessidades, foi ai então que coheci o Zabbix. Mas estou com alguma dificuldades para configurá-lo, mas pelo pouco que já usufrui, vê-se de cara que é um sistema bem robusto.

Boa sorte e sucesso.

[11] Comentário enviado por Polnoraref em 09/08/2012 - 08:33h

Muito bom seu artigo parabéns segui ele corretamente e deu certo toda a configuraçao... parabéns

[12] Comentário enviado por waldemf em 09/08/2012 - 13:38h

Fico feliz por ajudar, que essa comunidade sempre cresça.

[13] Comentário enviado por T4v1nh0 em 21/12/2012 - 15:32h

Artigo perfeito!

Pessoal, estou com um problema em configuração de hosts windows. Ao configura o mesmo pelo NSclient e nrpe, eu recebo a mensagem abaixo:

Disco C

"UNKNOWN 12-21-2012 15:28:10 0d 4h 5m 48s 3/3 Uso:"

O que pode ser feito?

abraços!

[14] Comentário enviado por waldemf em 21/12/2012 - 15:40h

T4v1nh0,

Poste a configuração do seu NSclient aqui, precisamos ver se você acionou os parâmetros corretos.

Sds!

[15] Comentário enviado por T4v1nh0 em 21/12/2012 - 16:03h

Waldemberquem, segue configuração do meu NSClient.

Abs.



# If you want to fill this file with all avalible options run the following command:
# nscp settings --generate --add-defaults --load-all
# If you want to activate a module and bring in all its options use:
# nscp settings --activate-module <MODULE NAME> --add-defaults
# For details run: nscp settings --help


; Undocumented section
[/modules]

; CheckDisk - CheckDisk can check various file and disk related things. The current version has commands to check Size of hard drives and directories.
CheckDisk = 1

; Event log Checker. - Check for errors and warnings in the event log. This is only supported through NRPE so if you plan to use only NSClient this wont help you at all.
CheckEventLog = 1

; Check External Scripts - A simple wrapper to run external scripts and batch files.
CheckExternalScripts = 1

; Helper function - Various helper function to extend other checks. This is also only supported through NRPE.
CheckHelpers = 1

; Event log Checker. - Check for errors and warnings in the event log. This is only supported through NRPE so if you plan to use only NSClient this wont help you at all.
CheckLogFile = 0

; Check NSCP - Checkes the state of the agent
CheckNSCP = 1

; CheckSystem - Various system related checks, such as CPU load, process state, service state memory usage and PDH counters.
CheckSystem = 1

; CheckTaskSched - CheckTaskSched can check various file and disk related things. The current version has commands to check Size of hard drives and directories.
CheckTaskSched = 0

; CheckTaskSched2 - CheckTaskSched2 can check various file and disk related things. The current version has commands to check Size of hard drives and directories.
CheckTaskSched2 = 0

; CheckWMI - CheckWMI can check various file and disk related things. The current version has commands to check Size of hard drives and directories.
CheckWMI = 0

; GraphiteClient - Graphite client
GraphiteClient = 0

; LUAScript - LUAScript...
LUAScript = 0

; NRDPClient - Passive check support over NRDP
NRDPClient = 0

; NRPE client - NRPE client
NRPEClient = 0

; NRPE server - A simple server that listens for incoming NRPE connection and handles them.
NRPEServer = 0

; NSCAClient - Passive check support over NSCA.
NSCAClient = 0

; NSCA server (no encryption) - A simple server that listens for incoming NSCA connection and handles them.
NSCAServer = 0

; NSClient server - A simple server that listens for incoming NSClient (check_nt) connection and handles them. Although NRPE is the preferred method NSClient is fully supported and can be used for simplicity or for compatibility.
NSClientServer = 1

; SMTPClient - Passive check support via SMTP
SMTPClient = 0

; Scheduler - A scheduler which schedules checks at regular intervals
Scheduler = 0

; SimpleCache module - Caches results for later checking.
SimpleCache = 0

; SimpleFileWriter module - FileWriters results for later checking.
SimpleFileWriter = 0

; SyslogClient - Passive check support via Syslog
SyslogClient = 0


; Undocumented section
[/settings/default]

; ALLOWED CIPHERS - A better value is: ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH
allowed ciphers = ADH

; ALLOWED HOSTS - A comaseparated list of allowed hosts. You can use netmasks (/ syntax) or * to create ranges.
allowed hosts = 192.168.0.38

; CACHE ALLOWED HOSTS - If hostnames should be cached, improves speed and security somewhat but wont allow you to have dynamic IPs for your nagios server.
cache allowed hosts = true

; SSL CERTIFICATE -
certificate =

; INBOX - The default channel to post incoming messages on
inbox = inbox

; PASSWORD - Password used to authenticate againast server
password =

; TIMEOUT - Timeout when reading packets on incoming sockets. If the data has not arrived within this time we will bail out.
timeout = 30

; ENABLE SSL ENCRYPTION - This option controls if SSL should be enabled.
use ssl = true

; VERIFY MODE -
verify mode = none


; A list of aliases available. An alias is an internal command that has been "wrapped" (to add arguments). Be careful so you don't create loops (ie check_loop=check_a, check_a=check_loop)
[/settings/external scripts/alias]

; alias_cpu - Alias for alias_cpu. To configure this item add a section called: /settings/external scripts/alias/alias_cpu
alias_cpu = checkCPU warn=80 crit=90 time=5m time=1m time=30s

; alias_cpu_ex - Alias for alias_cpu_ex. To configure this item add a section called: /settings/external scripts/alias/alias_cpu_ex
alias_cpu_ex = checkCPU warn=$ARG1$ crit=$ARG2$ time=5m time=1m time=30s

; alias_disk - Alias for alias_disk. To configure this item add a section called: /settings/external scripts/alias/alias_disk
alias_disk = CheckDriveSize MinWarn=10% MinCrit=5% CheckAll FilterType=FIXED

; alias_disk_loose - Alias for alias_disk_loose. To configure this item add a section called: /settings/external scripts/alias/alias_disk_loose
alias_disk_loose = CheckDriveSize MinWarn=10% MinCrit=5% CheckAll FilterType=FIXED ignore-unreadable

; alias_event_log - Alias for alias_event_log. To configure this item add a section called: /settings/external scripts/alias/alias_event_log
alias_event_log = CheckEventLog file=application file=system MaxWarn=1 MaxCrit=1 "filter=generated gt -2d AND severity NOT IN ('success', 'informational') AND source != 'SideBySide'" truncate=800 unique descriptions "syntax=%severity%: %source%: %message% (%count%)"

; alias_file_age - Alias for alias_file_age. To configure this item add a section called: /settings/external scripts/alias/alias_file_age
alias_file_age = checkFile2 filter=out "file=$ARG1$" filter-written=>1d MaxWarn=1 MaxCrit=1 "syntax=%filename% %write%"

; alias_file_size - Alias for alias_file_size. To configure this item add a section called: /settings/external scripts/alias/alias_file_size
alias_file_size = CheckFiles "filter=size > $ARG2$" "path=$ARG1$" MaxWarn=1 MaxCrit=1 "syntax=%filename% %size%" max-dir-depth=10

; alias_mem - Alias for alias_mem. To configure this item add a section called: /settings/external scripts/alias/alias_mem
alias_mem = checkMem MaxWarn=80% MaxCrit=90% ShowAll=long type=physical type=virtual type=paged type=page

; alias_process - Alias for alias_process. To configure this item add a section called: /settings/external scripts/alias/alias_process
alias_process = checkProcState "$ARG1$=started"

; alias_process_count - Alias for alias_process_count. To configure this item add a section called: /settings/external scripts/alias/alias_process_count
alias_process_count = checkProcState MaxWarnCount=$ARG2$ MaxCritCount=$ARG3$ "$ARG1$=started"

; alias_process_hung - Alias for alias_process_hung. To configure this item add a section called: /settings/external scripts/alias/alias_process_hung
alias_process_hung = checkProcState MaxWarnCount=1 MaxCritCount=1 "$ARG1$=hung"

; alias_process_stopped - Alias for alias_process_stopped. To configure this item add a section called: /settings/external scripts/alias/alias_process_stopped
alias_process_stopped = checkProcState "$ARG1$=stopped"

; alias_sched_all - Alias for alias_sched_all. To configure this item add a section called: /settings/external scripts/alias/alias_sched_all
alias_sched_all = CheckTaskSched "filter=exit_code ne 0" "syntax=%title%: %exit_code%" warn=>0

; alias_sched_long - Alias for alias_sched_long. To configure this item add a section called: /settings/external scripts/alias/alias_sched_long
alias_sched_long = CheckTaskSched "filter=status = 'running' AND most_recent_run_time < -$ARG1$" "syntax=%title% (%most_recent_run_time%)" warn=>0

; alias_sched_task - Alias for alias_sched_task. To configure this item add a section called: /settings/external scripts/alias/alias_sched_task
alias_sched_task = CheckTaskSched "filter=title eq '$ARG1$' AND exit_code ne 0" "syntax=%title% (%most_recent_run_time%)" warn=>0

; alias_service - Alias for alias_service. To configure this item add a section called: /settings/external scripts/alias/alias_service
alias_service = checkServiceState CheckAll

; alias_service_ex - Alias for alias_service_ex. To configure this item add a section called: /settings/external scripts/alias/alias_service_ex
alias_service_ex = checkServiceState CheckAll "exclude=Net Driver HPZ12" "exclude=Pml Driver HPZ12" exclude=stisvc

; alias_up - Alias for alias_up. To configure this item add a section called: /settings/external scripts/alias/alias_up
alias_up = checkUpTime MinWarn=1d MinWarn=1h

; alias_updates - Alias for alias_updates. To configure this item add a section called: /settings/external scripts/alias/alias_updates
alias_updates = check_updates -warning 0 -critical 0

; alias_volumes - Alias for alias_volumes. To configure this item add a section called: /settings/external scripts/alias/alias_volumes
alias_volumes = CheckDriveSize MinWarn=10% MinCrit=5% CheckAll=volumes FilterType=FIXED

; alias_volumes_loose - Alias for alias_volumes_loose. To configure this item add a section called: /settings/external scripts/alias/alias_volumes_loose
alias_volumes_loose = CheckDriveSize MinWarn=10% MinCrit=5% CheckAll=volumes FilterType=FIXED ignore-unreadable

; default - Alias for default. To configure this item add a section called: /settings/external scripts/alias/default
default =


; Section for SMTP passive check module.
[/settings/NRDP/client]

; CHANNEL - The channel to listen to.
channel = NRDP

; HOSTNAME - The host name of this host if set to blank (default) the windows name of the computer will be used.
hostname = auto


; Target definition for: default
[/settings/NRDP/client/targets/default]

; TARGET ADDRESS - Target host address
address =

; RECIPIENT - Recipient of email message
recipient = nscp@localhost

; SENDER - Sender of email message
sender = nscp@localhost

; TEMPLATE - Template for message data
template = Hello, this is %source% reporting %message%!

; TIMEOUT - Timeout when reading/writing packets to/from sockets.
timeout = 30


; Section for NRPE active/passive check module.
[/settings/NRPE/client]

; CHANNEL - The channel to listen to.
channel = NRPE


; Target definition for: default
[/settings/NRPE/client/targets/default]

; TARGET ADDRESS - Target host address
address =

; ALLOWED CIPHERS - A better value is: ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH
allowed ciphers = ADH

; SSL CERTIFICATE -
certificate =

; PAYLOAD LENGTH - Length of payload to/from the NRPE agent. This is a hard specific value so you have to "configure" (read recompile) your NRPE agent to use the same value for it to work.
payload length = 1024

; TIMEOUT - Timeout when reading/writing packets to/from sockets.
timeout = 30

; ENABLE SSL ENCRYPTION - This option controls if SSL should be enabled.
use ssl = true

; VERIFY MODE -
verify mode = none


; Section for NRPE (NRPEServer.dll) (check_nrpe) protocol options.
[/settings/NRPE/server]

; COMMAND ARGUMENT PROCESSING - This option determines whether or not the we will allow clients to specify arguments to commands that are executed.
allow arguments = false

; COMMAND ALLOW NASTY META CHARS - This option determines whether or not the we will allow clients to specify nasty (as in |`&><'"\[]{}) characters in arguments.
allow nasty characters = false

; PORT NUMBER - Port to use for NRPE.
port = 5666


; Section for NSCA passive check module.
[/settings/NSCA/client]

; CHANNEL - The channel to listen to.
channel = NSCA

; HOSTNAME - The host name of this host if set to blank (default) the windows name of the computer will be used.
hostname = auto


; Target definition for: default
[/settings/NSCA/client/targets/default]

; TARGET ADDRESS - Target host address
address =

; ALLOWED CIPHERS - A better value is: ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH
allowed ciphers = ADH

; SSL CERTIFICATE -
certificate =

; ENCRYPTION METHOD - Number corresponding to the various encryption algorithms (see the wiki). Has to be the same as the server or it wont work at all.
encryption = aes

; PASSWORD - The password to use. Again has to be the same as the server or it wont work at all.
password =

; TIMEOUT - Timeout when reading/writing packets to/from sockets.
timeout = 30

; ENABLE SSL ENCRYPTION - This option controls if SSL should be enabled.
use ssl = false

; VERIFY MODE -
verify mode = none


; Section for NSCA (NSCAServer) (check_nsca) protocol options.
[/settings/NSCA/server]

; ENCRYPTION - Encryption to use
encryption = aes

; PASSWORD - Password to use
password =

; PAYLOAD LENGTH - Length of payload to/from the NSCA agent. This is a hard specific value so you have to "configure" (read recompile) your NSCA agent to use the same value for it to work.
payload length = 512

; PERFORMANCE DATA - Send performance data back to nagios (set this to 0 to remove all performance data).
performance data = true

; PORT NUMBER - Port to use for NSCA.
port = 5667

; ENABLE SSL ENCRYPTION - This option controls if SSL should be enabled.
use ssl = false


; Section for NSClient (NSClientServer.dll) (check_nt) protocol options.
[/settings/NSClient/server]

; PERFORMANCE DATA - Send performance data back to nagios (set this to 0 to remove all performance data).
performance data = true

; PORT NUMBER - Port to use for check_nt.
port = 1248


; Section for SMTP passive check module.
[/settings/SMTP/client]

; CHANNEL - The channel to listen to.
channel = SMTP


; Target definition for: default
[/settings/SMTP/client/targets/default]

; TARGET ADDRESS - Target host address
address =

; RECIPIENT - Recipient of email message
recipient = nscp@localhost

; SENDER - Sender of email message
sender = nscp@localhost

; TEMPLATE - Template for message data
template = Hello, this is %source% reporting %message%!

; TIMEOUT - Timeout when reading/writing packets to/from sockets.
timeout = 30


; Section for simple cache module (SimpleCache.dll).
[/settings/cache]

; CHANNEL - The channel to listen to.
channel = CACHE

; PRIMARY CACHE INDEX - Set this to the value you want to use as unique key for the cache (host, command, result,...).
primary index = ${alias-or-command}


; Section for system checks and system settings
[/settings/check/task schedule]

; SYNTAX - Set this to use a specific syntax string for all commands (that don't specify one)
default buffer length = %title% last run: %most-recent-run-time% (%exit-code%)


; Configure crash handling properties.
[/settings/crash]

; ARCHIVE CRASHREPORTS - Archive crash reports in the archive folder
archive = true

; folder - The archive folder for crash dunpes.
archive folder = ${shared-path}/crash-dumps

; RESTART - Submit crash reports to nsclient.org (or your configured submission server)
restart = true

; RESTART SERVICE NAME - The url to submit crash reports to
restart target = NSClientpp

; SUBMIT CRASHREPORTS - Submit crash reports to nsclient.org (or your configured submission server)
submit = false

; SUBMISSION URL - The url to submit crash reports to
submit url = http://crash.nsclient.org/submit


; Section for the EventLog Checker (CheckEventLog.dll).
[/settings/eventlog]

; BUFFER_SIZE - The size of the buffer to use when getting messages this affects the speed and maximum size of messages you can recieve.
buffer size = 131072

; DEBUG - Log more information when filtering (usefull to detect issues with filters) not usefull in production as it is a bit of a resource hog.
debug = false

; LOOKUP NAMES - Lookup the names of eventlog files
lookup names = true

; SYNTAX - Set this to use a specific syntax string for all commands (that don't specify one).
syntax =


; A set of options to configure the real time checks
[/settings/eventlog/real-time]

; DEBUG - Log missed records (usefull to detect issues with filters) not usefull in production as it is a bit of a resource hog.
debug = false

; REAL TIME CHECKING - Spawns a backgrounnd thread which detects issues and reports them back instantly.
enabled = false

; LOGS TO CHECK - Comma separated list of logs to check
log = application,system

; STARTUP AGE - The initial age to scan when starting NSClient++
startup age = 30m


; A set of filters to use in real-time mode
[/settings/eventlog/real-time/filters]


; Section for external scripts configuration options (CheckExternalScripts).
[/settings/external scripts]

; COMMAND ARGUMENT PROCESSING - This option determines whether or not the we will allow clients to specify arguments to commands that are executed.
allow arguments = false

; COMMAND ALLOW NASTY META CHARS - This option determines whether or not the we will allow clients to specify nasty (as in |`&><'"\[]{}) characters in arguments.
allow nasty characters = false

; SCRIPT DIRECTORY - Load all scripts in a directory and use them as commands. Probably dangerous but useful if you have loads of scripts :)
script path =

; COMMAND TIMEOUT - The maximum time in seconds that a command can execute. (if more then this execution will be aborted). NOTICE this only affects external commands not internal ones.
timeout = 60


; A list of scripts available to run from the CheckExternalScripts module. Syntax is: <command>=<script> <arguments>
[/settings/external scripts/scripts]


; A list of wrappped scripts (ie. using the template mechanism)
[/settings/external scripts/wrapped scripts]


; A list of templates for wrapped scripts
[/settings/external scripts/wrappings]

; BATCH FILE WRAPPING -
bat = scripts\\%SCRIPT% %ARGS%

; POWERSHELL WRAPPING -
ps1 = cmd /c echo scripts\\%SCRIPT% %ARGS%; exit($lastexitcode) | powershell.exe -command -

; VISUAL BASIC WRAPPING -
vbs = cscript.exe //T:30 //NoLogo scripts\\lib\\wrapper.vbs %SCRIPT% %ARGS%


; Section for graphite passive check module.
[/settings/graphite/client]

; CHANNEL - The channel to listen to.
channel = GRAPHITE

; HOSTNAME - The host name of this host if set to blank (default) the windows name of the computer will be used.
hostname = auto


; Target definition for: default
[/settings/graphite/client/targets/default]

; TARGET ADDRESS - Target host address
address =

; PATH FOR VALUES -
path = system.${hostname}.${check_alias}.${perf_alias}


; Section for configuring the log handling.
[/settings/log]

; DATEMASK - The size of the buffer to use when getting messages this affects the speed and maximum size of messages you can recieve.
date format = %Y-%m-%d %H:%M:%S

; FILENAME - The file to write log data to. Set this to none to disable log to file.
file name = ${exe-path}/nsclient.log

; LOG LEVEL - Log level to use. Avalible levels are error,warning,info,debug,trace
level = info


; Configure log file properties.
[/settings/log/file]

; MAXIMUM FILE SIZE - When file size reaches this it will be truncated to 50% if set to 0 (default) truncation will be disabled
max size = 0


; Section for log file checker
[/settings/logfile]

; DEBUG - Log more information to help diagnose errors and configuration problems.
debug = false

; SYNTAX - Set the default syntax to use
syntax =


; A set of options to configure the real time checks
[/settings/logfile/real-time]

; REAL TIME CHECKING - Spawns a backgrounnd thread which waits for file changes.
enabled = false


; A set of filters to use in real-time mode
[/settings/logfile/real-time/checks]


; Section for the LUAScripts module.
[/settings/lua]


; A list of scripts available to run from the LuaSCript module.
[/settings/lua/scripts]


; Section for the Scheduler module.
[/settings/scheduler]

; THREAD COUNT - Number of threads to use.
threads = 5


; Section for the Scheduler module.
[/settings/scheduler/schedules]


; Section for configuring the shared session.
[/settings/shared session]

; LOG LEVEL - Log level to use
enabled = false


; Section for SYSLOG passive check module.
[/settings/syslog/client]

; CHANNEL - The channel to listen to.
channel = syslog

; HOSTNAME - The host name of this host if set to blank (default) the windows name of the computer will be used.
hostname =


; Target definition for: default
[/settings/syslog/client/targets/default]

; TARGET ADDRESS - Target host address
address =

; TODO -
critical severity = critical

; TODO -
facility = kernel

; TODO -
message_syntax = %message%

; TODO -
ok severity = informational

; TODO -
severity = error

; TODO -
tag_syntax = NSCA

; TODO -
unknown severity = emergency

; TODO -
warning severity = warning


; Section for system checks and system settings
[/settings/system/windows]

; DEFAULT LENGTH - Used to define the default intervall for range buffer checks (ie. CPU).
default buffer length = 1h


; Confiure which services has to be in which state
[/settings/system/windows/service mapping]


; A list of avalible remote target systems
[/settings/targets]


; Section for simple file writer module (SimpleFileWriter.dll).
[/settings/writers/file]

; CHANNEL - The channel to listen to.
channel = FILE

; FILE TO WRITE TO - The filename to write output to.
file = output.txt

; PRIMARY CACHE INDEX - Set this to the value you want to use as unique key for the cache (host, command, result,...).
syntax = ${alias-or-command} ${result} ${message}

[16] Comentário enviado por waldemf em 21/12/2012 - 16:28h

Essa conf é a do NSclient do cliente? ou seja a máquina Windows?
Na máquina cliente nesse caminho "c:\Program Files\NSClient++\NSC.ini" existe a conf do NSC certo? Deixei esse arquivo com o seguinte começo.
[modules]
;# NSCLIENT++ MODULES
;# A list with DLLs to load at startup.
; You will need to enable some of these for NSClient++ to work.
; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
; * *
; * N O T I C E ! ! ! - Y O U H A V E T O E D I T T H I S *
; * *
; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
FileLogger.dll
CheckSystem.dll
CheckDisk.dll
NSClientListener.dll
NRPEListener.dll
SysTray.dll
CheckEventLog.dll
CheckHelpers.dll
CheckWMI.dll
CheckNSCP.dll

Se mesmo assim não der certo, cole aqui a conf so seu host, só que a conf do Nagios, talvez o command não foi inscrito da maneira certa. Ou a conf do seu host no nagios está errado. ;)

Um exemplo que tenho aqui na minha rede de conf para a monitoração do HD é a seguinte,

# Create a service for monitoring C:\ disk usage
define service{
use generic-service
host_name SRV-JUPITER
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
max_check_attempts 2
normal_check_interval 2
retry_check_interval 2
check_period 24x7
retain_status_information 1
notification_interval 60
notification_period 24x7
notification_options c,r
contact_groups Administrator
}

Essa conf está falando que quando chegar em 80% de capacidade do meu HD ele vai gerar o status Warning e quando chegar em 90% um Critical.


[17] Comentário enviado por T4v1nh0 em 21/12/2012 - 16:31h

Isso mesmo, no client do NS o arquivo é sómente o nsclient.inf e não o NSC.

O meu conf do host no nagios foi bem simples mesmo só para teste:

define host{
use windows-server
host_name TIPC1
alias MICMGM071
address 192.168.0.4

}

define service{
use generic-service
host_name TIPC1
service_description Disco C
check_command check_nt!USEDDISKSPACE! -l C -w 80% -c 90% -p 1248
}

define service{
use generic-service
host_name TIPC1
service_description Uso de RAM
check_command check_nt!MEMUSE!-w 80 -c 90 -p 1248
}



Agora sobre o Ns, posso colar esse inicio do arquivo no meu?

[18] Comentário enviado por waldemf em 21/12/2012 - 16:42h

Cara o arquivo a ser editado é o nsc.ini mesmo, é nele que ficam as dll que habilitam o windows a mandar informação para o nagios....

Eu colei apenas o começo desse arquivo, mais se vc for lá e editar o arquivo NCS.ini e apenas tirar os ; que ficam na frente dessas dll:
FileLogger.dll
CheckSystem.dll
CheckDisk.dll
NSClientListener.dll
NRPEListener.dll
SysTray.dll
CheckEventLog.dll
CheckHelpers.dll
CheckWMI.dll
CheckNSCP.dll

Acredito que funcione.
Pode colar sim o arquivo NSC.ini....


[19] Comentário enviado por T4v1nh0 em 21/12/2012 - 16:47h

O problema, é que na pasta do nsc, não tem o nsc.ini só o nsclient.ini. Posso criar esse arquivo?

[20] Comentário enviado por waldemf em 21/12/2012 - 17:07h

Baixa esse arquivo, http://www.4shared.com/rar/x3lamkFZ/NSClient-039-agente_Win32.html? desistale o outro que vc instalou na máquina cliente e instale esse, depois disso siga os passo que falei lá em cima tirando apenas o ; das dll que ficam no começo do arquivo "NSC.ini" lembre de desabilitar o firewall do cliente e dentro do mesmo arquivo "NSC.ini" tem a opção da porta, não sei se vc tem firewall ai mais se tiver vale a dica. Depois vc tem que ir no service do windows e fazer o seguinte procedimento:

executar
services.msc

Temos que encontrar o serviço NSClient++ (Win32), clicando 2x temos que ir na opção logon e deixar marcado a opção:

"Permitir que o serviço interaja com a área de trabalho"

Depois disso, volte na aba geral e inicie o serviço.

Essa parte está no tutorial ai em cima.


[21] Comentário enviado por T4v1nh0 em 21/12/2012 - 18:07h

Refiz a instalação e reconfigurei o arquivo nsc.client, porém continuou a mesma mensagem no Nagios.

O que poderá ser?

[22] Comentário enviado por everaldo1 em 30/04/2013 - 11:59h

Cara parabéns pelo artigo, você pode ajudar como eu adiciono mais que uma maquina Windows tipo seven e xp obrigado

[23] Comentário enviado por inet em 21/06/2013 - 15:29h

Muito bom o artigo. Fiz a instalação em uma instalação nova do debian 6 e funcionou perfeitamente.
A única coisa que tive que adicionar foi a instalação da libgd2-xpm-dev para funcionar o mapa.
apt-get install -y libgd2-xpm-dev

Parabéns pelo artigo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts