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.001 ]

Por: Pedro Franca em 29/06/2012


Instalação do Nagios



Em primeiro lugar, temos que criar um diretório para receber o download do Nagios:

# mkdir /etc/download

Entre no diretório e execute o comando para o download do Nagios na versão 3.4.1:

# wget http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.4.1/nagios-3.4.1.tar.gz/download

Agora devemos fazer o mesmo para baixar os plugins de monitoração:

# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

Criar um usuário do Nagios:

# adduser nagios

* A senha fica a seu critério

Entre na pasta criada para fazer o download e descompacte o Nagios, entre na pasta descompactada e faça a instalação:

# tar xzf nagios-3.4.1.tar.gz
# cd nagios
# ./configure
# make all
# make install
# make install-config
# make install-commandmode
# make install-init
# make install-webconf


Adicionando o Nagios na inicialização do sistema:

# ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios

- Usuário admin do Nagios

Por padrão o Nagios já vem com um usuário criado, o nagiosadmin. Por questão de segurança, vamos trocar este usuário.

Primeiro vamos criar o arquivo que terá a senha do novo usuário:

# htpasswd -c /usr/local/nagios/etc/htpasswd.users seu_usuario_novo

Após a criação do novo usuário, temos que alterar o usuário padrão dentro do arquivo cgi.cfg:

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

Troque todos os usuários nagiosadmin pelo que você criou.

Apos isso, criaremos o usuário para o Apache:

# usermod -G nagios nagios
# usermod -G www-data,nagios www-data
# /etc/init.d/apache2 reload


Configurando monitoramento

Toda a configuração do Nagios fica no seguinte diretório: /usr/local/nagios/etc

Dentro dessa pasta temos os principais arquivos de configuração do Nagios.

Começaremos pelo arquivo cgi.cfg. Edite este arquivo:

# nano /usr/loca/etc/cgi.cfg

Dentro dele, procure a opção: refresh_rate=90

Por padrão, ela vem com 90 segundos. Eu aconselho deixar um pouco menor esse refresh, pois assim temos uma resposta mais rápida de um possível problema na nossa rede, quando estivermos olhando o mapa da mesma.

Eu deixo sempre entre 7s ou 10s, acho que é tempo bom para uma atualização do mapa. Feito isso, salve e saia do arquivo.

Este arquivo contém algumas configurações bem interessantes do Nagios, aconselho que todos leiam ele com bastante atenção, pois possibilita fazermos muitas coisas, principalmente coisas visuais no mapa.

OK, agora vamos para o arquivo principal, o nagios.cfg, esse arquivo contém nada menos do que toda configuração do Nagios. É através dele que o Nagios lê os arquivos de configuração, portanto, temos que ter cuidado ao mexer com ele, aconselho que façam um backup dele antes de sair mexendo. ;)

Uma dica bem interessante é que o próprio Nagios traz com ele arquivos-modelos de monitoramento do hosts, e isso nos ajuda muito. Um exemplo é dentro do próprio arquivo. Edite-o:

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

Dentro do arquivos temos algumas opções bem legais, por exemplo:

# Definitions for monitoring the local (Linux) host
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

Este arquivo é um modelo de monitoramento de máquinas GNU/Linux, podemos editá-lo de acordo com a nossa necessidade.

# Definitions for monitoring a Windows machine
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg

Esse arquivo é um modelo de monitoramento de máquinas Windows, podemos editar ele de acordo com a nossa necessidade.

Instalando plugins

Primeiro vamos fazer o download do plugins do Nagios, ele é o responsável por executar os comando de check:

# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

Descompacte e instale os arquivos do Nagios-Plugins:

# tar xzf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure
# make
# make install


Vamos alterar o "dono" dos seguintes diretórios para o usuário nagios:

# chown nagios:nagios /usr/local/nagios
# chown -R nagios:nagios /usr/local/nagios/libexec


Após isso temos que verificar se não tem nenhum erro no Nagios com o seguinte comando:

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

A saída o comando tem que ser como essas informações:
Total Warnings:    0
Toral Errors:        0


Se foi essa a saída, o Nagios está instalado e funcionando. :)

Para acessá-lo, acesse pelo navegador:
  • http://ip_do_servidor/nagios

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

OpenVPN para clientes Windows no Debian Squeeze

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

Monitoração com Zabbix no Debian Squeeze

Leitura recomendada

Linux, USB-IrDA, T300 on the rocks

Remasterizando o Ubuntu

Neste Natal: liberte o seu Motorola Atrix, e o transforme no desktop perfeito

Instalação do Slackware 11.0 sem medo

Raid 1 em 5 minutos e descanso por 3 meses

  
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