2014-09-15 7 views
0

Это требование:Nagios Monitoring

У меня есть приложение, работающее с python и django. Данные для входа в систему для этого приложения сохраняются в таблице mysql. После входа пользователя в приложение он будет обновлен в этой таблице. Так что теперь мне нужно напечатать статус «CRITICAL» на nagios, если в приложении нет активности в течение двух дней, иначе распечатайте статус «OK» на nagios. можно ли реализовать с nagios?

Любая помощь будет оценена по достоинству.

Заранее спасибо

+0

Да, вы можете сделать это. Напишите скрипт, чтобы получить count() из таблицы mysql, где информация пользователя и сохранена в файле. Затем используйте свою собственную логику для СРАВНИТЬ число от OLD до NEW count. – HamTheAstroChimp

ответ

1

Да, это возможно. Попросите службу запустить запрос к базе данных, чтобы подсчитать количество дней с момента последнего обновления. Если> 2, установите для службы CRITICAL.

0

Вы можете сделать ш скрипт, чтобы сделать подключение к базе данных MySQL, что-то вроде:

SELECT date FROM users ORDER DESC BY date LIMIT 1 
INTO OUTFILE '/tmp/tmpnagiosusers.txt' 

Тогда у вас есть лас дата регистрации, так что вы можете играть с этим в ваш ш скрипт !, для пример (очень простой и масштабируемый):

today=`date +"%Y-%m-%d") 
    user=$(mysql -D $MYDB -u $MYUSER -p $MYPASS -se "SELECT COUNT(user_id) FROM users WHERE date >= $today - 2") 
    if [ $user -lt 1 ]; 
    then 
    echo 'THere is a problem, you dont have much people registering ($user)' in the last twoo days; 
    exit 1; 
    else 
    echo 'Ok you have $user registrations the last twoo days' 
    exit 0; 
    fi 
1
lastupdate=$msql query to count last day update from today date 

if lastupdate > 2 ;then    
echo 'Your requirement is Completed'           
exit 2; 

else 

echo 'Your requirement is not Completed '  
exit 0;