Script Nagios + NRPE checa filas CUPS
Script para atuar junto com
Nagios que verifica filas de impressão
CUPS. Funciona com
NRPE.
Crie o script "check_imp_cups" com conteúdo abaixo, dê permissões de execução para o usuário que está executando o Nagios.
#!/bin/bash
# Script que verifica filas cups
# trabalhos parados.
# exit 1 = warning; exit 2 = Critico; exit 3 = Unknown
# Script que habilita caso esteja parada
habilita_imp="/usr/local/nagios/libexec/habilitaImpressorasCups"
# Script que reinicia os trabalhos parados
reinicia_trab="/usr/local/nagios/libexec/reiniciaTrabalhosCups"
# Testa primeiro argumento nome da fila
if [ -z "$1" ]
then
echo "Informe nome da fila. Ex.: ./check_imp_cups nome_fila"
exit 3
fi
# Notificacao
MSG=""
# A notificação via "netsend" só irá funcionar para notificar estações Windows com mensageiro ativo.
notificacao(){
#Rogerio
echo $MSG | smbclient -M sistema02 -I 10.1.5.50 -U "Impressora balcao NFE"
}
# Primeiro argumento nome da fila
nomeFila=$1
# Arquivo temporario
tmp_jobs="/tmp/$1-jobscups"
# Zera contador
count_job=0
# Verifica trabalhos parados, faz contagem
verifica_jobs_parados (){
# Verifica todos os trabalhos parados
jobs=$( lpq -P$nomeFila )
echo "$jobs" > $tmp_jobs
 # Le arquivo criado com todos os trabalhos;
while read JOB; do
# Remove as linhas desnecessarias e cria um novo arquivo auxiliar
if [ $count_job -gt 1 ]; then
#echo "$JOB" >> $tmp_jobs_aux;
job_owner=$(echo "$JOB" | tr -s " " ": "| cut -d: -f2)
job_id=$(echo "$JOB" | tr -s " " ": "| cut -d: -f3)
fi
count_job=$(expr $count_job + 1);
done < $tmp_jobs
 # Ajusta quantidade de trabalhos manipulados
count_job=$(expr $count_job - 2);
}
ON_OFF=$(lpstat -p $nomeFila | grep -iw $nomeFila|cut -d" " -f3)
TRAB_ON_OFF=$(lpstat -a $nomeFila | grep -iw $nomeFila |cut -d" " -f2)
# Testa os estados da fila
if [[ "$ON_OFF" != "disabled" && "$ON_OFF" != "desativada" ]]; then
if [[ "$TRAB_ON_OFF" = "accepting" || "$TRAB_ON_OFF" = "aceitando" ]]; then
verifica_jobs_parados
echo "Fila OK. Trab. parados: $count_job"
exit 0;
elif [[ "$TRAB_ON_OFF" != "accepting" || "$TRAB_ON_OFF" != "aceitando" ]]; then
verifica_jobs_parados
MSG="Verifique a fila: $nomeFila, desativada. Trab. parados: $count_job"
 #notificacao
echo "Ativa, mas nao esta aceitando trabalhos. Trab. parados: $count_job"
exit 1;
fi
elif [[ "$ON_OFF" = "disabled" || "$ON_OFF" = "desativada" ]]; then
echo "Verifique a fila, desativada. Trab. parados: $count_job"
MSG="Detectei a fila: $nomeFila, desativada. Com $count_job trab. parados. Se continuar recebendo esta msg realize procedimento manual."
#Lembre-se isso só funciona para Windows com mensageiro ativo.
notificacao
exit 2;
else
echo "Verifique o script check_imp_cups, opcao desconhecida."
exit 3;
fi
exit 3;
No nrpe.cfgi:
#Filas de impressao
command[check_nfebalba]=/usr/local/nagios/libexec/check_imp_cups <nome_da_fila>
Exemplo:
#Filas de impressao
command[check_nfebalba]=/usr/local/nagios/libexec/check_imp_cups nfebalba
No Nagios:
Crie por exemplo o arquivo filasImp.cfg (adicione-o no nagios.cfg) com o conteúdo:
define host{
use generic-printer
host_name Balcao BA
alias nfebalba
address 10.12.0.56
hostgroups ImpressorasNFE
}
define service{
use fila_imp
host_name Balcao BA
service_description Status Fila Imp.
check_command check_nrpe_com_ssl_cups!check_nfebalba
}
Simples assim...
Outras dicas deste autor
Plugin NFe 2.00 Nagios
Renomeando Konsole
Bloqueando tráfego via MAC com iptables
Suporte remoto com VNC LTSP 4.2
Criando plugin para Nagios
Leitura recomendada
Navegando Livremente: Desabilite o JavaScript e Acesse Conteúdo Restrito (aka paywalls)
Como verificar links quebrados no teu site
Como ajudar no Mass Mirror do Wikileaks
Webapps - o futuro começa aqui
Gmail - Como evitar que emails do VOL sejam bloqueados
Comentários
Nenhum comentário foi encontrado.