Nagios – Monitorando o Windows
Neste documento começaremos com algo fácil, vamos monitorizar o nosso primeiro equipamento com Windows, seja um Desktop ou um Servidor. Monitorizaremos através de SNMP o básico, seja uso de CPU, CARNEIRO, Disco, Rede, Memória Swap e Ping. Com isto teremos uma primeira base para depois adicionar mais elementos que precisamos monitorizar!!!
Lo primero será loguearnos en Centreon como admin, y como ya tenemos instalado Centreon Plugin Pack (lo vimos en un Postagem anterior), Vamos para “Configuração” > “Hosts” > “Adicionar”. Y añadiremos un nuevo host a monitorizar, será nuestra máquina Windows, y configuraremos al menos las siguientes opciones:
- Nome: Nombre de la máquina Windows.
- Alias: Alias de la máquina Windows.
- Endereço IP: Dirección IP o hostname fqdn de la máquina Windows.
- SNMP Community & Version: Indicaremos la comunidad SNMP y versión que posteriormente configuraremos en la máquina Windows para permitir las consultas SNMP.
- Monitored from: Central o el Poller más cercano.
- Modelo: Añadiremos la plantilla que ya trae preconfigurados cada todos los servicios que monitorizará, escogemos “OS-Windows-SNMP-custom”.
Una vez añadido lo vemos, si cambiamos a la vista “Configuração” > “Serviços”, ya nos saldrá algo también.
Agora, deberemos instalar na equipa Windows o Serviço SNMP, por isso, Vamos para “Agregar o Quitar características de Windows” y lo instalaremos. Uma vez instalado, en los Servicios de Windows ya dispondremos de un nuevo servicio llamado “Servicio SNMP”. Si vamos a sus “Propriedades”, cílio “Segurança”, deberemos agregar la comunidad SNMP y la dirección IP o hostname del servidor Nagios que le monitorizará. Una vez aplicados los cambios, reiniciamos el service!
Nada mau, agora como siempre, deberemos aplicar los changements que hicimos en Centreon para que genere los ficheros de Nagios y cargue la configuração. Nós vamos “Configuração” > “Pesquisadores” > “Configuração de exportação”
Seleccionamos el equipo donde queremos aplicar los cambios, si en la Central, en un Poller en concreto o em todos, esto al ser un entorno pequeño solo tenho 'Central', marcamos os checks para gerar a configuração, exportar ficheiros e reiniciar o serviço do Engine, Pressionado “Exportação” e se tudo correu bem não teremos erros no progresso!
Se vamos “Monitorização” > “Status Details” veremos agora que os serviços que monitorizam esse equipamento já estão ativos, forçamos que faça uma verificação deles a partir de “Mais ações…” > “Serviços: Agendar verificação imediata (Forçado)”.
E nada, já teremos algo, o que carregou a partir do template. No meu caso CPU, CARNEIRO, Ping e Memória Swap monitorizados! Se não gostarmos dos nomes dos serviços, e refiro-me a que coloque em inglês 'Memory'’ e quisermos renomeá-los, Vamos para “Configuração” > “Serviços”, selecionamo-los e apenas será necessário modificar a 'Descrição'. Se quisermos que isto seja uma regra geral e se aplique a todos os serviços futuros que criarmos, modificaremos nos 'Templates'’ ou templates dos Serviços.
Adicionando os discos rígidos,
Como podemos ver, não me gerou o serviço de monitorização de disco, nas templates de serviço existe de facto algum serviço para isto, mas, sinceramente, não consigo fazê-lo funcionar. Portanto, serve-me, por exemplo, para vos explicar como adicionar e poder apoiar-nos perfeitamente num script de terceiros. Vamos descarregar o script 'check_win_snmp_storage.pl'’ de https://exchange.nagios.org/directory/Plugins/Network-Protocols/SNMP/Enhanced-Windows-Disk-Check/details para poder monitorizar os diferentes discos rígidos de cada Windows. Lembro-vos o site https://exchange.nagios.org para procurar qualquer outro script de que precisem. Nós, subimos-no como sempre com o WinSCP para o diretório dos plugins do Centreon '/usr/lib/centreon/plugins/'’ e tornamo-lo executável com 'chmod +x check_win_snmp_storage.pl'’ y podremos comprobar executando lo siguiente desde la shell del Nagios que funciona a las mil maravillas:
[Código-fonte]./check_win_snmp_storage.pl MAQUINA_WINDOWS COMUNIDAD LETRA_DISCO %WARNING %CRITICAL[/Código-fonte]
A propósito, este script le he modificado una línea, ya que no me generaba gráficas, podréis ver las diferenças del pantallazo que os paso (es la línea 174). Básicamente ele metido um pipe para que genere la gráfica, unos 'puntos y coma’ para separar los dados que devuelve y cambiado algo el orden, sin más.
E é isso, un comando que veamos que nos funciona en la shell del Nagios, podremos darlo de alta super fácil en Centreon. Usaremos em comando que acabamos de executar en la shell, pero agora le añadiremos variáveis, etc, qué mejor que ver este exemplo. Nós vamos “Configuração” > “Comandos” > “Adicionar” para criar um comando em Centreon. Olho, que también podremos clonarlo de otro comando y solo mudar los valores que nos interessa (ya que igual tenemos configurados los tiempos de checkeo, o el tipo de notificación, u horario…). Poço, indicamos um nome, como os he said en alguna otra ocasión, me gusta llamarles igual que el comando que se executa, en este exemplo 'check_win_snmp_storage.pl'. Y en 'Command Type’ pondremos pues el script que deberá executar, Neste caso:
[Código-fonte]$CENTREONPLUGINS$/check_win_snmp_storage.pl $HOSTADDRESS$ $_HOSTSNMPCOMMUNITY$ $ARG 1$ $ARG 2$ $ARG 3$[/Código-fonte]
Pulsaremos agora en “Descrever argumentos”,
indicaremos qué significa cada argumento, para quando creemos a continuación (y en el futuro) O Serviço, sepamos qué significa cada parámetro. Neste exemplo o Argumento 1 es la letra del disco a monitorizar, el Argumento 2 es el valor en porcentaje del Warning y el Argumento 3 será el valor en porcentaje del Critical. “Salvar”.
Agora, si creamos el service que va a monitorizar un disco duro, Nós vamos “Configuração” > “Serviços” > “Adicionar” o clonamos de un servicio existente (es lo más cómodo, lo veréis según vayáis usando Centreon, ya que depois com modificar el comando que executa el service y el nombre bastaría). Al turrão, el servicio de monitorización de disco tendrá lo siguiente:
- Descrição: Será o nome que veremos quando se monitorice, neste caso 'Disco X'.
- Linked with hosts: Aquí associaremos este serviço a nossas máquinas Windows que nos interessa, neste caso meto 2 equipos que tienen un disco duro X:\.
- Modelo: Selecionamos 'generic-active-service-custom', que normalmente, habremos modificado al início del despliegue de Nagios con las configuraciones base que usaremos en estos servicios que iremos creando (esto lo vimos en un documento inicial).
- Comando Check: Seleccionamos el comando que acabamos de definir en Centreon, el que monitorizará el uso de disco, al seleccionar 'check_win_snmp_storage.pl’ nos saldrá abaixo los argumentos que nos pide este comando y devemos acrescentar (los ArgsXX).
- Argumentos: Será lo que el comando espera que añadamos para que se execute correctamente, Neste caso, el comando pide la letra del disco, el valor en % para um aviso de Warning y el % para um aviso Crítico.
Lo demás podremos dejar como está por defecto, ya que lo hereda de la plantilla que escogemos. Crearemos tantos serviços de disco como necessitemos, sean discos C, D, E… y los associaremos cada uno deles a cada Windows que monitorizamos!
Monitorizando el tráfico de red,
Si también queremos conhecer el tráfico de red de los equipos, podremos aproveitarnos de un script que ya existe en nuestro Nagios, falamos del script 'check_centreon_snmp_traffic’ que estará en el directorio de los plugins de Nagios (/usr/lib/nagios/plugins/).
Por lo que si vamos por shell a dicho directorio y executamos el siguiente comando, veremos el tráfico de red de una máquina, en este caso estaba metiéndole traya al equipo para que veamos el throughput que escupe… El comando pedirá primero el hostname o dirección IP del equipo a consultar, seguido del nombre de la comunidad SNMP, añadiremos el nombre del adaptador de red del equipo, posteriormente los valores de Warning y Crítical en %, la versión de SNMP, normalmente 2 e finalmente, deberemos especificar la velocidad de dicha NIC, en este caso va a gigabit assim que le dejo en 1000. Ejemplo del comando:
[Código-fonte]/usr/lib/nagios/plugins/check_centreon_snmp_traffic -H MAQUINA_WINDOWS -C COMUNIDAD -n -i "NOMBRE_NIC" -w AVISO -c CRÍTICO -v VERSION_SNMP -T VELOCIDAD_MAX[/Código-fonte]
Olho! que si executamos este comando, lo estamos a fazer como 'root', portanto, luego en Centreon, veremos que tendremos un error de permisos, ya que el fichero de caché que creará para este host lo hace con permisos de root, y el usuario de Centreon no tendrá acesso, la caché la genera en '/var/lib/centreon/centplugins/’ con un nombre de archivo tipo 'traffic_cache_192.168.43.77', por lo que con un chown le daremos acesso si es necesario al usuario 'centreon’ (o diretamente borramos la caché y que la vuelva a crear). Es por si se os da el caso. Y si queréis ler como se chama vuestra NIC, al hacer un 'cat’ sobre el archivo de caché, veremos todas las interfaces de red que tiene dicho equipo.
Poço, tras probar lo anterior, que no es necesario, ya que seguimos estes passos ya nos valdrá, pero no habremos jugado con la shell… creamos pues el comando de Centreon que utilizaremos luego en el service que va a monitorizar el tráfico de red, como de costume, indicamos un nombre y la siguiente linha de comandos que executará:
[Código-fonte]/usr/lib/nagios/plugins/check_centreon_snmp_traffic -H $HOSTADDRESS$ -C $_HOSTSNMPCOMMUNITY$ -n -i $ARG1$ -w $ARG2$ -c $ARG3$ -v $ARG4$ -T $ARG5$[/Código-fonte]
Pressionado “Descrever argumentos” para especificar o que serão os parâmetros e ao criar o serviço associá-los mais facilmente.
Neste comando, se virmos o que escrevemos na shell com o que nos pede, será fácil, el Argumento 1 será o nome da Interface de rede ou NIC, el Argumento 2 será o valor em % de Warning, el Argumento 3 será o do Critical, el Argumento 4 será a versão do SNMP (que poderíamos ter colocado um 2 no comando se sempre usarmos essa versão… e remover este argumento), e por fim o Argumento 5 será a velocidade máxima da NIC. “Salvar”,
Momento de criar já o serviço que vai monitorizar o tráfego de rede de uma máquina concreta! Nós vamos “Comandos” > “Serviços” > “Adicionar” (o lo dicho, clonar de otro y modificar). Y añadiremos lo siguiente:
- Descrição: Lo de siempre, el nombre del service tal y como lo veremos quando se monitorice.
- Vinculado a anfitriões: Indicamos el host al que asociaremos este serviço.
- Modelo: Como casi siempre, usamos 'generic-active-service-custom'.
- Comando Check: Selecionamos o comando que acabamos de criar que usaremos para obter a informação de red. Rellenaremos também os argumentos que nos pidamos este comando, que sabemos que son: El nombre de la tarjeta de red a monitorizar, el valor numérico para el Warning (normalmente 80) & Crítico (normalmente 90), la versión de SNMP (normalmente 2) y la velocidad de la NIC.
Clique em “Salvar” Oh, bem, podremos ya guardar nuestras mudanças en Centreon, hacemos como ao início do documento quando exportamos a configuração a Nagios & reiniciamos el servicio para carregar esta nova configuração.
Volvemos a la pestaña de “Monitorização” > “Status Details” > “Serviços” y ahí veremos ya los servicios que hemos generado, esperamos pues ya a que Nagios ejecute los testeos y veamos el resultado de la monitorización en el Windows. Como de costume, sabemos que no hace falta esperar, que podremos seleccionar desde el ‘tick’ de la columna de la izquierda, y en ‘More actions…’ seleccionar ‘Services – Agendar verificação imediata (Forçado)’ y forzaremos pues que monitorice estos elementos!
Y si todo ha ido bien, ahora sí que tenemos monitorizado un equipo Windows básicamente, veremos en las gráficas los consumos de red, así como el uso de CPU, Disco, RAM o Swap. Y como digo esto es lo básico, Não? Mais tarde iremos adicionando mais coisas que precisemos, como por exemplo a monitorização dos serviços que essa máquina ofereça, etc… Veremos isso mais adiante!!!























































