Я пытаюсь настроить nagios для проверки памяти на сервере ubuntu. У меня уже есть базовая конфигурация, но при попытке запустить nagios отображается следующее сообщение об ошибке:
Команда проверки службы 'check_mem', указанная в службе 'Текущее использование памяти' для хоста 'xxxx', нигде не определена!
Есть ли какое-нибудь место, кроме commands.cfg, для определения выполняемой команды?
Заранее спасибо, С уважением!
скорее всего вы захотите использовать nagios nrpe сервер на контролируемой машине и определите, какой плагин должен выполнять эту проверку.
Кстати, может, вам лучше проверить использование свопа?
Руи:
хорошо, это намного яснее. Ответ заключается в том, что NAGIOS может принимать любой действительный оператор конфигурации в любом из своих файлов конфигурации, и их может быть неограниченное количество. У меня есть сервер NAGIOS со 136 файлами конфигурации; любой из них может содержать определение команды.
Так что, если у вас есть работающая конфигурация, которая где-то определена, но не в commands.cfg, то плохая новость в том, что она может быть в любом из ее файлов конфигурации, а они могут быть где угодно.
Если бы я хотел найти его, я бы посмотрел в nagios.cfg, чтобы увидеть, в каких каталогах находятся файлы конфигурации, а затем автоматизирую процесс его поиска, возможно, с помощью
find /config/directory1 /config/directory2 /you-get-the-idea -type f -exec grep check_mem {} /dev/null \;
и посмотрите, какие совпадения найдутся.
Я не смог найти достойного скрипта для проверки памяти, поэтому написал следующее. Я использую его с nrpe, как было предложено выше.
Определение службы на сервере в конфигурации хоста:
define service { use generic-service host_name <hostname> service_description Memory Usage check_command check_nrpe_1arg!check_memory }
Это необходимо определить в /etc/nagios/nrpe.cfg на клиенте, с поправками на значения, которые вы хотите проверить:
command[check_memory]=/usr/lib/nagios/plugins/check_memory.sh -w 85 -c 90
Пример вывода:
#:~$ ./check_memory.sh -w 80 -c 90
Memory OK. 44% used.
#:~$ ./check_memory.sh -w 40 -c 50
Memory WARNING. 44% used.
Сценарий:
#!/bin/bash
#
# Script to check memory usage on Linux. Ignores memory used by disk cache.
#
# Requires the bc command
#
print_help() {
echo "Usage:"
echo "[-w] Warning level as a percentage"
echo "[-c] Critical level as a percentage"
exit 0
}
while test -n "$1"; do
case "$1" in
--help|-h)
print_help
exit 0
;;
-w)
warn_level=$2
shift
;;
-c)
critical_level=$2
shift
;;
*)
echo "Unknown Argument: $1"
print_help
exit 3
;;
esac
shift
done
if [ "$warn_level" == "" ]; then
echo "No Warning Level Specified"
print_help
exit 3;
fi
if [ "$critical_level" == "" ]; then
echo "No Critical Level Specified"
print_help
exit 3;
fi
free=`free -m | grep "buffers/cache" | awk '{print $4}'`
used=` free -m | grep "buffers/cache" | awk '{print $3}'`
total=$(($free+$used))
result=$(echo "$used / $total * 100" |bc -l|cut -c -2)
if [ "$result" -lt "$warn_level" ]; then
echo "Memory OK. $result% used."
exit 0;
elif [ "$result" -ge "$warn_level" ] && [ "$result" -le "$critical_level" ]; then
echo "Memory WARNING. $result% used."
exit 1;
elif [ "$result" -gt "$critical_level" ]; then
echo "Memory CRITICAL. $result% used."
exit 2;
fi
Проблема в том, что сервер nagios не может найти check_nrpe_1arg
Определить. Есть еще где-то, где вы можете определить команды, например, nagios-plugins
Здесь я решаю проблему, определяя команду в плагинах
deploy@code:/etc/nagios-plugins/config$ pwd
/etc/nagios-plugins/config
deploy@code:/etc/nagios-plugins/config$ cat check_nrpe.cfg
# this command runs a program $ARG1$ with arguments $ARG2$
define command {
command_name check_nrpe
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$
}
# this command runs a program $ARG1$ with no arguments
define command {
command_name check_nrpe_1arg
command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
Использовать check_nrpe
или check_nrpe_1arg
ты должен убедиться /usr/lib/nagios/plugins/check_nrpe
существует. В системе debian вы можете установить пакет nagios-nrpe-plugins
на сервере nagios.