Pular para o conteúdo

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!
Pedro Franca waldemf
Hits: 70.168 Categoria: Linux Subcategoria: Configuração
  • Indicar
  • Impressora
  • Denunciar

Configurando os repositórios

A distribuição GNU/Linux que estou utilizando para a explanação dessa ferramenta é o Debian Squeeze.

Antes de tudo, temos que adicionar algumas fontes em nosso sources.list:

# nano /etc/apt/sources.list

Adicione (apenas se não tiver):

deb http://ftp.debian.org/debian/ squeeze-updates main contrib
deb-src http://ftp.debian.org/debian/ squeeze-updates main contrib
deb http://ftp.br.debian.org/debian/ squeeze main contrib non-free
deb http://ftp.debian.org/debian/ squeeze main contrib non-free

Agora salvamos e em seguida:

# apt-get update
# apt-get upgrade


Agora precisamos instalar algumas dependências para um perfeito funcionamento do Nagios:

# apt-get install build-essential

Este pacote é exclusivo da distribuição Debian, ele contém várias ferramentas do GNU/Linux (ex.: GCC, G++, make) necessárias para compilação dos arquivos fontes.

# apt-get install rrconf

Para controle dos serviços que serão carregados durante o boot:

# apt-get install libncurses5 libncurses5-dev libxml2 libxml2-dev libpng12-0-dev libgdbm-dev rrdtool snmp snmpd

Deixando o LAMP em perfeito funcionamento

Agora, temos que instalar alguns programas para o funcionamento do Nagios.

Em primeiro lugar, vamos instalar o Apache com o seguinte comando:

# apt-get install apache2

Logo após devemos instalar o MySQL, tanto o server como o client, então devemos rodar o seguinte comando:

Obs.: Vale lembrar que durante a instalação do mysql-server, ele pedirá uma senha, essa senha será a que você utilizará para uma futura administração do banco de dados, portanto guarde-a bem. ;)

# apt-get install mysql-server mysql-client

Após, deves instalar o php5:

# apt-get install php5

Ao terminar de instalar o LAMP, temos que reiniciar os seguintes serviços:

# /etc/init.d/apache2 restart
# /etc/init.d/mysql restart
# /etc/init.d/php5 restart


Feito isso, podemos então começar a instalar o Nagios. :)

   1. Configurando os repositórios
   2. Instalação do Nagios
   3. Ativando monitoramento
   4. Considerações finais

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

HP LaserJet 1020 em LTSP

Instalação completa do CACIC no Slackware 12.2

Instalando Wireless Intel 2200BG

ISPconfig - Uma alternativa ao CPanel

Ubuntu-Tweak: Como instalar (Ubuntu Hardy Heron)

#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

Entre na sua conta para comentar.