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
Limpando lixeira centralizada do Samba
Acertando permissão do nagios.cmd
Renomeando Konsole
Resolvendo problema de Nagios + NPC
Suporte remoto com x11vnc
Leitura recomendada
Tema Escuro no Chrome Developer Tools (Dark Mode)
Como configurar um favicon
Google Analytics e Análise Estatística
Servidor web simples sem instalar nada
Alternativas ao Dropbox e outros serviços de armazenamento em nuvem
Comentários
Nenhum comentário foi encontrado.