Script Nagios + NRPE checa filas CUPS

Publicado por Rogério Tomassoni em 07/05/2011

[ Hits: 6.740 ]

 


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.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts