Мониторинг использования ОЗУ и ЦП на удаленном сервере?

Я хочу отслеживать использование ЦП и ОЗУ на моем удаленном сервере и настроить систему уведомлений, которая уведомляет меня о высокой загрузке ОЗУ и автоматически завершает этот процесс.

Я попробовал плагин Nagios, но были некоторые ошибки.

Есть ли альтернативы этому?

Редактировать : пожалуйста, не предлагайте htop, free, top и тому подобное, так как я не собираюсь держать ssh ' входя в удаленный сервер и неоднократно проверяйте его работоспособность!

3
задан 18 April 2015 в 16:03

2 ответа

Действительно ли Вы знакомы с top? Шоу Вы ЦП и Использование оперативной памяти (и больше) для каждого процесса и также полной суммы.

можно также работать top -u USER, чтобы только видеть процессы определенного пользователя. только запустите с выполнения top без аргументов. нажмите q для выхода.

РЕДАКТИРОВАНИЕ

и для использования в рамках сценария: попробуйте top -b -n1 за выполнение в не интерактивный режим. можно затем проанализировать данные с head, sed, и grep однако Вам нравится.

1
ответ дан 19 April 2015 в 02:03

Я создаю некоторый пользовательский сценарий. Не полное решение для Вас, но, возможно, помогите.

#!/bin/bash

#we use output from "uptime" and "w" on every 5 min

UPTIME=`uptime`;
W=`w`;
RAM=`free -m`;
PS=`ps auxf | sort -nr -k 4 | head -15`
DATUM=`date`;
sleep 3
MYSQL=`mysqladmin -u root -pmz567sQld processlist;`
sleep 3
SYN=`netstat -natp | grep SYN`
sleep 3
HTTPD=`pgrep httpd | wc -l`
sleep 3

echo "######################################" >> /var/log/load-result/load_log
echo "$DATE" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "UPTIME:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$UPTIME" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "W COMMAND:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$W" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "FREE RAM:" >> /var/log/load-result/load_log
echo "$RAM" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "TOP 10 processes:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$PS" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "MYSQL PROCESSLIST:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$MYSQL" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "POTENTIAL ATTACKERS:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$SYN" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "NUMBER OF HTTPD PROCESS (currently maxclients are 64):" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "$HTTPD" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "CURRENTLY OPENED HTTPD CONNECTIONS:" >> /var/log/load-result/load_log
echo "" >> /var/log/load-result/load_log
echo "#####################################" >> /var/log/load-result/load_log

после этого также добавляют правило crontab отправить журнал в некоторую почту на каждых 5 минутах с файлом журнала. Также запустите скрипт на каждых 5 минутах

sudo nano /etc/crontab

*/5 * * * * sh /path_to_script/name_of_script     
*/5 * * * * mail -s "insert_subject" some_adress@domain < /var/log/load-result/load_log
1
ответ дан 19 April 2015 в 02:03

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

Похожие вопросы: