Время ожидания SNMP со стороны клиента

У меня есть две машины A и B, A - менеджер snmp с установленным centreon.

Машина B - это клиентская машина, которую я должен отслеживать. На клиентской машине у меня есть скрипт, который вычисляет количество файлов в каком-то определенном каталоге (вывод скрипта - это число). Путь этого сценария был добавлен в файл конфигурации snmpd ( etc/snmp/snmpd.conf) на клиентском компьютере и сгенерировал OID для этого сценария.

происходит то, что каждые 5 минут этот сценарий запрашивается удаленно на Centreon-машине через snmp, эта команда запускается каждый раз с Centreon-машины:

/usr/lib/nagios/plugins/check_snmp -H client_IP_Adress -C All -P 2c -o .1.3.6.1.4.1.8072.1.3.2.3.1.2.22.99.104.101.99.107.95.98.108.111.99.107.101.100.95.102.105.108.101.115.95.112.112 -w 1 -c 2

где -w 1 для предупреждения a, d -c для критического

До сих пор это работало очень хорошо. Проблема в том, что скрипт, который считает файлы, занимает более 5 секунд, потому что там много файлов, и что происходит, если скрипт не дает результат в течение 5 секунд, команда выше получает ошибку тайм-аута.

Поскольку я младший администратор, я не знаю, где изменить время ожидания, поэтому я изменил скрипт, который считает файлы, эти изменения намереваются остановить команду внутри скрипта, которая считает файлы, если это займет более 4 секунд.

Это предыдущая версия:

#!/bin/bash

if [[ "$1" = "PROD" ]]; then
        received="/mnt/sftpdata/vpod/repository/received/PROD"
else
        received="/mnt/sftpdata/vpodpp/repository/received/PRE"
fi
echo $(find $received \( -path /mnt/sftpdata/vpod/repository/received/$1/FHU2/v1app2omniaboprd \) -prune -o -type f -mmin +45 -print 2>&1 | wc -l)

И это модифицированная новая версия:

#! /bin/bash

if [[ "$1" = "PROD" ]]; then
        received="/mnt/sftpdata/vpod/repository/received/PROD"
else
        received="/mnt/sftpdata/vpodpp/repository/received/PRE"
fi

f=$(timeout 4 bash -c "find $received \( -path /mnt/sftpdata/vpod/repository/received/$1/FHU2/v1app2omniaboprd \) -prune -o -type f -mmin +45 -print 2>&1 | wc -l")

if [[ "${#f}" -eq 0 ]]
then
        echo '3'
else
        echo $f
fi

- С новой версией, обычно, когда я выполняю команду check snmp с машины centreon (/usr/lib/nagios/plugins/check_snmp -H client_IP_Adress -C All -P 2c -o .1.3.6.1.4.1.8072.1.3.2.3.1.2.22.99.104.101.99.107.95.98.108.111.99.107.101.100.95.102.105.108.101.115.95.112.112 -w 1 -c 2), у меня должен быть номер 3 из внешнего скрипта, если поиск не не отвечаю с 4 секундами, но это не так, вместо 3, у меня есть это сообщение: тайм-аут ошибки внешней команды. и snmp deamon автоматически уничтожается на клиентском компьютере (неактивен (мертв)).

Можете ли вы помочь мне с этим вопросом. благодарю вас

0 ответов

Другие вопросы по тегам