Ошибка "Невозможно открыть файл журнала MRTG" с помощью nagios и mrtg
У нас странная проблема с нашей настройкой icinga / nagios и mrtg.
Icinga отлично работает и не имеет проблем, он может контролировать все без проблем.
Мы настроили mrtg для сбора данных с наших маршрутизаторов и коммутаторов. MRTG работает нормально: он сохраняет данные журнала в каталоге /var/www/mrtg/ и отображает данные графика через Интернет. Мы предполагаем, что у MRTG все отлично.
Мы попытались настроить проверку пропускной способности в nagios:
define service{
use generic-service ; Inherit values from a template
host_name zywall-agora
service_description ZYWALL AGORA TRAFFICO
check_command check_local_mrtgtraf!/var/www/mrtg/x.x.x.x_2.log!AVG!1000000,2000000!5000000,5000000!1000
check_interval 1 ; Check the service every 1 minute under normal conditions
retry_interval 1 ; Re-check every minute until its final/hard state is determined
}
Где /var/www/mrtg/xxxx_2.log - это правильный путь к журналу.
Мы продолжаем получать Невозможно открыть ошибку файла журнала MRTG в результате теста в веб-интерфейсе icinga.
Мы перепробовали все:
- передать права собственности пользователю nagios или icinga в файл журнала
- дать chmod 777 в файл
- попробуйте скопировать файл в другой каталог и дать ему полное разрешение
Та же ошибка Странно то, что если мы используем команду, сгенерированную nagios в сеансе bash, команда работает как charm:
/usr/lib64/nagios/plugins/check_mrtgtraf -F /var/www/mrtg/x.x.x.x_2.log -a AVG -w 10,20 -c 5000000,5000000 -e 10
Результат:
Traffic WARNING - Avg. In = 17.9 KB/s, Avg. Out = 5.0 KB/s|in=17.877930KB/s;10.000000;5000000.000000;0.000000 out=5.000000KB/s;20.000000;5000000.000000;0.000000
Мы запустили эту командную строку как root, как пользователь nagios и как пользователь icinga, и все три работали нормально. Мы подумали, что команда, которую выполняет nagios, возможно, содержит что-то не так, поэтому мы отладили nagios, но мы обнаружили, что сгенерированная команда из nagios такая же, как и выше.
Поиск в Google таких проблем возвращает только проблемы систем, где mrtg не установлен, или проблемы с неверным путем к файлу журнала, но, похоже, это не наш случай.
Мы застряли, кто-нибудь может помочь?
2 ответа
Я решил проблему с настройкой команды следующим образом:
define command{
command_name check_local_mrtgtraf
command_line $USER1$/check_mrtgtraf $ARG1$ 10 AVG $ARG2$ $ARG3$ $ARG4$
}
и определение сервиса следующим образом:
define service {
use ...
host_name ....
...
check_command check_local_mrtgtraf!path_to_logfile!30,40!100,200!10
}
Покажите нам определение вашей команды "check_local_mrtgtraf". Возможно, это не соответствует тому, что вы передаете как ARG.
Кроме того, вы можете попробовать запустить его через 'env -i', чтобы имитировать, как nagios/icinga запускает его (без ENV).