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
Renomeando Konsole
Acertando permissão do nagios.cmd
Limitando sessões KDE LTSP 4.2
Criando plugin para Nagios
Erro ao inciar sessão gráfica (status 256)
Leitura recomendada
Ubuntu 11.10 - Como usar o Notepad++ via Wine
Formatos de vídeo na WEB
URL da IDE Intel XDK no GNU/Linux
Brincando com HTML - Jogo dos carrinhos
Google oferece sites de graça para pequenas empresas
Comentários
Nenhum comentário foi encontrado.